From 12e56687f0311f02bc59a08a45e218b731c267e6 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 10 Jul 2025 13:53:03 +0800 Subject: [PATCH] =?UTF-8?q?##=20Feat=20-=20=E6=94=B6=E7=9B=8A=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/RetailMemberController.java | 10 +++++ .../mapper/CuMemberRetailRegionMapper.java | 2 + .../service/ICuMemberRetailRegionService.java | 7 +++ .../impl/CuMemberRetailRegionServiceImpl.java | 25 +++++++++++ .../member/CuMemberRetailRegionMapper.xml | 44 +++++++++++++++++++ .../RetailRegionTreeQueryConstants.java | 17 +++++++ 6 files changed, 105 insertions(+) create mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailRegionTreeQueryConstants.java diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java index 748e53fa..2c2712f2 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java @@ -9,6 +9,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.common.core.annotation.RepeatSubmitSimple; +import com.hzs.common.core.constant.RetailRegionTreeQueryConstants; import com.hzs.common.core.constant.SysConstants; import com.hzs.common.core.constant.msg.AreaConstants; import com.hzs.common.core.enums.EGrade; @@ -75,6 +76,15 @@ public class RetailMemberController extends BaseController { } return AjaxResult.success(retailMemberInfoVO); } + @GetMapping("/test") + public AjaxResult test() { + List> test1 = iCuMemberRetailRegionService.getRegionTreeList(RetailRegionTreeQueryConstants.CITY); + List> test2 = iCuMemberRetailRegionService.getRegionTreeList(RetailRegionTreeQueryConstants.COUNTY); + log.info("test1: {}", test1); + log.info("test2: {}", test2); + return AjaxResult.success(); + } + // /** // * 获取会员收益区域 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java index 40362621..7e2350a7 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java @@ -99,4 +99,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java index 16e6bfc2..cc4c3306 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java @@ -1,5 +1,6 @@ package com.hzs.retail.member.service; +import cn.hutool.core.lang.tree.Tree; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; @@ -84,4 +85,10 @@ public interface ICuMemberRetailRegionService extends IService> getRegionTreeList(String queryType); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java index 21489c9f..e70e8403 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java @@ -1,15 +1,20 @@ package com.hzs.retail.member.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.lang.tree.TreeNodeConfig; +import cn.hutool.core.lang.tree.TreeUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.core.constant.*; import com.hzs.common.core.enums.*; import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; +import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.system.base.BdArea; +import com.hzs.common.security.utils.SecurityUtils; import com.hzs.retail.member.mapper.CuMemberRetailRegionMapper; import com.hzs.retail.member.param.RetailMemberRegionParam; import com.hzs.retail.member.service.ICuMemberRetailAchieveService; @@ -20,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -204,4 +210,23 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl> getRegionTreeList(String queryType) { + List areaList = baseMapper.getRegionTreeList(queryType, SecurityUtils.getUserId()); + if (CollectionUtil.isEmpty(areaList)) { + return null; + } + TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); + treeNodeConfig.setDeep(3); + if(RetailRegionTreeQueryConstants.CITY.equals(queryType)){ + treeNodeConfig.setDeep(2); + } + return TreeUtil.build(areaList, "0", treeNodeConfig, + (treeNode, tree) -> { + tree.setId(treeNode.getPkId().toString()); + tree.setParentId(treeNode.getParent().toString()); + tree.setName(treeNode.getName()); + }); + } + } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml index 4dd286d4..a9902db3 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml @@ -239,6 +239,50 @@ group by cmrr.province, cmrr.city, cmrr.county having count(1) > 1 + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailRegionTreeQueryConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailRegionTreeQueryConstants.java new file mode 100644 index 00000000..9a4736a5 --- /dev/null +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailRegionTreeQueryConstants.java @@ -0,0 +1,17 @@ +package com.hzs.common.core.constant; + +/** + * 用户绑定收益区域查询类型常量 + */ +public class RetailRegionTreeQueryConstants { + + /** + * 市级 + */ + public static final String CITY = "city"; + /** + * 区级 + */ + public static final String COUNTY = "county"; + +}