diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 04db67cfed..05e5c200a4 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -10,6 +10,8 @@ package com.epmet.commons.tools.redis; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.utils.DateUtils; import org.apache.commons.lang3.StringUtils; @@ -763,4 +765,16 @@ public class RedisKeys { public static String getNextAreaCodeKey(String areaCode) { return rootPrefix.concat("areaCode:parentCode:").concat(areaCode); } + + /** + * desc:获取分布式锁key + * @param methodName + * @return + */ + public static String getLockByMethodName(String methodName) { + if (StringUtils.isBlank(methodName)){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); + } + return rootPrefix.concat("lock:").concat(methodName); + } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/AgencyInfoCache.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/AgencyInfoCache.java index 1a842d3987..c9e908d7da 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/AgencyInfoCache.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/AgencyInfoCache.java @@ -145,4 +145,26 @@ public class AgencyInfoCache implements Serializable { * 中心位置纬度 */ private String latitude; + + /** + * 组织编码 + */ + private String code; + + /** + * 负责人姓名 + */ + private String contacts; + + /** + * 联系电话 + */ + private String mobile; + + + //内部接口使用 + /** + * open:当前客户新增组织需要选择areaCode;closed: 无需选择区域编码 + */ + private String areaCodeSwitch; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index d001801185..316ab3e12f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -89,11 +89,9 @@ public class HouseController implements ResultDataResolver { //效验数据 ValidatorUtils.validateEntity(formDTO); - String queryScene = "house_manage"; - IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(null, formDTO.getBuildingId(), formDTO.getOwnerName(), formDTO.getOwnerPhone(), null, - null, queryScene, + null, formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getId(),formDTO.getLevel(),formDTO.getRentFlag()); return new Result().ok(icNeighborHoodResultDTO); @@ -129,9 +127,6 @@ public class HouseController implements ResultDataResolver { buildingName = null; } - // 使用场景:社区查询 - String scene = "community_search"; - LoginUserDetailsFormDTO form = new LoginUserDetailsFormDTO(); form.setUserId(loginUser.getUserId()); form.setClient(loginUser.getClient()); @@ -142,7 +137,7 @@ public class HouseController implements ResultDataResolver { null); IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(loginUserDetail.getAgencyId(),null, null, null, - neighborhoodName, buildingName, scene, formDTO.getPageNo(), formDTO.getPageSize(),null,null,null); + neighborhoodName, buildingName, formDTO.getPageNo(), formDTO.getPageSize(),null,null,null); return new Result().ok(icNeighborHoodResultDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index 686f2f01b8..6841d60ce3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -24,14 +24,6 @@ import java.util.Set; @Mapper public interface IcHouseDao extends BaseDao { -// IPage> searchHouseByPage(IPage page, -// @Param(Constants.WRAPPER) QueryWrapper neighborHoodEntityQueryWrapper, -// @Param("ew1") QueryWrapper buildingEntityQueryWrapper, -// @Param("ew2") QueryWrapper houseEntityQueryWrapper); -// IPage> searchHouseByPage(IPage page, -// @Param("neighbor") IcNeighborHoodEntity neighbor, -// @Param("building") IcBuildingEntity building, -// @Param("house") IcHouseEntity house); IPage> searchHouseByPage(IPage page, @Param("pids") String pids, @Param("buildingId") String buildingId, @@ -39,7 +31,6 @@ public interface IcHouseDao extends BaseDao { @Param("ownerPhone") String ownerPhone, @Param("neighborHoodName") String neighborHoodName, @Param("buildingName") String buildingName, - @Param("queryScene") String queryScene, @Param("id")String id, @Param("level")String level, @Param("rentFlag")String rentFlag); @@ -104,4 +95,4 @@ public interface IcHouseDao extends BaseDao { */ List getHousesNameByIdCards(@Param("idCards") List idCards); -} \ No newline at end of file +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/CustomerAgencyRedis.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/CustomerAgencyRedis.java index fb65a508d5..a4be0f2703 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/CustomerAgencyRedis.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/CustomerAgencyRedis.java @@ -20,7 +20,7 @@ package com.epmet.redis; import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; -import com.epmet.dto.CustomerAgencyDTO; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -44,19 +44,19 @@ public class CustomerAgencyRedis { redisUtils.delete(key); } - public void set(String agencyId, CustomerAgencyDTO value){ + public void set(String agencyId, AgencyInfoCache value){ String key = RedisKeys.getAgencyByIdKey(agencyId); Map map = BeanUtil.beanToMap(value, false, true); redisUtils.hMSet(key, map); } - public CustomerAgencyDTO get(String agencyId){ + public AgencyInfoCache get(String agencyId){ String key = RedisKeys.getAgencyByIdKey(agencyId); Map resultMap = redisUtils.hGetAll(key); if (CollectionUtils.isEmpty(resultMap)) { return null; } - return BeanUtil.mapToBean(resultMap, CustomerAgencyDTO.class, true); + return BeanUtil.mapToBean(resultMap, AgencyInfoCache.class, true); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index 59e7e3c973..04413fb902 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -60,7 +60,6 @@ public interface HouseService { String ownerPhone, String neighborHoodName, String buildingName, - String queryScene, Integer pageNo, Integer pageSize, String id, @@ -82,4 +81,4 @@ public interface HouseService { void allDelete(NeighborHoodManageDelFormDTO formDTO); HouseInfoDTO getHouseInfoDTO(String customerId,String houseId); -} \ No newline at end of file +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index 7a81bd7fd0..c07985347c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -20,6 +20,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -490,16 +491,53 @@ public class AgencyServiceImpl implements AgencyService { @Override public CustomerAgencyDTO getAgencyById(String agencyId) { - CustomerAgencyDTO cachedAgency = customerAgencyRedis.get(agencyId); - if (cachedAgency == null) { - cachedAgency = new CustomerAgencyDTO(); + AgencyInfoCache agencyInfoCache = customerAgencyRedis.get(agencyId); + if (agencyInfoCache == null) { + agencyInfoCache = new AgencyInfoCache(); CustomerAgencyEntity agencyEntity = customerAgencyDao.selectById(agencyId); if (agencyEntity != null) { - BeanUtils.copyProperties(agencyEntity, cachedAgency); + //设置行政地区编码全路径 + if (StringUtils.isNotBlank(agencyEntity.getAreaCode()) && StringUtils.isNotBlank(agencyEntity.getParentAreaCode())) { + agencyInfoCache.setAreaCodePath(queryAreaCodePath(agencyEntity)); + } + BeanUtils.copyProperties(agencyEntity, agencyInfoCache); } - customerAgencyRedis.set(agencyId, cachedAgency); + customerAgencyRedis.set(agencyId, agencyInfoCache); + } + CustomerAgencyDTO customerAgencyDTO=ConvertUtils.sourceToTarget(agencyInfoCache,CustomerAgencyDTO.class); + return customerAgencyDTO; + } + + private List queryAreaCodePath(CustomerAgencyEntity customerAgencyEntity) { + List areaCodePath = new ArrayList<>(); + switch (customerAgencyEntity.getLevel()) { + case Constant.COMMUNITY: + areaCodePath.add(customerAgencyEntity.getAreaCode().substring(NumConstant.ZERO, NumConstant.TWO)); + areaCodePath.add(customerAgencyEntity.getAreaCode().substring(NumConstant.ZERO, NumConstant.FOUR)); + areaCodePath.add(customerAgencyEntity.getAreaCode().substring(NumConstant.ZERO, NumConstant.SIX)); + areaCodePath.add(customerAgencyEntity.getParentAreaCode()); + areaCodePath.add(customerAgencyEntity.getAreaCode()); + break; + case Constant.STREET: + areaCodePath.add(customerAgencyEntity.getAreaCode().substring(NumConstant.ZERO, NumConstant.TWO)); + areaCodePath.add(customerAgencyEntity.getAreaCode().substring(NumConstant.ZERO, NumConstant.FOUR)); + areaCodePath.add(customerAgencyEntity.getParentAreaCode()); + areaCodePath.add(customerAgencyEntity.getAreaCode()); + break; + case Constant.DISTRICT: + areaCodePath.add(customerAgencyEntity.getAreaCode().substring(NumConstant.ZERO, NumConstant.TWO)); + areaCodePath.add(customerAgencyEntity.getParentAreaCode()); + areaCodePath.add(customerAgencyEntity.getAreaCode()); + break; + case Constant.CITY: + areaCodePath.add(customerAgencyEntity.getParentAreaCode()); + areaCodePath.add(customerAgencyEntity.getAreaCode()); + break; + case Constant.PROVINCE: + areaCodePath.add(customerAgencyEntity.getAreaCode()); + break; } - return cachedAgency; + return areaCodePath; } @Override diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index cbf82419a4..6d92f82fab 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; @@ -254,26 +255,22 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { String ownerPhone, String neighborHoodName, String buildingName, - String queryScene, Integer pageNo, Integer pageSize, String id,String level, String rentFlag) { IcNeighborHoodResultDTO result = new IcNeighborHoodResultDTO(); - //如果类型是house 查房屋 - //IPage> resultMap = searchHouse(buildingId, ownerName, ownerPhone, neighborHoodName, buildingName, pageNo, pageSize); - // 查询pids String pids = null; if (StringUtils.isNotBlank(ancestorAgencyId)) { pids = getPids(ancestorAgencyId); } - if (StringUtils.isNotBlank(level) && level.equals("agency")){ + if (StringUtils.isNotBlank(level) && OrgTypeEnum.AGENCY.getCode().equals(level)){ pids = getPids(ancestorAgencyId); } IPage page = new Page(pageNo,pageSize); - IPage> mapIPage = icHouseDao.searchHouseByPage(page, pids, buildingId, ownerName, ownerPhone, neighborHoodName, buildingName, queryScene,id,level,rentFlag); + IPage> mapIPage = icHouseDao.searchHouseByPage(page, pids, buildingId, ownerName, ownerPhone, neighborHoodName, buildingName,id,level,rentFlag); List> records = mapIPage.getRecords(); records.forEach(item->{ item.put("houseType", HouseTypeEnums.getTypeValue(item.get("houseTypeKey"))); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.16__add_index_ic_house.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.16__add_index_ic_house.sql new file mode 100644 index 0000000000..3bf8ad31eb --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.16__add_index_ic_house.sql @@ -0,0 +1,3 @@ +ALTER TABLE `epmet_gov_org`.`ic_house` + ADD INDEX `idx_building_id`(`BUILDING_ID`) USING BTREE COMMENT '楼宇id', + ADD INDEX `idx_hood_id`(`NEIGHBOR_HOOD_ID`) USING BTREE COMMENT '小区id'; diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index 19e99c1eff..b2b6b99b29 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -70,83 +70,6 @@ ) - - - @@ -454,6 +468,7 @@ WHERE ageGroup = #{code} + ORDER BY CONVERT(NAME USING GBK) ASC