UserAction.java 9.3 KB

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