springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.redis.RedisUtils; import com.panzhihua.sangeshenbian.model.dto.UserIdentityDTO; import com.panzhihua.sangeshenbian.model.entity.Banner; import com.panzhihua.sangeshenbian.model.entity.PartyMember; import com.panzhihua.sangeshenbian.model.entity.SystemUser; @@ -20,6 +22,8 @@ import com.panzhihua.sangeshenbian.warpper.IdentityInformation; import com.panzhihua.sangeshenbian.warpper.IdentityInformationVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; @@ -141,9 +145,21 @@ */ @GetMapping("/change-identity") @ApiOperation("切换身份") public R<?> changeIdentity(Integer identity) { @ApiImplicitParams({ @ApiImplicitParam(name = "identity", value = "身份 1:党员 2:管理员", required = true, dataType = "Integer"), @ApiImplicitParam(name = "levelId", value = "身份层级id,党员身份不传,管理员必传", required = true, dataType = "Integer") }) public R<?> changeIdentity(@RequestParam(value = "identity", required = true) Integer identity, @RequestParam(value = "levelId", required = false) Integer levelId) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); redisUtils.set("identity:" + loginUserInfo.getPhone(), identity); if (identity.equals(2) && Objects.isNull(levelId)) { throw new ServiceException("管理员所属层级id不能为空"); } // 存储到Redis redisUtils.set("identity:" + loginUserInfo.getPhone(), UserIdentityDTO.builder() .identity(identity) .levelId(levelId) .build()); return R.ok(); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java
@@ -1,11 +1,25 @@ package com.panzhihua.sangeshenbian.controller; import com.beust.jcommander.internal.Lists; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.entity.ComAct; import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.service.IdentityInformationService; import com.panzhihua.sangeshenbian.service.impl.StaticsService; import com.panzhihua.sangeshenbian.warpper.IdentityInformation; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; /** * @author mitao @@ -15,7 +29,15 @@ @RestController @RequestMapping("/applet/statics") @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class StaticsController { public class StaticsController extends BaseController { private final StaticsService staticsService; private final IdentityInformationService identityInformationService; @GetMapping("/region-tree") @ApiOperation("获取区域树") public R<List<RegionVO>> regionTree() { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); return R.ok(staticsService.queryRegionTree(loginUserInfo)); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AppComplaintRejectVO.java
@@ -20,7 +20,7 @@ public class AppComplaintRejectVO extends Complaint { @ApiModelProperty("申请时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; private Date applyTime; @ApiModelProperty("申请人") private String reporter; springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/IdentityInformationServiceImpl.java
@@ -116,6 +116,7 @@ PermissionsVO adminPermissions = new PermissionsVO(); adminPermissions.setIdentity(2); adminPermissions.setIsFrozen(systemUser.getStatus() == 2); adminPermissions.setLevelId(userLevel.getId()); if (accountLevel == 1) { adminPermissions.setName(String.format("%s%s", "攀枝花市", "管理员")); } else if (accountLevel == 2) { 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); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
@@ -602,7 +602,24 @@ </select> <select id="queryRejectRecordPage" resultType="com.panzhihua.sangeshenbian.model.vo.AppComplaintRejectVO"> SELECT scar.*, scar.id, scar.complaint_id, scar.auditor_id, scar.audit_type, scar.audit_status, scar.reject_reason, scar.comment, scar.images, scar.videos, scar.create_time AS applyTime, scar.system_user_id, scar.reporter, scar.department_name, scar.department_id, scar.latest_flag, scar.report_type, scar.superior_id, scar.sort sc.serial_number, sc.latitude, sc.longitude,