From dfdd4bd5d112a17ccd1483ad11fe023817d54d26 Mon Sep 17 00:00:00 2001
From: whywhyo <1511349576@qq.com>
Date: 星期六, 22 七月 2023 15:20:13 +0800
Subject: [PATCH] 45648

---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java
index 9feb3d5..50cf44e 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java
@@ -2,17 +2,22 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.domain.ZAuthority;
+import com.ruoyi.domain.ZInfoUser;
 import com.ruoyi.domain.ZfCode;
 import com.ruoyi.domain.ZfFamily;
 import com.ruoyi.domain.dto.AuthorityDto;
+import com.ruoyi.domain.dto.AuthorityDto2;
 import com.ruoyi.mapper.ZAuthorityMapper;
 import com.ruoyi.service.ZAuthorityService;
+import com.ruoyi.service.ZInfoUserService;
 import com.ruoyi.service.ZfCodeService;
 import com.ruoyi.service.ZfFamilyService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -32,6 +37,12 @@
 
     @Resource
     private ZfCodeService zfCodeService;
+
+    @Resource
+    private ZAuthorityService zAuthorityService;
+
+    @Resource
+    private ZInfoUserService zInfoUserService;
 
     /**
      * 鏌ヨ褰撳墠鐢ㄦ埛鐨勬潈闄�
@@ -103,4 +114,86 @@
         return familyList.stream().map(ZfFamily::getName).distinct().collect(Collectors.toList());
     }
 
+    /**
+     *
+     * @param authorityDto 浼犲叆浜嗙敤鎴穒d銆乵odelName
+     * @return
+     */
+    @Override
+    @Transactional
+    public AjaxResult managerAuthority(AuthorityDto2 authorityDto) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+        ZInfoUser myself = zInfoUserService.getById(userId);
+
+        //鏌ョ湅褰撳墠鐢ㄦ埛鏄笉鏄鐞嗗憳
+        if(myself.getRoleId()!=1 && myself.getRoleId()!=2){
+            throw new RuntimeException("浣犱笉鏄搴鐞嗗憳锛屾病鏈夋潈闄愭搷浣�");
+        }
+
+
+        Long uid = authorityDto.getUid();
+        Long fid = myself.getFamilyId();
+        String modelName = authorityDto.getModelName();
+
+        //鏍规嵁妯″潡鐨勫悕瀛楁煡鍑哄搴旂殑鏉冮檺鐮�
+        List<ZfCode> zfCodeList = zfCodeService.likeGetByName(modelName);
+        List<Long> allCodeList = zfCodeList.stream().map(ZfCode::getCode).collect(Collectors.toList());//鏉冮檺鐮佹暟缁�
+
+        //鎵惧埌瀵瑰簲瀹跺涵瀵瑰簲妯″潡鐨勬潈闄愭暟缁�
+        LambdaQueryWrapper<ZAuthority> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZAuthority::getFid,fid)
+                .eq(ZAuthority::getUid,uid)
+                .in(ZAuthority::getAuthority,allCodeList);
+        List<ZAuthority> authorityList = list(lqw);
+
+        //鍏堝垹鎺夌幇鍦ㄦ墍鏈夌殑鏉冮檺
+        List<Long> idList = authorityList.stream().map(ZAuthority::getId).collect(Collectors.toList());
+        zAuthorityService.removeBatchByIds(idList);
+
+        //鍐嶆坊鍔犳柊璁剧疆鐨勬潈闄�
+        if(authorityDto.getSearch() == 1){
+            //鏍规嵁妯″潡鐨勫悕瀛楁煡鍒版潈闄愮爜锛屽彧浼氭湁涓�涓粨鏋�
+            List<ZfCode> zfcode = zfCodeService.likeGetByName(modelName + "鏌ョ湅");
+            ZAuthority zAuthority = new ZAuthority();
+            zAuthority.setFid(fid);
+            zAuthority.setUid(uid);
+            zAuthority.setAuthority(zfcode.get(0).getCode());
+            zAuthorityService.save(zAuthority);
+        }
+
+        if(authorityDto.getInsert() == 1){
+            //鏍规嵁妯″潡鐨勫悕瀛楁煡鍒版潈闄愮爜锛屽彧浼氭湁涓�涓粨鏋�
+            List<ZfCode> zfcode = zfCodeService.likeGetByName(modelName + "娣诲姞");
+            ZAuthority zAuthority = new ZAuthority();
+            zAuthority.setFid(fid);
+            zAuthority.setUid(uid);
+            zAuthority.setAuthority(zfcode.get(0).getCode());
+            zAuthorityService.save(zAuthority);
+        }
+
+        if(authorityDto.getUpdate() == 1){
+            //鏍规嵁妯″潡鐨勫悕瀛楁煡鍒版潈闄愮爜锛屽彧浼氭湁涓�涓粨鏋�
+            List<ZfCode> zfcode = zfCodeService.likeGetByName(modelName + "淇敼");
+            ZAuthority zAuthority = new ZAuthority();
+            zAuthority.setFid(fid);
+            zAuthority.setUid(uid);
+            zAuthority.setAuthority(zfcode.get(0).getCode());
+            zAuthorityService.save(zAuthority);
+        }
+
+        if(authorityDto.getDelete() == 1){
+            //鏍规嵁妯″潡鐨勫悕瀛楁煡鍒版潈闄愮爜锛屽彧浼氭湁涓�涓粨鏋�
+            List<ZfCode> zfcode = zfCodeService.likeGetByName(modelName + "鍒犻櫎");
+            ZAuthority zAuthority = new ZAuthority();
+            zAuthority.setFid(fid);
+            zAuthority.setUid(uid);
+            zAuthority.setAuthority(zfcode.get(0).getCode());
+            zAuthorityService.save(zAuthority);
+        }
+
+        return AjaxResult.success();
+
+    }
+
 }

--
Gitblit v1.9.1