package com.aijiuyi.admin.controller; import com.aijiuyi.admin.common.annotation.Log; import com.aijiuyi.admin.common.entity.Result; import com.aijiuyi.admin.common.enums.OperationType; import com.aijiuyi.admin.controller.dto.AppUserQueryDTO; import com.aijiuyi.admin.entity.AppUser; import com.aijiuyi.admin.service.AppUserService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 应用用户管理 Controller(管理员后台) * 提供应用用户的增删改查和状态管理接口 */ @RestController @RequestMapping("/user/app") public class AppUserController { @Autowired private AppUserService appUserService; /** * 获取应用用户选项列表(用于方案创作人选择框) * 返回所有启用状态的用户,前端根据 userType 区分角色 * * @param userType 可选过滤:1=普通用户,2=专家,3=管理员;null=全部 * @return 用户列表(id + nickname + username + userType) */ @GetMapping("/list") @Log(value = "获取用户选项列表", module = "用户管理", operationType = OperationType.QUERY) public Result> list(@RequestParam(required = false) Integer userType) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .eq(AppUser::getStatus, 1) .eq(userType != null, AppUser::getUserType, userType) .select(AppUser::getId, AppUser::getNickname, AppUser::getUsername, AppUser::getUserType) .orderByAsc(AppUser::getUserType) .orderByAsc(AppUser::getId); return Result.success(appUserService.list(wrapper)); } /** * 分页查询应用用户列表 * * @param queryDTO 查询条件 * @return 分页结果 */ @GetMapping("/page") @Log(value = "查询应用用户列表", module = "用户管理", operationType = OperationType.QUERY) public Result> page(AppUserQueryDTO queryDTO) { return Result.success(appUserService.pageList(queryDTO)); } /** * 查询应用用户详情 * * @param id 用户ID * @return 用户详情 */ @GetMapping("/{id}") @Log(value = "查询应用用户详情", module = "用户管理", operationType = OperationType.QUERY) public Result getById(@PathVariable Long id) { return Result.success(appUserService.getById(id)); } /** * 新增应用用户 * * @param appUser 用户信息 * @return 操作结果 */ @PostMapping @Log(value = "新增应用用户", module = "用户管理", operationType = OperationType.INSERT) public Result add(@RequestBody AppUser appUser) { appUserService.addUser(appUser); return Result.success(); } /** * 修改应用用户 * * @param appUser 用户信息 * @return 操作结果 */ @PutMapping @Log(value = "修改应用用户", module = "用户管理", operationType = OperationType.UPDATE) public Result update(@RequestBody AppUser appUser) { appUserService.updateUser(appUser); return Result.success(); } /** * 删除应用用户(逻辑删除) * * @param id 用户ID * @return 操作结果 */ @DeleteMapping("/{id}") @Log(value = "删除应用用户", module = "用户管理", operationType = OperationType.DELETE) public Result delete(@PathVariable Long id) { appUserService.deleteUser(id); return Result.success(); } /** * 修改应用用户状态(禁用/启用) * * @param id 用户ID * @param status 目标状态:1=启用,0=禁用 * @return 操作结果 */ @PutMapping("/{id}/status") @Log(value = "修改应用用户状态", module = "用户管理", operationType = OperationType.UPDATE) public Result updateStatus(@PathVariable Long id, @RequestParam Integer status) { appUserService.updateStatus(id, status); return Result.success(); } }