UserAction.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. package com.fuzamei.web;
  2. import java.util.ArrayList;
  3. import java.util.LinkedHashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.servlet.http.HttpServletRequest;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.http.HttpRequest;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestBody;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import com.alibaba.fastjson.JSON;
  14. import com.fuzamei.constant.HintMSG;
  15. import com.fuzamei.constant.RegexConstant;
  16. import com.fuzamei.constant.Roles;
  17. import com.fuzamei.entity.Role;
  18. import com.fuzamei.entity.User;
  19. import com.fuzamei.service.UserAuthoricationService;
  20. import com.fuzamei.service.UserService;
  21. import com.fuzamei.util.JSONUtil;
  22. import com.fuzamei.util.PageDTO;
  23. import com.fuzamei.util.ValidationUtil;
  24. @RestController
  25. @RequestMapping(path = "/user")
  26. public class UserAction {
  27. @Autowired
  28. private UserService userService;
  29. @Autowired
  30. private UserAuthoricationService userAuthoricationService;
  31. @Autowired
  32. private HttpServletRequest req;
  33. //private static final int ROW_NUM = 10; // 分页每页显示几条
  34. /**
  35. * 查询*得到所有的角色
  36. *
  37. * @return
  38. */
  39. @PostMapping(value = "getAllRoles")
  40. public Map<String, Object> getAllRoles() {
  41. try {
  42. Integer user_id = ValidationUtil.checkAndAssignInt(req.getHeader("Authorization").split("&")[1]);
  43. userAuthoricationService.queryUserAuthority(user_id, Roles.ADMIN);
  44. List<Role> roles = userService.getAllRoles();
  45. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, roles);
  46. } catch (Exception e) {
  47. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  48. }
  49. }
  50. /**
  51. * 查询最大得userId
  52. * @return
  53. */
  54. @PostMapping(value = "queryUserIdMax")
  55. public Map<String, Object> queryUserIdMax(){
  56. try {
  57. Integer user_id = ValidationUtil.checkAndAssignInt(req.getHeader("Authorization").split("&")[1]);
  58. userAuthoricationService.queryUserAuthority(user_id, Roles.ADMIN);
  59. Integer maxUserId=userService.queryUserIdMax();
  60. Integer max_No= maxUserId+1;
  61. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, max_No);
  62. } catch (Exception e) {
  63. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  64. }
  65. }
  66. /**
  67. * { "user_id":"1001", "roleId":"3", "username":"", "personName":"" } 查看账户列表
  68. *
  69. * @param data
  70. * @return
  71. */
  72. @PostMapping(value = "/queryUsers")
  73. public Map<String, Object> queryUsers(@RequestBody String data) {
  74. try {
  75. @SuppressWarnings("unchecked")
  76. Map<String, Object> map = JSON.parseObject(data, Map.class);
  77. Integer user_id = ValidationUtil.checkAndAssignInt(req.getHeader("Authorization").split("&")[1]);
  78. userAuthoricationService.queryUserAuthority(user_id, Roles.ADMIN);
  79. Integer page = ValidationUtil.checkMinAndAssignInt(map.get("page"), 1); //默认第一页
  80. Integer rowNum = ValidationUtil.checkMinAndAssignInt(map.get("rowNum"), 1);//每页显示多少条
  81. Integer roleId = ValidationUtil.checkBlankIntegerAndAssignNullIfIsBlank(map.get("roleId"));
  82. String username = ValidationUtil.checkBlankStringAndAssignEmptyIfIsBlank(map.get("username"));
  83. String personName = ValidationUtil.checkBlankStringAndAssignEmptyIfIsBlank(map.get("personName"));
  84. Map<String, Object> mapToService = new LinkedHashMap<String, Object>();
  85. mapToService.put("user_id", user_id);
  86. mapToService.put("roleId", roleId);
  87. mapToService.put("username", username);
  88. mapToService.put("personName", personName);
  89. mapToService.put("startPage", (page - 1) * rowNum);
  90. mapToService.put("rowNum", rowNum); // 默认每页显示数据是几条
  91. PageDTO pt = userService.queryUsers(mapToService);
  92. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS,pt);
  93. } catch (Exception e) {
  94. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL + ":" + e.getMessage(), null);
  95. }
  96. }
  97. /**
  98. * 编辑修改 根据用户id修改账号,密码,名称,角色,信息
  99. *
  100. * @param data
  101. * @return
  102. *
  103. {
  104. "tokenId":"Bearer8df740431cd24b81ad34dce61177efe6&1001",//管理员
  105. "username": "王五998",
  106. "password": "123456",
  107. "roleId": "1",
  108. "personName": "张三7"
  109. }
  110. */
  111. @PostMapping(value = "/updateAccountByUserId")
  112. public Map<String, Object> updateAccountByUserId(@RequestBody User user) {
  113. try {
  114. Integer user_id = ValidationUtil.checkAndAssignInt(req.getHeader("Authorization").split("&")[1]);
  115. user.setUserId(user_id);
  116. userAuthoricationService.queryUserAuthority(user_id, Roles.ADMIN);
  117. Integer userIdb = ValidationUtil.checkAndAssignInt(user.getUserIdb());
  118. userAuthoricationService.queryUserAuthority(userIdb, Roles.PLANNER,Roles.SUPPLIER,Roles.CARRIER,Roles.STOCKER);
  119. ValidationUtil.checkBlankAndAssignString(user.getUsername());//校验账号
  120. ValidationUtil.checkBlankAndAssignString(user.getPassword(),RegexConstant.PWD_REGEX);//校验密码
  121. ValidationUtil.checkBlankAndAssignString(user.getPersonName());//校验名称
  122. ValidationUtil.checkBlankAndAssignString(user.getSign());//校验签名
  123. int num = userService.findUserByuserIdandusername(user);
  124. if(num!=0) throw new RuntimeException("该账号名已存在");
  125. userService.updateAccountByUserId(user);
  126. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, null);
  127. } catch (Exception e) {
  128. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  129. }
  130. }
  131. /**
  132. * 添加用户
  133. *
  134. * @param user
  135. * @param result
  136. * @return
  137. {
  138. "tokenId":"Bearer8df740431cd24b81ad34dce61177efe6&1001",//管理员
  139. "userId": "xxx",
  140. "username": "王五998",
  141. "password": "123456",
  142. "roleId": "1",
  143. "personName": "张三7"
  144. }
  145. */
  146. @PostMapping(value = "/insertUsers")
  147. public Map<String, Object> insertUsers(@RequestBody User user) {
  148. try {
  149. Integer user_id = ValidationUtil.checkAndAssignInt(req.getHeader("Authorization").split("&")[1]);
  150. user.setUserId(user_id);
  151. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(user_id), Roles.ADMIN);
  152. ValidationUtil.checkAndAssignInt(user.getUserIdb());
  153. ValidationUtil.checkRangeAndAssignInt(user.getRoleId(),1,4);//校验角色
  154. ValidationUtil.checkBlankAndAssignString(user.getUsername());//校验账号
  155. ValidationUtil.checkBlankAndAssignString(user.getPassword());//校验密码
  156. ValidationUtil.checkBlankAndAssignString(user.getPersonName());//校验名称
  157. String random = ValidationUtil.checkBlankAndAssignString(user.getRandom(),RegexConstant.RANDOM_REGEX);//随机数校验
  158. ValidationUtil.checkBlankAndAssignString(user.getSign());//校验签名
  159. int uu=userService.queryRondomRepetition(random);//校验拿到的随机数和数据库得随机数校验
  160. List<User> us = userService.findUserById(user);
  161. if(uu!=0) throw new RuntimeException("随机数重复");
  162. if (us.size()!=0) throw new RuntimeException("账号已存在");
  163. userService.insertUsers(user);
  164. return JSONUtil.getJsonMap(200, true, HintMSG.OPERATION_SUCCESS, null);
  165. } catch (Exception e) {
  166. return JSONUtil.getJsonMap(500, false, HintMSG.OPERATION_FAIL+":"+e.getMessage(), null);
  167. }
  168. }
  169. /**
  170. * 让前端传过来Id{1001,1002,1003,1004}以逗号隔开 "userids" ——》1,2,3,4,5,6
  171. *
  172. * @param userIds
  173. * @return
  174. */
  175. @PostMapping(value = "/deleteFromUserId")
  176. public Map<String, Object> deleteFromUserId(@RequestBody String data) {
  177. try {
  178. @SuppressWarnings("unchecked")
  179. Map<String, Object> map = JSON.parseObject(data, Map.class);
  180. Integer user_id = ValidationUtil.checkAndAssignInt(req.getHeader("Authorization").split("&")[1]);
  181. userAuthoricationService.queryUserAuthority(user_id, Roles.ADMIN);
  182. String sign = ValidationUtil.checkBlankAndAssignString(map.get("sign"));//校验签名
  183. String userIds = ValidationUtil.checkBlankStringAndAssignEmptyIfIsBlank(map.get("userIds"),RegexConstant.NUMBER_NO);// 校验前端传来的参数是不是数字(userIds)正则表达式 XXX
  184. if(userIds.contains(String.valueOf(user_id))){
  185. throw new RuntimeException("无法删除自己");
  186. }
  187. User user = new User();
  188. user.setUserId(user_id);
  189. user.setUserIds(userIds);
  190. user.setSign(sign);
  191. userService.deleteFromUserId(user);
  192. return JSONUtil.getJsonMap(200, true, HintMSG.OPERATION_SUCCESS, null);
  193. } catch (Exception e) {
  194. return JSONUtil.getJsonMap(500, false, HintMSG.OPERATION_FAIL+":"+e.getMessage(), null);
  195. }
  196. }
  197. }