From 27302dd37301a941c7f065756d19495bcce9c1c1 Mon Sep 17 00:00:00 2001 From: wangxiaopeng <807933401@qq.com> Date: Thu, 28 Mar 2024 17:27:53 +0800 Subject: [PATCH] getBigRegionIdByAreaId --- .../cool/store/dao/RegionAreaConfigDao.java | 7 ++++ .../store/mapper/RegionAreaConfigMapper.java | 2 ++ .../mapper/RegionAreaConfigMapper.xml | 6 ++++ .../com/cool/store/service/RegionService.java | 7 ++++ .../store/service/impl/RegionServiceImpl.java | 35 +++++++++++++++++++ 5 files changed, 57 insertions(+) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionAreaConfigDao.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionAreaConfigDao.java index e6bfd4021..be97e1a12 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionAreaConfigDao.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionAreaConfigDao.java @@ -41,4 +41,11 @@ public class RegionAreaConfigDao { return regionAreaConfigMapper.listAreaByRegionId(regionId); } + public Long getByWantShopAreaId(Long wantShopAreaId){ + if (wantShopAreaId == null) { + return 0L; + } + return regionAreaConfigMapper.getByWantShopAreaId(wantShopAreaId); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionAreaConfigMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionAreaConfigMapper.java index 5940216e2..9c2cee905 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionAreaConfigMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionAreaConfigMapper.java @@ -45,4 +45,6 @@ public interface RegionAreaConfigMapper { List listAreaByRegionId(@Param("regionId") Long regionId); + Long getByWantShopAreaId(@Param("wantShopAreaId") Long wantShopAreaId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionAreaConfigMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionAreaConfigMapper.xml index 25016daa3..af198b222 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/RegionAreaConfigMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/RegionAreaConfigMapper.xml @@ -170,4 +170,10 @@ from xfsg_region_area_config where region_id = #{regionId} + + \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java index a432a33b5..065daba3e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java @@ -6,4 +6,11 @@ public interface RegionService { RegionPathNameVO getAllRegionName(Long regionId); + /** + * 根据意向区域找大区id + * @param wantShopAreaId + * @return + */ + Long getBigRegionIdByAreaId(Long wantShopAreaId); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java index ff33b84fe..4271ba9b0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java @@ -3,6 +3,8 @@ package com.cool.store.service.impl; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; +import com.cool.store.dao.RegionAreaConfigDao; +import com.cool.store.dao.RegionDao; import com.cool.store.entity.RegionDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; @@ -36,6 +38,11 @@ public class RegionServiceImpl implements RegionService { private RedisUtilPool redisUtilPool; @Resource private RegionMapper regionMapper; + @Resource + private RegionDao regionDao; + @Resource + private RegionAreaConfigDao regionAreaConfigDao; + @Override public RegionPathNameVO getAllRegionName(Long regionId) { @@ -79,4 +86,32 @@ public class RegionServiceImpl implements RegionService { redisUtilPool.setString(redisConstantUtil.getRegionNameListKey(String.valueOf(regionId)), JSONUtil.toJsonStr(regionPathNameVO), 5 * 60); return regionPathNameVO; } + + /** + * 根据意向区域找大区id + * @param wantShopAreaId + * @return + */ + @Override + public Long getBigRegionIdByAreaId(Long wantShopAreaId) { + // 根据意向省市获取战区id + Long warRegionId = regionAreaConfigDao.getByWantShopAreaId(wantShopAreaId); + if(Objects.isNull(warRegionId)){ + return 0L; + } + RegionDO warRegion = regionMapper.getByRegionId(warRegionId); + if(warRegion == null){ + throw new ServiceException(ErrorCodeEnum.REGION_NOT_EXIST); + } + // 根据战区id获取大区id + String warRegionPath = warRegion.getRegionPath().substring(1, warRegion.getRegionPath().length() - 1); + String[] warRegionIdArr = warRegionPath.split(Constants.FORWARD_SLASH); + List regionDOList = regionMapper.getRegionByRegionIds(Arrays.asList(warRegionIdArr)); + for (RegionDO regionDO : regionDOList){ + if(regionDO.getRegionType().equals("大区")){ + return regionDO.getId(); + } + } + return 0L; + } }