From d46beba25ccb64a1047a98d642b6ce45e82f0bee Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期一, 17 十月 2022 18:07:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java |  131 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 115 insertions(+), 16 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 880646f..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,17 +10,14 @@
 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.UmsAdminDepartService;
 import com.ycl.service.user.UmsAdminRoleRelationService;
 import com.ycl.service.user.UmsAdminService;
 import com.ycl.utils.JwtTokenUtil;
@@ -53,6 +50,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鍚庡彴绠$悊鍛樼鐞哠ervice瀹炵幇绫�
@@ -74,11 +72,17 @@
     @Resource
     private UmsResourceMapper umsResourceMapper;
     @Resource
-    private SccgDepartService sccgDepartService;
-    @Resource
-    private UmsAdminDepartService umsAdminDepartService;
+    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) {
@@ -115,6 +119,45 @@
         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);
@@ -306,14 +349,17 @@
         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());
         }
         if (PojoUtils.Vo.isUsefulSearchParam(pageUserVO.getUserType())) {
             queryWrapper.eq(UmsAdmin::getUserType, pageUserVO.getUserType());
-        }
-        if (StringUtils.isNotBlank(pageUserVO.getMobile())) {
-            queryWrapper.like(UmsAdmin::getMobile, pageUserVO.getMobile());
         }
         if (PojoUtils.Vo.isUsefulSearchParam(pageUserVO.getDepartmentId())) {
             queryWrapper.eq(UmsAdmin::getDepartmentId, pageUserVO.getDepartmentId());
@@ -322,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