SysUserController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package com.kmall.admin.fromcomm.controller;
  2. import com.kmall.admin.dto.SysUserDto;
  3. import com.kmall.admin.utils.ShiroUtils;
  4. import com.kmall.common.annotation.SysLog;
  5. import com.kmall.common.constant.Dict;
  6. import com.kmall.admin.fromcomm.entity.SysUserEntity;
  7. import com.kmall.admin.fromcomm.service.SysUserRoleService;
  8. import com.kmall.admin.fromcomm.service.SysUserService;
  9. import com.kmall.common.constant.JxlsXmlTemplateName;
  10. import com.kmall.common.utils.*;
  11. import com.kmall.common.utils.excel.ExcelUtil;
  12. import com.kmall.common.validator.Assert;
  13. import org.apache.commons.lang.ArrayUtils;
  14. import org.apache.shiro.authz.annotation.RequiresPermissions;
  15. import org.apache.shiro.crypto.hash.Sha256Hash;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import org.springframework.web.multipart.MultipartFile;
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. /**
  24. * 系统用户
  25. *
  26. * @author Scott
  27. * @email
  28. * @date 2016年10月31日 上午10:40:10
  29. */
  30. @RestController
  31. @RequestMapping("/sys/user")
  32. public class SysUserController extends AbstractController {
  33. @Autowired
  34. private SysUserService sysUserService;
  35. @Autowired
  36. private SysUserRoleService sysUserRoleService;
  37. @Autowired
  38. private ExcelUtil excelUtil;
  39. /**
  40. * 所有用户列表
  41. */
  42. @RequestMapping("/list")
  43. @RequiresPermissions("sys:user:list")
  44. public R list(@RequestParam Map<String, Object> params) {
  45. // //只有超级管理员,才能查看所有管理员列表
  46. // if (getUserId() != Constant.SUPER_ADMIN) {
  47. // params.put("createUserId", getUserId());
  48. // }
  49. if(!ShiroUtils.getUserEntity().getRoleType().equalsIgnoreCase(Dict.roleType.item_1.getItem())){
  50. params.put("createUserId", getUserId());
  51. }
  52. //查询列表数据
  53. Query query = new Query(params);
  54. List<SysUserEntity> userList = sysUserService.queryList(query);
  55. int total = sysUserService.queryTotal(query);
  56. PageUtils pageUtil = new PageUtils(userList, total, query.getLimit(), query.getPage());
  57. return R.ok().put("page", pageUtil);
  58. }
  59. /**
  60. * 获取登录的用户信息
  61. */
  62. @RequestMapping("/info")
  63. public R info() {
  64. SysUserEntity userEntity = getUser();
  65. userEntity = sysUserService.queryObject(userEntity.getUserId());
  66. return R.ok().put("user", userEntity);
  67. }
  68. /**
  69. * 修改登录用户密码
  70. */
  71. @SysLog("修改密码")
  72. @RequestMapping("/password")
  73. public R password(String password, String newPassword) {
  74. Assert.isBlank(password, "原密码不为能空");
  75. Assert.isBlank(newPassword, "新密码不为能空");
  76. //sha256加密
  77. password = new Sha256Hash(password).toHex();
  78. //sha256加密
  79. newPassword = new Sha256Hash(newPassword).toHex();
  80. //更新密码
  81. int count = sysUserService.updatePassword(getUserId(), password, newPassword);
  82. if (count == 0) {
  83. return R.error("原密码不正确");
  84. }
  85. //退出
  86. ShiroUtils.logout();
  87. return R.ok();
  88. }
  89. /**
  90. * 用户信息
  91. */
  92. @RequestMapping("/info/{userId}")
  93. @RequiresPermissions("sys:user:info")
  94. public R info(@PathVariable("userId") Long userId) {
  95. SysUserEntity user = sysUserService.queryObject(userId);
  96. //获取用户所属的角色列表
  97. List<Long> roleIdList = sysUserRoleService.queryRoleIdList(userId);
  98. user.setRoleIdList(roleIdList);
  99. return R.ok().put("user", user);
  100. }
  101. /**
  102. * 保存用户
  103. */
  104. @SysLog("保存用户")
  105. @RequestMapping("/save")
  106. @RequiresPermissions("sys:user:save")
  107. public R save(@RequestBody SysUserEntity user) {
  108. //ValidatorUtils.validateEntity(user);
  109. user.setCreateUserId(getUserId());
  110. sysUserService.save(user);
  111. return R.ok();
  112. }
  113. /**
  114. * 修改用户
  115. */
  116. @SysLog("修改用户")
  117. @RequestMapping("/update")
  118. @RequiresPermissions("sys:user:update")
  119. public R update(@RequestBody SysUserEntity user) {
  120. //ValidatorUtils.validateEntity(user);
  121. user.setCreateUserId(getUserId());
  122. sysUserService.update(user);
  123. return R.ok();
  124. }
  125. /**
  126. * 删除用户
  127. */
  128. @SysLog("删除用户")
  129. @RequestMapping("/delete")
  130. @RequiresPermissions("sys:user:delete")
  131. public R delete(@RequestBody Long[] userIds) {
  132. if (ArrayUtils.contains(userIds, 1L)) {
  133. return R.error("系统管理员不能删除");
  134. }
  135. if (ArrayUtils.contains(userIds, getUserId())) {
  136. return R.error("当前用户不能删除");
  137. }
  138. sysUserService.deleteBatch(userIds);
  139. return R.ok();
  140. }
  141. /**
  142. * 上传文件
  143. */
  144. @RequestMapping("/sysUserUpload")
  145. public R storeUpload(@RequestParam("file") MultipartFile file) {
  146. List<SysUserDto> sysUserDtoList = new ArrayList<>();//信息
  147. try {
  148. SysUserDto storeGoodsDto = new SysUserDto();
  149. Map<String, Object> beans = new HashMap<String, Object>();
  150. beans.put("SysUserDto", storeGoodsDto);
  151. beans.put("SysUserDtoList", sysUserDtoList);
  152. if (file.isEmpty()) {
  153. return R.error("文件不能为空!");
  154. }
  155. excelUtil.readExcel(JxlsXmlTemplateName.SYS_USER_DTO_LIST, beans, file.getInputStream());
  156. } catch (Exception e) {
  157. e.printStackTrace();
  158. return R.error("导入失败!");
  159. }
  160. sysUserService.uploadExcel(sysUserDtoList);
  161. //上传文件
  162. return R.ok("导入成功!");
  163. }
  164. }