Przeglądaj źródła

合作伙伴看到所有申报和消杀+手动/删除添加权限

qzyReal 2 lat temu
rodzic
commit
0c7b7248e6

+ 34 - 0
sp-server/src/main/java/com/pj/project/tb_costomer/TbCostomerController.java

@@ -187,4 +187,38 @@ public class TbCostomerController {
         return AjaxJson.getSuccessData(list);
     }
 
+    /**
+     * 添加权限
+     * @param customerTypeStr
+     * @param perStr
+     * @return
+     */
+    @RequestMapping("addCustomerMenu")
+    public AjaxJson addCustomerPermission(@RequestParam String customerTypeStr,@RequestParam String perStr){
+        tbCostomerService.addMenu(customerTypeStr,perStr);
+        return AjaxJson.getSuccess();
+    }
+
+    /**
+     * 删除权限
+     * @param customerTypeStr
+     * @param perStr
+     * @return
+     */
+    @RequestMapping("delCustomerMenu")
+    public AjaxJson delCustomerMenu(@RequestParam String customerTypeStr,@RequestParam String perStr){
+        tbCostomerService.delCustomerMenu(customerTypeStr,perStr);
+        return AjaxJson.getSuccess();
+    }
+
+    /**
+     * 添加管理员权限
+     * @param perStr
+     * @return
+     */
+    @RequestMapping("delAdminMenu")
+    public AjaxJson delAdminMenu(@RequestParam String perStr){
+        tbCostomerService.delAdminMenu(perStr);
+        return AjaxJson.getSuccess();
+    }
 }

+ 2 - 0
sp-server/src/main/java/com/pj/project/tb_costomer/TbCostomerMapper.java

@@ -55,4 +55,6 @@ public interface TbCostomerMapper extends BaseMapper <TbCostomer> {
 
 
     List<String> findByMessageTypeOpenid(@Param("businessType") String businessType, @Param("messageType") String messageType);
+
+    void addAdminPermission(@Param("perCode")String perCode);
 }

+ 3 - 0
sp-server/src/main/java/com/pj/project/tb_costomer/TbCostomerMapper.xml

@@ -8,6 +8,9 @@
 		tb_costomer (id, name, phone, duty_people, address_ids, address_str, business_licence, status, creare_time, judge_status, judge_time, judge_content) 
 		values (#{id}, #{name}, #{phone}, #{dutyPeople}, #{addressIds}, #{addressStr}, #{businessLicence}, #{status}, #{creareTime}, #{judgeStatus}, #{judgeTime}, #{judgeContent}) 
 	</insert>
+    <insert id="addAdminPermission">
+        INSERT INTO `tb_permission`( `permission_code`) VALUES (#{perCode});
+    </insert>
 
     <!-- 删 -->
     <delete id="delete">

+ 96 - 15
sp-server/src/main/java/com/pj/project/tb_costomer/TbCostomerService.java

@@ -63,12 +63,12 @@ public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer>
                 .setName("管理员").setType("customerAdmin");
         spRoleMapper.add(spRole);
         long roleId = SP.publicMapper.getPrimarykey();
-        List<String>codeList=new ArrayList<>();
+        List<String> codeList = new ArrayList<>();
         for (String type : StrUtil.splitTrim(t.getType(), ",")) {
-           SoMap perSoMap = SoMap.getRequestSoMap();
+            SoMap perSoMap = SoMap.getRequestSoMap();
             perSoMap.put("type", type);
-           List<TbInitPermission>permissions= tbInitPermissionService.getList(perSoMap);
-           codeList.addAll(permissions.stream().map(TbInitPermission::getCode).distinct().collect(Collectors.toList()));
+            List<TbInitPermission> permissions = tbInitPermissionService.getList(perSoMap);
+            codeList.addAll(permissions.stream().map(TbInitPermission::getCode).distinct().collect(Collectors.toList()));
         }
         spRolePermissionMapper.saveRolePer(roleId, codeList);
         return 1;
@@ -83,7 +83,7 @@ public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer>
         return StrUtil.equals(db.getId(), t.getId());
     }
 
-   public TbCostomer findByName(String name){
+    public TbCostomer findByName(String name) {
         QueryWrapper<TbCostomer> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("name", name);
         return this.getOne(queryWrapper);
@@ -97,7 +97,7 @@ public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer>
         SoMap soMap = SoMap.getRequestSoMap();
         soMap.put("customerId", id);
         List<SpRole> roles = spRoleMapper.getList(soMap);
-        if (roles.isEmpty()){
+        if (roles.isEmpty()) {
             return 1;
         }
         spRoleMapper.removeByCustomerId(id);
@@ -118,7 +118,6 @@ public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer>
     }
 
 
-
     /**
      * 查集合 - 根据条件(参数为空时代表忽略指定条件)
      */
@@ -130,22 +129,22 @@ public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer>
 
     public int updateStatus(String id, int value) {
         int line = SP.publicMapper.updateColumnById(TbCostomer.TABLE_NAME, "status", value, id);
-        int status=value==1?1:2;
-        spAdminMapper.updateCustomerAdmin(id,status);
+        int status = value == 1 ? 1 : 2;
+        spAdminMapper.updateCustomerAdmin(id, status);
         return line;
     }
 
-    public void judge(String id, int status,String judgeContent) {
-        TbCostomer costomer=  this.getById(id);
+    public void judge(String id, int status, String judgeContent) {
+        TbCostomer costomer = this.getById(id);
         costomer.setJudgeContent(judgeContent)
-            .setJudgeStatus(status).setJudgeTime(new Date());
+                .setJudgeStatus(status).setJudgeTime(new Date());
         this.updateById(costomer);
 
         //审核不通过禁用用户
         int isBan = status == 3 ? 2 : 1;//账号状态(1=正常, 2=禁用)
         List<SpAdmin> spAdminList = spAdminMapper.getByCostomerId(costomer.getId());
         for (SpAdmin spAdmin : spAdminList) {
-            if(spAdmin != null) {
+            if (spAdmin != null) {
                 spAdmin.setStatus(isBan);
                 spAdminMapper.updateCustomerAdmin(costomer.getId(), isBan);
             }
@@ -161,7 +160,7 @@ public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer>
         spAdmin.setId(0L);
         spAdmin.setCustomerId(costomer.getId());
         spAdmin.setName(costomer.getDutyPeople());
-        spAdmin.setPassword(costomer.getPhone().substring(costomer.getPhone().length()-6));
+        spAdmin.setPassword(costomer.getPhone().substring(costomer.getPhone().length() - 6));
         SoMap so = new SoMap();
         so.put("customerId", costomer.getId());
         List<SpRole> roleList = spRoleMapper.getList(so);
@@ -173,7 +172,89 @@ public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer>
     }
 
     public List<String> findByMessageTypeOpenid(String businessType, String messageType) {
-        return  tbCostomerMapper.findByMessageTypeOpenid(businessType, messageType);
+        return tbCostomerMapper.findByMessageTypeOpenid(businessType, messageType);
+
+    }
+
+    /**
+     * 添加客户权限
+     *
+     * @param perStr
+     */
+    public void addMenu(String customerTypeStr, String perStr) {
+        List<Integer> customerTypeList = StrUtil.splitTrim(customerTypeStr, ",").stream().map(Integer::new).collect(Collectors.toList());
+        List<TbCostomer> costomerList = this.findCustomerList(customerTypeList);
+        List<String> customerIdList = costomerList.stream().map(TbCostomer::getId).collect(Collectors.toList());
+        List<SpAdmin> spAdminList = spAdminService.findByCustomerIdList(customerIdList);
+        List<String> roleList = spAdminList.stream().map(SpAdmin::getRoleId).collect(Collectors.toList());
+        //权限列表
+        List<String> list = StrUtil.splitTrim(perStr, ",");
+        //初始化新增客户时的权限
+        list.forEach(code -> {
+            List<TbInitPermission> initPermissions = tbInitPermissionService.findByCode(code);
+            if (initPermissions.isEmpty()) {
+                TbInitPermission tbInitPermission = new TbInitPermission();
+                tbInitPermission.setCode(code).setType(TbCostomer.CustomerEnum.BUSINESS_TYPE.getType());
+                initPermissions.add(tbInitPermission);
+            } else {
+                initPermissions.forEach(tbInitPermission -> {
+                    tbInitPermission.setCode(tbInitPermission.getCode() + "," + code);
+                });
+            }
+            tbInitPermissionService.saveOrUpdateBatch(initPermissions);
+        });
+        //增加旧客户的权限
+        roleList.forEach(roleId -> {
+            spRolePermissionMapper.saveRolePer(Long.valueOf(roleId), list);
+        });
+
+    }
+
+    /**
+     * 获取客户列表
+     *
+     * @return
+     */
+    private List<TbCostomer> findCustomerList(List<Integer> list) {
+        QueryWrapper<TbCostomer> ew = new QueryWrapper<>();
+        ew.lambda().in(TbCostomer::getType, list);
+        return list(ew);
+    }
+
+    /**
+     * 删除对应客户、合作伙伴的权限
+     *
+     * @param customerTypeStr
+     * @param perStr
+     */
+    public void delCustomerMenu(String customerTypeStr, String perStr) {
+        List<Integer> customerTypeList = StrUtil.splitTrim(customerTypeStr, ",").stream().map(Integer::new).collect(Collectors.toList());
+        List<TbCostomer> costomerList = this.findCustomerList(customerTypeList);
+        List<String> customerIdList = costomerList.stream().map(TbCostomer::getId).collect(Collectors.toList());
+        List<SpAdmin> spAdminList = spAdminService.findByCustomerIdList(customerIdList);
+        List<String> roleList = spAdminList.stream().map(SpAdmin::getRoleId).collect(Collectors.toList());
+        //权限列表
+        List<String> list = StrUtil.splitTrim(perStr, ",");
+        //删除角色-权限表数据
+        spRolePermissionMapper.deleteByRoleAndCode(roleList, list);
+        //删除tb_init_permission
+        List<TbInitPermission> initPermissionList = tbInitPermissionService.findByCode(list);
+        initPermissionList.forEach(tbInitPermission -> {
+            String type = tbInitPermission.getType();
+            List<String> typeList = StrUtil.splitTrim(type, ",");
+            typeList.removeIf(typeStr -> customerTypeList.contains(Integer.valueOf(typeStr)));
+            if (typeList.isEmpty()) {
+                tbInitPermissionService.removeById(tbInitPermission.getId());
+            } else {
+                tbInitPermission.setType(String.join(",", typeList));
+                tbInitPermissionService.updateById(tbInitPermission);
+            }
+        });
+    }
 
+    public void delAdminMenu(String perStr) {
+        StrUtil.splitTrim(perStr, ",").forEach(perCode -> {
+            tbCostomerMapper.addAdminPermission(perCode);
+        });
     }
 }

+ 14 - 1
sp-server/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionService.java

@@ -2,6 +2,9 @@ package com.pj.project.tb_init_permission;
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -13,7 +16,7 @@ import com.pj.utils.sg.*;
  * @author qzy 
  */
 @Service
-public class TbInitPermissionService {
+public class TbInitPermissionService extends ServiceImpl<TbInitPermissionMapper, TbInitPermission> implements IService<TbInitPermission> {
 
 	/** 底层 Mapper 对象 */
 	@Autowired
@@ -45,4 +48,14 @@ public class TbInitPermissionService {
 	}
 	
 
+    public List<TbInitPermission> findByCode(String code) {
+        QueryWrapper<TbInitPermission> ew=new QueryWrapper<>();
+        ew.lambda().eq(TbInitPermission::getCode,code);
+        return list(ew);
+    }
+    public List<TbInitPermission> findByCode(List<String> codeList) {
+        QueryWrapper<TbInitPermission>ew=new QueryWrapper<>();
+        ew.lambda().in(TbInitPermission::getCode,codeList);
+        return list(ew);
+    }
 }

+ 3 - 1
sp-server/src/main/java/com/pj/project4sp/admin/SpAdminMapper.java

@@ -81,5 +81,7 @@ public interface SpAdminMapper {
 
 	void updateAdmin(SpAdmin db);
 
-    int updateNickname(@Param("id")String id, @Param("nickname")String nickname);
+    int updateNickname(@Param("id") String id, @Param("nickname") String nickname);
+
+    List<SpAdmin> findByCustomerIdList(List<String> list);
 }

+ 6 - 0
sp-server/src/main/java/com/pj/project4sp/admin/SpAdminMapper.xml

@@ -127,6 +127,12 @@
         <include refid="select_sql"></include>
         where customer_id = #{customerId}
     </select>
+    <select id="findByCustomerIdList" resultType="com.pj.project4sp.admin.SpAdmin">
+        select * from sp_admin where  customer_id in
+        <foreach collection="list" open="(" close=")" separator="," item="customerId">
+            #{customerId}
+        </foreach>
+    </select>
 
 
 </mapper>

+ 3 - 0
sp-server/src/main/java/com/pj/project4sp/admin/SpAdminService.java

@@ -83,6 +83,9 @@ public class SpAdminService {
     public List<SpAdmin> findByCustomerId(String businessCustomerId) {
         return spAdminMapper.findByCustomerId(businessCustomerId);
     }
+    public List<SpAdmin> findByCustomerIdList(List<String>customerIdList) {
+        return spAdminMapper.findByCustomerIdList(customerIdList);
+    }
 
     public void editCustomerAdmin(SpAdmin spAdmin) {
         SpAdmin db = spAdminMapper.getById(spAdmin.getId());

+ 3 - 1
sp-server/src/main/java/com/pj/project4sp/role4permission/SpRolePermissionMapper.java

@@ -42,5 +42,7 @@ public interface SpRolePermissionMapper {
 
 	void saveRolePer(@Param("roleId") long roleId,@Param("list") List<String> list);
 
-	void removeByRoleIds(List<Long> roleIds);
+    void removeByRoleIds(List<Long> roleIds);
+
+    void deleteByRoleAndCode(@Param("roleList")List<String> roleList, @Param("codeList")List<String> list);
 }

+ 12 - 0
sp-server/src/main/java/com/pj/project4sp/role4permission/SpRolePermissionMapper.xml

@@ -28,6 +28,18 @@
             #{roleId}
         </foreach>
     </delete>
+    <delete id="deleteByRoleAndCode">
+        delete from sp_role_permission
+        where role_id in
+        <foreach collection="roleList" separator="," item="roleId" open="(" close=")">
+            #{roleId}
+        </foreach>
+        and permission_code in
+        <foreach collection="codeList" separator="," item="code" open="(" close=")">
+            #{code}
+        </foreach>
+
+    </delete>
 
     <!-- 指定roleId的所有权限码   -->
 	<select id="getPcodeByRoleId" resultType="java.lang.String">