Jelajahi Sumber

fix 修改新增权限逻辑

tjf 3 tahun lalu
induk
melakukan
794cfa87af

+ 121 - 68
boman-web-core/src/main/java/com/boman/web/core/utils/CzrkUtils.java

@@ -2,12 +2,11 @@ package com.boman.web.core.utils;
 
 import com.boman.common.core.exception.BaseException;
 import com.boman.common.core.utils.StringUtils;
-import com.boman.domain.Czrk;
-import com.boman.domain.SysDept;
-import com.boman.domain.SysRole;
-import com.boman.domain.SysUser;
+import com.boman.domain.*;
+
 import java.util.List;
 import java.util.Map;
+
 import static com.boman.common.core.utils.StringUtils.isNotEmpty;
 import static com.boman.common.core.utils.obj.ObjectUtils.isEmpty;
 import static com.google.common.base.Strings.nullToEmpty;
@@ -56,59 +55,60 @@ public class CzrkUtils {
     /**
      * 查询使用
      * 根据当前登录人判断该用户是什么角色权限字符,来进行判断该用户能查询到什么层级的数据
+     *
      * @param czrk
      * @param sysUser
-     * @param type 查询常住还是户籍
+     * @param type    查询常住还是户籍
      */
-    public static void setQueryRole(Czrk czrk, SysUser sysUser,String type) {
+    public static void setQueryRole(Czrk czrk, SysUser sysUser, String type) {
         SysDept dept = sysUser.getDept();
-        if (dept == null){
+        if (dept == null) {
             throw new BaseException("对不起,未获相关部门信息");
         }
         // 从部门中获取行政区域规划id
         String areaId = dept.getAreaId();
-        if (StringUtils.isBlank(areaId)){
-            throw new BaseException(dept.getDeptName() + "当前未获取到部门下行政区域id" );
+        if (StringUtils.isBlank(areaId)) {
+            throw new BaseException(dept.getDeptName() + "当前未获取到部门下行政区域id");
         }
         //判断该用户是什么角色权限字符
         List<SysRole> roles = sysUser.getRoles();
-        if (roles != null && roles.size() > 0){
+        if (roles != null && roles.size() > 0) {
             for (SysRole role : roles) {
-                if (role != null){
-                     String roleKey = role.getRoleKey();
-                     if (StringUtils.isNotBlank(roleKey)){
-                         if ("province".equals(roleKey)){
-                             if (type.equals(Czrk.HJ)){
-                                 czrk.setProvinceId(areaId);
-                             }else {
-                                 czrk.setProvinceIdXjd(areaId);
-                             }
-                         }else if ("city".equals(roleKey)){
-                             if (type.equals(Czrk.HJ)){
-                                 czrk.setCityId(areaId);
-                             }else {
-                                 czrk.setCityIdXjd(areaId);
-                             }
-                         }else if ("region".equals(roleKey)) {
-                             if (type.equals(Czrk.HJ)){
-                                 czrk.setRegionId(areaId);
-                             }else {
-                                 czrk.setRegionIdXjd(areaId);
-                             }
-                         }else if ("villageTowns".equals(roleKey)) {
-                             if (type.equals(Czrk.HJ)){
-                                 czrk.setVillageTownsId(areaId);
-                             }else {
-                                 czrk.setVillageTownsXjd(areaId);
-                             }
-                         }else if ("village".equals(roleKey)) {
-                             if (type.equals(Czrk.HJ)){
-                                 czrk.setVillageId(areaId);
-                             }else {
-                                 czrk.setVillageIdXjd(areaId);
-                             }
-                         }
-                     }
+                if (role != null) {
+                    String roleKey = role.getRoleKey();
+                    if (StringUtils.isNotBlank(roleKey)) {
+                        if ("province".equals(roleKey)) {
+                            if (type.equals(Czrk.HJ)) {
+                                czrk.setProvinceId(areaId);
+                            } else {
+                                czrk.setProvinceIdXjd(areaId);
+                            }
+                        } else if ("city".equals(roleKey)) {
+                            if (type.equals(Czrk.HJ)) {
+                                czrk.setCityId(areaId);
+                            } else {
+                                czrk.setCityIdXjd(areaId);
+                            }
+                        } else if ("region".equals(roleKey)) {
+                            if (type.equals(Czrk.HJ)) {
+                                czrk.setRegionId(areaId);
+                            } else {
+                                czrk.setRegionIdXjd(areaId);
+                            }
+                        } else if ("villageTowns".equals(roleKey)) {
+                            if (type.equals(Czrk.HJ)) {
+                                czrk.setVillageTownsId(areaId);
+                            } else {
+                                czrk.setVillageTownsIdXjd(areaId);
+                            }
+                        } else if ("village".equals(roleKey)) {
+                            if (type.equals(Czrk.HJ)) {
+                                czrk.setVillageId(areaId);
+                            } else {
+                                czrk.setVillageIdXjd(areaId);
+                            }
+                        }
+                    }
                 }
             }
         }
@@ -117,6 +117,7 @@ public class CzrkUtils {
 
     /**
      * 新增用户的时候,判断登录用户是否能新增
+     *
      * @param czrk
      * @param sysUser
      */
@@ -124,47 +125,99 @@ public class CzrkUtils {
         boolean flag = true;
         //从部门中获取行政区域规划id
         SysDept dept = sysUser.getDept();
-        if (dept == null){
+        if (dept == null) {
             throw new BaseException("对不起,未获相关部门信息");
         }
         String areaId = dept.getAreaId();
-        if (StringUtils.isBlank(areaId)){
-            throw new BaseException(dept.getDeptName() + "当前未获取到部门下行政区域id" );
+        if (StringUtils.isBlank(areaId)) {
+            throw new BaseException(dept.getDeptName() + "当前未获取到部门下行政区域id");
         }
         //判断该用户是什么角色权限字符
         List<SysRole> roles = sysUser.getRoles();
-        if (roles != null && roles.size() > 0){
+        if (roles != null && roles.size() > 0) {
             for (SysRole role : roles) {
-                if (role != null){
+                if (role != null) {
                     String roleKey = role.getRoleKey();
-                    if (StringUtils.isNotBlank(roleKey)){
-                        if ("province".equals(roleKey)){
+                    if (StringUtils.isNotBlank(roleKey)) {
+                        if ("province".equals(roleKey)) {
                             String provinceId = czrk.getProvinceId();
-                            if (StringUtils.isNotBlank(provinceId) && provinceId.equals(areaId)){
-                                 flag = false;
+                            //获取居住地址
+                            if (StringUtils.isNotBlank(provinceId) && provinceId.equals(areaId)) {
+                                flag = false;
+                                break;
+                            } else {
+                                List<CzrkJzdz> czrkJzdzList = czrk.getCzrkJzdzList();
+                                for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+                                    String provinceIdJzdz = czrkJzdz.getProvinceId();
+                                    if (StringUtils.isNotBlank(provinceIdJzdz) && provinceIdJzdz.equals(areaId)){
+                                        flag = false;
+                                        break;
+                                    }
+                                }
                             }
-                        }else if ("city".equals(roleKey)){
+                        } else if ("city".equals(roleKey)) {
                             String cityId = czrk.getCityId();
-                            if (StringUtils.isNotBlank(cityId) && cityId.equals(areaId)){
-                                  flag = false;
+                            if (StringUtils.isNotBlank(cityId) && cityId.equals(areaId)) {
+                                flag = false;
+                                break;
+                            }else {
+                                List<CzrkJzdz> czrkJzdzList = czrk.getCzrkJzdzList();
+                                for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+                                    String cityJzdz = czrkJzdz.getCityId();
+                                    if (StringUtils.isNotBlank(cityJzdz) && cityJzdz.equals(areaId)){
+                                        flag = false;
+                                        break;
+                                    }
+                                }
                             }
-                        }else if ("region".equals(roleKey)) {
-                            String cityId = czrk.getCityId();
-                            if (StringUtils.isNotBlank(cityId) && cityId.equals(areaId)){
-                                  flag = false;
+                        } else if ("region".equals(roleKey)) {
+                            String regionId = czrk.getRegionId();
+                            if (StringUtils.isNotBlank(regionId) && regionId.equals(areaId)) {
+                                flag = false;
+                                break;
+                            }else {
+                                List<CzrkJzdz> czrkJzdzList = czrk.getCzrkJzdzList();
+                                for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+                                    String regoinJzdz = czrkJzdz.getRegionId();
+                                    if (StringUtils.isNotBlank(regoinJzdz) && regoinJzdz.equals(areaId)){
+                                        flag = false;
+                                        break;
+                                    }
+                                }
                             }
-                        }else if ("villageTowns".equals(roleKey)) {
+                        } else if ("villageTowns".equals(roleKey)) {
                             String villageTownsId = czrk.getVillageTownsId();
-                            if (StringUtils.isNotBlank(villageTownsId) && villageTownsId.equals(areaId)){
-                                 flag = false;
+                            if (StringUtils.isNotBlank(villageTownsId) && villageTownsId.equals(areaId)) {
+                                flag = false;
+                                break;
+                            }else {
+                                List<CzrkJzdz> czrkJzdzList = czrk.getCzrkJzdzList();
+                                for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+                                    String townIdJzdz = czrkJzdz.getTownId();
+                                    if (StringUtils.isNotBlank(townIdJzdz) && townIdJzdz.equals(areaId)){
+                                        flag = false;
+                                        break;
+                                    }
+                                }
                             }
-                        }else if ("village".equals(roleKey)) {
+                        } else if ("village".equals(roleKey)) {
                             String village = czrk.getVillage();
-                            if (StringUtils.isNotBlank(village) && village.equals(areaId)){
-                                 flag = false;
+                            if (StringUtils.isNotBlank(village) && village.equals(areaId)) {
+                                flag = false;
+                                break;
+                            }else {
+                                List<CzrkJzdz> czrkJzdzList = czrk.getCzrkJzdzList();
+                                for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+                                    String villageIdJzdz = czrkJzdz.getVillageId();
+                                    if (StringUtils.isNotBlank(villageIdJzdz) && villageIdJzdz.equals(areaId)){
+                                        flag = false;
+                                        break;
+                                    }
+                                }
                             }
-                        }else if ("admin".equals(roleKey)) {
+                        } else if ("admin".equals(roleKey)) {
                             flag = false;
+                            break;
                         }
                     }
                 }

+ 6 - 0
boman-web-core/src/main/resources/mapper/CzrkChangeMapper.xml

@@ -105,6 +105,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isConfirm != null">is_confirm,</if>
             <if test="confirmInfoUser != null and confirmInfoUser != ''">confirm_info_user,</if>
             <if test="confirmInfoUserTime != null ">confirm_info_user_time,</if>
+            <if test="changUser != null ">chang_user,</if>
+            <if test="changNikeUser != null ">chang_nike_user,</if>
+            <if test="changUserTime != null ">chang_user_time,</if>
             <if test="createBy != null">create_by,</if>
             <if test="updateBy != null">update_by,</if>
             <if test="isDel != null and isDel != ''">is_del,</if>
@@ -147,6 +150,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isConfirm != null">#{isConfirm},</if>
             <if test="confirmInfoUser != null and confirmInfoUser != ''">#{confirmInfoUser},</if>
             <if test="confirmInfoUserTime != null ">#{confirmInfoUserTime},</if>
+            <if test="changUser != null ">#{changUser},</if>
+            <if test="changNikeUser != null ">#{changNikeUser},</if>
+            <if test="changUserTime != null ">#{changUserTime},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="updateBy != null">#{updateBy},</if>
             <if test="isDel != null and isDel != ''">#{isDel},</if>