From e69d41203f2171dce23231a09e17c3731b41dbea Mon Sep 17 00:00:00 2001 From: baizonghao <1719256278@qq.com> Date: 星期六, 18 三月 2023 17:11:47 +0800 Subject: [PATCH] 用户导入 --- ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java | 97 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 91 insertions(+), 6 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java b/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java index fa325a3..fc838c5 100644 --- a/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java +++ b/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java @@ -1,14 +1,26 @@ package com.ycl.controller.user; import cn.hutool.core.collection.CollUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.annotation.LogSave; import com.ycl.api.CommonResult; import com.ycl.bo.AdminUserDetails; import com.ycl.controller.BaseController; import com.ycl.dto.*; +import com.ycl.dto.user.UmsAdminParamDto; +import com.ycl.dto.user.UmsUserDto1; +import com.ycl.entity.depart.UmsDepart; +import com.ycl.entity.dict.DataDictionary; import com.ycl.entity.user.UmsAdmin; import com.ycl.entity.user.UmsRole; +import com.ycl.mapper.depart.UmsDepartMapper; +import com.ycl.mapper.dict.DataDictionaryMapper; +import com.ycl.mapper.user.UmsAdminMapper; +import com.ycl.mapper.user.UmsRoleMapper; import com.ycl.service.redis.RedisService; import com.ycl.service.user.UmsAdminService; import com.ycl.service.user.UmsMenuService; @@ -32,9 +44,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.security.Principal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -138,15 +148,90 @@ @ApiOperation("鐢ㄦ埛瀵煎嚭") @PostMapping("/export") public void exportUser(HttpServletResponse response) { - List<UmsUserDto> umsUserDtos = adminService.userExp(); + List<UmsUserDto1> umsUserDtos = adminService.userExp(); String sheetName = "鐢ㄦ埛瀵煎嚭"; - EasyExcelUtils.export(response, sheetName, UmsUserDto.class, umsUserDtos); + EasyExcelUtils.export(response, sheetName, UmsUserDto1.class, umsUserDtos); } + @Resource + private UmsRoleMapper umsRoleMapper; + @Resource + private UmsAdminMapper umsAdminMapper; + @Resource + private DataDictionaryMapper dataDictionaryMapper; + @Resource + private UmsDepartMapper umsDepartMapper; @ApiOperation("鐢ㄦ埛瀵煎叆") @PostMapping("/import") public CommonResult importUser(MultipartFile file) throws IOException { - EasyExcelUtils.importDepartFile(file); + EasyExcel.read(file.getInputStream()) + .head(UmsAdminParamDto.class) + .registerReadListener(new ReadListener<UmsAdminParamDto>() { + @Override + public void invoke(UmsAdminParamDto item, AnalysisContext analysisContext) { + UmsAdminParam param = new UmsAdminParam(); + param.setUsername(item.getUsername()); + param.setPassword(item.getPassword()); + param.setNickName(item.getNickName()); + + String sex = item.getSex(); + if (sex.equals("鐢�")){ + param.setSex((byte) 1); + } else if (sex.equals("濂�")) { + param.setSex((byte) 0); + }else { + throw new RuntimeException("鎬у埆杈撳叆鏈夎"); + } + + String isDy = item.getIsDy(); + if (isDy.equals("鏄�")){ + param.setSex((byte) 1); + } else if (isDy.equals("鍚�")) { + param.setSex((byte) 0); + }else { + throw new RuntimeException("鍏氬憳杈撳叆鏈夎"); + } + + param.setMobile(item.getMobile()); + param.setEmail(item.getEmail()); + + String role = item.getRole(); + UmsRole umsRole = umsRoleMapper.selectOne(new LambdaQueryWrapper<UmsRole>().eq(UmsRole::getName, role)); + if (Objects.isNull(umsRole)){ + param.setRoleIds(null); + }else { + List list = new ArrayList<>(); + list.add(umsRole.getId()); + param.setRoleIds(list); + } + + String userType = item.getUserType(); + DataDictionary dataDictionary = dataDictionaryMapper.selectOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, userType)); + if (Objects.isNull(dataDictionary)){ + throw new RuntimeException("鐢ㄦ埛绫诲瀷涓嶅瓨鍦�"); + }else { + param.setUserType(dataDictionary.getId().intValue()); + } + + String department = item.getDepartment(); + UmsDepart umsDepart = umsDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, department)); + if (Objects.isNull(umsDepart)){ + throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�"); + }else { + param.setDepartmentId(umsDepart.getId()); + } + + param.setJobTitle(item.getJobTitle()); + + adminService.importExcl(param); + + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + + } + }).sheet().doRead(); return CommonResult.success(true, "瀵煎叆鎴愬姛"); } -- Gitblit v1.8.0