SysUserController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. package com.sqx.modules.sys.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.sqx.common.annotation.SysLog;
  4. import com.sqx.common.utils.PageUtils;
  5. import com.sqx.common.utils.Result;
  6. import com.sqx.common.validator.Assert;
  7. import com.sqx.common.validator.ValidatorUtils;
  8. import com.sqx.common.validator.group.AddGroup;
  9. import com.sqx.common.validator.group.UpdateGroup;
  10. import com.sqx.modules.app.dao.UserDao;
  11. import com.sqx.modules.app.entity.UserEntity;
  12. import com.sqx.modules.datacentre.dao.ShopAdminDao;
  13. import com.sqx.modules.datacentre.entity.SysUserShop;
  14. import com.sqx.modules.goods.dao.GoodsShopDao;
  15. import com.sqx.modules.goods.entity.GoodsShop;
  16. import com.sqx.modules.sys.dao.SysUserDao;
  17. import com.sqx.modules.sys.entity.SysUserEntity;
  18. import com.sqx.modules.sys.form.PasswordForm;
  19. import com.sqx.modules.sys.service.SysUserRoleService;
  20. import com.sqx.modules.sys.service.SysUserService;
  21. import icu.xuyijie.secureapi.annotation.DecryptParam;
  22. import org.apache.commons.lang.ArrayUtils;
  23. import org.apache.shiro.authz.annotation.RequiresPermissions;
  24. import org.apache.shiro.crypto.hash.Sha256Hash;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.web.bind.annotation.GetMapping;
  27. import org.springframework.web.bind.annotation.PathVariable;
  28. import org.springframework.web.bind.annotation.PostMapping;
  29. import org.springframework.web.bind.annotation.RequestBody;
  30. import org.springframework.web.bind.annotation.RequestMapping;
  31. import org.springframework.web.bind.annotation.RestController;
  32. import java.util.ArrayList;
  33. import java.util.List;
  34. import java.util.Map;
  35. /**
  36. * 系统用户
  37. *
  38. */
  39. @RestController
  40. @RequestMapping("/sys/user")
  41. public class SysUserController extends AbstractController {
  42. @Autowired
  43. private SysUserService sysUserService;
  44. @Autowired
  45. private SysUserRoleService sysUserRoleService;
  46. @Autowired
  47. private ShopAdminDao shopAdminDao;
  48. @Autowired
  49. private UserDao userDao;
  50. @Autowired
  51. private GoodsShopDao goodsShopDao;
  52. @Autowired
  53. private SysUserDao sysUserDao;
  54. /**
  55. * 所有用户列表
  56. */
  57. @GetMapping("/list")
  58. @RequiresPermissions("sys:user:list")
  59. public Result list(@DecryptParam Map<String, Object> params){
  60. //只有超级管理员,才能查看所有管理员列表
  61. /*if(getUserId() != Constant.SUPER_ADMIN){
  62. params.put("createUserId", getUserId());
  63. }*/
  64. PageUtils page = sysUserService.queryPage(params);
  65. return Result.success().put("page", page);
  66. }
  67. /**
  68. * 获取登录的用户信息
  69. */
  70. @GetMapping("/info")
  71. public Result info(){
  72. SysUserEntity user = getUser();
  73. UserEntity userEntity = userDao.selectOne(new QueryWrapper<UserEntity>().eq("admin_user_id", user.getUserId()));
  74. user.setUserEntity(userEntity);
  75. List<SysUserShop> sysUserShops = sysUserService.selectShopId(user.getUserId());
  76. user.setShopList(sysUserShops);
  77. return Result.success().put("user", user);
  78. }
  79. @GetMapping("/infoByShopId")
  80. public Result infoByShopId(Long shopId){
  81. GoodsShop goodsShop = goodsShopDao.selectById(shopId);
  82. UserEntity userEntity = userDao.selectById(goodsShop.getUserId());
  83. SysUserEntity user=new SysUserEntity();
  84. user.setUserEntity(userEntity);
  85. SysUserShop sysUserShop = sysUserDao.selectUserByShopId(shopId);
  86. user.setUserId(sysUserShop.getUserId());
  87. List<SysUserShop> sysUserShops = sysUserService.selectShopId(sysUserShop.getUserId());
  88. user.setShopList(sysUserShops);
  89. return Result.success().put("user", user);
  90. }
  91. /**
  92. * 修改登录用户密码
  93. */
  94. @SysLog("修改密码")
  95. @PostMapping("/password")
  96. public Result password(@RequestBody PasswordForm form){
  97. Assert.isBlank(form.getNewPassword(), "新密码不为能空");
  98. //sha256加密
  99. String password = new Sha256Hash(form.getPassword(), getUser().getSalt()).toHex();
  100. //sha256加密
  101. String newPassword = new Sha256Hash(form.getNewPassword(), getUser().getSalt()).toHex();
  102. //更新密码
  103. boolean flag = sysUserService.updatePassword(getUserId(), password, newPassword);
  104. if(!flag){
  105. return Result.error("原密码不正确");
  106. }
  107. return Result.success();
  108. }
  109. /**
  110. * 用户信息
  111. */
  112. @GetMapping("/info/{userId}")
  113. @RequiresPermissions("sys:user:info")
  114. public Result info(@PathVariable("userId") Long userId){
  115. SysUserEntity user = sysUserService.getById(userId);
  116. List<SysUserShop> userShops = shopAdminDao.selectList(new QueryWrapper<SysUserShop>().eq("user_id", userId));
  117. List list = new ArrayList();
  118. for(int i = 0;i<userShops.size();i++){
  119. list.add(userShops.get(i).getShopId());
  120. }
  121. user.setShopIdList(list);
  122. //获取用户所属的角色列表
  123. List<Long> roleIdList = sysUserRoleService.queryRoleIdList(userId);
  124. user.setRoleIdList(roleIdList);
  125. return Result.success().put("user", user);
  126. }
  127. /**
  128. * 保存用户
  129. */
  130. @SysLog("保存用户")
  131. @PostMapping("/save")
  132. @RequiresPermissions("sys:user:save")
  133. public Result save(@RequestBody SysUserEntity user){
  134. ValidatorUtils.validateEntity(user, AddGroup.class);
  135. user.setCreateUserId(getUserId());
  136. user.setUserType(1);
  137. sysUserService.saveUser(user);
  138. return Result.success();
  139. }
  140. /**
  141. * 修改用户
  142. */
  143. @SysLog("修改用户")
  144. @PostMapping("/update")
  145. @RequiresPermissions("sys:user:update")
  146. public Result update(@RequestBody SysUserEntity user){
  147. ValidatorUtils.validateEntity(user, UpdateGroup.class);
  148. user.setCreateUserId(getUserId());
  149. sysUserService.update(user);
  150. return Result.success();
  151. }
  152. /**
  153. * 管理端修改密码
  154. */
  155. @SysLog("管理端修改密码")
  156. @PostMapping("/updateAdmin")
  157. public Result updateAdmin(@RequestBody SysUserEntity user){
  158. user.setCreateUserId(getUserId());
  159. sysUserService.updateAdmin(user);
  160. return Result.success();
  161. }
  162. /**
  163. * 商户端修改用户
  164. */
  165. @SysLog("商户端修改密码")
  166. @PostMapping("/updateShop")
  167. public Result updateShop(@RequestBody SysUserEntity user){
  168. SysUserEntity user1 = getUser();
  169. user.setUserId(user1.getUserId());
  170. user.setCreateUserId(getUserId());
  171. sysUserService.updateShop(user);
  172. return Result.success();
  173. }
  174. /**
  175. * 删除用户
  176. */
  177. @SysLog("删除用户")
  178. @PostMapping("/delete")
  179. @RequiresPermissions("sys:user:delete")
  180. public Result delete(@RequestBody Long[] userIds){
  181. if(ArrayUtils.contains(userIds, 1L)){
  182. return Result.error("系统管理员不能删除");
  183. }
  184. if(ArrayUtils.contains(userIds, getUserId())){
  185. return Result.error("当前用户不能删除");
  186. }
  187. sysUserService.deleteBatch(userIds);
  188. return Result.success();
  189. }
  190. }