Fixiaobai
2023-09-04 dd2554435b9ced61e2a6a06627145fca3bf2685b
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
@@ -3,9 +3,10 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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;
@@ -16,8 +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;
@@ -31,6 +34,7 @@
 * @Date 2023/8/23
 */
@Service
@Slf4j
public class RoleManagerServiceImpl implements RoleManagerService {
    @Resource
@@ -73,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;
@@ -121,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
@@ -147,6 +160,10 @@
    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":
@@ -165,7 +182,6 @@
                break;
        }
        stringIntegerMap.put("type",type);
        System.out.println(type);
        return stringIntegerMap;
    }