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/service/user/impl/UmsAdminServiceImpl.java | 222 +++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 167 insertions(+), 55 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java index 9125d9e..d96a0ed 100644 --- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java @@ -4,11 +4,11 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.bo.AdminUserDetails; import com.ycl.dto.UmsAdminParam; +import com.ycl.dto.user.UmsUserDto1; import com.ycl.dto.UpdateAdminPasswordParam; import com.ycl.entity.depart.UmsDepart; import com.ycl.entity.user.*; @@ -24,11 +24,8 @@ import com.ycl.utils.SpringUtil; import com.ycl.utils.common.LiveTimeMillisecond; import com.ycl.utils.common.MacUtils; -import com.ycl.utils.common.PojoUtils; -import com.ycl.utils.common.RandomUtils; import com.ycl.utils.redis.RedisKey; import com.ycl.vo.user.UserVO; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -47,9 +44,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -81,6 +80,8 @@ UmsRoleMenuRelationMapper umsRoleMenuRelationMapper; @Resource AdminMenuRelationMapper adminMenuRelationMapper; + @Resource + UmsMenuMapper umsMenuMapper; @Override public UmsAdmin getAdminByUsername(String username) { @@ -101,11 +102,10 @@ @Transactional(rollbackFor = Exception.class) public UmsAdmin register(UmsAdminParam umsAdminParam) { UmsAdmin umsAdmin = new UmsAdmin(); - //TODO mac,ip,鑱屽姟锛岀敤鎴风被鍨� BeanUtils.copyProperties(umsAdminParam, umsAdmin); umsAdmin.setCreateTime(new Date()); umsAdmin.setStatus(1); - umsAdmin.setMacAddress(MacUtils.getMac()); +// umsAdmin.setMacAddress(MacUtils.getMac()); //鏌ヨ鏄惁鏈夌浉鍚岀敤鎴峰悕鐨勭敤鎴� QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(UmsAdmin::getUsername, umsAdmin.getUsername()); @@ -115,6 +115,64 @@ } //灏嗗瘑鐮佽繘琛屽姞瀵嗘搷浣� String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); + + if ( !umsAdmin.getPassword().matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$")) { + Asserts.fail("瀵嗙爜闀垮害8鍒�16浣嶄笖瀵嗙爜涓殑瀛楃蹇呴』鍖呭惈瀛楁瘝锛堝ぇ鍐欐垨鑰呭皬鍐欙級鍜屽繀椤诲寘鍚暟瀛楋紝涓嶈兘鍖呭惈绌烘牸"); + } + if(umsAdmin.getUsername().equals(umsAdmin.getPassword())){ + Asserts.fail("瀵嗙爜涓嶈兘鍜岀櫥褰曞悕瀹屽叏涓�鑷�"); + } + umsAdmin.setPassword(encodePassword); + baseMapper.insert(umsAdmin); + + //娣诲姞瑙掕壊鎺堟潈 + List<Long> ids = umsAdminParam.getRoleIds(); + if (!ids.isEmpty()) { + List<UmsAdminRoleRelation> roleIds = new ArrayList<>(); + for (Long id : ids) { + UmsAdminRoleRelation urr = new UmsAdminRoleRelation(); + urr.setAdminId(umsAdmin.getId()); + urr.setRoleId(id); + roleIds.add(urr); + } + umsAdminRoleRelationService.saveBatch(roleIds); + } + + //娣诲姞閮ㄩ棬 + UmsDepartManage departManage = new UmsDepartManage(); + departManage.setUserId(umsAdmin.getId()); + departManage.setDepartId(umsAdminParam.getDepartmentId()); + departManage.setCreateTime(new Date()); + departManage.setUpdateTime(new Date()); + umsDepartManageMapper.insert(departManage); + + baseMapper.updateById(umsAdmin); + return umsAdmin; + } + + @Override + public void importExcl(UmsAdminParam umsAdminParam) { + UmsAdmin umsAdmin = new UmsAdmin(); + BeanUtils.copyProperties(umsAdminParam, umsAdmin); + umsAdmin.setCreateTime(new Date()); + umsAdmin.setStatus(1); + umsAdmin.setMacAddress(MacUtils.getMac()); + //鏌ヨ鏄惁鏈夌浉鍚岀敤鎴峰悕鐨勭敤鎴� + QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(UmsAdmin::getUsername, umsAdmin.getUsername()); + List<UmsAdmin> umsAdminList = list(wrapper); + if (umsAdminList.size() > 0) { + throw new RuntimeException("鐢ㄦ埛宸插瓨鍦�"); + } + //灏嗗瘑鐮佽繘琛屽姞瀵嗘搷浣� + String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); + + if ( !umsAdmin.getPassword().matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$")) { + Asserts.fail("瀵嗙爜闀垮害8鍒�16浣嶄笖瀵嗙爜涓殑瀛楃蹇呴』鍖呭惈瀛楁瘝锛堝ぇ鍐欐垨鑰呭皬鍐欙級鍜屽繀椤诲寘鍚暟瀛楋紝涓嶈兘鍖呭惈绌烘牸"); + } + if(umsAdmin.getUsername().equals(umsAdmin.getPassword())){ + Asserts.fail("瀵嗙爜涓嶈兘鍜岀櫥褰曞悕瀹屽叏涓�鑷�"); + } umsAdmin.setPassword(encodePassword); baseMapper.insert(umsAdmin); @@ -132,34 +190,38 @@ } //缁戝畾鑿滃崟浜庣敤鎴� if (!ids.isEmpty()) { - Integer size = 0; - Long maxId = null; + ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>(); for (Long id : ids) { - if (size < umsRoleMenuRelationMapper + umsRoleMenuRelations.addAll(umsRoleMenuRelationMapper .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() - .eq(UmsRoleMenuRelation::getRoleId, id)).size()) { - size = umsRoleMenuRelationMapper - .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() - .eq(UmsRoleMenuRelation::getRoleId, id)).size(); - maxId = id; - } + .eq(UmsRoleMenuRelation::getRoleId, id))); } - umsRoleMenuRelationMapper - .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() - .eq(UmsRoleMenuRelation::getRoleId, maxId)) + umsRoleMenuRelations .stream() - .forEach(item->{ + .map(item -> item.getMenuId()) + .collect(Collectors.toList()) + .stream() + .distinct() + .collect(Collectors.toList()) + .stream() + .forEach(item -> { AdminMenuRelation adminMenuRelation = new AdminMenuRelation(); adminMenuRelation.setAdminId(umsAdmin.getId()); - adminMenuRelation.setMenuId(item.getMenuId()); + adminMenuRelation.setMenuId(item); adminMenuRelationMapper.insert(adminMenuRelation); }); } //瀵圭敤鎴峰悕绯荤粺榛樿娣诲姞 - umsAdmin.setNickName(RandomUtils.getUserId(umsAdmin.getId())); - baseMapper.updateById(umsAdmin); + //umsAdmin.setNickName(RandomUtils.getUserId(umsAdmin.getId())); + //娣诲姞閮ㄩ棬 + UmsDepartManage departManage = new UmsDepartManage(); + departManage.setUserId(umsAdmin.getId()); + departManage.setDepartId(umsAdminParam.getDepartmentId()); + departManage.setCreateTime(new Date()); + departManage.setUpdateTime(new Date()); + umsDepartManageMapper.insert(departManage); - return umsAdmin; + baseMapper.updateById(umsAdmin); } @Override @@ -180,7 +242,7 @@ token = jwtTokenUtil.generateToken(userDetails.getUserId(), userDetails.getUsername()); redisService.set(RedisKey.PLATFORM_TOKEN_KEY.concat(username), token, LiveTimeMillisecond.s7200.time); // updateLoginTimeByUsername(username); - insertLoginLog(username); + //insertLoginLog(username); } catch (AuthenticationException e) { LOGGER.warn("鐧诲綍寮傚父:{}", e.getMessage()); } @@ -289,24 +351,26 @@ } @Override - public List<UmsResource> getResourceList(Long adminId) { - List<UmsResource> resourceList = getCacheService().getResourceList(adminId); - if (CollUtil.isNotEmpty(resourceList)) { - return resourceList; + public List<UmsMenu> getResourceList(Long adminId) { + List<UmsMenu> umsMenuList = getCacheService().getResourceList(adminId); + if (CollUtil.isNotEmpty(umsMenuList)) { + return umsMenuList; } - resourceList = umsResourceMapper.getResourceList(adminId); - if (CollUtil.isNotEmpty(resourceList)) { - getCacheService().setResourceList(adminId, resourceList); - } - return resourceList; + umsMenuList = umsMenuMapper.getMenuList(adminId); + getCacheService().setResourceList(adminId, umsMenuList); + return umsMenuList; } @Override public int updatePassword(UpdateAdminPasswordParam param) { - if (StrUtil.isEmpty(param.getUsername()) - || StrUtil.isEmpty(param.getOldPassword()) - || StrUtil.isEmpty(param.getNewPassword())) { + if (StrUtil.isNotEmpty(param.getUsername()) + && StrUtil.isNotEmpty(param.getOldPassword()) + && StrUtil.isNotEmpty(param.getNewPassword()) + && !param.getNewPassword().matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$")) { return -1; + } + if(param.getUsername().equals(param.getNewPassword())){ + return -4; } QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(UmsAdmin::getUsername, param.getUsername()); @@ -329,7 +393,7 @@ //鑾峰彇鐢ㄦ埛淇℃伅 UmsAdmin admin = getAdminByUsername(username); if (admin != null) { - List<UmsResource> resourceList = getResourceList(admin.getId()); + List<UmsMenu> resourceList = getResourceList(admin.getId()); return new AdminUserDetails(admin, resourceList); } throw new UsernameNotFoundException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒"); @@ -341,11 +405,11 @@ } @Override - public IPage<UmsAdmin> pageUser(UserVO.PageUserVO pageUserVO) { + public Page<UmsAdmin> pageUser(UserVO.PageUserVO pageUserVO) { int pageSize = pageUserVO.getPageSize(); int current = pageUserVO.getCurrent(); Page<UmsAdmin> page = new Page<>(current, pageSize); - LambdaQueryWrapper<UmsAdmin> queryWrapper = new LambdaQueryWrapper<>(); + /* LambdaQueryWrapper<UmsAdmin> queryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.isNotBlank(pageUserVO.getKeyword())) { queryWrapper.like(UmsAdmin::getUsername, pageUserVO.getKeyword()) @@ -357,24 +421,70 @@ } if (PojoUtils.Vo.isUsefulSearchParam(pageUserVO.getUserType())) { queryWrapper.eq(UmsAdmin::getUserType, pageUserVO.getUserType()); + }*/ + UmsAdmin umsAdmin = new UmsAdmin(); + if (pageUserVO.getUserType() != null) { + umsAdmin.setUserType(pageUserVO.getUserType()); } - if (PojoUtils.Vo.isUsefulSearchParam(pageUserVO.getDepartmentId())) { - queryWrapper.eq(UmsAdmin::getDepartmentId, pageUserVO.getDepartmentId()); + if (pageUserVO.getKeyword() != null && !("".equals(pageUserVO.getKeyword()))) { + umsAdmin.setKeyword(pageUserVO.getKeyword()); } - Page<UmsAdmin> page1 = baseMapper.selectPage(page, queryWrapper); - List<UmsAdmin> records = page1.getRecords(); - if (CollUtil.isNotEmpty(records)) { - records.forEach(e -> { - UmsDepart umsDepart = departService.getById(e.getDepartmentId()); - if (null != umsDepart) { - e.setDepartName(umsDepart.getDepartName()); - } - //鑾峰彇瑙掕壊鍒楄〃 - List<UmsRole> roles = umsRoleMapper.getRoleList(e.getId()); - e.setRoles(roles); - }); + if (pageUserVO.getJobTitle() != null && !("".equals(pageUserVO.getJobTitle()))) { + umsAdmin.setJobTitle(pageUserVO.getJobTitle()); } + Page<UmsAdmin> page1 = baseMapper.selectCondPage(page, umsAdmin); + return page1; + } + + @Override + public List<UmsUserDto1> userExp() { + List<UmsAdmin> umsAdmins = baseMapper.selectToExp(); + List<UmsUserDto1> res = umsAdmins.stream() + .map(item -> { + UmsUserDto1 res1 = new UmsUserDto1(); + res1.setId(item.getId()); + res1.setUsername(item.getUsername()); + res1.setNickName(item.getNickName()); + res1.setMobile(item.getMobile()); + StringBuffer roleStrBuffer = new StringBuffer(); + List<UmsRole> roles = item.getRoles(); + roles.forEach(new Consumer<UmsRole>() { + @Override + public void accept(UmsRole o) { + roleStrBuffer.append(o.getName()); + roleStrBuffer.append(","); + } + }); + roleStrBuffer.deleteCharAt(roleStrBuffer.length()-1); + res1.setRoles(roleStrBuffer.toString()); + StringBuffer departStrBuffer = new StringBuffer(); + List<UmsDepart> departs = item.getDepart(); + departs.forEach(new Consumer<UmsDepart>() { + @Override + public void accept(UmsDepart o) { + departStrBuffer.append(o.getDepartName()); + departStrBuffer.append(","); + } + }); + departStrBuffer.deleteCharAt(departStrBuffer.length()-1); + res1.setDepart(departStrBuffer.toString()); + res1.setJobTitle(item.getJobTitle()); + Date createTime = item.getCreateTime(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (createTime != null){ + res1.setCreateTime(sdf.format(createTime)); + } + + Integer status = item.getStatus(); + if (status.equals(1)){ + res1.setStatus("鍚敤"); + }else { + res1.setStatus("绂佺敤"); + } + return res1; + }).collect(Collectors.toList()); + return res; } @Override @@ -416,14 +526,16 @@ QueryWrapper<UmsAdmin> wrapperUser = new QueryWrapper<>(); wrapperUser.in("id", arr); List<UmsAdmin> adminList = baseMapper.selectList(wrapperUser); - if (adminList == null||adminList.isEmpty()) { + if (adminList == null || adminList.isEmpty()) { throw new ApiException("鏈煡璇㈠埌鐢ㄦ埛"); } if ("02".equals(sendType)) { - str = adminList.stream().map(UmsAdmin::getEmail).collect(Collectors.joining(",")); + str = adminList.stream().map(UmsAdmin::getEmail).collect(Collectors.joining(",")); } else { str = adminList.stream().map(UmsAdmin::getMobile).collect(Collectors.joining(",")); } return str; } + + } -- Gitblit v1.8.0