From a4047b6048ebfe09e66a765b58ea12b5bd0e2e6e Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 28 十一月 2022 16:18:10 +0800 Subject: [PATCH] 店铺管理优化 --- ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java | 143 ++++++++++++++++++++++++++++++++--------------- 1 files changed, 98 insertions(+), 45 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 a88c754..53c1bc8 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,21 +4,16 @@ 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.UpdateAdminPasswordParam; -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.mapper.user.*; import com.ycl.service.depart.UmsDepartService; -import com.ycl.service.user.UmsDepartManageService; import com.ycl.service.redis.RedisService; import com.ycl.service.user.UmsAdminCacheService; import com.ycl.service.user.UmsAdminRoleRelationService; @@ -27,11 +22,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; @@ -53,6 +45,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 鍚庡彴绠$悊鍛樼鐞哠ervice瀹炵幇绫� @@ -76,9 +69,15 @@ @Resource private UmsDepartService departService; @Resource - private UmsDepartManageService umsAdminDepartService; - @Resource private RedisService redisService; + @Resource + private UmsDepartManageMapper umsDepartManageMapper; + @Resource + UmsRoleMenuRelationMapper umsRoleMenuRelationMapper; + @Resource + AdminMenuRelationMapper adminMenuRelationMapper; + @Resource + UmsMenuMapper umsMenuMapper; @Override public UmsAdmin getAdminByUsername(String username) { @@ -120,18 +119,48 @@ List<Long> ids = umsAdminParam.getRoleIds(); if (!ids.isEmpty()) { List<UmsAdminRoleRelation> roleIds = new ArrayList<>(); - for(Long id:ids){ + for (Long id : ids) { UmsAdminRoleRelation urr = new UmsAdminRoleRelation(); urr.setAdminId(umsAdmin.getId()); urr.setRoleId(id); roleIds.add(urr); - } + } umsAdminRoleRelationService.saveBatch(roleIds); } + //缁戝畾鑿滃崟浜庣敤鎴� + if (!ids.isEmpty()) { + ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>(); + for (Long id : ids) { + umsRoleMenuRelations.addAll(umsRoleMenuRelationMapper + .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() + .eq(UmsRoleMenuRelation::getRoleId, id))); + } + umsRoleMenuRelations + .stream() + .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); + 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); + baseMapper.updateById(umsAdmin); return umsAdmin; } @@ -153,7 +182,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()); } @@ -262,16 +291,14 @@ } @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 @@ -302,7 +329,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("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒"); @@ -314,11 +341,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()) @@ -330,23 +357,19 @@ } 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; } @@ -361,12 +384,42 @@ public boolean updateStatusBatch(List<Long> ids, Integer status) { List<UmsAdmin> users = new ArrayList<>(); for (Long id : ids) { - UmsAdmin umsAdmin = UmsAdmin.builder(). + UmsAdmin umsAdmin = UmsAdmin.builder(). id(id).status(status).build(); users.add(umsAdmin); } - updateBatchById(users,users.size()); + 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