hejianhao
2026-09-01 587391ed908f11c8f8f735575bc1425346d05bb2
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());
    }