Ver código fonte

场景列表平台数据隔离

lyhzzz 9 meses atrás
pai
commit
170457394f

+ 10 - 0
doc/update-1.5.0.sql

@@ -1,4 +1,10 @@
 
+ALTER TABLE `4dkankan_v4`.`jy_user`
+    ADD COLUMN `phone` varchar(255)  DEFAULT NULL COMMENT '手机号码' AFTER `status`;
+    ADD COLUMN `id_card` varchar(255)  DEFAULT NULL COMMENT '身份证号码' AFTER `phone`;
+    ADD COLUMN `is_jm` int NULL DEFAULT 1 COMMENT '0否,1是'  AFTER `id_card`;
+
+
 CREATE TABLE `4dkankan_v4`.`jy_platform`  (
                                            `id` int NOT NULL AUTO_INCREMENT,
                                            `platform_name` varchar(255) NULL COMMENT '平台名称',
@@ -40,4 +46,8 @@ CREATE TABLE `4dkankan_v4`.`jy_user_platform_user`  (
 
 
 
+INSERT INTO `sys_role` VALUES (48, '平台管理员', 'manage', 'A', 1, 1, '江门公安局', '2024-11-18 10:48:24', '2024-11-18 10:48:24');
+UPDATE sys_role set role_name = '管理员' where id= 45;
+
+
 INSERT INTO sys_role_menu (role_id,menu_id ) SELECT 48,menu_id FROM sys_role_menu WHERE role_id = 47;

+ 4 - 0
src/main/java/com/fdkankan/manage/service/IJyUserPlatformService.java

@@ -43,4 +43,8 @@ public interface IJyUserPlatformService extends IService<JyUserPlatform> {
     void updatePlatformId(Integer id, Integer toPlatformId);
 
     Integer addPlatformUser(List<HashMap<Integer, String>> excelRowList);
+
+    Integer getLoginPlatformId();
+
+    List<Integer> getUserIdsByFaltform(Integer loginPlatformId);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/service/IJyUserService.java

@@ -33,4 +33,6 @@ public interface IJyUserService extends IService<JyUser> {
     List<JyUser> getLikeByNickName(String nickName);
 
     List<JyUser> getLikeByRyNo(String ryNo);
+
+    List<JyUser> getListByJm();
 }

+ 15 - 1
src/main/java/com/fdkankan/manage/service/impl/JyUserPlatformServiceImpl.java

@@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -126,7 +127,8 @@ public class JyUserPlatformServiceImpl extends ServiceImpl<IJyUserPlatformMapper
         this.update(wrapper);
     }
 
-    private Integer getLoginPlatformId(){
+    @Override
+    public Integer getLoginPlatformId(){
         try {
             return   Integer.valueOf(StpUtil.getExtra("platformId").toString());
         }catch (Exception e){
@@ -185,4 +187,16 @@ public class JyUserPlatformServiceImpl extends ServiceImpl<IJyUserPlatformMapper
         }
         return count;
     }
+
+    @Override
+    public List<Integer> getUserIdsByFaltform(Integer loginPlatformId) {
+        LambdaQueryWrapper<JyUserPlatform> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(JyUserPlatform::getPlatformId,loginPlatformId);
+        List<JyUserPlatform> list = this.list(wrapper);
+        if(list.isEmpty()){
+            return new ArrayList<>();
+        }
+        return list.stream().map(JyUserPlatform::getJyUserId).collect(Collectors.toList());
+
+    }
 }

+ 7 - 0
src/main/java/com/fdkankan/manage/service/impl/JyUserServiceImpl.java

@@ -105,4 +105,11 @@ public class JyUserServiceImpl extends ServiceImpl<IJyUserMapper, JyUser> implem
         wrapper.like(JyUser::getRyNo,ryNo);
         return this.list(wrapper);
     }
+
+    @Override
+    public List<JyUser> getListByJm() {
+        LambdaQueryWrapper<JyUser> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(JyUser::getIsJm,1);
+        return this.list(wrapper);
+    }
 }

+ 22 - 2
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -90,6 +90,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     ISysUserService sysUserService;
     @Autowired
     IJySceneAuthService jySceneAuthService;
+    @Autowired
+    IJyUserPlatformService jyUserPlatformService;
+    @Autowired
+    IUserService userService;
 
 
     @Override
@@ -303,7 +307,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }
         SysUser byId = sysUserService.getById(Long.valueOf(StpUtil.getLoginId().toString()));
         JyUser jyUser = jyUserService.getBySysId(byId.getId());
-        if(byId.getRoleId() != 1L && byId.getRoleId() !=45L){
+        if(byId.getRoleId() != 1L && byId.getRoleId() != 45L && byId.getRoleId() != 48L){
             if(jyUser == null){
                 throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             }
@@ -314,6 +318,22 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 param.setAuthNumList(numList);
             }
         }
+        if(byId.getRoleId() == 45L || byId.getRoleId() == 48L){
+            //获取本平台所有用户
+            Integer loginPlatformId = jyUserPlatformService.getLoginPlatformId();
+            if(loginPlatformId != null){
+               List<Integer> jyUserIds =  jyUserPlatformService.getUserIdsByFaltform(loginPlatformId);
+                List<JyUser> jyUsers = jyUserService.listByIds(jyUserIds);
+                List<Long> userIds = jyUsers.stream().map(JyUser::getUserId).collect(Collectors.toList());
+                param.setUserIds(userIds);
+            }else if(byId.getRoleId() == 45L){
+                //获取江门平台用户
+                List<JyUser> jyUsers =  jyUserService.getListByJm();
+                List<Long> userIds = jyUsers.stream().map(JyUser::getUserId).collect(Collectors.toList());
+                param.setUserIds(userIds);
+            }
+
+        }
         Page<SceneVo> page = null;
         Set<Long> userIds = null;
         HashMap<Long,JyUser> userMap = new HashMap<>();
@@ -343,7 +363,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                     record.setIsCopy(true);
                 }
             }
-            if( byId.getRoleId() == 1L || byId.getRoleId() == 45L || jyUser.getUserId().equals(record.getUserId())){
+            if( byId.getRoleId() == 1L || byId.getRoleId() == 45L || byId.getRoleId() == 48L || jyUser.getUserId().equals(record.getUserId())){
                 record.setIsAuth(true);
                 record.setEditAuth(1);
                 record.setIsAuthOther(true);

+ 2 - 0
src/main/java/com/fdkankan/manage/vo/request/SceneParam.java

@@ -22,4 +22,6 @@ public class SceneParam extends RequestBase {
     private String ryId;
     private String ryNo;
     private Integer authType;
+
+    private List<Long> userIds =  new ArrayList<>();
 }

+ 8 - 0
src/main/resources/mapper/manage/SceneProMapper.xml

@@ -89,6 +89,13 @@
         <if test="param.companyId !=null ">
             and co.id = #{param.companyId}
         </if>
+        <if test="param.userIds !=null and param.userIds.size&gt;0 ">
+            and  u.id in
+            <foreach item="userId" collection="param.userIds" open="(" separator="," close=")">
+                #{userId}
+            </foreach>
+        </if>
+
         <if test="param.userId !=null and param.authNumList.size&lt;= 0 ">
             and u.id = #{param.userId}
         </if>
@@ -100,5 +107,6 @@
                 </foreach>
             )
         </if>
+
     </sql>
 </mapper>