zhongrj
2024-02-05 e13f2a82be5ebad924dfc92eb03f0448697624c4
用户机构调整,用户删除警格绑定修改
5 files modified
86 ■■■■■ changed files
src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.xml 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/police/service/IPoliceAffairsGridService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/police/service/impl/PoliceAffairsGridServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 51 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.java
@@ -46,4 +46,11 @@
     * @return
     */
    List<PoliceAffairsGridEntity> spatialAnalysis(@Param("point") String point);
    /**
     * 查询对应的社区编号
     * @param userId
     * @return
     */
    List<String> getCommunityCodeListByUserId(@Param("userId") String userId);
}
src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.xml
@@ -31,7 +31,16 @@
    <!--判断该点在哪个警务网格-->
    <select id="spatialAnalysis" resultType="org.springblade.modules.police.entity.PoliceAffairsGridEntity">
        SELECT * FROM jczz_police_affairs_grid WHERE ST_Intersects(geom, ST_GeomFromText(${point},0))
        SELECT * FROM jczz_police_affairs_grid
        WHERE is_deleted = 0
        and ST_Intersects(geom, ST_GeomFromText(${point},0))
    </select>
    <!--判断该点在哪个警务网格-->
    <select id="getCommunityCodeListByUserId" resultType="java.lang.String">
        SELECT community_code FROM jczz_police_affairs_grid
        WHERE is_deleted = 0
        and police_user_id like concat('%',#{userId},'%')
    </select>
</mapper>
src/main/java/org/springblade/modules/police/service/IPoliceAffairsGridService.java
@@ -39,4 +39,11 @@
     * @return
     */
    List<PoliceAffairsGridEntity> spatialAnalysis(String point);
    /**
     * 查询对应的社区编号
     * @param userId
     * @return
     */
    List<String> getCommunityCodeListByUserId(Long userId);
}
src/main/java/org/springblade/modules/police/service/impl/PoliceAffairsGridServiceImpl.java
@@ -70,4 +70,14 @@
    public List<PoliceAffairsGridEntity> spatialAnalysis(String point) {
        return baseMapper.spatialAnalysis(point);
    }
    /**
     * 查询对应的社区编号
     * @param userId
     * @return
     */
    @Override
    public List<String> getCommunityCodeListByUserId(Long userId) {
        return baseMapper.getCommunityCodeListByUserId(userId.toString());
    }
}
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -148,8 +148,23 @@
     * @param user
     */
    public void updateGridBind(User user) {
        // 先删除原有区域的绑定
        QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("is_deleted",0).like("police_user_id",user.getId());
        // 删除掉之前已绑定的
        List<PoliceAffairsGridEntity> list = SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
        // 遍历
        for (PoliceAffairsGridEntity policeAffairsGridEntity : list) {
            List<String> arrayList = new ArrayList<>(Arrays.asList(policeAffairsGridEntity.getPoliceUserId().split(",")));
            arrayList.remove(user.getId().toString());
            // 更新
            policeAffairsGridEntity.setPoliceUserId(String.join(",",arrayList));
            // 解决更新报错
            policeAffairsGridEntity.setGeom(null);
            SpringUtil.getBean(IPoliceAffairsGridService.class).updateById(policeAffairsGridEntity);
        }
        // 判断机构类型
        List<String> deptIds = Arrays.asList(user.getDeptId().split(","));
        List<String> deptIds = new ArrayList<>(Arrays.asList(user.getDeptId().split(",")));
        for (String deptId : deptIds) {
            // 查询对应的机构
            Dept dept = SpringUtil.getBean(IDeptService.class).getById(deptId);
@@ -356,7 +371,39 @@
        if (Func.contains(Func.toLongArray(userIds), AuthUtil.getUserId())) {
            throw new ServiceException("不能删除本账号!");
        }
        return deleteLogic(Func.toLongList(userIds));
        boolean deleteLogic = deleteLogic(Func.toLongList(userIds));
        if (deleteLogic){
            // 删除警格绑定
            removePoliceGridBind(userIds);
        }
        return deleteLogic;
    }
    /**
     * 删除警格绑定
     * @param userIds
     */
    public void removePoliceGridBind(String userIds) {
        List<String> userIdList = new ArrayList<>(Arrays.asList(userIds.split(",")));
        for (String userId : userIdList) {
            // 先删除原有区域的绑定
            QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("is_deleted",0).like("police_user_id",userId);
            // 删除掉之前已绑定的
            List<PoliceAffairsGridEntity> list = SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
            if (list.size()>0) {
                // 遍历
                for (PoliceAffairsGridEntity policeAffairsGridEntity : list) {
                    List<String> arrayList = new ArrayList<>(Arrays.asList(policeAffairsGridEntity.getPoliceUserId().split(",")));
                    arrayList.remove(userId);
                    // 更新
                    policeAffairsGridEntity.setPoliceUserId(String.join(",", arrayList));
                    // 解决更新报错
                    policeAffairsGridEntity.setGeom(null);
                    SpringUtil.getBean(IPoliceAffairsGridService.class).updateById(policeAffairsGridEntity);
                }
            }
        }
    }
    @Override