UserAction.java 9.2 KB

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