package com.ots.project.exam.service.impl; import com.ots.common.enums.OpertypeEnum; import com.ots.common.utils.StringUtils; import com.ots.common.utils.file.FileUploadUtils; import com.ots.common.utils.security.ShiroUtils; import com.ots.common.utils.text.Convert; import com.ots.framework.config.EssConfig; import com.ots.framework.shiro.service.PasswordService; import com.ots.project.exam.domain.SysUserExtend; import com.ots.project.exam.mapper.SysUserExtendMapper; import com.ots.project.exam.service.ISysUserExtendService; import com.ots.project.system.user.domain.User; import com.ots.project.system.user.domain.UserRole; import com.ots.project.system.user.mapper.UserMapper; import com.ots.project.system.user.mapper.UserRoleMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Objects; import static com.ots.common.enums.UserTypeEnum.DIS_USER; import static com.ots.common.enums.UserTypeEnum.SYS_USER; @Service public class SysUserExtendServiceImpl implements ISysUserExtendService { @Autowired private SysUserExtendMapper sysUserExtendMapper; @Autowired private UserMapper userMapper; @Autowired private UserRoleMapper userRoleMapper; @Autowired private EntOperLogServiceImpl entOperLogService; @Autowired private PasswordService passwordService; @Override public SysUserExtend selectSysUserExtendById(Long userId) { return sysUserExtendMapper.selectSysUserExtendById(userId); } @Override public List selectSysUserExtendList(SysUserExtend sysUserExtend) { return sysUserExtendMapper.selectSysUserExtendList(sysUserExtend); } @Override public int insertSysUserExtend(SysUserExtend sysUserExtend) { MultipartFile businessLicenseFile = sysUserExtend.getBusinessLicenseFile(); if (businessLicenseFile != null && !businessLicenseFile.isEmpty()) { try { String ufi = FileUploadUtils.upload(EssConfig.getUploadPath(), businessLicenseFile); sysUserExtend.setBusinessLicense(ufi); } catch (IOException e) { e.printStackTrace(); } } MultipartFile businessLogoFile = sysUserExtend.getBusinessLogoFile(); if (businessLogoFile != null && !businessLogoFile.isEmpty()) { try { String ufi = FileUploadUtils.upload(EssConfig.getUploadPath(), businessLogoFile); sysUserExtend.setBusinessLogo(ufi); } catch (IOException e) { e.printStackTrace(); } } if (StringUtils.isNotBlank(sysUserExtend.getLoginName())) { User user = new User(); user.setLoginName(sysUserExtend.getLoginName()); user.setUserName(sysUserExtend.getUserName()); user.setPassword(sysUserExtend.getPassword()); user.setUserType(sysUserExtend.getUserType()); user.setPhonenumber(sysUserExtend.getPhonenumber()); user.randomSalt(); user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); this.userMapper.insertUser(user); sysUserExtend.setUserId(user.getUserId()); if (user.getUserType().equals(DIS_USER.getUserType()) && !Objects.equals("1",sysUserExtend.getFirstLevel())) { UserRole e = new UserRole(); e.setRoleId(4L); e.setUserId(user.getUserId()); List rs = Arrays.asList(e); this.userRoleMapper.batchUserRole(rs); } else if (user.getUserType().equals("02")) { UserRole e = new UserRole(); e.setRoleId(3L); e.setUserId(user.getUserId()); List rs = Arrays.asList(e); this.userRoleMapper.batchUserRole(rs); } else if (Objects.equals(DIS_USER.getUserType(),user.getUserType())&& Objects.equals("1",sysUserExtend.getFirstLevel())) { UserRole e = new UserRole(); e.setRoleId(6L); e.setUserId(sysUserExtend.getUserId()); List rs = Arrays.asList(e); this.userRoleMapper.batchUserRole(rs); } } return sysUserExtendMapper.insertSysUserExtend(sysUserExtend); } @Override public int updateSysUserExtend(SysUserExtend sysUserExtend) { MultipartFile businessLicenseFile = sysUserExtend.getBusinessLicenseFile(); if (businessLicenseFile != null && !businessLicenseFile.isEmpty()) { try { String ufi = FileUploadUtils.upload(EssConfig.getUploadPath(), businessLicenseFile); sysUserExtend.setBusinessLicense(ufi); } catch (IOException e) { e.printStackTrace(); } } MultipartFile businessLogoFile = sysUserExtend.getBusinessLogoFile(); if (businessLogoFile != null && !businessLogoFile.isEmpty()) { try { String ufi = FileUploadUtils.upload(EssConfig.getUploadPath(), businessLogoFile); sysUserExtend.setBusinessLogo(ufi); } catch (IOException e) { e.printStackTrace(); } } MultipartFile contractTextFile = sysUserExtend.getContractTextFile(); if (contractTextFile != null && !contractTextFile.isEmpty()) { try { String ufi = FileUploadUtils.upload(EssConfig.getUploadPath(), contractTextFile); sysUserExtend.setContractText(ufi); } catch (IOException e) { e.printStackTrace(); } } if (StringUtils.isNotBlank(sysUserExtend.getLoginName())) { User user = new User(); user.setUserId(sysUserExtend.getUserId()); user.setLoginName(sysUserExtend.getLoginName()); user.setUserName(sysUserExtend.getUserName()); user.setPassword(sysUserExtend.getPassword()); user.setUserType(sysUserExtend.getUserType()); user.setPhonenumber(sysUserExtend.getPhonenumber()); this.userMapper.updateUser(user); } Long userId = sysUserExtend.getUserId(); User user = userMapper.selectUserById(userId); if (user.getUserType().equals(DIS_USER.getUserType()) && !Objects.equals("1",sysUserExtend.getFirstLevel())) { UserRole e = new UserRole(); e.setRoleId(4L); e.setUserId(user.getUserId()); List rs = Arrays.asList(e); this.userRoleMapper.deleteUserRoleInfo(e); this.userRoleMapper.batchUserRole(rs); UserRole de = new UserRole(); de.setRoleId(6L); de.setUserId(user.getUserId()); userRoleMapper.deleteUserRoleInfo(de); } else if (Objects.equals(DIS_USER.getUserType(),user.getUserType())&& Objects.equals("1",sysUserExtend.getFirstLevel())) { UserRole e = new UserRole(); e.setRoleId(6L); e.setUserId(sysUserExtend.getUserId()); List rs = Arrays.asList(e); this.userRoleMapper.deleteUserRoleInfo(e); this.userRoleMapper.batchUserRole(rs); UserRole de = new UserRole(); de.setRoleId(4L); de.setUserId(user.getUserId()); userRoleMapper.deleteUserRoleInfo(de); } return sysUserExtendMapper.updateSysUserExtend(sysUserExtend); } @Override public int deleteSysUserExtendByIds(String ids) { return sysUserExtendMapper.deleteSysUserExtendByIds(Convert.toStrArray(ids)); } public int deleteSysUserExtendById(Long userId) { return sysUserExtendMapper.deleteSysUserExtendById(userId); } @Override @Transactional public int updateTestNum(Long userId, Long addNum) { SysUserExtend sysUserExtend = sysUserExtendMapper.selectSysUserExtendById(userId); long newTestNum = sysUserExtend.getTestNum() + addNum; sysUserExtend.setTestNum(newTestNum); int result = sysUserExtendMapper.updateSysUserExtend(sysUserExtend); entOperLogService.saveLog(userId, String.valueOf(ShiroUtils.getSysUser().getUserId()), OpertypeEnum.SYS_USER, addNum); return result; } @Override public int resetpwd(User user) { user.randomSalt(); user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); return this.userMapper.updateUser(user); } }