3
0
Fork 0

## Feat - 收益区域接口

This commit is contained in:
sangelxiu1 2025-07-10 13:53:03 +08:00 committed by cabbage
parent fc91a6a650
commit c6c30fd96d
6 changed files with 105 additions and 0 deletions

View File

@ -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<Tree<String>> test1 = iCuMemberRetailRegionService.getRegionTreeList(RetailRegionTreeQueryConstants.CITY);
List<Tree<String>> test2 = iCuMemberRetailRegionService.getRegionTreeList(RetailRegionTreeQueryConstants.COUNTY);
log.info("test1: {}", test1);
log.info("test2: {}", test2);
return AjaxResult.success();
}
// /**
// * 获取会员收益区域

View File

@ -99,4 +99,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
@Param("county") Integer county,
@Param("systemType") Integer systemType);
List<BdArea> getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId);
}

View File

@ -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<CuMemberRetailReg
*/
void handleRepeatRegion();
/**
* 查询可选收益区域树结构 入参常量为 RetailRegionTreeQueryConstants
* @param queryType
* @return
*/
List<Tree<String>> getRegionTreeList(String queryType);
}

View File

@ -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<CuMemberRetailR
}
}
@Override
public List<Tree<String>> getRegionTreeList(String queryType) {
List<BdArea> 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());
});
}
}

View File

@ -239,6 +239,50 @@
group by cmrr.province, cmrr.city, cmrr.county
having count(1) > 1
</select>
<select id="getRegionTreeList" resultType="com.hzs.common.domain.system.base.BdArea">
SELECT
pr.*,
nvl( region.num, 0 )
FROM
(
SELECT
ba.PK_ID,
ba.PARENT,
ba.NAME,
ba.BIND_NUM
FROM
bd_area ba
WHERE
ba.del_flag = 0
AND ba.pk_country = 1
AND ba.ENABLE_STATE = 0
) pr
LEFT JOIN (
SELECT
<if test="queryType != null and queryType == 'city'">
city id,
</if>
<if test="queryType != null and queryType == 'county'">
county id,
</if>
count( 1 ) num
FROM cu_member_retail_region
WHERE
del_flag = 0
AND PK_MEMBER != #{userId}
GROUP BY
<if test="queryType != null and queryType == 'city'">
city
</if>
<if test="queryType != null and queryType == 'county'">
county
</if>
) region ON pr.PK_ID = region.id
WHERE
nvl( region.num, 0 ) <![CDATA[ < ]]> pr.BIND_NUM
ORDER BY
nvl( region.num, 0 ) DESC
</select>
<!-- 更新非最新区域其它数据 -->
<update id="updateRepeatDate">

View File

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