From 622d26ba10bb7d37d006c73e240082a6f6c69db9 Mon Sep 17 00:00:00 2001 From: mg <maokecheng@163.com> Date: 星期五, 14 十月 2022 16:47:50 +0800 Subject: [PATCH] 修改处置流程。 --- ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java | 139 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 127 insertions(+), 12 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 366c696..86a520b 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 @@ -10,22 +10,23 @@ import com.ycl.bo.AdminUserDetails; import com.ycl.dto.UmsAdminParam; import com.ycl.dto.UpdateAdminPasswordParam; -import com.ycl.entity.depart.SccgDepart; +import com.ycl.entity.depart.UmsDepart; import com.ycl.entity.user.*; +import com.ycl.exception.ApiException; import com.ycl.exception.Asserts; -import com.ycl.mapper.user.UmsAdminLoginLogMapper; -import com.ycl.mapper.user.UmsAdminMapper; -import com.ycl.mapper.user.UmsResourceMapper; -import com.ycl.mapper.user.UmsRoleMapper; -import com.ycl.service.depart.SccgDepartService; +import com.ycl.mapper.user.*; +import com.ycl.service.depart.UmsDepartService; +import com.ycl.service.redis.RedisService; import com.ycl.service.user.UmsAdminCacheService; import com.ycl.service.user.UmsAdminRoleRelationService; import com.ycl.service.user.UmsAdminService; import com.ycl.utils.JwtTokenUtil; 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; @@ -49,6 +50,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 鍚庡彴绠$悊鍛樼鐞哠ervice瀹炵幇绫� @@ -70,7 +72,17 @@ @Resource private UmsResourceMapper umsResourceMapper; @Resource - private SccgDepartService sccgDepartService; + private UmsDepartService departService; + @Resource + private RedisService redisService; + @Resource + private UmsDepartManageMapper umsDepartManageMapper; + @Resource + UmsRoleMenuRelationMapper umsRoleMenuRelationMapper; + @Resource + AdminMenuRelationMapper adminMenuRelationMapper; + @Resource + UmsMenuMapper umsMenuMapper; @Override public UmsAdmin getAdminByUsername(String username) { @@ -107,8 +119,49 @@ String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); 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); + } + //缁戝畾鑿滃崟浜庣敤鎴� + if (!ids.isEmpty()) { + Integer size = 0; + Long maxId = null; + for (Long id : ids) { + if (size < umsRoleMenuRelationMapper + .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() + .eq(UmsRoleMenuRelation::getRoleId, id)).size()) { + size = umsRoleMenuRelationMapper + .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() + .eq(UmsRoleMenuRelation::getRoleId, id)).size(); + maxId = id; + } + } + umsRoleMenuRelationMapper + .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() + .eq(UmsRoleMenuRelation::getRoleId, maxId)) + .stream() + .forEach(item -> { + AdminMenuRelation adminMenuRelation = new AdminMenuRelation(); + adminMenuRelation.setAdminId(umsAdmin.getId()); + adminMenuRelation.setMenuId(item.getMenuId()); + adminMenuRelation.setSort(umsMenuMapper.selectOne(new LambdaQueryWrapper<UmsMenu>().eq(UmsMenu::getId, item.getMenuId())).getSort()); + adminMenuRelationMapper.insert(adminMenuRelation); + }); + } + //瀵圭敤鎴峰悕绯荤粺榛樿娣诲姞 umsAdmin.setNickName(RandomUtils.getUserId(umsAdmin.getId())); baseMapper.updateById(umsAdmin); + return umsAdmin; } @@ -117,7 +170,7 @@ String token = null; //瀵嗙爜闇�瑕佸鎴风鍔犲瘑鍚庝紶閫� try { - UserDetails userDetails = loadUserByUsername(username); + AdminUserDetails userDetails = (AdminUserDetails) loadUserByUsername(username); if (!passwordEncoder.matches(password, userDetails.getPassword())) { Asserts.fail("瀵嗙爜涓嶆纭�"); } @@ -126,7 +179,9 @@ } UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); + //鏍规嵁鐢ㄦ埛id锛岀敤鎴峰鍚� + token = jwtTokenUtil.generateToken(userDetails.getUserId(), userDetails.getUsername()); + redisService.set(RedisKey.PLATFORM_TOKEN_KEY.concat(username), token, LiveTimeMillisecond.s7200.time); // updateLoginTimeByUsername(username); insertLoginLog(username); } catch (AuthenticationException e) { @@ -181,6 +236,7 @@ } @Override + @Transactional(rollbackFor = Exception.class) public boolean update(Long id, UmsAdmin admin) { admin.setId(id); UmsAdmin rawAdmin = getById(id); @@ -293,6 +349,12 @@ int current = pageUserVO.getCurrent(); Page<UmsAdmin> page = new Page<>(current, pageSize); LambdaQueryWrapper<UmsAdmin> queryWrapper = new LambdaQueryWrapper<>(); + + if (StringUtils.isNotBlank(pageUserVO.getKeyword())) { + queryWrapper.like(UmsAdmin::getUsername, pageUserVO.getKeyword()) + .or().like(UmsAdmin::getNickName, pageUserVO.getKeyword()) + .or().like(UmsAdmin::getMobile, pageUserVO.getKeyword()); + } if (StringUtils.isNotBlank(pageUserVO.getJobTitle())) { queryWrapper.eq(UmsAdmin::getJobTitle, pageUserVO.getJobTitle()); } @@ -306,12 +368,65 @@ List<UmsAdmin> records = page1.getRecords(); if (CollUtil.isNotEmpty(records)) { records.forEach(e -> { - SccgDepart sccgDepart = sccgDepartService.getById(e.getDepartmentId()); - if (null != sccgDepart) { - e.setDepartName(sccgDepart.getDepartName()); + UmsDepart umsDepart = departService.getById(e.getDepartmentId()); + if (null != umsDepart) { + e.setDepartName(umsDepart.getDepartName()); } + //鑾峰彇瑙掕壊鍒楄〃 + List<UmsRole> roles = umsRoleMapper.getRoleList(e.getId()); + e.setRoles(roles); }); } return page1; } + + @Override + public boolean deleteBatch(List<Long> ids) { + boolean success = removeByIds(ids); + getCacheService().delBatchAdmin(ids); + return success; + } + + @Override + public boolean updateStatusBatch(List<Long> ids, Integer status) { + List<UmsAdmin> users = new ArrayList<>(); + for (Long id : ids) { + UmsAdmin umsAdmin = UmsAdmin.builder(). + id(id).status(status).build(); + users.add(umsAdmin); + } + updateBatchById(users, users.size()); + getCacheService().delBatchAdmin(ids); + return true; + } + + @Override + public List<UmsAdmin> getDepartUser(Long departId) { + QueryWrapper<UmsDepartManage> wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(UmsDepartManage::getDepartId, departId); + List<UmsDepartManage> list = umsDepartManageMapper.selectList(wrapper); + List<Long> userIds = list.stream().map(UmsDepartManage::getUserId).collect(Collectors.toList()); + QueryWrapper<UmsAdmin> wrapperUser = new QueryWrapper<>(); + wrapperUser.in("id", userIds); + List<UmsAdmin> adminList = baseMapper.selectList(wrapperUser); + return adminList; + } + + @Override + public String getTargetTo(String ids, String sendType) { + String str = null; + String[] arr = ids.split(","); + QueryWrapper<UmsAdmin> wrapperUser = new QueryWrapper<>(); + wrapperUser.in("id", arr); + List<UmsAdmin> adminList = baseMapper.selectList(wrapperUser); + if (adminList == null || adminList.isEmpty()) { + throw new ApiException("鏈煡璇㈠埌鐢ㄦ埛"); + } + if ("02".equals(sendType)) { + 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