From 9fecaec17392db458339040dacf63f40f6f5125d Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期二, 13 五月 2025 15:55:41 +0800 Subject: [PATCH] 分析统计修改 定时评价修改 --- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 101 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java index 2ec8758..91575e4 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java @@ -1,13 +1,26 @@ package com.panzhihua.sangeshenbian.service.impl; +import com.beust.jcommander.internal.Lists; +import com.panzhihua.common.exceptions.ServiceException; +import com.panzhihua.common.model.vos.LoginUserInfoVO; +import com.panzhihua.sangeshenbian.dao.SystemUserMapper; +import com.panzhihua.sangeshenbian.model.entity.ComAct; +import com.panzhihua.sangeshenbian.model.entity.ComStreet; +import com.panzhihua.sangeshenbian.model.entity.SystemUserLevel; +import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.service.IBcRegionService; import com.panzhihua.sangeshenbian.service.IComActService; import com.panzhihua.sangeshenbian.service.IComStreetService; import com.panzhihua.sangeshenbian.service.IComplaintService; import com.panzhihua.sangeshenbian.service.IdentityInformationService; +import com.panzhihua.sangeshenbian.warpper.IdentityInformation; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** * @author mitao @@ -21,5 +34,93 @@ private final IBcRegionService bcRegionService; private final IComStreetService comStreetService; private final IComActService comActService; + private final SystemUserMapper systemUserMapper; + + public List<RegionVO> queryRegionTree(LoginUserInfoVO loginUserInfo) { + IdentityInformation currentIdentityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo); + if (!Integer.valueOf(2).equals(currentIdentityInformation.getIdentity())) { + throw new ServiceException("当前账号无权限"); + } + + SystemUserLevel userLevel = currentIdentityInformation.getSystemUserLevel(); + Integer level = userLevel.getLevel(); + + switch (level) { + case 1: + return buildCityLevelTree("510400"); + case 2: + return buildDistrictLevelTree(userLevel.getDistrictsCode()); + case 3: + return buildStreetLevelTree(userLevel.getStreetId()); + case 4: + return buildCommunityLevelTree(userLevel.getCommunityId()); + default: + throw new ServiceException("不支持的用户等级"); + } + } + /** + * 构建市级区域树结构(市 -> 区/县 -> 街道 -> 社区) + * @param cityCode 市级行政区划代码,例如 "510400" + * @return 区域树列表,每个区包含下属街道和社区 + */ + private List<RegionVO> buildCityLevelTree(String cityCode) { + List<RegionVO> districts = systemUserMapper.getRegion(cityCode); + districts.forEach(district -> { + district.setTier(2); + List<RegionVO> streets = systemUserMapper.getStreet(district.getId()); + district.setChildren(streets); + streets.forEach(street -> { + street.setTier(3); + List<RegionVO> communities = systemUserMapper.getCommunity(street.getId()); + communities.forEach(c -> c.setTier(4)); + street.setChildren(communities); + }); + }); + return districts; + } + /** + * 构建区级区域树结构(区/县 -> 街道 -> 社区) + * @param districtCode 区级行政区划代码 + * @return 街道列表,每个街道包含其下属社区 + */ + private List<RegionVO> buildDistrictLevelTree(String districtCode) { + List<RegionVO> streets = systemUserMapper.getStreet(districtCode); + streets.forEach(street -> { + street.setTier(2); + List<RegionVO> communities = systemUserMapper.getCommunity(street.getId()); + communities.forEach(c -> c.setTier(4)); + street.setChildren(communities); + }); + return streets; + } + /** + * 构建街道级区域树结构(街道 -> 社区) + * @param streetId 街道ID + * @return 包含一个街道及其下属社区的列表 + */ + private List<RegionVO> buildStreetLevelTree(String streetId) { + ComStreet street = comStreetService.getById(streetId); + RegionVO streetVO = new RegionVO(); + streetVO.setId(String.valueOf(street.getStreetId())); + streetVO.setName(street.getName()); + streetVO.setTier(3); + List<RegionVO> communities = systemUserMapper.getCommunity(streetId); + communities.forEach(c -> c.setTier(4)); + streetVO.setChildren(communities); + return Collections.singletonList(streetVO); + } + /** + * 构建社区级区域(只返回当前社区信息) + * @param communityId 社区ID + * @return 仅包含一个社区节点的列表 + */ + private List<RegionVO> buildCommunityLevelTree(Long communityId) { + ComAct community = comActService.getById(communityId); + RegionVO regionVO = new RegionVO(); + regionVO.setId(String.valueOf(community.getCommunityId())); + regionVO.setName(community.getName()); + regionVO.setTier(4); + return Collections.singletonList(regionVO); + } } -- Gitblit v1.7.1