| | |
| | | package com.ruoyi.system.listener; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.crypto.digest.BCrypt; |
| | | import com.alibaba.excel.context.AnalysisContext; |
| | | import com.alibaba.excel.event.AnalysisEventListener; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.MapstructUtils; |
| | | import com.ruoyi.common.core.utils.SpringUtils; |
| | | import com.ruoyi.common.core.utils.ValidatorUtils; |
| | | import com.ruoyi.common.excel.core.ExcelListener; |
| | | import com.ruoyi.common.excel.core.ExcelResult; |
| | | import com.ruoyi.common.satoken.utils.LoginHelper; |
| | | import com.ruoyi.system.domain.SysUser; |
| | | import com.ruoyi.system.domain.bo.SysUserBo; |
| | | import com.ruoyi.system.domain.vo.SysUserImportVo; |
| | | import com.ruoyi.system.domain.vo.SysUserVo; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | |
| | | private final Boolean isUpdateSupport; |
| | | |
| | | private final String operName; |
| | | private final Long operUserId; |
| | | |
| | | private int successNum = 0; |
| | | private int failureNum = 0; |
| | |
| | | this.userService = SpringUtils.getBean(ISysUserService.class); |
| | | this.password = BCrypt.hashpw(initPassword); |
| | | this.isUpdateSupport = isUpdateSupport; |
| | | this.operName = LoginHelper.getUsername(); |
| | | this.operUserId = LoginHelper.getUserId(); |
| | | } |
| | | |
| | | @Override |
| | | public void invoke(SysUserImportVo userVo, AnalysisContext context) { |
| | | SysUser user = this.userService.selectUserByUserName(userVo.getUserName()); |
| | | SysUserVo sysUser = this.userService.selectUserByUserName(userVo.getUserName()); |
| | | try { |
| | | // 验证是否存在这个用户 |
| | | if (ObjectUtil.isNull(user)) { |
| | | user = BeanUtil.toBean(userVo, SysUser.class); |
| | | if (ObjectUtil.isNull(sysUser)) { |
| | | SysUserBo user = MapstructUtils.convert(userVo, SysUserBo.class); |
| | | ValidatorUtils.validate(user); |
| | | user.setPassword(password); |
| | | user.setCreateBy(LoginHelper.getUserId()); |
| | | user.setCreateBy(operUserId); |
| | | userService.insertUser(user); |
| | | successNum++; |
| | | successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功"); |
| | | } else if (isUpdateSupport) { |
| | | Long userId = user.getUserId(); |
| | | user = BeanUtil.toBean(userVo, SysUser.class); |
| | | Long userId = sysUser.getUserId(); |
| | | SysUserBo user = MapstructUtils.convert(userVo, SysUserBo.class); |
| | | user.setUserId(userId); |
| | | ValidatorUtils.validate(user); |
| | | userService.checkUserAllowed(user); |
| | | userService.checkUserDataScope(user.getUserId()); |
| | | user.setUpdateBy(LoginHelper.getUserId()); |
| | | user.setUpdateBy(operUserId); |
| | | userService.updateUser(user); |
| | | successNum++; |
| | | successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 更新成功"); |
| | | } else { |
| | | failureNum++; |
| | | failureMsg.append("<br/>").append(failureNum).append("、账号 ").append(user.getUserName()).append(" 已存在"); |
| | | failureMsg.append("<br/>").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 已存在"); |
| | | } |
| | | } catch (Exception e) { |
| | | failureNum++; |
| | | String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; |
| | | String msg = "<br/>" + failureNum + "、账号 " + sysUser.getUserName() + " 导入失败:"; |
| | | failureMsg.append(msg).append(e.getMessage()); |
| | | log.error(msg, e); |
| | | } |