From dd2554435b9ced61e2a6a06627145fca3bf2685b Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 04 九月 2023 17:17:17 +0800
Subject: [PATCH] 修改bug

---
 user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java |   71 +++++++++++++++++++++++++++++++----
 1 files changed, 62 insertions(+), 9 deletions(-)

diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
index 30bb77b..d352830 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
@@ -2,9 +2,11 @@
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.exception.AuthException;
 import com.yuanchu.limslaboratory.mapper.MenuMapper;
 import com.yuanchu.limslaboratory.mapper.RoleManageMapper;
 import com.yuanchu.limslaboratory.pojo.Menu;
@@ -15,7 +17,10 @@
 import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto;
 import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto;
 import com.yuanchu.limslaboratory.service.RoleManagerService;
+import com.yuanchu.limslaboratory.utils.ArrayListUtil;
 import com.yuanchu.limslaboratory.utils.JsonUtil;
+import com.yuanchu.limslaboratory.utils.MyUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -29,6 +34,7 @@
  * @Date 2023/8/23
  */
 @Service
+@Slf4j
 public class RoleManagerServiceImpl implements RoleManagerService {
 
     @Resource
@@ -71,6 +77,7 @@
                     ,createTime
             ));
         });
+        roleMenuList.add(new RoleMenu(null,nextId,39L,true,false,false,false,createTime));
         //roleMenuAddList.forEach(System.out::println);
         int i = roleManageMapper.insertBatchRoleMenu(roleMenuList);
         return insert>0&&i>0;
@@ -88,16 +95,15 @@
         List<RoleAndMenuDto> roleAndMenuDtos = roleManageMapper.selectAllRoleAndMenu(dto);
         roleAndMenuDtos.forEach(r->{
             List<RoleMenu>roleMenuList=r.getRoleMenuList();
-            //System.out.println(roleMenuList);
             List<RoleMenu> collect = roleMenuList.stream()
                     .filter(t -> t.getParentId() == 0)
                     .peek((menu) -> menu.setChildren(this.getRoleMenuChildren(menu, roleMenuList)))
                     .collect(Collectors.toList());
             r.setRoleMenuList(collect);
         });
-        roleAndMenuDtos.forEach(r->{
-            r.getRoleMenuList().forEach(System.out::println);
-        });
+        //roleAndMenuDtos.forEach(r->{
+        //    r.getRoleMenuList().forEach(System.out::println);
+        //});
         Map<String, Object>result=new HashMap<>(3);
         result.put("list",roleAndMenuDtos);
         int size = roleManageMapper.getRoleInfoByName(dto.getName()).size();
@@ -120,16 +126,24 @@
                 .set(RoleInfo::getUpdateTime,DateUtil.toLocalDateTime(DateUtil.date()))
                                 .eq(RoleInfo::getId,dto.getRoleId());
         int update = roleManageMapper.update(null, updateWrapper);
-        //鍒犻櫎role_menu淇℃伅
-        int deleteRoleMenuByRoleId = roleManageMapper.deleteRoleMenuByRoleId(dto.getRoleId());
+        List<RoleMenu> roleMenuByRoleId = roleManageMapper.getRoleMenuByRoleId(dto.getRoleId());
+        if (roleMenuByRoleId.size()>1){
+            //鍒犻櫎role_menu淇℃伅
+            update = roleManageMapper.deleteRoleMenuByRoleId(dto.getRoleId());
+        }
         //娣诲姞鏈�鏂伴�夋嫨銆�
         dto.getMenuData().forEach(l->{
             l.setRoleId(dto.getRoleId());
             l.setCreateTime(DateUtil.toLocalDateTime(DateUtil.date()));
             l.setUpdateTime(DateUtil.toLocalDateTime(DateUtil.date()));
         });
-        int insertBatchRoleMenu = roleManageMapper.insertBatchRoleMenu(dto.getMenuData());
-        return update>0&&deleteRoleMenuByRoleId>0&&insertBatchRoleMenu>0;
+        List<RoleMenu> collect = dto.getMenuData().stream().filter(l -> l.getAdded() == false && l.getDeleted() == false && l.getSelected() == false && l.getUpdated() == false).collect(Collectors.toList());
+        List<RoleMenu> roleMenuList = ArrayListUtil.compareNotEqualListBySingleValue(dto.getMenuData(), collect);
+        if(roleMenuList.size()>0){
+            return update>0&&roleManageMapper.insertBatchRoleMenu(roleMenuList)>0;
+        }else {
+            return update>0;
+        }
     }
 
     @Override
@@ -137,6 +151,45 @@
         return roleManageMapper.selectAllRoleAndMenuByRoleId(roleId);
     }
 
+    @Override
+    public List<Map<String, Object>> getUserListRole() {
+        return roleManageMapper.getUserListRole();
+    }
+
+    @Override
+    public Map<String, Object> getUrlType(String url) {
+        String type=null;
+        Map<String, Object> stringIntegerMap = roleManageMapper.selctInterFaceType(url);
+        if(Objects.isNull(stringIntegerMap)){
+            log.warn("娌℃湁====銆�"+url+"璇锋眰璧勬簮");
+            throw new AuthException("403","娌℃湁璇ヨ祫婧�");
+        }
+        String of = String.valueOf(stringIntegerMap.get("type"));
+        switch (of) {
+            case "0":
+                type="selected";
+                break;
+            case "1":
+                type="added";
+                break;
+            case "2":
+                type="updated";
+                break;
+            case "3":
+                type="deleted";
+                break;
+            default:
+                break;
+        }
+        stringIntegerMap.put("type",type);
+        return stringIntegerMap;
+    }
+
+    @Override
+    public boolean hasUrl(String type, String menuId, String roleId) {
+        return roleManageMapper.hasUrl( type,  menuId,  roleId).get("num")>0L;
+    }
+
 
     private List<Menu> getEnumChildren(Menu root, List<Menu> all) {
         return all.stream()

--
Gitblit v1.9.3