SysUserController.java 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. package com.example.civilizedcity.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.example.civilizedcity.common.BaseController;
  6. import com.example.civilizedcity.common.Constants;
  7. import com.example.civilizedcity.common.ResponseBean;
  8. import java.time.LocalDateTime;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12. import com.example.civilizedcity.common.StringUtils;
  13. import com.example.civilizedcity.entity.SysResource;
  14. import com.example.civilizedcity.entity.SysRole;
  15. import com.example.civilizedcity.service.SysResourceService;
  16. import com.example.civilizedcity.service.SysRoleService;
  17. import com.example.civilizedcity.service.SysUserDutyService;
  18. import com.example.civilizedcity.vo.ChangePassword;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiOperation;
  21. import io.swagger.annotations.ApiParam;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.web.bind.annotation.*;
  24. import com.example.civilizedcity.entity.SysUser;
  25. import com.example.civilizedcity.service.SysUserService;
  26. /**
  27. * 用户表;(sys_user)表控制层
  28. *
  29. * @author : http://njyunzhi.com
  30. * @date : 2022-12-12
  31. */
  32. @Api(tags = "用户表对象功能接口")
  33. @RestController
  34. @RequestMapping("/")
  35. public class SysUserController extends BaseController {
  36. @Autowired
  37. SysRoleService sysRoleService;
  38. @Autowired
  39. SysResourceService sysResourceService;
  40. @Autowired
  41. SysUserDutyService sysUserDutyService;
  42. /**
  43. * 通过ID查询单条数据
  44. *
  45. * @param userId 主键
  46. * @return 实例对象
  47. */
  48. @ApiOperation("通过ID查询单条数据")
  49. @GetMapping("/sysUser/{id}")
  50. public ResponseBean queryById(@ApiParam("对象ID") @PathVariable String id) throws Exception {
  51. SysUser sysUser = sysUserService.getById(id);
  52. if (null == sysUser || sysUser.getStatus() == Constants.STATUS_DELETE) {
  53. return ResponseBean.error("用户不存在");
  54. }
  55. return ResponseBean.success(getPermissions(sysUser));
  56. }
  57. /**
  58. * 查询当前人员
  59. *
  60. * @param
  61. * @return 实例对象
  62. */
  63. @ApiOperation("查询当前人员")
  64. @GetMapping("/sysUser/current")
  65. public ResponseBean current() throws Exception {
  66. SysUser sysUser = currentUser();
  67. return ResponseBean.success(getPermissions(sysUser));
  68. }
  69. private SysUser getPermissions(SysUser sysUser) {
  70. List<SysRole> rolesList = sysRoleService.getByUser(sysUser.getUserId());
  71. List<SysResource> resourcesList = sysResourceService.getByUser(sysUser.getUserId());
  72. List<String> dutyList = sysUserDutyService.getListByUser(sysUser.getUserId());
  73. sysUser.setRolesList(rolesList);
  74. sysUser.setResourcesList(resourcesList);
  75. sysUser.setDutyList(dutyList);
  76. return sysUser;
  77. }
  78. /**
  79. * 分页查询
  80. *
  81. * @param pageNum 当前页码
  82. * @param pageSize 每页条数
  83. * @return 查询结果
  84. */
  85. @ApiOperation("分页查询")
  86. @GetMapping("/sysUser")
  87. public ResponseBean list(@ApiParam("页码") @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  88. @ApiParam("单页数据量") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
  89. @ApiParam("姓名") @RequestParam(value = "name", required = false) String name,
  90. @ApiParam("机构") @RequestParam(value = "orgId", required = false) String orgId,
  91. @ApiParam("手机号") @RequestParam(value = "phone", required = false) String phone) throws Exception {
  92. IPage<SysUser> pg = new Page<>(pageNum, pageSize);
  93. QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
  94. queryWrapper.like(!StringUtils.isEmpty(name), "name", name);
  95. queryWrapper.eq(!StringUtils.isEmpty(orgId), "org_id", orgId);
  96. queryWrapper.like(!StringUtils.isEmpty(phone), "phone", phone);
  97. queryWrapper.eq("is_user", 1);
  98. queryWrapper.gt("status", Constants.STATUS_DELETE);
  99. queryWrapper.ne("user_id", Constants.ROOT_ID);
  100. queryWrapper.orderByDesc("create_date");
  101. IPage<SysUser> result = sysUserService.page(pg, queryWrapper);
  102. return ResponseBean.success(result);
  103. }
  104. /**
  105. * 小程序端分页查询
  106. *
  107. * @param pageNum 当前页码
  108. * @param pageSize 每页条数
  109. * @return 查询结果
  110. */
  111. @ApiOperation("小程序端分页查询")
  112. @GetMapping("/ma/sysUser")
  113. public ResponseBean maList(@ApiParam("页码") @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  114. @ApiParam("单页数据量") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) throws Exception {
  115. IPage<SysUser> pg = new Page<>(pageNum, pageSize);
  116. QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
  117. queryWrapper.eq("org_id", currentUser().getOrgId());
  118. queryWrapper.eq("is_from_wx", 1);
  119. queryWrapper.gt("status", Constants.STATUS_DELETE);
  120. queryWrapper.orderByDesc("create_date");
  121. IPage<SysUser> result = sysUserService.page(pg, queryWrapper);
  122. List<SysUser> list = result.getRecords();
  123. if (null != list || list.size() > 0) {
  124. for (SysUser sysUser : list) {
  125. sysUser.setDutyList(sysUserDutyService.getListByUser(sysUser.getUserId()));
  126. }
  127. }
  128. return ResponseBean.success(result);
  129. }
  130. /**
  131. * 新增数据
  132. *
  133. * @param sysUser 实例对象
  134. * @return 实例对象
  135. */
  136. @ApiOperation("新增数据")
  137. @PostMapping("/sysUser")
  138. public ResponseBean add(@ApiParam("对象实体") @RequestBody SysUser sysUser) throws Exception {
  139. if (null == sysUser.getOrgId()) {
  140. sysUser.setOrgId(currentUser().getOrgId());
  141. }
  142. sysUserService.mergeData(sysUser);
  143. return ResponseBean.success(sysUser);
  144. }
  145. /**
  146. * 小程序端新增数据
  147. *
  148. * @param sysUser 实例对象
  149. * @return 实例对象
  150. */
  151. @ApiOperation("小程序端新增数据")
  152. @PostMapping("/ma/sysUser")
  153. public ResponseBean addMa(@ApiParam("对象实体") @RequestBody SysUser sysUser) throws Exception {
  154. if (StringUtils.isEmpty(sysUser.getPhone())) {
  155. return ResponseBean.error("请填写手机号");
  156. }
  157. if (StringUtils.isEmpty(sysUser.getName())) {
  158. return ResponseBean.error("请填写名称");
  159. }
  160. SysUser user = currentUser();
  161. SysUser origin = sysUserService.getByPhone(sysUser.getPhone(), user.getOrgId());
  162. if (null != origin) {
  163. if (StringUtils.isNotEmpty(sysUser.getUserId()) && !sysUser.getUserId().equals(origin.getUserId())) {
  164. return ResponseBean.error("当前人员已存在");
  165. }
  166. sysUser.setUserId(origin.getUserId());
  167. if (null != sysUser.getStatus() && Constants.STATUS_DELETE == sysUser.getStatus()) {
  168. // 如果这个人被删除了, 则重置为正常状态
  169. sysUser.setStatus(Constants.STATUS_NORMAL);
  170. }
  171. }
  172. sysUserService.createMaUser(sysUser, user);
  173. return ResponseBean.success(sysUser);
  174. }
  175. /**
  176. * 更新数据
  177. *
  178. * @param id 实例ID
  179. * @return 实例对象
  180. */
  181. @ApiOperation("更新数据")
  182. @PutMapping("/sysUser/{id}/status")
  183. public ResponseBean edit(@ApiParam("对象ID") @PathVariable String id,
  184. @ApiParam("页码") @RequestParam(value = "status") Integer status) throws Exception {
  185. SysUser sysUser = sysUserService.getById(id);
  186. sysUser.setStatus(status);
  187. sysUserService.updateById(sysUser);
  188. return ResponseBean.success(sysUser);
  189. }
  190. // /**
  191. // * 更新数据
  192. // *
  193. // * @param sysUser 实例对象
  194. // * @return 实例对象
  195. // */
  196. // @ApiOperation("更新数据")
  197. // @PutMapping("/sysUser/{id}")
  198. // public ResponseBean edit(@ApiParam("对象实体") @RequestBody SysUser sysUser,
  199. // @ApiParam("对象ID") @PathVariable String id ) throws Exception {
  200. // sysUserService.updateById(sysUser);
  201. // return ResponseBean.success(sysUser);
  202. // }
  203. @PutMapping("/ma/sysUser/change-password")
  204. @ApiOperation(value="小程序端修改密码", notes = "修改密码", httpMethod = "PUT", response = ResponseBean.class)
  205. public ResponseBean changePassword(@ApiParam("修改密码参数") @RequestBody ChangePassword param) throws Exception {
  206. if (StringUtils.isEmpty(param.getOriginPassword()) || StringUtils.isEmpty(param.getNewPassword())) {
  207. return ResponseBean.error("原始密码或新密码不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
  208. }
  209. SysUser user = currentUser();
  210. boolean isOk = sysUserService.changePassword(user, param);
  211. if (!isOk) {
  212. ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
  213. }
  214. return ResponseBean.success("密码修改成功");
  215. }
  216. /**
  217. * 通过主键删除数据
  218. *
  219. * @param userId 主键
  220. * @return 是否成功
  221. */
  222. @ApiOperation("通过主键删除数据")
  223. @DeleteMapping("/sysUser/{id}")
  224. public ResponseBean deleteById(@ApiParam("对象ID") @PathVariable String id) {
  225. sysUserService.removeLogicById(id);
  226. return ResponseBean.success("success");
  227. }
  228. /**
  229. * 小程序端通过主键删除数据
  230. *
  231. * @param userId 主键
  232. * @return 是否成功
  233. */
  234. @ApiOperation("小程序端通过主键删除数据")
  235. @DeleteMapping("/ma/sysUser/{id}")
  236. public ResponseBean deleteMaById(@ApiParam("对象ID") @PathVariable String id) throws Exception {
  237. SysUser user = sysUserService.getById(id);
  238. if (null == user || Constants.STATUS_DELETE == user.getStatus()) {
  239. return ResponseBean.error("人员不存在");
  240. }
  241. SysUser sysUser = currentUser();
  242. if (!sysUser.getOrgId().equals(user.getOrgId())) {
  243. return ResponseBean.error("暂无权限");
  244. }
  245. sysUserService.removeLogicById(id);
  246. return ResponseBean.success("success");
  247. }
  248. }