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"; + +}