diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java index c539e172..aebc1300 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java @@ -1058,6 +1058,8 @@ public class CuMemberController extends BaseController { if (cuMember == null) { return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_NOT_EXITS)); } + GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); + cuMember.setPkSettleGradeValue(gradeDTO.getGradeValue()); return AjaxResult.success(BeanUtil.copyProperties(cuMember, CuMemberExt.class)); } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java index 3692cef8..db949508 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java @@ -22,6 +22,7 @@ import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.member.handleBusiness.CuHandleBusiness; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.system.base.BdCountry; import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.security.utils.SecurityUtils; @@ -40,6 +41,7 @@ import com.hzs.member.handlebusiness.vo.BusinessMemberVO; import com.hzs.member.handlebusiness.vo.BusinessTypeValueVO; import com.hzs.member.handlebusiness.vo.HandleBusinessShowVO; import com.hzs.member.handlebusiness.vo.HandleBusinessVO; +import com.hzs.retail.member.service.ICuMemberRetailRegionService; import com.hzs.system.base.ICountryServiceApi; import com.hzs.system.config.IAwardsServiceApi; import com.hzs.system.config.IGradeServiceApi; @@ -93,6 +95,8 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl 0) { - throw new ServiceException("已存在结算等级为公司的用户,不允许重复添加!"); - } - } else if (EGrade.S_VIP.getValue() == gradesMap.get(updateGradeId).getGradeValue()) { - // 2025年6月20日 新等级 分公司验省唯一 - int count = cuMemberService.validateBranchOfficeCount(businessMemberVO.getAreaId(), businessMemberVO.getPkMember()); - if (count > 0) { - throw new ServiceException("已存在结算绑定省的分公司用户,不允许重复添加!"); - } - } +// if (EGrade.COMPANY.getValue() == gradesMap.get(updateGradeId).getGradeValue()) { +// // 2025年6月20日 新等级 公司验全唯一 +// int count = cuMemberService.validateCompanyCount(); +// if (count > 0) { +// throw new ServiceException("已存在结算等级为公司的用户,不允许重复添加!"); +// } +// } else if (EGrade.S_VIP.getValue() == gradesMap.get(updateGradeId).getGradeValue()) { +// // 2025年6月20日 新等级 分公司验省唯一 +// int count = cuMemberService.validateBranchOfficeCount(businessMemberVO.getAreaId(), businessMemberVO.getPkMember()); +// if (count > 0) { +// throw new ServiceException("已存在结算绑定省的分公司用户,不允许重复添加!"); +// } +// } // 记录升级历史 cuMemberLevel = CuMemberLevel.builder() .pkMember(businessMemberVO.getPkMember()) @@ -773,6 +777,17 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl delWrapper = new LambdaQueryWrapper<>(); + delWrapper.eq(CuMemberRetailRegion::getPkMember, businessMemberVO.getPkMember()); + cuMemberRetailRegionService.remove(delWrapper); + } cuMemberLevel.setPkCountry(handleBusinessVO.getPkCountry()); cuMemberLevel.setPkCreator(loginUser.getUserId()); cuMemberLevelList.add(cuMemberLevel); 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..228540a8 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/controller/manage/CuMemberRetailRegionController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java index 385b91f0..5cbe2cc2 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/manage/CuMemberRetailRegionController.java @@ -1,6 +1,7 @@ package com.hzs.retail.member.controller.manage; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.common.core.annotation.Log; @@ -152,6 +153,9 @@ public class CuMemberRetailRegionController extends BaseController { return AjaxResult.error(ConfigMsgConstants.MEMBER_RETAIL_REGION_REPEAT); } // 校验区域是否被占用 + if(ObjectUtil.isEmpty(mrrExt.getCounty())){ + mrrExt.setCounty(-1); + } int cuMemberRetailRegion = cuMemberRetailRegionService.count(Wrappers.lambdaQuery() .eq(CuMemberRetailRegion::getProvince, mrrExt.getProvince()) .eq(CuMemberRetailRegion::getCity, mrrExt.getCity()) 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/param/RetailMemberRegionParam.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java index a4b04788..3af37f76 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/param/RetailMemberRegionParam.java @@ -30,7 +30,7 @@ public class RetailMemberRegionParam implements Serializable { /** * 县 */ - @NotNull(message = "请选择收益区域") +// @NotNull(message = "请选择收益区域") private Integer county; /** 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/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index c8257b3a..b9d2940f 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -856,7 +856,7 @@ - pk_settle_grade = #{value}, pk_area_id = #{businessMemberList[${index}].areaId} + pk_settle_grade = #{value} 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"; + +} diff --git a/sql/2025年7月10日_收益区域_市级可空.sql b/sql/2025年7月10日_收益区域_市级可空.sql new file mode 100644 index 00000000..15b4caec --- /dev/null +++ b/sql/2025年7月10日_收益区域_市级可空.sql @@ -0,0 +1,2 @@ +ALTER TABLE "CU_MEMBER_RETAIL_REGION" + MODIFY ("COUNTY" NULL)