longz
2026-07-13 5882ba8863d77fdcc168b176c3ffb30e8a20556a
backend/src/main/java/com/sinata/appointment/controller/ConfigController.java
@@ -14,6 +14,7 @@
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;
@@ -31,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;
@@ -41,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
@@ -144,6 +149,27 @@
        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() {