SysUserController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. package com.huimv.receive.controller;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  6. import com.huimv.receive.common.utils.*;
  7. import com.huimv.receive.entity.SysAccountMultilevel;
  8. import com.huimv.receive.entity.SysUser;
  9. import com.huimv.receive.entity.pojo.UserPagePojo;
  10. import com.huimv.receive.entity.vo.UserVo;
  11. import com.huimv.receive.service.ISysAccountMultilevelService;
  12. import com.huimv.receive.service.ISysUserService;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  16. import org.springframework.web.bind.annotation.*;
  17. import org.springframework.web.multipart.MultipartFile;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.io.IOException;
  20. import java.util.*;
  21. import java.util.stream.Collectors;
  22. @RestController
  23. @RequestMapping("/admin/user")
  24. @CrossOrigin
  25. public class SysUserController {
  26. @Autowired
  27. private ISysUserService sysUserService;
  28. @Autowired
  29. private ISysAccountMultilevelService accountMultilevelService;
  30. @Autowired
  31. private UploadImage uploadImage;
  32. // @PostMapping("/list")
  33. // public JSONObject listUser(@RequestBody Map map) {
  34. // System.out.println();
  35. // int pageNum = (Integer)map.get("pageNum");
  36. // int pageSize = (Integer)map.get("pageSize");
  37. // String searchStr = (String)map.get("searchStr");
  38. // return iUserService.findUserAccount(searchStr,pageNum,pageSize);
  39. // }
  40. //员工分页查询
  41. @PostMapping("/page")
  42. public Result page(@RequestBody UserPagePojo userPagePojo) {
  43. return sysUserService.pageAll(userPagePojo);
  44. }
  45. //员工查询
  46. @PostMapping("/list")
  47. public Result list(@RequestBody Map map) {
  48. return sysUserService.list(map);
  49. }
  50. @PostMapping("/getOneById")
  51. public Result getOneById(@RequestBody Map<String,Integer> map) {
  52. Integer id = map.get("id");
  53. return new Result(ResultCode.SUCCESS,sysUserService.getById(id));
  54. }
  55. //员工新增
  56. @PostMapping("/add")
  57. public Result add(@RequestParam("userId") String userId,
  58. @RequestParam(value = "userName",required = false) String userName,
  59. @RequestParam(value = "gender",required = false) String gender,
  60. @RequestParam(value = "nation",required = false) String nation,
  61. @RequestParam(value = "nativePlace",required = false) String nativePlace,
  62. @RequestParam(value = "birthday",required = false) String birthday,
  63. @RequestParam(value = "politicsPace",required = false) String politicsPace,
  64. @RequestParam(value = "peopleType",required = false) String peopleType,
  65. @RequestParam(value = "educationalLevel",required = false) String educationalLevel,
  66. @RequestParam(value = "cardType",required = false) String cardType,
  67. @RequestParam(value = "cardNum",required = false) String cardNum,
  68. @RequestParam(value = "userPhone",required = false) String userPhone,
  69. @RequestParam(value = "publicPhone",required = false) String publicPhone,
  70. @RequestParam(value = "userMali",required = false) String userMali,
  71. @RequestParam(value = "publicMali",required = false) String publicMali,
  72. @RequestParam(value = "entryTime",required = false) String entryTime,
  73. @RequestParam(value = "probation",required = false) String probation,
  74. @RequestParam(value = "department",required = false) String department,
  75. @RequestParam(value = "job",required = false) String job,
  76. @RequestParam(value = "jobType",required = false) String jobType,
  77. @RequestParam(value = "workLocation",required = false) String workLocation,
  78. @RequestParam(value = "workLocationType",required = false) String workLocationType,
  79. @RequestParam(value = "farmId",required = false) String farmId,
  80. @RequestParam(value = "emergentUser",required = false) String emergentUser,
  81. @RequestParam(value = "emergentUserPhone",required = false) String emergentUserPhone,
  82. @RequestParam(value = "sheng",required = false) String sheng,
  83. @RequestParam(value = "shi",required = false) String shi,
  84. @RequestParam(value = "xxdz",required = false) String xxdz,
  85. @RequestParam(value = "yzbm",required = false) String yzbm,
  86. @RequestParam("imgUrl") MultipartFile imgUrl) throws IOException {
  87. SysUser sysUser = new SysUser();
  88. sysUser.setUserName(userName);
  89. sysUser.setUserId(userId);
  90. sysUser.setGender(Integer.parseInt(gender));
  91. sysUser.setNation(nation);
  92. sysUser.setNativePlace(nativePlace);
  93. sysUser.setBirthday(DateUtil.parse(birthday,"yyyy-MM-dd"));
  94. sysUser.setPoliticsPace(politicsPace);
  95. sysUser.setPeopleType(peopleType);
  96. sysUser.setEducationalLevel(educationalLevel);
  97. sysUser.setCardType(cardType);
  98. sysUser.setCardNum(cardNum);
  99. sysUser.setUserPhone(userPhone);
  100. sysUser.setPublicPhone(publicPhone);
  101. sysUser.setUserMali(userMali);
  102. sysUser.setPublicMali(publicMali);
  103. if (StringUtils.isNotBlank(entryTime)){
  104. sysUser.setEntryTime(DateUtil.parse(entryTime,"yyyy-MM-dd"));
  105. }
  106. sysUser.setProbation(probation);
  107. sysUser.setDepartment(department);
  108. sysUser.setJob(job);
  109. sysUser.setJobType(jobType);
  110. sysUser.setWorkLocation(workLocation);
  111. sysUser.setWorkLocationType(workLocationType);
  112. sysUser.setFarmId(farmId);
  113. sysUser.setEmergentUser(emergentUser);
  114. sysUser.setEmergentUserPhone(emergentUserPhone);
  115. sysUser.setSheng(sheng);
  116. sysUser.setShi(shi);
  117. sysUser.setXxdz(xxdz);
  118. sysUser.setYzbm(yzbm);
  119. if (ObjectUtil.isNotEmpty(imgUrl)) {
  120. String imageCom = uploadImage.getImageCom(imgUrl);
  121. if ("上传失败".equals(imageCom)) {
  122. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  123. return new Result(10001, "图片上传失败", false);
  124. }else {
  125. sysUser.setImgUrl(imageCom);
  126. }
  127. }
  128. if ("身份证".equals(cardType) && !IDCardValidator.isValidIDCard(cardNum)) {
  129. return new Result(10001,"身份证格式不正确",false);
  130. }
  131. if (!PhoneNumberValidator.isValidPhoneNumber(userPhone)) {
  132. return new Result(10001,"手机号格式不正确",false);
  133. }
  134. int count = sysUserService.count(new QueryWrapper<SysUser>().eq("card_type", cardType).eq("card_num", cardNum));
  135. if (count >0) {
  136. return new Result(10001,"身份证已存在",false);
  137. }
  138. int countUserPhone = sysUserService.count(new QueryWrapper<SysUser>().eq("user_phone", userPhone));
  139. if (countUserPhone >0) {
  140. return new Result(10001,"手机号已存在",false);
  141. }
  142. if (ObjectUtil.isNotEmpty(sysUser.getBirthday())){
  143. sysUser.setAge(DateUtil.ageOfNow(sysUser.getBirthday()));
  144. }
  145. sysUserService.save(sysUser);
  146. return new Result(10000,"保存成功",true);
  147. }
  148. //查询工作地点
  149. @PostMapping("/listWorkLocation")
  150. public Result listWorkLocation(@RequestBody Map map) {
  151. return sysUserService.listWorkLocation(map);
  152. }
  153. @PostMapping("/update")
  154. public Result update(@RequestBody UserVo sysUser) {
  155. String cardType = sysUser.getCardType();
  156. String cardNum = sysUser.getCardNum();
  157. String userPhone = sysUser.getUserPhone();
  158. if(StringUtils.isNotBlank(userPhone)){
  159. if (!PhoneNumberValidator.isValidPhoneNumber(userPhone)) {
  160. return new Result(10001,"手机号格式不正确",false);
  161. }
  162. int count = sysUserService.count(new QueryWrapper<SysUser>().eq("user_phone", userPhone)) ;
  163. if (count >1) {
  164. return new Result(10001,"手机号已存在",false);
  165. }
  166. }
  167. if(StringUtils.isNotBlank(cardNum)){
  168. if (StringUtils.isNotBlank(cardNum) && "身份证".equals(cardType) && !IDCardValidator.isValidIDCard(cardNum)) {
  169. return new Result(10001,"身份证格式不正确",false);
  170. }
  171. int countUserPhone = sysUserService.count(new QueryWrapper<SysUser>().eq("card_type", cardType).eq("card_num", cardNum));
  172. if (countUserPhone >1) {
  173. return new Result(10001,"身份证已存在",false);
  174. }
  175. }
  176. if (ObjectUtil.isNotEmpty(sysUser.getBirthday())){
  177. sysUser.setAge(DateUtil.ageOfNow(sysUser.getBirthday()));
  178. }
  179. SysUser user = new SysUser();
  180. user.setId(sysUser.getId());
  181. user.setAge(sysUser.getAge());
  182. user.setBirthday(sysUser.getBirthday());
  183. user.setCardNum(sysUser.getCardNum());
  184. user.setCardType(sysUser.getCardType());
  185. user.setDepartment(sysUser.getDepartment());
  186. user.setEducationalLevel(sysUser.getEducationalLevel());
  187. user.setEmergentUser(sysUser.getEmergentUser());
  188. user.setEmergentUserPhone(sysUser.getEmergentUserPhone());
  189. user.setEntryTime(sysUser.getEntryTime());
  190. user.setFarmId(sysUser.getFarmId());
  191. user.setGender(sysUser.getGender());
  192. user.setNation(sysUser.getNation());
  193. user.setNativePlace(sysUser.getNativePlace());
  194. user.setPeopleType(sysUser.getPeopleType());
  195. user.setPoliticsPace(sysUser.getPoliticsPace());
  196. user.setProbation(sysUser.getProbation());
  197. user.setPublicMali(sysUser.getPublicMali());
  198. user.setPublicPhone(sysUser.getPublicPhone());
  199. user.setSheng(sysUser.getSheng());
  200. user.setShi(sysUser.getShi());
  201. user.setUserId(sysUser.getUserId());
  202. user.setUserMali(sysUser.getUserMali());
  203. user.setUserName(sysUser.getUserName());
  204. user.setUserPhone(sysUser.getUserPhone());
  205. user.setWorkLocation(sysUser.getWorkLocation());
  206. user.setWorkLocationType(sysUser.getWorkLocationType());
  207. user.setXxdz(sysUser.getXxdz());
  208. user.setYzbm(sysUser.getYzbm());
  209. user.setImgUrl(sysUser.getImgUrl());
  210. user.setJobType(sysUser.getJobType());
  211. if (ObjectUtil.isNotEmpty(sysUser.getJob())){
  212. String s = "";
  213. List<String> job = sysUser.getJob();
  214. //TODO 判空
  215. s = String.join(",",job);
  216. user.setJob(s);
  217. }
  218. sysUserService.updateById(user);
  219. accountMultilevelService.updateByUser(user);
  220. return new Result(10000,"修改成功",true);
  221. }
  222. @PostMapping("/uploadUserImg")
  223. public Result uploadUserImg(@RequestParam("imgUrl") MultipartFile imgUrl,
  224. @RequestParam("id") Integer id) throws IOException {
  225. return sysUserService.uploadUserImg(imgUrl,id);
  226. }
  227. @PostMapping("/remove")
  228. @Transactional
  229. public Result remove(@RequestBody Map<String,String> map) {
  230. String ids = map.get("ids");
  231. if (StringUtils.isBlank(ids)) {
  232. return new Result(10001,"所选用户不存在",false);
  233. }
  234. List<String> collection = Arrays.stream(ids.split(","))
  235. .collect(Collectors.toList());
  236. sysUserService.removeByIds(collection);
  237. //删除账号
  238. accountMultilevelService.remove(new QueryWrapper<SysAccountMultilevel>().in("user_id",collection));
  239. return new Result(10000,"删除成功",true);
  240. }
  241. //账号查询
  242. @PostMapping("/pageAccount")
  243. public Result pageAccount(@RequestBody UserPagePojo userPagePojo) {
  244. return sysUserService.pageAccount( userPagePojo);
  245. }
  246. //账号增加
  247. @PostMapping("/addAccount")
  248. public Result addAccount(@RequestBody Map<String,Object> map) {
  249. return sysUserService.addAccount(map);
  250. }
  251. //账号修改
  252. @PostMapping("/updateAccount")
  253. public Result updateAccount(@RequestBody Map<String,Object> map) {
  254. return sysUserService.updateAccount(map);
  255. }
  256. @GetMapping("/printUser")
  257. public void printUser(HttpServletResponse response, @RequestParam(name = "ids") String ids) throws Exception {
  258. Map<String, String> map = new HashMap<>();
  259. map.put("ids", ids);
  260. sysUserService.printUser(response, map);
  261. String path = "/opt/huatong/user.xls";
  262. PdfUtil.returnPdfStream3(response, path, "人员列表");
  263. }
  264. //账号删除
  265. @PostMapping("/removeAccount")
  266. @Transactional
  267. public Result removeAccount(@RequestBody Map<String,String> map) {
  268. return sysUserService.removeAccount(map);
  269. }
  270. //性别年龄分布
  271. @PostMapping("/userAgeAndGender")
  272. public Result userAgeAndGender(@RequestBody Map<String,String> map) {
  273. return sysUserService.userAgeAndGender(map);
  274. }
  275. //岗位分布
  276. @PostMapping("/userJob")
  277. public Result userJob(@RequestBody Map<String,String> map) {
  278. return sysUserService.userJob(map);
  279. }
  280. }