¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.system.listener; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import com.alibaba.excel.context.AnalysisContext; |
| | | import com.alibaba.excel.event.AnalysisEventListener; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.excel.ExcelListener; |
| | | import com.ruoyi.common.excel.ExcelResult; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.spring.SpringUtils; |
| | | import com.ruoyi.system.domain.vo.SysUserImportVo; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ç³»ç»ç¨æ·èªå®ä¹å¯¼å
¥ |
| | | * |
| | | * @author Lion Li |
| | | */ |
| | | @Slf4j |
| | | public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo> implements ExcelListener<SysUserImportVo> { |
| | | |
| | | private final ISysUserService userService; |
| | | |
| | | private final String password; |
| | | |
| | | private final Boolean isUpdateSupport; |
| | | |
| | | private final String operName; |
| | | |
| | | private int successNum = 0; |
| | | private int failureNum = 0; |
| | | private final StringBuilder successMsg = new StringBuilder(); |
| | | private final StringBuilder failureMsg = new StringBuilder(); |
| | | |
| | | public SysUserImportListener(Boolean isUpdateSupport) { |
| | | this.userService = SpringUtils.getBean(ISysUserService.class); |
| | | this.password = SpringUtils.getBean(ISysConfigService.class) |
| | | .selectConfigByKey("sys.user.initPassword"); |
| | | this.isUpdateSupport = isUpdateSupport; |
| | | this.operName = SecurityUtils.getUsername(); |
| | | } |
| | | |
| | | @Override |
| | | public void invoke(SysUserImportVo userVo, AnalysisContext context) { |
| | | SysUser user = this.userService.selectUserByUserName(userVo.getUserName()); |
| | | try { |
| | | // éªè¯æ¯å¦åå¨è¿ä¸ªç¨æ· |
| | | if (StringUtils.isNull(user)) { |
| | | user = BeanUtil.toBean(userVo, SysUser.class); |
| | | user.setPassword(SecurityUtils.encryptPassword(password)); |
| | | user.setCreateBy(operName); |
| | | userService.insertUser(user); |
| | | successNum++; |
| | | successMsg.append("<br/>").append(successNum).append("ãè´¦å· ").append(user.getUserName()).append(" 导å
¥æå"); |
| | | } else if (isUpdateSupport) { |
| | | user.setUpdateBy(operName); |
| | | 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(" å·²åå¨"); |
| | | } |
| | | } catch (Exception e) { |
| | | failureNum++; |
| | | String msg = "<br/>" + failureNum + "ãè´¦å· " + user.getUserName() + " 导å
¥å¤±è´¥ï¼"; |
| | | failureMsg.append(msg).append(e.getMessage()); |
| | | log.error(msg, e); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void doAfterAllAnalysed(AnalysisContext context) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public ExcelResult<SysUserImportVo> getExcelResult() { |
| | | return new ExcelResult<SysUserImportVo>() { |
| | | |
| | | @Override |
| | | public String getAnalysis() { |
| | | if (failureNum > 0) { |
| | | failureMsg.insert(0, "徿±æï¼å¯¼å
¥å¤±è´¥ï¼å
± " + failureNum + " æ¡æ°æ®æ ¼å¼ä¸æ£ç¡®ï¼é误å¦ä¸ï¼"); |
| | | throw new ServiceException(failureMsg.toString()); |
| | | } else { |
| | | successMsg.insert(0, "æåæ¨ï¼æ°æ®å·²å
¨é¨å¯¼å
¥æåï¼å
± " + successNum + " æ¡ï¼æ°æ®å¦ä¸ï¼"); |
| | | } |
| | | return successMsg.toString(); |
| | | } |
| | | |
| | | @Override |
| | | public List<SysUserImportVo> getList() { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<String> getErrorList() { |
| | | return null; |
| | | } |
| | | }; |
| | | } |
| | | } |