hejianhao
2026-09-01 06f69c0a04e14639d005b84e46b82a93b8d5883d
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)