Browse Source

为超级管理员开通模块及权限

cs 2 years ago
parent
commit
9504305659

+ 75 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -17,6 +17,7 @@ import com.management.platform.util.*;
 import com.qq.weixin.mp.aes.AesException;
 import com.qq.weixin.mp.aes.WXBizMsgCrypt;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Select;
 import org.json.XML;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +37,7 @@ import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @RestController
 @RequestMapping("/wxcorp")
@@ -1489,6 +1491,8 @@ public class WeiXinCorpController {
                         newCompany.setStaffCountMax(wxOrder.getUserCount());
                         companyMapper.updateById(newCompany);
                         System.out.println("版本变更成功,到期时间更新成功。");
+                        //开通模块和权限
+                        rootRole(company.getId());
                     }else {
                         System.out.println("未查询到该新建公司有支付订单");
                     }
@@ -3263,6 +3267,8 @@ public class WeiXinCorpController {
             }
             companyMapper.updateById(newCompany);
             System.out.println("已成功变更版本,版本号为:"+edition_id);
+            //开通模块和权限
+            rootRole(wxCorpInfo.getCompanyId());
         }else {
             System.out.println("++++++++++++++++++++++"+"版本变更失败!"+"++++++++++++++++++++++++");
         }
@@ -3282,4 +3288,73 @@ public class WeiXinCorpController {
         }
         return view;
     }
+
+    //为超级管理员角色赋予模块权限
+    private void rootRole (Integer companyId){
+        System.err.println("##############################为超级管理员开通模块及权限");
+        Company company = companyMapper.selectById(companyId);
+        SysRole sysRole = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", companyId).eq("rolename", "超级管理员"));
+        QueryWrapper<SysModule> sysModuleQueryWrapper = new QueryWrapper<>();
+        //项目协作平台
+        if (company.getPackageProject().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_project", 1);
+        }
+        //OA平台;请假,出差等
+        if (company.getPackageOa().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_oa", 1);
+        }
+        //费用报销
+        if (company.getPackageExpense().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_expense", 1);
+        }
+        //客户管理
+        if (company.getPackageCustomer().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_customer", 1);
+        }
+        //工程专业
+        if (company.getPackageEngineering().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_engineering", 1);
+        }
+        //供应商模块
+        if (company.getPackageProvider().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_provider", 1);
+        }
+        List<SysModule> sysModules = sysModuleMapper.selectList(sysModuleQueryWrapper);
+        //过滤掉已开通的模块
+        List<SysRoleModule> modular = sysRoleModuleMapper.selectList(new QueryWrapper<SysRoleModule>().eq("role_id", sysRole.getId()));
+        List<Integer> modularCollect = modular.stream().map((m) -> m.getModuleId()).distinct().collect(Collectors.toList());
+        List<SysModule> collect = sysModules.stream().filter((s) -> {
+            Boolean flag = true;
+            for (Integer integer : modularCollect) {
+                if (s.getId().equals(integer)){
+                    flag = false;
+                }
+            }
+            return flag;
+        }).collect(Collectors.toList());
+        //进行模块权限添加
+        ArrayList<SysRoleModule> sysRoleModules = new ArrayList<>();
+        for (SysModule sysModule : collect) {
+            SysRoleModule sysRoleModule = new SysRoleModule();
+            sysRoleModule.setRoleId(sysRole.getId());
+            sysRoleModule.setModuleId(sysModule.getId());
+            sysRoleModules.add(sysRoleModule);
+        }
+        sysRoleModuleService.saveBatch(sysRoleModules);
+        System.out.println("########################################");
+        System.err.println(company.getCompanyName() + "已开通模块;" + sysRoleModules.toString());
+        List<Integer> sysModulesId = collect.stream().map((s) -> s.getId()).collect(Collectors.toList());
+        List<SysFunction> sysFunctions = sysFunctionMapper.selectList(new QueryWrapper<SysFunction>().in("module_id", sysModulesId));
+        ArrayList<SysRoleFunction> sysRoleFunctions = new ArrayList<>();
+        for (SysFunction sysFunction : sysFunctions) {
+            SysRoleFunction sysRoleFunction = new SysRoleFunction();
+            sysRoleFunction.setRoleId(sysRole.getId());
+            sysRoleFunction.setFunctionId(sysFunction.getId());
+            sysRoleFunctions.add(sysRoleFunction);
+        }
+        sysRoleFunctionService.saveBatch(sysRoleFunctions);
+        System.out.println("########################################");
+        System.err.println(company.getCompanyName() + "已开通权限;" + sysRoleModules.toString());
+    }
+
 }