From 6441ad9f4dc3c1b2af1b9dad505c62ff75d69c4e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 08 十月 2026 15:52:17 +0800
Subject: [PATCH] 项目重构

---
 basic-server/src/main/java/com/ruoyi/basic/controller/SealConfigController.java |  120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 120 insertions(+), 0 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/SealConfigController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/SealConfigController.java
new file mode 100644
index 0000000..51f7ae8
--- /dev/null
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/SealConfigController.java
@@ -0,0 +1,120 @@
+package com.ruoyi.basic.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.SealConfigExport;
+import com.ruoyi.basic.pojo.SealConfig;
+import com.ruoyi.basic.service.SealConfigService;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.exception.base.BaseException;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * 鍗扮珷绠$悊(鎶ュ憡鐢ㄥ嵃) 鎺у埗灞�
+ */
+@Tag(name = "鍗扮珷绠$悊")
+@RestController
+@RequestMapping("/sealConfig")
+public class SealConfigController {
+
+    @Resource
+    private SealConfigService sealConfigService;
+
+    @Value("${file.path}")
+    private String filePath;
+
+    @Operation(summary = "鏌ヨ鍗扮珷鍒楄〃")
+    @GetMapping("/pageSeal")
+    public Result<IPage<SealConfig>> pageSeal(Page page, SealConfig query) {
+        return Result.success(sealConfigService.pageSeal(page, query));
+    }
+
+    @Operation(summary = "鏂板鍗扮珷")
+    @PostMapping("/addSeal")
+    public Result addSeal(@RequestBody SealConfig seal) {
+        return Result.success(sealConfigService.addSeal(seal));
+    }
+
+    @Operation(summary = "淇敼鍗扮珷")
+    @PostMapping("/updateSeal")
+    public Result updateSeal(@RequestBody SealConfig seal) {
+        return Result.success(sealConfigService.updateSeal(seal));
+    }
+
+    @Operation(summary = "鍒犻櫎鍗扮珷")
+    @DeleteMapping("/delSeal")
+    public Result delSeal(Integer id) {
+        return Result.success(sealConfigService.delSeal(id));
+    }
+
+    @Operation(summary = "鍚敤鍗扮珷涓嬫媺鍒楄〃锛堜緵鎶ュ憡鎵瑰噯閫夋嫨鍗扮珷锛�")
+    @GetMapping("/selectEnabled")
+    public Result selectEnabled() {
+        return Result.success(sealConfigService.selectEnabled());
+    }
+
+    @Operation(summary = "涓婁紶鍗扮珷鍥剧墖")
+    @PostMapping("/upload")
+    public Result upload(MultipartFile file) {
+        if (file == null || file.isEmpty()) {
+            throw new BaseException("璇烽�夋嫨鍗扮珷鍥剧墖");
+        }
+        String originalName = file.getOriginalFilename() == null ? "" : file.getOriginalFilename();
+        String suffix = originalName.substring(originalName.lastIndexOf(".") + 1).toLowerCase();
+        if (!"jpg".equals(suffix) && !"jpeg".equals(suffix) && !"png".equals(suffix)) {
+            throw new BaseException("浠呮敮鎸� jpg / png 鍥剧墖");
+        }
+        String fileName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmssSSS")) + "." + suffix;
+        try {
+            File dir = new File(filePath);
+            if (!dir.exists()) {
+                dir.mkdirs();
+            }
+            file.transferTo(new File(dir.getPath() + File.separator + fileName));
+        } catch (IOException e) {
+            throw new BaseException("鍗扮珷鍥剧墖涓婁紶澶辫触");
+        }
+        return Result.success(fileName);
+    }
+
+    @Operation(summary = "瀵煎嚭鍗扮珷")
+    @GetMapping("/exportSeal")
+    public void exportSeal(SealConfig query, HttpServletResponse response) {
+        List<SealConfigExport> list = sealConfigService.listForExport(query);
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("UTF-8");
+        String fileName;
+        try {
+            fileName = URLEncoder.encode("鍗扮珷绠$悊", "UTF-8");
+        } catch (Exception e) {
+            throw new BaseException("瀵煎嚭澶辫触");
+        }
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        try {
+            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream())
+                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+            WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍗扮珷绠$悊").head(SealConfigExport.class).build();
+            excelWriter.write(list, mainSheet);
+            excelWriter.finish();
+        } catch (IOException e) {
+            throw new BaseException("瀵煎嚭澶辫触");
+        }
+    }
+}

--
Gitblit v1.9.3