From a3251c2650bfffa5a7027c874ea5cbc45b378414 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 22 四月 2024 09:18:14 +0800
Subject: [PATCH] 营销员管理-角色权限

---
 meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java |  181 +++++++++++++++++++++++++++++++--------------
 1 files changed, 125 insertions(+), 56 deletions(-)

diff --git a/meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java b/meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java
index 09e0afd..d2b55af 100644
--- a/meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java
+++ b/meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java
@@ -28,8 +28,10 @@
 import com.sinata.modular.member.model.MemUserRelation;
 import com.sinata.modular.member.service.IMemUserRelationService;
 import com.sinata.modular.member.service.IMemUserService;
+import com.sinata.modular.system.model.Role;
 import com.sinata.modular.system.model.SystemNotice;
 import com.sinata.modular.system.model.TCityRegion;
+import com.sinata.modular.system.service.IRoleService;
 import com.sinata.modular.system.service.ISystemNoticeService;
 import com.sinata.modular.system.service.ITCityRegionService;
 import lombok.extern.slf4j.Slf4j;
@@ -73,12 +75,20 @@
     @Autowired
     private ISystemNoticeService systemNoticeService;
 
+    @Autowired
+    private IRoleService roleService;
+
     /**
      * 跳转到会员用户信息首页
      */
     @RequestMapping("")
     public String index(Model model) {
-        return PREFIX + "memUserSales.html";
+        boolean admin = ShiroKit.isAdmin();
+        if (admin) {
+            return PREFIX + "memUserSales.html";
+        } else {
+            return PREFIX + "memUserSalesAuth.html";
+        }
     }
 
     @ResponseBody
@@ -132,10 +142,15 @@
         try {
             // 【城市管理员】数据查询
             ShiroUser shiroUser = ShiroKit.getUser();
-            if (shiroUser.getRoleList().contains(EnumCityRole.PROVINCE_ROLE.index)) {
+            List<Integer> roleList = shiroUser.getRoleList();
+            List<Integer> cityRoleList = roleService.selectList(
+                            new EntityWrapper<Role>().in("id", roleList)).stream().map(Role::getCityRole)
+                    .collect(
+                            Collectors.toList());
+            if (cityRoleList.contains(EnumCityRole.PROVINCE_ROLE.index)) {
                 // 省级城市管理员
                 wrapper.like("o.city_code", shiroUser.getCityCode().substring(0, 2), SqlLike.RIGHT);
-            } else if (shiroUser.getRoleList().contains(EnumCityRole.CITY_ROLE.index)) {
+            } else if (cityRoleList.contains(EnumCityRole.CITY_ROLE.index)) {
                 // 市级城市管理员
                 wrapper.like("o.city_code", shiroUser.getCityCode().substring(0, 4), SqlLike.RIGHT);
             }
@@ -259,65 +274,117 @@
     @ResponseBody
     @RequestMapping(value = "/export")
     public void export(String beginTime, String endTime, String nickName, String phone, String showId, Integer isLock, Integer isLeaveOffice, Integer memberGradeId, HttpServletResponse response) {
+        boolean admin = ShiroKit.isAdmin();
         List<Map<String, Object>> list = this.wrapperList(null, beginTime, endTime, nickName, phone, showId, isLock, isLeaveOffice, memberGradeId);
 
         // 表格数据【封装】
         List<List<Object>> dataList = new ArrayList<>();
-
-        // 头部列【封装】
-        List<Object> shellList = new ArrayList<>();
-        shellList.add("工号");
-        shellList.add("提交时间");
-        shellList.add("推荐人工号");
-        shellList.add("推荐人");
-        shellList.add("推荐人所在城市");
-        shellList.add("姓名");
-        shellList.add("性别");
-        shellList.add("生日");
-        shellList.add("联系电话");
-        shellList.add("证件类型");
-        shellList.add("证件号码");
-        shellList.add("银行卡号");
-        shellList.add("品行分");
-        shellList.add("审核状态");
-        shellList.add("佣金等级");
-        shellList.add("积分");
-        shellList.add("入司时间");
-        shellList.add("状态");
-        shellList.add("城市合伙人工号");
-        shellList.add("城市合伙人团队");
-        shellList.add("市场总监工号");
-        shellList.add("市场总监团队");
-        dataList.add(shellList);
-
-        // 详细数据列【封装】
-        for (Map<String, Object> map : list) {
-            shellList = new ArrayList<>();
-            shellList.add(map.get("show_id"));
-            shellList.add(map.get("apply_time"));
-            shellList.add(map.get("equityUserShowId"));
-            shellList.add(map.get("equityUserRealName"));
-            shellList.add(map.get("equityUserCityCode"));
-            shellList.add(map.get("real_name"));
-            shellList.add(map.get("sex"));
-            shellList.add(map.get("birthday"));
-            shellList.add(map.get("phone"));
-            shellList.add(Convert.toInt(map.get("card_type")) == 0 ? "身份证" : "护照");
-            shellList.add(map.get("id_card"));
-            shellList.add(map.get("bank_number"));
-            shellList.add(map.get("credit_score"));
-            shellList.add(EnumAuditState.getMarkByIndex(Convert.toInt(map.get("audit_state"))));
-            shellList.add(EnumMemberGrade.getAliasByIndex(Convert.toInt(map.get("member_grade_id"))));
-            shellList.add(map.get("integral"));
-            shellList.add(map.get("audit_time"));
-            Integer isLeaveOfficeNum = Convert.toInt(map.get("is_leave_office"));
-            shellList.add(isLeaveOfficeNum == 0 ? "在职" : isLeaveOfficeNum == 1 ? "离职" : "-");
-            shellList.add(map.get("v4ShowId"));
-            shellList.add(map.get("v4Team"));
-            shellList.add(map.get("v5ShowId"));
-            shellList.add(map.get("v5Team"));
+        if (admin) {
+            // 头部列【封装】
+            List<Object> shellList = new ArrayList<>();
+            shellList.add("工号");
+            shellList.add("提交时间");
+            shellList.add("推荐人工号");
+            shellList.add("推荐人");
+            shellList.add("推荐人所在城市");
+            shellList.add("姓名");
+            shellList.add("性别");
+            shellList.add("生日");
+            shellList.add("联系电话");
+            shellList.add("证件类型");
+            shellList.add("证件号码");
+            shellList.add("银行卡号");
+            shellList.add("品行分");
+            shellList.add("审核状态");
+            shellList.add("佣金等级");
+            shellList.add("积分");
+            shellList.add("入司时间");
+            shellList.add("状态");
+            shellList.add("城市合伙人工号");
+            shellList.add("城市合伙人团队");
+            shellList.add("市场总监工号");
+            shellList.add("市场总监团队");
             dataList.add(shellList);
+
+            // 详细数据列【封装】
+            for (Map<String, Object> map : list) {
+                shellList = new ArrayList<>();
+                shellList.add(map.get("show_id"));
+                shellList.add(map.get("apply_time"));
+                shellList.add(map.get("equityUserShowId"));
+                shellList.add(map.get("equityUserRealName"));
+                shellList.add(map.get("equityUserCityCode"));
+                shellList.add(map.get("real_name"));
+                shellList.add(map.get("sex"));
+                shellList.add(map.get("birthday"));
+                shellList.add(map.get("phone"));
+                shellList.add(Convert.toInt(map.get("card_type")) == 0 ? "身份证" : "护照");
+                shellList.add(map.get("id_card"));
+                shellList.add(map.get("bank_number"));
+                shellList.add(map.get("credit_score"));
+                shellList.add(EnumAuditState.getMarkByIndex(Convert.toInt(map.get("audit_state"))));
+                shellList.add(EnumMemberGrade.getAliasByIndex(Convert.toInt(map.get("member_grade_id"))));
+                shellList.add(map.get("integral"));
+                shellList.add(map.get("audit_time"));
+                Integer isLeaveOfficeNum = Convert.toInt(map.get("is_leave_office"));
+                shellList.add(isLeaveOfficeNum == 0 ? "在职" : isLeaveOfficeNum == 1 ? "离职" : "-");
+                shellList.add(map.get("v4ShowId"));
+                shellList.add(map.get("v4Team"));
+                shellList.add(map.get("v5ShowId"));
+                shellList.add(map.get("v5Team"));
+                dataList.add(shellList);
+            }
+        } else {
+            // 头部列【封装】
+            List<Object> shellList = new ArrayList<>();
+            shellList.add("工号");
+            shellList.add("提交时间");
+            shellList.add("推荐人工号");
+            shellList.add("推荐人");
+            shellList.add("推荐人所在城市");
+            shellList.add("姓名");
+            shellList.add("性别");
+            shellList.add("生日");
+            shellList.add("证件类型");
+            shellList.add("品行分");
+            shellList.add("审核状态");
+            shellList.add("佣金等级");
+            shellList.add("积分");
+            shellList.add("入司时间");
+            shellList.add("状态");
+            shellList.add("城市合伙人工号");
+            shellList.add("城市合伙人团队");
+            shellList.add("市场总监工号");
+            shellList.add("市场总监团队");
+            dataList.add(shellList);
+
+            // 详细数据列【封装】
+            for (Map<String, Object> map : list) {
+                shellList = new ArrayList<>();
+                shellList.add(map.get("show_id"));
+                shellList.add(map.get("apply_time"));
+                shellList.add(map.get("equityUserShowId"));
+                shellList.add(map.get("equityUserRealName"));
+                shellList.add(map.get("equityUserCityCode"));
+                shellList.add(map.get("real_name"));
+                shellList.add(map.get("sex"));
+                shellList.add(map.get("birthday"));
+                shellList.add(Convert.toInt(map.get("card_type")) == 0 ? "身份证" : "护照");
+                shellList.add(map.get("credit_score"));
+                shellList.add(EnumAuditState.getMarkByIndex(Convert.toInt(map.get("audit_state"))));
+                shellList.add(EnumMemberGrade.getAliasByIndex(Convert.toInt(map.get("member_grade_id"))));
+                shellList.add(map.get("integral"));
+                shellList.add(map.get("audit_time"));
+                Integer isLeaveOfficeNum = Convert.toInt(map.get("is_leave_office"));
+                shellList.add(isLeaveOfficeNum == 0 ? "在职" : isLeaveOfficeNum == 1 ? "离职" : "-");
+                shellList.add(map.get("v4ShowId"));
+                shellList.add(map.get("v4Team"));
+                shellList.add(map.get("v5ShowId"));
+                shellList.add(map.get("v5Team"));
+                dataList.add(shellList);
+            }
         }
+
         try {
             String title = "营销员";
             // 调用工具类进行导出
@@ -478,6 +545,8 @@
      */
     @RequestMapping(value = "/detail/{memUserId}")
     public Object detail(@PathVariable("memUserId") Integer memUserId, Model model) {
+        boolean admin = ShiroKit.isAdmin();
+        model.addAttribute("isAdmin", admin);
         // 个人信息
         MemUser memUser = memUserService.selectById(memUserId);
         if (memUser != null) {

--
Gitblit v1.7.1