123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- package com.hz.employmentsite.services.impl;
- import com.hz.employmentsite.enums.DataRangeEnum;
- import com.hz.employmentsite.mapper.*;
- import com.hz.employmentsite.mapper.cquery.SysUserCQuery;
- import com.hz.employmentsite.model.*;
- import com.hz.employmentsite.services.service.UserService;
- import com.hz.employmentsite.util.DateUtils;
- import com.hz.employmentsite.util.StringUtils;
- import com.hz.employmentsite.vo.user.DataRange;
- import com.hz.employmentsite.vo.user.UserInfoModel;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import org.springframework.util.DigestUtils;
- import java.util.*;
- import java.util.stream.Collectors;
- @Component
- public class UserServiceImpl implements UserService {
- @Autowired
- SysUserCQuery sysUserCQuery;
- @Autowired
- SysUserMapper sysUserMapper;
- @Autowired
- private DateUtils dateUtils;
- @Autowired
- private StringUtils stringUtils;
- private String defaultPassword = "52653B706ADC444F6660FAB66D6DC210";//Hjy@2024
- @Override
- public List<SysRole> getUserRole(String userID) {
- return null;
- }
- @Override
- public List<DataRange> getUserDataRange(String userID) {
- List<HashMap<String, Object>> dataRangeList = sysUserCQuery.selectUserDataRange(userID);
- List<String> userCompanyList = sysUserCQuery.selectUserCompany(userID);
- List<String> userSiteList = sysUserCQuery.selectUserSite(userID);
- List<String> userInstitutionList = sysUserCQuery.selectUserInstitution(userID);
- List<String> userRegionList = sysUserCQuery.selectUserRegion(userID);
- List<String> userCityList = sysUserCQuery.selectUserCity(userID);
- List<DataRange> result = new ArrayList<>();
- Map<String, List<HashMap<String, Object>>> menuGrouping = dataRangeList.stream()
- .collect(Collectors.groupingBy(x -> x.get("MenuNo").toString()));
- for (String key : menuGrouping.keySet()) {
- List<HashMap<String, Object>> valueList = menuGrouping.get(key);
- valueList.sort(Comparator.comparing(x -> ((Long) x.get("OrderNo")).intValue()));
- int minOrderNo = valueList.stream()
- .map(x -> ((Long) x.get("OrderNo")).intValue())
- .min(Integer::compareTo).orElse(0);
- for (HashMap<String, Object> value : valueList) {
- if (((Long) value.get("OrderNo")).intValue() == minOrderNo) {
- int dataRangeID = (int) value.get("DataRangeID");
- DataRange menuDataRange = new DataRange();
- menuDataRange.setMenuNo(key);
- menuDataRange.setRange(dataRangeID);
- DataRangeEnum dataRangeEnum = DataRangeEnum.getDataRangeByValue(dataRangeID);
- switch (dataRangeEnum) {
- case ALL:
- break;
- case City:
- menuDataRange.setRangeIDList(userCityList);
- break;
- case Region:
- menuDataRange.setRangeIDList(userRegionList);
- break;
- case Institution:
- menuDataRange.setRangeIDList(userInstitutionList);
- break;
- case Site:
- menuDataRange.setRangeIDList(userSiteList);
- break;
- case Company:
- menuDataRange.setRangeIDList(userCompanyList);
- break;
- case SELF:
- menuDataRange.setRangeIDList(List.of(userID));
- break;
- default:
- break;
- }
- result.add(menuDataRange);
- }
- }
- }
- return result;
- }
- @Override
- public PageInfo<HashMap<String, Object>> getUserList(int page, int rows, String name, String loginID, Integer sex, Integer recordStatus, Integer userType) {
- PageHelper.startPage(page, rows);
- List<HashMap<String, Object>> list = sysUserCQuery.selectUserList(name, loginID, sex, recordStatus, userType);
- PageInfo<HashMap<String, Object>> result = new PageInfo(list);
- return result;
- }
- @Override
- public int updateUserStatus(String userId, Integer status) {
- SysUser user = sysUserMapper.selectByPrimaryKey(userId);
- user.setRecordStatus(status);
- return sysUserMapper.updateByPrimaryKey(user);
- }
- @Override
- public UserInfoModel getUserInfo(String userId) {
- if (stringUtils.IsNullOrEmpty(userId)) {
- return null;
- }else{
- return sysUserCQuery.selectUserInfo(userId);
- }
- }
- @Override
- public Integer save(SysUser data, String userId) {
- int result = 0;
- UserInfoModel record = getUserInfo(data.getUserID());
- SysUser dbData = record == null ? null : sysUserMapper.selectByPrimaryKey(record.userID);
- Boolean isExist = dbData != null;
- if (!isExist) {
- //添加
- dbData = new SysUser();
- dbData.setUserID(data.getUserID());
- dbData.setName(data.getName());
- dbData.setLoginID(data.getLoginID());
- if(data.getPassword()==null){
- dbData.setPassword(defaultPassword);
- }else{
- dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
- }
- dbData.setUserTypeID(data.getUserTypeID());
- dbData.setRecordStatus(data.getRecordStatus());
- dbData.setCreateBy(userId);
- dbData.setCreateTime(new Date());
- result = sysUserMapper.insert(dbData);
- } else {
- //修改
- dbData.setName(data.getName());
- dbData.setLoginID(data.getLoginID());
- if(data.getPassword()==null){
- dbData.setPassword(defaultPassword);
- }else{
- dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
- }
- dbData.setUserTypeID(data.getUserTypeID());
- dbData.setRecordStatus(data.getRecordStatus());
- dbData.setUpdateBy(userId);
- dbData.setUpdateTime(new Date());
- result = sysUserMapper.updateByPrimaryKey(dbData);
- }
- return result;
- }
- @Override
- public SysUser getIsCacheUserInfoByID(String userId) {
- SysUser userInfoVo = sysUserMapper.selectByPrimaryKey(userId);
- if (userInfoVo == null) {
- userInfoVo = new SysUser();
- userInfoVo.setName("");
- userInfoVo.setUserID("");
- }
- return userInfoVo;
- }
- @Override
- public String getRandomLoginID() {
- String loginID = randomLoginID();
- Integer count = 1; //验证次数
- while (count <= 3) {
- count--;
- //验证帐号是否存在
- if (sysUserCQuery.selectUserByLoginID(loginID).size() > 0) {
- loginID = randomLoginID();
- } else {
- return loginID;
- }
- }
- return loginID;
- }
- private String randomLoginID() {
- return dateUtils.dateToStrFormat(new Date(), "yyyyMMdd") + UUID.randomUUID().toString().substring(0, 4);
- }
- @Override
- public SysUser addUser(String loginID, String userName, Integer userTypeID, String createBy) {
- if (sysUserCQuery.selectUserByLoginID(loginID).size() > 0)
- return null;
- SysUser user = new SysUser();
- user.setUserID(UUID.randomUUID().toString());
- user.setLoginID(loginID);
- user.setName(userName);
- user.setUserTypeID(userTypeID);
- user.setRecordStatus(1);
- user.setCreateBy(createBy);
- user.setCreateTime(new Date());
- user.setPassword(this.defaultPassword);
- sysUserMapper.insert(user);
- return user;
- }
- @Override
- public Integer updateUser(String userID, String userName, String updateBy) {
- SysUser user = sysUserMapper.selectByPrimaryKey(userID);
- user.setName(userName);
- user.setUpdateBy(updateBy);
- user.setUpdateTime(new Date());
- return sysUserMapper.updateByPrimaryKey(user);
- }
- public Integer updatePassword(String userID, String newPassword, String updateBy) {
- SysUser user = sysUserMapper.selectByPrimaryKey(userID);
- user.setPassword(newPassword);
- user.setUpdateBy(updateBy);
- user.setUpdateTime(new Date());
- return sysUserMapper.updateByPrimaryKey(user);
- }
- @Override
- public List<SysMenu> getUserShortcutMenuList(String userID) {
- return sysUserCQuery.selectUserShortcutMenuList(userID);
- }
- public SysUser getUserByLoginID(String loginID) {
- SysUserExample exp = new SysUserExample();
- SysUserExample.Criteria criteria = exp.or();
- criteria.andLoginIDEqualTo(loginID);
- return sysUserMapper.selectByExample(exp).stream().findFirst().orElse(null);
- }
- }
|