From 06f69c0a04e14639d005b84e46b82a93b8d5883d Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期二, 01 九月 2026 16:29:19 +0800
Subject: [PATCH] fix0901: 继续修复扫描问题4

---
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/ProjectIntroductionAppService.java |    5 +++++
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/UserAppService.java              |    9 +++++++++
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java            |    8 ++++++++
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java    |    6 ++++++
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java          |    8 ++++++++
 5 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java
index 7b9ab69..c985ac5 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java
@@ -54,6 +54,7 @@
         this.vzanHttpUtil = vzanHttpUtil;
     }
 
+    /** 分页查询省代理。 */
     public PageResponse<ProvincialAgentListItemVO> page(int page, int pageSize, String regionCode,
                                                         String clinicName, String contactInfo, Integer status) {
         LambdaQueryWrapper<ProvincialAgent> query = new LambdaQueryWrapper<ProvincialAgent>()
@@ -94,12 +95,15 @@
         return PageResponse.of(new ArrayList<ProvincialAgentListItemVO>(), 0, page, pageSize);
     }
 
+    /** 查询省代理详情。 */
     public ProvincialAgentDetailVO detail(Long id) {
         return toDetail(require(id));
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 创建省代理并同步区域及微赞代理信息。 */
     public ProvincialAgentDetailVO create(ProvincialAgentSaveRequest request) {
+        // STEP 1:保存本地代理与负责区域;STEP 2:同步第三方代理;失败时整体回滚。
         boolean firstAgent = agentMapper.selectCount(new LambdaQueryWrapper<ProvincialAgent>()
                 .eq(ProvincialAgent::getDeleted, 0)) == 0;
         ProvincialAgent agent = new ProvincialAgent();
@@ -126,6 +130,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 更新省代理及其负责区域。 */
     public ProvincialAgentDetailVO update(Long id, ProvincialAgentSaveRequest request) {
         ProvincialAgent agent = require(id);
         fill(agent, request);
@@ -136,6 +141,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 删除省代理。 */
     public void delete(Long id) {
         require(id);
         agentMapper.deleteById(id);
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java
index 3add64d..1fcbb77 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java
@@ -59,6 +59,7 @@
         this.projectIntroductionPasswordService = projectIntroductionPasswordService;
     }
 
+    /** 分页查询直播课程。 */
     public PageResponse<LiveCourseListItemVO> page(int page, int pageSize, String keyword, Long expertId, Integer status, Integer liveStatus) {
         IPage<LiveCourseListRow> p = liveCourseMapper.selectCoursePage(new Page<LiveCourseListRow>(page, pageSize),
                 keyword, expertId, status, liveStatus);
@@ -85,6 +86,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 创建直播课程。 */
     public LiveCourseDetailVO create(LiveCourseUpsertRequest req) {
         throw new IllegalArgumentException("直播课程为初始化数据,禁止新增");
         /*
@@ -107,6 +109,7 @@
         */
     }
 
+    /** 查询直播课程详情。 */
     public LiveCourseDetailVO detail(Long id) {
         LiveCourseDetailRow row = liveCourseMapper.selectCourseDetail(id);
         if (row == null) {
@@ -136,6 +139,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 更新直播课程。 */
     public LiveCourseDetailVO update(Long id, LiveCourseUpsertRequest req) {
         validateExpert(req.getExpertId());
 
@@ -160,6 +164,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 修改直播课程状态。 */
     public LiveCourseStatusVO patchStatus(Long id, LiveCourseStatusRequest req) {
         LiveCourse course = liveCourseMapper.selectById(id);
         if (course == null) {
@@ -171,6 +176,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 更新直播课程密码。 */
     public void updatePassword(Long id, LiveCoursePasswordRequest req) {
         String password = req.getPassword();
         if (StrUtil.isNotBlank(password)) {
@@ -190,6 +196,7 @@
         liveCourseMapper.updatePasswordById(id, course.getPassword());
     }
 
+    /** 校验直播课程访问密码。 */
     public boolean verifyPassword(LiveCoursePasswordVerifyRequest req) {
         if (req.getType() == LIVE_ROOM_PASSWORD_TYPE) {
             // 直播间密码验证
@@ -210,6 +217,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 删除直播课程。 */
     public void delete(Long id) {
         throw new IllegalArgumentException("直播课程为初始化数据,禁止删除");
     }
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/ProjectIntroductionAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/ProjectIntroductionAppService.java
index cc2fd93..aaf3b11 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/ProjectIntroductionAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/ProjectIntroductionAppService.java
@@ -24,6 +24,7 @@
         this.projectIntroductionMapper = projectIntroductionMapper;
     }
 
+    /** 分页查询项目介绍。 */
     public PageResponse<ProjectIntroductionListItemVO> page(int page,
                                                              int pageSize,
                                                              String keyword,
@@ -56,11 +57,13 @@
         return PageResponse.of(list, result.getTotal(), result.getCurrent(), result.getSize());
     }
 
+    /** 查询项目介绍详情。 */
     public ProjectIntroductionDetailVO detail(Long id) {
         return toDetailVO(requireItem(id));
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 创建项目介绍。 */
     public ProjectIntroductionDetailVO create(ProjectIntroductionSaveRequest req) {
         ProjectIntroduction item = new ProjectIntroduction();
         fillEntity(item, req);
@@ -71,6 +74,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 更新项目介绍。 */
     public ProjectIntroductionDetailVO update(Long id, ProjectIntroductionSaveRequest req) {
         ProjectIntroduction item = requireItem(id);
         fillEntity(item, req);
@@ -79,6 +83,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 删除项目介绍。 */
     public void delete(Long id) {
         requireItem(id);
         projectIntroductionMapper.deleteById(id);
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java
index 3136c3e..0b0bc6a 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java
@@ -68,6 +68,7 @@
         this.transactionManager = transactionManager;
     }
 
+    /** 分页查询诊所。 */
     public PageResponse<ClinicListItemVO> page(int page,
                                                int pageSize,
                                                String regionCode,
@@ -94,6 +95,7 @@
         return PageResponse.of(list, result.getTotal(), result.getCurrent(), result.getSize());
     }
 
+    /** 下载诊所代理导入模板。 */
     public void downloadClinicImportTemplate(HttpServletResponse response) throws IOException {
         response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
         response.setCharacterEncoding("utf-8");
@@ -105,6 +107,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 批量导入诊所与代理绑定关系。 */
     public void importAgentBindings(MultipartFile file) throws IOException {
         if (file == null || file.isEmpty()) {
             throw new IllegalArgumentException("请选择导入文件");
@@ -171,6 +174,7 @@
         }
     }
 
+    /** 导出诊所列表。 */
     public void export(String regionCode,
                        String name,
                        String phone,
@@ -211,6 +215,7 @@
                 .doWrite(exports);
     }
 
+    /** 查询诊所区域选项。 */
     public List<ClinicRegionOptionVO> regionOptions() {
         List<ClinicRegionOptionRow> rows = clinicQueryMapper.selectRegionOptions();
         List<ClinicRegionOptionVO> list = new ArrayList<ClinicRegionOptionVO>();
@@ -220,6 +225,7 @@
         return list;
     }
 
+    /** 查询诊所详情。 */
     public ClinicDetailVO detail(Long id) {
         ClinicDetailRow row = clinicQueryMapper.selectClinicDetail(id);
         if (row == null) {
@@ -246,6 +252,7 @@
         return vo;
     }
 
+    /** 更新诊所银行账户信息。 */
     public ClinicDetailVO updateBankAccount(Long id, ClinicBankAccountUpdateRequest request) {
         // 手动开启事务
         DefaultTransactionDefinition def = new DefaultTransactionDefinition();
@@ -322,6 +329,7 @@
         return region == null ? trimToNull(fallback) : region.getName();
     }
 
+    /** 分页查询诊所绑定用户。 */
     public PageResponse<ClinicBoundUserItemVO> clinicUsers(Long clinicId,
                                                            int page,
                                                            int pageSize,
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/UserAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/UserAppService.java
index a0617b7..c8ab19b 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/UserAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/UserAppService.java
@@ -55,6 +55,7 @@
         this.passwordEncoder = passwordEncoder;
     }
 
+    /** 分页查询用户。 */
     public PageResponse<UserListItemVO> page(int page,
                                              int pageSize,
                                              String nickname,
@@ -101,6 +102,7 @@
         return PageResponse.of(list, result.getTotal(), result.getCurrent(), result.getSize());
     }
 
+    /** 查询用户详情。 */
     public UserDetailVO detail(Long id) {
         UserDetailRow row = userMapper.selectUserDetail(id);
         if (row == null) {
@@ -142,6 +144,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 更新用户信息。 */
     public UserDetailVO update(Long id, UserUpdateRequest req) {
         AppUser user = requireUser(id);
         if (req.getClinicId() != null) {
@@ -170,6 +173,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 修改用户状态。 */
     public UserStatusVO patchStatus(Long id, UserStatusRequest req) {
         AppUser user = requireUser(id);
         user.setStatus(req.getStatus());
@@ -178,6 +182,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 重置用户密码。 */
     public void resetPassword(Long id, UserResetPasswordRequest req) {
         AppUser user = requireUser(id);
         if (!req.getNewPassword().equals(req.getConfirmPassword())) {
@@ -189,12 +194,14 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 删除用户。 */
     public void delete(Long id) {
         requireUser(id);
         userMapper.deleteById(id);
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 解除用户微信绑定。 */
     public UserDetailVO unbindWechat(Long id) {
         requireUser(id);
         userMapper.update(null, new LambdaUpdateWrapper<AppUser>()
@@ -207,6 +214,7 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
+    /** 批量更新用户诊所归属。 */
     public void batchUpdateClinic(UserBatchClinicUpdateRequest req) {
         Clinic clinic = clinicMapper.selectById(req.getClinicId());
         if (clinic == null || Integer.valueOf(1).equals(clinic.getDeleted())) {
@@ -224,6 +232,7 @@
                 .set(AppUser::getClinicId, req.getClinicId()));
     }
 
+    /** 查询诊所选项。 */
     public List<ClinicOptionVO> listClinicOptions() {
         List<Clinic> clinics = clinicMapper.selectList(new LambdaQueryWrapper<Clinic>()
                 .eq(Clinic::getDeleted, 0)

--
Gitblit v1.7.1