From 587391ed908f11c8f8f735575bc1425346d05bb2 Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期二, 01 九月 2026 14:57:56 +0800
Subject: [PATCH] fix0901: 修复问题1

---
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/ProjectIntroductionController.java |    6 ++++++
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveRoomSettingController.java     |    5 ++++-
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/UserController.java              |   11 +++++++++++
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveCourseController.java          |    8 ++++++++
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/ClinicController.java            |    9 +++++++++
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/controller/ProvincialAgentController.java    |    6 ++++++
 6 files changed, 44 insertions(+), 1 deletions(-)

diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/controller/ProvincialAgentController.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/controller/ProvincialAgentController.java
index 1b58d36..56747c9 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/controller/ProvincialAgentController.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/controller/ProvincialAgentController.java
@@ -6,6 +6,7 @@
 import com.tcm.training.admin.agent.vo.ProvincialAgentListItemVO;
 import com.tcm.training.admin.common.ApiResponse;
 import com.tcm.training.admin.common.PageResponse;
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -22,26 +23,31 @@
     }
 
     @GetMapping("/provincial-agents")
+    @SaCheckPermission("agent:provincial:view")
     public ApiResponse<PageResponse<ProvincialAgentListItemVO>> page(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int pageSize, @RequestParam(required = false) String regionCode, @RequestParam(required = false) String clinicName, @RequestParam(required = false) String contactInfo, @RequestParam(required = false) Integer status) {
         return ApiResponse.ok(service.page(page, pageSize, regionCode, clinicName, contactInfo, status));
     }
 
     @GetMapping("/provincial-agents/{id}")
+    @SaCheckPermission("agent:provincial:view")
     public ApiResponse<ProvincialAgentDetailVO> detail(@PathVariable Long id) {
         return ApiResponse.ok(service.detail(id));
     }
 
     @PostMapping("/provincial-agents")
+    @SaCheckPermission("agent:provincial:add")
     public ApiResponse<ProvincialAgentDetailVO> create(@Valid @RequestBody ProvincialAgentSaveRequest r) {
         return ApiResponse.ok(service.create(r));
     }
 
     @PutMapping("/provincial-agents/{id}")
+    @SaCheckPermission("agent:provincial:edit")
     public ApiResponse<ProvincialAgentDetailVO> update(@PathVariable Long id, @Valid @RequestBody ProvincialAgentSaveRequest r) {
         return ApiResponse.ok(service.update(id, r));
     }
 
     @DeleteMapping("/provincial-agents/{id}")
+    @SaCheckPermission("agent:provincial:delete")
     public ApiResponse<Void> delete(@PathVariable Long id) {
         service.delete(id);
         return ApiResponse.ok(null);
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveCourseController.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveCourseController.java
index 41ef7b3..eabaed4 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveCourseController.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveCourseController.java
@@ -2,6 +2,7 @@
 
 import com.tcm.training.admin.common.ApiResponse;
 import com.tcm.training.admin.common.PageResponse;
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.tcm.training.admin.live.dto.LiveCourseStatusRequest;
 import com.tcm.training.admin.live.dto.LiveCourseUpsertRequest;
 import com.tcm.training.admin.live.dto.LiveCoursePasswordRequest;
@@ -35,6 +36,7 @@
     }
 
     @GetMapping("/live-courses")
+    @SaCheckPermission("live:course:view")
     public ApiResponse<PageResponse<LiveCourseListItemVO>> page(@RequestParam(required = false, defaultValue = "1") int page,
                                                                 @RequestParam(required = false, defaultValue = "10") int pageSize,
                                                                 @RequestParam(required = false) String keyword,
@@ -45,26 +47,31 @@
     }
 
     @PostMapping("/live-courses")
+    @SaCheckPermission("live:course:add")
     public ApiResponse<LiveCourseDetailVO> create(@Valid @RequestBody LiveCourseUpsertRequest req) {
         return ApiResponse.ok(liveCourseAppService.create(req));
     }
 
     @GetMapping("/live-courses/{id}")
+    @SaCheckPermission("live:course:view")
     public ApiResponse<LiveCourseDetailVO> detail(@PathVariable("id") Long id) {
         return ApiResponse.ok(liveCourseAppService.detail(id));
     }
 
     @PutMapping("/live-courses/{id}")
+    @SaCheckPermission("live:course:edit")
     public ApiResponse<LiveCourseDetailVO> update(@PathVariable("id") Long id, @Valid @RequestBody LiveCourseUpsertRequest req) {
         return ApiResponse.ok(liveCourseAppService.update(id, req));
     }
 
     @PatchMapping("/live-courses/{id}/status")
+    @SaCheckPermission("live:course:edit")
     public ApiResponse<LiveCourseStatusVO> patchStatus(@PathVariable("id") Long id, @Valid @RequestBody LiveCourseStatusRequest req) {
         return ApiResponse.ok(liveCourseAppService.patchStatus(id, req));
     }
 
     @PutMapping("/live-courses/{id}/password")
+    @SaCheckPermission("live:course:edit")
     public ApiResponse<Void> updatePassword(@PathVariable("id") Long id, @RequestBody LiveCoursePasswordRequest req) {
         liveCourseAppService.updatePassword(id, req);
         return ApiResponse.ok(null);
@@ -72,6 +79,7 @@
 
 
     @DeleteMapping("/live-courses/{id}")
+    @SaCheckPermission("live:course:delete")
     public ApiResponse<Void> delete(@PathVariable("id") Long id) {
         liveCourseAppService.delete(id);
         return ApiResponse.ok(null);
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveRoomSettingController.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveRoomSettingController.java
index 7bda57a..7b31dc1 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveRoomSettingController.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveRoomSettingController.java
@@ -1,6 +1,7 @@
 package com.tcm.training.admin.live.controller;
 
 import com.tcm.training.admin.common.ApiResponse;
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.tcm.training.admin.live.dto.LiveRoomSettingSaveRequest;
 import com.tcm.training.admin.live.service.LiveRoomSettingService;
 import com.tcm.training.admin.live.vo.LiveRoomSettingVO;
@@ -24,12 +25,14 @@
     }
 
     @GetMapping("/live-room-settings/current")
+    @SaCheckPermission("live:room-setting:view")
     public ApiResponse<LiveRoomSettingVO> current() {
         return ApiResponse.ok(service.current());
     }
 
     @PutMapping("/live-room-settings/current")
+    @SaCheckPermission("live:room-setting:edit")
     public ApiResponse<LiveRoomSettingVO> save(@Valid @RequestBody LiveRoomSettingSaveRequest request) {
         return ApiResponse.ok(service.save(request));
     }
-}
\ No newline at end of file
+}
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/ProjectIntroductionController.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/ProjectIntroductionController.java
index 5be309f..3809976 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/ProjectIntroductionController.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/ProjectIntroductionController.java
@@ -2,6 +2,7 @@
 
 import com.tcm.training.admin.common.ApiResponse;
 import com.tcm.training.admin.common.PageResponse;
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.tcm.training.admin.live.dto.ProjectIntroductionSaveRequest;
 import com.tcm.training.admin.live.service.ProjectIntroductionAppService;
 import com.tcm.training.admin.live.vo.ProjectIntroductionDetailVO;
@@ -31,6 +32,7 @@
     }
 
     @GetMapping("/project-introductions")
+    @SaCheckPermission("content:project-intro:view")
     public ApiResponse<PageResponse<ProjectIntroductionListItemVO>> page(@RequestParam(required = false, defaultValue = "1") int page,
                                                                           @RequestParam(required = false, defaultValue = "10") int pageSize,
                                                                           @RequestParam(required = false) String keyword,
@@ -41,22 +43,26 @@
     }
 
     @GetMapping("/project-introductions/{id}")
+    @SaCheckPermission("content:project-intro:view")
     public ApiResponse<ProjectIntroductionDetailVO> detail(@PathVariable("id") Long id) {
         return ApiResponse.ok(projectIntroductionAppService.detail(id));
     }
 
     @PostMapping("/project-introductions")
+    @SaCheckPermission("content:project-intro:add")
     public ApiResponse<ProjectIntroductionDetailVO> create(@Valid @RequestBody ProjectIntroductionSaveRequest req) {
         return ApiResponse.ok(projectIntroductionAppService.create(req));
     }
 
     @PutMapping("/project-introductions/{id}")
+    @SaCheckPermission("content:project-intro:edit")
     public ApiResponse<ProjectIntroductionDetailVO> update(@PathVariable("id") Long id,
                                                             @Valid @RequestBody ProjectIntroductionSaveRequest req) {
         return ApiResponse.ok(projectIntroductionAppService.update(id, req));
     }
 
     @DeleteMapping("/project-introductions/{id}")
+    @SaCheckPermission("content:project-intro:delete")
     public ApiResponse<Void> delete(@PathVariable("id") Long id) {
         projectIntroductionAppService.delete(id);
         return ApiResponse.ok(null);
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/ClinicController.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/ClinicController.java
index 8f6baa8..d6b78c3 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/ClinicController.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/ClinicController.java
@@ -2,6 +2,7 @@
 
 import com.tcm.training.admin.common.ApiResponse;
 import com.tcm.training.admin.common.PageResponse;
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.tcm.training.admin.member.service.ClinicAppService;
 import com.tcm.training.admin.member.dto.ClinicBankAccountUpdateRequest;
 import com.tcm.training.admin.member.vo.ClinicBoundUserItemVO;
@@ -38,6 +39,7 @@
     }
 
     @GetMapping("/clinics")
+    @SaCheckPermission("member:clinic:view")
     public ApiResponse<PageResponse<ClinicListItemVO>> page(
             @RequestParam(defaultValue = "1") int page,
             @RequestParam(defaultValue = "10") int pageSize,
@@ -52,16 +54,19 @@
     }
 
     @GetMapping("/clinics/clinic-import-template")
+    @SaCheckPermission("member:clinic:view")
     public void downloadClinicImportTemplate(HttpServletResponse response) throws IOException {
         clinicAppService.downloadClinicImportTemplate(response);
     }
 
     @PostMapping("/clinics/agent-bindings/import")
+    @SaCheckPermission("member:clinic:edit")
     public ApiResponse<Void> importAgentBindings(@RequestParam("file") MultipartFile file) throws IOException {
         clinicAppService.importAgentBindings(file);
         return ApiResponse.ok(null);
     }
     @GetMapping("/clinics/export")
+    @SaCheckPermission("member:clinic:view")
     public void export(HttpServletResponse response,
                        @RequestParam(required = false) String regionCode,
                        @RequestParam(required = false) String name,
@@ -74,21 +79,25 @@
     }
 
     @GetMapping("/clinics/regions")
+    @SaCheckPermission("member:clinic:view")
     public ApiResponse<List<ClinicRegionOptionVO>> regionOptions() {
         return ApiResponse.ok(clinicAppService.regionOptions());
     }
 
     @GetMapping("/clinics/{id}")
+    @SaCheckPermission("member:clinic:view")
     public ApiResponse<ClinicDetailVO> detail(@PathVariable Long id) {
         return ApiResponse.ok(clinicAppService.detail(id));
     }
 
     @PutMapping("/clinics/{id}")
+    @SaCheckPermission("member:clinic:edit")
     public ApiResponse<ClinicDetailVO> update(@PathVariable Long id,
                                                @Valid @RequestBody ClinicBankAccountUpdateRequest request) {
         return ApiResponse.ok(clinicAppService.updateBankAccount(id, request));
     }
     @GetMapping("/clinics/{id}/users")
+    @SaCheckPermission("member:clinic:view")
     public ApiResponse<PageResponse<ClinicBoundUserItemVO>> clinicUsers(
             @PathVariable Long id,
             @RequestParam(defaultValue = "1") int page,
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/UserController.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/UserController.java
index 77cf896..3801b0f 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/UserController.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/controller/UserController.java
@@ -2,6 +2,7 @@
 
 import com.tcm.training.admin.common.ApiResponse;
 import com.tcm.training.admin.common.PageResponse;
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.tcm.training.admin.member.dto.UserBatchClinicUpdateRequest;
 import com.tcm.training.admin.member.dto.UserResetPasswordRequest;
 import com.tcm.training.admin.member.dto.UserStatusRequest;
@@ -42,6 +43,7 @@
     }
 
     @GetMapping("/users")
+    @SaCheckPermission("member:user:view")
     public ApiResponse<PageResponse<UserListItemVO>> page(
             @RequestParam(defaultValue = "1") int page,
             @RequestParam(defaultValue = "10") int pageSize,
@@ -62,6 +64,7 @@
     }
 
     @GetMapping("/users/export")
+    @SaCheckPermission("member:user:view")
     public void export(
             HttpServletResponse response,
             @RequestParam(required = false) String nickname,
@@ -81,44 +84,52 @@
     }
 
     @GetMapping("/users/{id}")
+    @SaCheckPermission("member:user:view")
     public ApiResponse<UserDetailVO> detail(@PathVariable Long id) {
         return ApiResponse.ok(userAppService.detail(id));
     }
 
     @PutMapping("/users/batch-clinic")
+    @SaCheckPermission("member:user:edit")
     public ApiResponse<Void> batchUpdateClinic(@Valid @RequestBody UserBatchClinicUpdateRequest req) {
         userAppService.batchUpdateClinic(req);
         return ApiResponse.ok(null);
     }
 
     @PutMapping("/users/{id}")
+    @SaCheckPermission("member:user:edit")
     public ApiResponse<UserDetailVO> update(@PathVariable Long id, @Valid @RequestBody UserUpdateRequest req) {
         return ApiResponse.ok(userAppService.update(id, req));
     }
 
     @PatchMapping("/users/{id}/status")
+    @SaCheckPermission("member:user:edit")
     public ApiResponse<UserStatusVO> patchStatus(@PathVariable Long id, @Valid @RequestBody UserStatusRequest req) {
         return ApiResponse.ok(userAppService.patchStatus(id, req));
     }
 
     @PostMapping("/users/{id}/reset-password")
+    @SaCheckPermission("member:user:edit")
     public ApiResponse<Void> resetPassword(@PathVariable Long id, @Valid @RequestBody UserResetPasswordRequest req) {
         userAppService.resetPassword(id, req);
         return ApiResponse.ok(null);
     }
 
     @DeleteMapping("/users/{id}")
+    @SaCheckPermission("member:user:delete")
     public ApiResponse<Void> delete(@PathVariable Long id) {
         userAppService.delete(id);
         return ApiResponse.ok(null);
     }
 
     @DeleteMapping("/users/{id}/wechat-binding")
+    @SaCheckPermission("member:user:edit")
     public ApiResponse<UserDetailVO> unbindWechat(@PathVariable Long id) {
         return ApiResponse.ok(userAppService.unbindWechat(id));
     }
 
     @GetMapping("/clinics/options")
+    @SaCheckPermission("member:user:view")
     public ApiResponse<List<ClinicOptionVO>> clinicOptions() {
         return ApiResponse.ok(userAppService.listClinicOptions());
     }

--
Gitblit v1.7.1