From 3f9ebf19e687c33287b0eaec64d4564a212f57db Mon Sep 17 00:00:00 2001
From: mg <maokecheng@163.com>
Date: 星期三, 12 十月 2022 16:59:57 +0800
Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/sccg_server

---
 ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java |  130 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 130 insertions(+), 0 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java
new file mode 100644
index 0000000..2dae3bd
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java
@@ -0,0 +1,130 @@
+package com.ycl.service.user.impl;
+
+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.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.entity.user.*;
+import com.ycl.mapper.user.UmsMenuMapper;
+import com.ycl.mapper.user.UmsResourceMapper;
+import com.ycl.mapper.user.UmsRoleMapper;
+import com.ycl.service.user.UmsAdminCacheService;
+import com.ycl.service.user.UmsRoleMenuRelationService;
+import com.ycl.service.user.UmsRoleResourceRelationService;
+import com.ycl.service.user.UmsRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鍚庡彴瑙掕壊绠$悊Service瀹炵幇绫�
+ * Created by macro on 2018/9/30.
+ */
+@Service
+public class UmsRoleServiceImpl extends ServiceImpl<UmsRoleMapper, UmsRole>implements UmsRoleService {
+    @Autowired
+    private UmsAdminCacheService adminCacheService;
+    @Autowired
+    private UmsRoleMenuRelationService roleMenuRelationService;
+    @Autowired
+    private UmsRoleResourceRelationService roleResourceRelationService;
+    @Resource
+    private UmsMenuMapper umsMenuMapper;
+    @Resource
+    private UmsResourceMapper umsResourceMapper;
+    @Override
+    public boolean create(UmsRole role) {
+        role.setCreateTime(new Date());
+        role.setAdminCount(0);
+        role.setSort(0);
+        return save(role);
+    }
+
+    @Override
+    public boolean delete(List<Long> ids) {
+        boolean success = removeByIds(ids);
+        adminCacheService.delResourceListByRoleIds(ids);
+        return success;
+    }
+
+    @Override
+    public Page<UmsRole> list(String keyword, Integer pageSize, Integer pageNum) {
+        Page<UmsRole> page = new Page<>(pageNum,pageSize);
+        QueryWrapper<UmsRole> wrapper = new QueryWrapper<>();
+        LambdaQueryWrapper<UmsRole> lambda = wrapper.lambda();
+        if(StrUtil.isNotEmpty(keyword)){
+            lambda.like(UmsRole::getName,keyword);
+        }
+        return page(page,wrapper);
+    }
+
+    @Override
+    public List<UmsMenu> getMenuList(Long adminId) {
+        return umsMenuMapper.getMenuList(adminId);
+    }
+
+    @Override
+    public List<UmsMenu> listMenu(Long roleId) {
+        return umsMenuMapper.getMenuListByRoleId(roleId);
+    }
+
+    @Override
+    public List<UmsResource> listResource(Long roleId) {
+        return umsResourceMapper.getResourceListByRoleId(roleId);
+    }
+
+    @Override
+    public int allocMenu(Long roleId, List<Long> menuIds) {
+        //鍏堝垹闄ゅ師鏈夊叧绯�
+        QueryWrapper<UmsRoleMenuRelation> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(UmsRoleMenuRelation::getRoleId,roleId);
+        roleMenuRelationService.remove(wrapper);
+        //鎵归噺鎻掑叆鏂板叧绯�
+        List<UmsRoleMenuRelation> relationList = new ArrayList<>();
+        for (Long menuId : menuIds) {
+            UmsRoleMenuRelation relation = new UmsRoleMenuRelation();
+            relation.setRoleId(roleId);
+            relation.setMenuId(menuId);
+            relationList.add(relation);
+        }
+        roleMenuRelationService.saveBatch(relationList);
+        return menuIds.size();
+    }
+
+    @Override
+    public int allocResource(Long roleId, List<Long> resourceIds) {
+        //鍏堝垹闄ゅ師鏈夊叧绯�
+        QueryWrapper<UmsRoleResourceRelation> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(UmsRoleResourceRelation::getRoleId,roleId);
+        roleResourceRelationService.remove(wrapper);
+        //鎵归噺鎻掑叆鏂板叧绯�
+        List<UmsRoleResourceRelation> relationList = new ArrayList<>();
+        for (Long resourceId : resourceIds) {
+            UmsRoleResourceRelation relation = new UmsRoleResourceRelation();
+            relation.setRoleId(roleId);
+            relation.setResourceId(resourceId);
+            relationList.add(relation);
+        }
+        roleResourceRelationService.saveBatch(relationList);
+        adminCacheService.delResourceListByRole(roleId);
+        return resourceIds.size();
+    }
+
+    @Override
+    public Boolean updateStatusBatch(List<Long> ids, Integer status) {
+        List<UmsRole> roles = new ArrayList<>();
+        for (Long id : ids) {
+            UmsRole umsRole =  UmsRole.builder().
+                    id(id).status(status).build();
+            roles.add(umsRole);
+        }
+        updateBatchById(roles,roles.size());
+        adminCacheService.delResourceListByRoleIds(ids);
+        return true;
+    }
+}

--
Gitblit v1.8.0