UserServiceImpl.java 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. package com.hz.employmentsite.services.impl;
  2. import com.hz.employmentsite.enums.DataRangeEnum;
  3. import com.hz.employmentsite.mapper.*;
  4. import com.hz.employmentsite.mapper.cquery.SysUserCQuery;
  5. import com.hz.employmentsite.model.*;
  6. import com.hz.employmentsite.services.service.UserService;
  7. import com.hz.employmentsite.util.DateUtils;
  8. import com.hz.employmentsite.util.StringUtils;
  9. import com.hz.employmentsite.vo.user.DataRange;
  10. import com.hz.employmentsite.vo.user.UserInfoModel;
  11. import com.github.pagehelper.PageHelper;
  12. import com.github.pagehelper.PageInfo;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Component;
  15. import org.springframework.util.DigestUtils;
  16. import java.util.*;
  17. import java.util.stream.Collectors;
  18. @Component
  19. public class UserServiceImpl implements UserService {
  20. @Autowired
  21. SysUserCQuery sysUserCQuery;
  22. @Autowired
  23. SysUserMapper sysUserMapper;
  24. @Autowired
  25. private DateUtils dateUtils;
  26. @Autowired
  27. private StringUtils stringUtils;
  28. private String defaultPassword = "52653B706ADC444F6660FAB66D6DC210";//Hjy@2024
  29. @Override
  30. public List<SysRole> getUserRole(String userID) {
  31. return null;
  32. }
  33. @Override
  34. public List<DataRange> getUserDataRange(String userID) {
  35. List<HashMap<String, Object>> dataRangeList = sysUserCQuery.selectUserDataRange(userID);
  36. List<String> userCompanyList = sysUserCQuery.selectUserCompany(userID);
  37. List<String> userSiteList = sysUserCQuery.selectUserSite(userID);
  38. List<String> userInstitutionList = sysUserCQuery.selectUserInstitution(userID);
  39. List<String> userRegionList = sysUserCQuery.selectUserRegion(userID);
  40. List<String> userCityList = sysUserCQuery.selectUserCity(userID);
  41. List<DataRange> result = new ArrayList<>();
  42. Map<String, List<HashMap<String, Object>>> menuGrouping = dataRangeList.stream()
  43. .collect(Collectors.groupingBy(x -> x.get("MenuNo").toString()));
  44. for (String key : menuGrouping.keySet()) {
  45. List<HashMap<String, Object>> valueList = menuGrouping.get(key);
  46. valueList.sort(Comparator.comparing(x -> ((Long) x.get("OrderNo")).intValue()));
  47. int minOrderNo = valueList.stream()
  48. .map(x -> ((Long) x.get("OrderNo")).intValue())
  49. .min(Integer::compareTo).orElse(0);
  50. for (HashMap<String, Object> value : valueList) {
  51. if (((Long) value.get("OrderNo")).intValue() == minOrderNo) {
  52. int dataRangeID = (int) value.get("DataRangeID");
  53. DataRange menuDataRange = new DataRange();
  54. menuDataRange.setMenuNo(key);
  55. menuDataRange.setRange(dataRangeID);
  56. DataRangeEnum dataRangeEnum = DataRangeEnum.getDataRangeByValue(dataRangeID);
  57. switch (dataRangeEnum) {
  58. case ALL:
  59. break;
  60. case City:
  61. menuDataRange.setRangeIDList(userCityList);
  62. break;
  63. case Region:
  64. menuDataRange.setRangeIDList(userRegionList);
  65. break;
  66. case Institution:
  67. menuDataRange.setRangeIDList(userInstitutionList);
  68. break;
  69. case Site:
  70. menuDataRange.setRangeIDList(userSiteList);
  71. break;
  72. case Company:
  73. menuDataRange.setRangeIDList(userCompanyList);
  74. break;
  75. case SELF:
  76. menuDataRange.setRangeIDList(List.of(userID));
  77. break;
  78. default:
  79. break;
  80. }
  81. result.add(menuDataRange);
  82. }
  83. }
  84. }
  85. return result;
  86. }
  87. @Override
  88. public PageInfo<HashMap<String, Object>> getUserList(int page, int rows, String name, String loginID, Integer sex, Integer recordStatus, Integer userType) {
  89. PageHelper.startPage(page, rows);
  90. List<HashMap<String, Object>> list = sysUserCQuery.selectUserList(name, loginID, sex, recordStatus, userType);
  91. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  92. return result;
  93. }
  94. @Override
  95. public int updateUserStatus(String userId, Integer status) {
  96. SysUser user = sysUserMapper.selectByPrimaryKey(userId);
  97. user.setRecordStatus(status);
  98. return sysUserMapper.updateByPrimaryKey(user);
  99. }
  100. @Override
  101. public UserInfoModel getUserInfo(String userId) {
  102. if (stringUtils.IsNullOrEmpty(userId)) {
  103. return null;
  104. }else{
  105. return sysUserCQuery.selectUserInfo(userId);
  106. }
  107. }
  108. @Override
  109. public Integer save(SysUser data, String userId) {
  110. int result = 0;
  111. UserInfoModel record = getUserInfo(data.getUserID());
  112. SysUser dbData = record == null ? null : sysUserMapper.selectByPrimaryKey(record.userID);
  113. Boolean isExist = dbData != null;
  114. if (!isExist) {
  115. //添加
  116. dbData = new SysUser();
  117. dbData.setUserID(data.getUserID());
  118. dbData.setName(data.getName());
  119. dbData.setLoginID(data.getLoginID());
  120. if(data.getPassword()==null){
  121. dbData.setPassword(defaultPassword);
  122. }else{
  123. dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
  124. }
  125. dbData.setUserTypeID(data.getUserTypeID());
  126. dbData.setRecordStatus(data.getRecordStatus());
  127. dbData.setCreateBy(userId);
  128. dbData.setCreateTime(new Date());
  129. result = sysUserMapper.insert(dbData);
  130. } else {
  131. //修改
  132. dbData.setName(data.getName());
  133. dbData.setLoginID(data.getLoginID());
  134. if(data.getPassword()==null){
  135. dbData.setPassword(defaultPassword);
  136. }else{
  137. dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
  138. }
  139. dbData.setUserTypeID(data.getUserTypeID());
  140. dbData.setRecordStatus(data.getRecordStatus());
  141. dbData.setUpdateBy(userId);
  142. dbData.setUpdateTime(new Date());
  143. result = sysUserMapper.updateByPrimaryKey(dbData);
  144. }
  145. return result;
  146. }
  147. @Override
  148. public SysUser getIsCacheUserInfoByID(String userId) {
  149. SysUser userInfoVo = sysUserMapper.selectByPrimaryKey(userId);
  150. if (userInfoVo == null) {
  151. userInfoVo = new SysUser();
  152. userInfoVo.setName("");
  153. userInfoVo.setUserID("");
  154. }
  155. return userInfoVo;
  156. }
  157. @Override
  158. public String getRandomLoginID() {
  159. String loginID = randomLoginID();
  160. Integer count = 1; //验证次数
  161. while (count <= 3) {
  162. count--;
  163. //验证帐号是否存在
  164. if (sysUserCQuery.selectUserByLoginID(loginID).size() > 0) {
  165. loginID = randomLoginID();
  166. } else {
  167. return loginID;
  168. }
  169. }
  170. return loginID;
  171. }
  172. private String randomLoginID() {
  173. return dateUtils.dateToStrFormat(new Date(), "yyyyMMdd") + UUID.randomUUID().toString().substring(0, 4);
  174. }
  175. @Override
  176. public SysUser addUser(String loginID, String userName, Integer userTypeID, String createBy) {
  177. if (sysUserCQuery.selectUserByLoginID(loginID).size() > 0)
  178. return null;
  179. SysUser user = new SysUser();
  180. user.setUserID(UUID.randomUUID().toString());
  181. user.setLoginID(loginID);
  182. user.setName(userName);
  183. user.setUserTypeID(userTypeID);
  184. user.setRecordStatus(1);
  185. user.setCreateBy(createBy);
  186. user.setCreateTime(new Date());
  187. user.setPassword(this.defaultPassword);
  188. sysUserMapper.insert(user);
  189. return user;
  190. }
  191. @Override
  192. public Integer updateUser(String userID, String userName, String updateBy) {
  193. SysUser user = sysUserMapper.selectByPrimaryKey(userID);
  194. user.setName(userName);
  195. user.setUpdateBy(updateBy);
  196. user.setUpdateTime(new Date());
  197. return sysUserMapper.updateByPrimaryKey(user);
  198. }
  199. public Integer updatePassword(String userID, String newPassword, String updateBy) {
  200. SysUser user = sysUserMapper.selectByPrimaryKey(userID);
  201. user.setPassword(newPassword);
  202. user.setUpdateBy(updateBy);
  203. user.setUpdateTime(new Date());
  204. return sysUserMapper.updateByPrimaryKey(user);
  205. }
  206. @Override
  207. public List<SysMenu> getUserShortcutMenuList(String userID) {
  208. return sysUserCQuery.selectUserShortcutMenuList(userID);
  209. }
  210. public SysUser getUserByLoginID(String loginID) {
  211. SysUserExample exp = new SysUserExample();
  212. SysUserExample.Criteria criteria = exp.or();
  213. criteria.andLoginIDEqualTo(loginID);
  214. return sysUserMapper.selectByExample(exp).stream().findFirst().orElse(null);
  215. }
  216. }