package com.hz.employmentsite.services.impl.baseSettings; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hz.employmentsite.mapper.PcSiteUserMapper; import com.hz.employmentsite.mapper.SysRoleMapper; import com.hz.employmentsite.mapper.SysUserMapper; import com.hz.employmentsite.mapper.SysUserSysRoleMapper; import com.hz.employmentsite.mapper.cquery.UserInfoCQuery; import com.hz.employmentsite.model.*; import com.hz.employmentsite.services.service.baseSettings.SiteUserService; import com.hz.employmentsite.util.StringUtils; import com.hz.employmentsite.vo.baseSettings.SiteUserVo; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.DigestUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; @Service("SiteUserService") public class SiteUserImpl implements SiteUserService { @Autowired private UserInfoCQuery userInfoCQuery; @Autowired private StringUtils stringUtils; @Autowired private PcSiteUserMapper pcSiteUserMapper; @Autowired private SysUserMapper sysUserMapper; @Autowired private SysRoleMapper sysRoleMapper; @Autowired private SysUserSysRoleMapper sysUserSysRoleMapper; @Override public PageInfo getList(int pageIndex, int pageSize, List siteUserIDList, String siteUserName,String siteID, String roleName, String regionCode) { PageHelper.startPage(pageIndex, pageSize); List dataList = userInfoCQuery.getList(stringUtils.ListToInSql(siteUserIDList),siteUserName,siteID, roleName, regionCode); PageInfo result = new PageInfo(dataList); return result; } @Override public PageInfo getListBySiteID(int pageIndex, int pageSize, String siteID) { PageHelper.startPage(pageIndex, pageSize); List dataList = userInfoCQuery.getListBySiteID(siteID); PageInfo result = new PageInfo(dataList); return result; } @Override public SiteUserVo get(String siteUserID) { List ids = new ArrayList<>(); if (stringUtils.IsNullOrEmpty(siteUserID)) { return null; }else{ ids.add(siteUserID); } SiteUserVo model = userInfoCQuery.getList(stringUtils.ListToInSql(ids),null,null, null, null).stream().findFirst().orElse(null); return model; } @Override public List getDataList() { var dataList = getList(1,99999,null,null,null, null, null).getList(); List dataResult = new ArrayList<>(); for (var item: dataList) { SelectProps itemResult = new SelectProps(); itemResult.setText(item.siteUserName); itemResult.setValue(item.userID); dataResult.add(itemResult); } return dataResult; } @Override public Integer save(SiteUserVo data, String userId) { int result = 0; SiteUserVo record = get(data.siteUserID); PcSiteUser dbData = record ==null ? null : pcSiteUserMapper.selectByPrimaryKey(record.siteUserID); Boolean isExist = dbData != null; SysUser curSysUserData = data.userID != null ? sysUserMapper.selectByPrimaryKey(data.userID):null; Boolean isLinkUser = curSysUserData != null; SysRoleExample roleExp = null; /*注意:这里的data.roleID为用户类型ID*/ if (!isExist) { //添加 //处理用户表 curSysUserData = new SysUser(); curSysUserData.setUserID(UUID.randomUUID().toString()); curSysUserData.setName(data.getSiteUserName()); curSysUserData.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes()).toUpperCase()); curSysUserData.setLoginID(StrToPinYin(data.getSiteUserName())); curSysUserData.setUserTypeID(data.getRoleID()); curSysUserData.setCreateTime(new Date()); curSysUserData.setCreateBy(userId); curSysUserData.setRecordStatus(1); result += sysUserMapper.insert(curSysUserData); //处理站点人员表 dbData = new PcSiteUser(); dbData.setUserID(curSysUserData.getUserID()); dbData.setSiteUserID(data.getSiteUserID()); dbData.setSiteID(data.getSiteID()); dbData.setGender(data.getGender()); dbData.setSiteUserName(data.getSiteUserName()); dbData.setGender(data.getGender()); dbData.setRoleID(data.getRoleID()); dbData.setMobile(data.getMobile()); dbData.setCreateUserID(userId); dbData.setCreateTime(new Date()); result += pcSiteUserMapper.insert(dbData); } else { //修改 //处理用户表 if(isLinkUser){ curSysUserData.setName(data.siteUserName); curSysUserData.setUserTypeID(data.roleID); curSysUserData.setLoginID(StrToPinYin(data.siteUserName)); curSysUserData.setUpdateTime(new Date()); curSysUserData.setUpdateBy(userId); result += sysUserMapper.updateByPrimaryKey(curSysUserData); } //处理站点人员表 dbData.setUserID(data.userID); dbData.setSiteUserID(data.siteUserID); dbData.setSiteID(data.getSiteID()); dbData.setGender(data.gender); dbData.setSiteUserName(data.siteUserName); dbData.setGender(data.gender); dbData.setRoleID(data.roleID); dbData.setMobile(data.mobile); dbData.setUpdateBy(userId); dbData.setUpdateTime(new Date()); result += pcSiteUserMapper.updateByPrimaryKey(dbData); } return result; } @Override public Integer delete(List idList){ int result = 0; PcSiteUserExample siteUserExp = new PcSiteUserExample(); siteUserExp.or().andSiteUserIDIn(idList); var curSiteUserList = pcSiteUserMapper.selectByExample(siteUserExp).stream().toList(); result += pcSiteUserMapper.deleteByExample(siteUserExp); if (curSiteUserList != null && curSiteUserList.size() > 0){ for(PcSiteUser curSiteUser : curSiteUserList) { SysUserSysRoleExample userRoleExp = new SysUserSysRoleExample(); userRoleExp.or().andUserIDEqualTo(curSiteUser.getUserID()); result += sysUserSysRoleMapper.deleteByExample(userRoleExp); SysUserExample userExp = new SysUserExample(); userExp.or().andUserIDEqualTo(curSiteUser.getUserID()); result += sysUserMapper.deleteByExample(userExp); } } return result; } public String StrToPinYin(String chinese){ String pinyinStr = ""; char[] newChar = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < newChar.length; i++) { if (newChar[i] > 128) { try { pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0]; } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } }else{ pinyinStr += newChar[i]; } } return pinyinStr; } }