PoUserController.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package com.ruoyi.web.controller.system;
  2. import com.ruoyi.common.annotation.Log;
  3. import com.ruoyi.common.constant.UserConstants;
  4. import com.ruoyi.common.core.controller.BaseController;
  5. import com.ruoyi.common.core.domain.AjaxResult;
  6. import com.ruoyi.common.core.domain.entity.SysRole;
  7. import com.ruoyi.common.core.domain.entity.SysUser;
  8. import com.ruoyi.common.core.page.TableDataInfo;
  9. import com.ruoyi.common.enums.BusinessType;
  10. import com.ruoyi.common.utils.SecurityUtils;
  11. import com.ruoyi.common.utils.StringUtils;
  12. import com.ruoyi.common.utils.poi.ExcelUtil;
  13. import com.ruoyi.system.domain.PoUser;
  14. import com.ruoyi.system.service.IPoUserService;
  15. import io.swagger.annotations.ApiOperation;
  16. import org.apache.catalina.User;
  17. import org.apache.commons.lang3.ArrayUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.security.access.prepost.PreAuthorize;
  20. import org.springframework.validation.annotation.Validated;
  21. import org.springframework.web.bind.annotation.*;
  22. import javax.servlet.http.HttpServletResponse;
  23. import java.util.List;
  24. import java.util.stream.Collectors;
  25. /**
  26. * 被分配用户Controller
  27. *
  28. * @author ruoyi
  29. * @date 2023-01-17
  30. */
  31. @RestController
  32. @RequestMapping("/system/users")
  33. public class PoUserController extends BaseController
  34. {
  35. @Autowired
  36. private IPoUserService poUserService;
  37. /**
  38. * 查询用户列表
  39. */
  40. @ApiOperation("查询用户列表")
  41. @PreAuthorize("@ss.hasPermi('system:users:list')")
  42. @GetMapping("/list")
  43. public TableDataInfo list(PoUser poUser)
  44. {
  45. startPage();
  46. List<PoUser> list = poUserService.selectPoUserList(poUser);
  47. return getDataTable(list);
  48. }
  49. /**
  50. * 导出用户列表
  51. */
  52. @ApiOperation("导出用户列表")
  53. @PreAuthorize("@ss.hasPermi('system:users:export')")
  54. @Log(title = "被分配权限的用户", businessType = BusinessType.EXPORT)
  55. @PostMapping("/export")
  56. public void export(HttpServletResponse response, PoUser poUser)
  57. {
  58. List<PoUser> list = poUserService.selectPoUserList(poUser);
  59. ExcelUtil<PoUser> util = new ExcelUtil<PoUser>(PoUser.class);
  60. util.exportExcel(response, list, "用户数据");
  61. }
  62. /**
  63. * 根据用户编号获取详细信息
  64. */
  65. @ApiOperation("根据用户编号获取详细信息")
  66. @PreAuthorize("@ss.hasPermi('system:users:query')")
  67. @GetMapping(value = { "/", "/{userId}" })
  68. public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
  69. {
  70. poUserService.checkUserDataScope(userId);
  71. AjaxResult ajax = AjaxResult.success();
  72. if (StringUtils.isNotNull(userId))
  73. {
  74. PoUser poUser = poUserService.selectPoUserByUserId(userId);
  75. ajax.put(AjaxResult.DATA_TAG, poUser);
  76. }
  77. return ajax;
  78. }
  79. /**
  80. * 新增分配权限用户
  81. */
  82. @ApiOperation("新增用户")
  83. @PreAuthorize("@ss.hasPermi('system:users:add')")
  84. @Log(title = "获得权限用户", businessType = BusinessType.INSERT)
  85. @PostMapping("/add")
  86. public AjaxResult add(@Validated @RequestBody PoUser poUser)
  87. {
  88. if(UserConstants.NOT_UNIQUE.equals(poUserService.checkUserNameUnique(poUser))){
  89. return error("新增用户"+poUser.getUserName()+"失败,用户账号已经存在");
  90. } else if (StringUtils.isNotEmpty(poUser.getPhonenumber())&& UserConstants.NOT_UNIQUE.equals(poUserService.checkPhoneUnique(poUser))) {
  91. return error("新增用户"+poUser.getPhonenumber()+"失败,用户手机号已经存在");
  92. }else if(StringUtils.isNotEmpty(poUser.getEmail()) && UserConstants.NOT_UNIQUE.equals(poUserService.checkEmailUnique(poUser))){
  93. return error("新增用户"+poUser.getEmail()+"失败,用户邮箱账号已经存在");
  94. }
  95. poUser.setCreateBy(getUsername());
  96. poUser.setPassword(SecurityUtils.encryptPassword(poUser.getPassword()));
  97. return toAjax(poUserService.insertPoUser(poUser));
  98. }
  99. /**
  100. * 修改用户
  101. */
  102. @ApiOperation("修改用户")
  103. @PreAuthorize("@ss.hasPermi('system:users:edit')")
  104. @Log(title = "修改权限用户", businessType = BusinessType.UPDATE)
  105. @PutMapping("/edit")
  106. public AjaxResult edit( @Validated @RequestBody PoUser poUser)
  107. {
  108. poUserService.checkUserAllowed(poUser);
  109. poUserService.checkUserDataScope(poUser.getUserId());
  110. if (UserConstants.NOT_UNIQUE.equals(poUserService.checkUserNameUnique(poUser)))
  111. {
  112. return error("修改用户'" + poUser.getUserName() + "'失败,登录账号已存在");
  113. }
  114. else if (StringUtils.isNotEmpty(poUser.getPhonenumber())
  115. && UserConstants.NOT_UNIQUE.equals(poUserService.checkPhoneUnique(poUser)))
  116. {
  117. return error("修改用户'" + poUser.getUserName() + "'失败,手机号码已存在");
  118. }
  119. else if (StringUtils.isNotEmpty(poUser.getEmail())
  120. && UserConstants.NOT_UNIQUE.equals(poUserService.checkEmailUnique(poUser)))
  121. {
  122. return error("修改用户'" + poUser.getUserName() + "'失败,邮箱账号已存在");
  123. }
  124. return toAjax(poUserService.updatePoUser(poUser));
  125. }
  126. /**
  127. * 删除用户
  128. */
  129. @ApiOperation("删除用户")
  130. @PreAuthorize("@ss.hasPermi('system:users:remove')")
  131. @Log(title = "删除权限用户", businessType = BusinessType.DELETE)
  132. @DeleteMapping("/{userIds}")
  133. public AjaxResult remove(@PathVariable Long[] userIds)
  134. {
  135. if (ArrayUtils.contains(userIds, getUserId()))
  136. {
  137. return error("当前用户不能删除");
  138. }
  139. return toAjax(poUserService.deletePoUserByUserIds(userIds));
  140. }
  141. /**
  142. * 重置密码
  143. */
  144. @ApiOperation("重置密码")
  145. @PreAuthorize("@ss.hasPermi('system:users:resetPwd')")
  146. @Log(title = "用户管理", businessType = BusinessType.UPDATE)
  147. @PutMapping("/resetPwd")
  148. public AjaxResult resetPwd(@RequestBody PoUser poUser)
  149. {
  150. //检验是否有操作权限
  151. poUserService.checkUserAllowed(poUser);
  152. //检验是否有访问数据权限
  153. poUserService.checkUserDataScope(poUser.getUserId());
  154. poUser.setPassword(SecurityUtils.encryptPassword(poUser.getPassword()));
  155. poUser.setUpdateBy(getUsername());
  156. return toAjax(poUserService.resetPwd(poUser));
  157. }
  158. /**
  159. * 状态修改
  160. */
  161. @ApiOperation("状态修改")
  162. @PreAuthorize("@ss.hasPermi('system:users:edit')")
  163. @Log(title = "用户管理", businessType = BusinessType.UPDATE)
  164. @PutMapping("/changeStatus")
  165. public AjaxResult changeStatus(@RequestBody PoUser poUser)
  166. {
  167. poUserService.checkUserAllowed(poUser);
  168. poUserService.checkUserDataScope(poUser.getUserId());
  169. poUser.setUpdateBy(getUsername());
  170. return toAjax(poUserService.updateUserStatus(poUser));
  171. }
  172. }