From 5882ba8863d77fdcc168b176c3ffb30e8a20556a Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 13 七月 2026 17:54:25 +0800
Subject: [PATCH] 缩短二维码原始参数

---
 backend/src/main/java/com/sinata/appointment/controller/ConfigController.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/backend/src/main/java/com/sinata/appointment/controller/ConfigController.java b/backend/src/main/java/com/sinata/appointment/controller/ConfigController.java
index 2922acb..30f7b8b 100644
--- a/backend/src/main/java/com/sinata/appointment/controller/ConfigController.java
+++ b/backend/src/main/java/com/sinata/appointment/controller/ConfigController.java
@@ -12,6 +12,11 @@
 import com.sinata.appointment.dto.ContentSettingsSaveRequest;
 import com.sinata.appointment.dto.ContentSettingsVo;
 import com.sinata.appointment.dto.FieldConfigPatchRequest;
+import com.sinata.appointment.dto.SensitiveWordCreateRequest;
+import com.sinata.appointment.dto.SensitiveWordEnabledPatchRequest;
+import com.sinata.appointment.dto.SensitiveWordImportResultVo;
+import com.sinata.appointment.dto.SensitiveWordListVo;
+import com.sinata.appointment.dto.SensitiveWordUpdateRequest;
 import com.sinata.appointment.dto.VisitReasonCreateRequest;
 import com.sinata.appointment.dto.VisitReasonListVo;
 import com.sinata.appointment.dto.VisitReasonUpdateRequest;
@@ -27,6 +32,9 @@
 import jakarta.validation.constraints.NotBlank;
 import java.util.List;
 import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PatchMapping;
@@ -37,6 +45,7 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 @Tag(name = "系统配置")
 @RestController
@@ -95,6 +104,72 @@
         return ResultUtil.success();
     }
 
+    @Operation(summary = "敏感词库-分页")
+    @GetMapping("/sensitive-words/manage")
+    @SaCheckPermission("config:sensitive-words:page")
+    public Result<List<SensitiveWordListVo>> pageSensitiveWords(
+            @RequestParam(defaultValue = "1") long page,
+            @RequestParam(defaultValue = "10") long size,
+            @RequestParam(required = false) String keyword) {
+        return ResultUtil.page(configApplicationService.pageSensitiveWords(page, size, keyword));
+    }
+
+    @Operation(summary = "敏感词库-新增")
+    @PostMapping("/sensitive-words/manage")
+    @SaCheckPermission("config:sensitive-words:create")
+    public Result<Void> createSensitiveWord(@Valid @RequestBody SensitiveWordCreateRequest request) {
+        configApplicationService.createSensitiveWord(request);
+        return ResultUtil.success();
+    }
+
+    @Operation(summary = "敏感词库-编辑")
+    @PutMapping("/sensitive-words/manage/{id}")
+    @SaCheckPermission("config:sensitive-words:update")
+    public Result<Void> updateSensitiveWord(
+            @PathVariable Long id, @Valid @RequestBody SensitiveWordUpdateRequest request) {
+        configApplicationService.updateSensitiveWord(id, request);
+        return ResultUtil.success();
+    }
+
+    @Operation(summary = "敏感词库-启停")
+    @PatchMapping("/sensitive-words/manage/{id}/enabled")
+    @SaCheckPermission("config:sensitive-words:status")
+    public Result<Void> updateSensitiveWordEnabled(
+            @PathVariable Long id, @Valid @RequestBody SensitiveWordEnabledPatchRequest request) {
+        configApplicationService.updateSensitiveWordEnabled(id, request);
+        return ResultUtil.success();
+    }
+
+    @Operation(summary = "敏感词库-删除")
+    @DeleteMapping("/sensitive-words/manage/{id}")
+    @SaCheckPermission("config:sensitive-words:delete")
+    public Result<Void> deleteSensitiveWord(
+            @PathVariable Long id, @RequestParam @NotBlank(message = "uuid 不能为空") String uuid) {
+        configApplicationService.deleteSensitiveWord(id, uuid);
+        return ResultUtil.success();
+    }
+
+    @Operation(summary = "敏感词库-导入")
+    @PostMapping("/sensitive-words/manage/import")
+    @SaCheckPermission("config:sensitive-words:import")
+    public Result<SensitiveWordImportResultVo> importSensitiveWords(@RequestParam("file") MultipartFile file) {
+        return ResultUtil.data(configApplicationService.importSensitiveWords(file));
+    }
+
+    @Operation(summary = "敏感词库-导入模板")
+    @GetMapping("/sensitive-words/manage/import-template")
+    @SaCheckPermission("config:sensitive-words:import")
+    public ResponseEntity<byte[]> sensitiveWordImportTemplate() {
+        return ResponseEntity.ok()
+                .contentType(
+                        MediaType.parseMediaType(
+                                "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
+                .header(
+                        HttpHeaders.CONTENT_DISPOSITION,
+                        "attachment; filename=\"sensitive-word-import-template.xlsx\"")
+                .body(configApplicationService.sensitiveWordImportTemplateExcel());
+    }
+
     @GetMapping("/fields")
     @SaCheckPermission("config:booking-settings:page")
     public Result<List<BizFieldConfig>> listFields() {

--
Gitblit v1.7.1