package com.mzl.flower.web.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.system.CreateUserDTO; import com.mzl.flower.dto.request.system.ResetUserPasswordDTO; import com.mzl.flower.dto.request.system.SearchUserDTO; import com.mzl.flower.dto.request.system.UpdateUserDTO; import com.mzl.flower.dto.response.system.UserDetailsDTO; import com.mzl.flower.dto.response.system.UserListDTO; import com.mzl.flower.service.system.UserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @RestController @RequestMapping("/api/user") @Api(value = "用户管理", tags = "用户管理") @Validated public class UserController extends BaseController { @Autowired private UserService userService; @GetMapping("/list") @ApiOperation(value = "查询管理用户列表") public ResponseEntity>> searchUser(@ModelAttribute SearchUserDTO dto, Page page) { List userTypes = new ArrayList<>(); userTypes.add(Constants.USER_TYPE.admin.name()); dto.setUserTypes(userTypes); return returnData(R.SUCCESS.getCode(), userService.searchUser(dto, page)); } @PostMapping("/list/new") @ApiOperation(value = "新增管理用户") public ResponseEntity addUser(@RequestBody CreateUserDTO dto) { dto.setType(Constants.USER_TYPE.admin.name()); userService.addUser(dto); return returnData(R.SUCCESS.getCode(), null); } @PostMapping("/list/edit") @ApiOperation(value = "更新管理用户") public ResponseEntity updateUser(@RequestBody UpdateUserDTO dto) { userService.updateUser(dto); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/list/view") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "String", paramType = "query") }) @ApiOperation(value = "查询管理用户详情") public ResponseEntity> getUser(String id) { return returnData(R.SUCCESS.getCode(), userService.getUserDetail(id)); } @GetMapping("/list/delete") @ApiOperation(value = "删除用户") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "String", paramType = "query") }) public ResponseEntity deleteUser(String id) { userService.deleteUser(id); return returnData(R.SUCCESS.getCode(), null); } @PostMapping("/reset/password") @ApiOperation(value = "重设密码") public ResponseEntity resetUserPassword(@RequestBody ResetUserPasswordDTO dto) { userService.resetUserPassword(dto); return returnData(R.SUCCESS.getCode(), null); } @PostMapping("/disable/{id}") @ApiOperation(value = "禁用用户") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "String", paramType = "path") }) public ResponseEntity disableUser(@PathVariable String id) { userService.setUserStatus(id, Constants.STATUS_INACTIVE); return returnData(R.SUCCESS.getCode(), null); } @PostMapping("/enable/{id}") @ApiOperation(value = "启用用户") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "String", paramType = "path") }) public ResponseEntity enableUser(@PathVariable String id) { userService.setUserStatus(id, Constants.STATUS_ACTIVE); return returnData(R.SUCCESS.getCode(), null); } }