## Feat - 选择区域

首次选择区域(CU_MEMBER_RETAIL_REGION中没有memberid) 不验业绩 验盒数
                	雨汐 总2000 小400
                	其他 BD_GRADE -> BOX_TOTAL,BOX_SMALL_TOTAL
This commit is contained in:
sangelxiu1 2025-08-01 15:34:53 +08:00
parent a29fdfd624
commit 4175a05b58
1 changed files with 39 additions and 14 deletions

View File

@ -8,6 +8,7 @@ import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hzs.common.core.annotation.RepeatSubmitSimple;
import com.hzs.common.core.constant.RetailConstants;
@ -25,6 +26,7 @@ import com.hzs.common.domain.member.ext.CuMemberExt;
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.domain.system.config.BdGrade;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.retail.member.param.RetailMemberRegionParam;
@ -33,9 +35,12 @@ import com.hzs.retail.member.service.ICuMemberRetailRegionService;
import com.hzs.retail.member.service.IMemberRetailService;
import com.hzs.retail.member.vo.*;
import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.GradeDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@ -64,6 +69,8 @@ public class RetailMemberController extends BaseController {
@DubboReference
IAreaServiceApi iAreaServiceApi;
@DubboReference
private IGradeServiceApi gradeServiceApi;
/**
* 获取登录会员信息
@ -99,6 +106,11 @@ public class RetailMemberController extends BaseController {
Integer pkCountry = SecurityUtils.getPkCountry();
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
LambdaQueryWrapper<CuMemberRetailRegion> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuMemberRetailRegion::getPkMember, userId);
int countNum = iCuMemberRetailRegionService.count(queryWrapper);
boolean isFirst = countNum > 0;
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
if (null != cuMemberRetailRegionExt) {
// 已自选区域或者已后台指定
@ -123,11 +135,11 @@ public class RetailMemberController extends BaseController {
.build());
}
if(EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()){
CuMemberExt memberExt = iCuMemberService.getMemberById(userId);
CuMemberRetailDataStatisticsResultVO result = retailAchieveService.getRetailDataStatisticsDetail(userId, pkCountry, systemType);
BigDecimal totalBoxNum = result.getTotalBoxNum();
BigDecimal smallBoxNum = result.getSmallRangeTotalBoxNum();
CuMemberExt memberExt = iCuMemberService.getMemberById(userId);
if(memberExt.getPkVertex().equals(RetailConstants.VERTEX_PK_ID)){
BigDecimal totalBoxNum = result.getTotalBoxNum();
BigDecimal smallBoxNum = result.getSmallRangeTotalBoxNum();
// BigDecimal bigBoxNum = result.getBigRangeTotalBoxNum();
if(ObjectUtil.isNotEmpty(totalBoxNum)
&& totalBoxNum.compareTo(RetailConstants.VERTEX_V5_TOTAL_BOX) >= 0
@ -138,17 +150,24 @@ public class RetailMemberController extends BaseController {
.build());
}
}else{
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
log.info("retailAchieve : {}", JSONUtil.toJsonStr(retailAchieve));
if(ObjectUtil.isNotEmpty(retailAchieve.getArealPv())
&& result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
&& result.getSmallRangeTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) >=0
GradeDTO grade = gradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), pkCountry).getData();
if(ObjectUtil.isNotEmpty(totalBoxNum)
&& totalBoxNum.compareTo(grade.getBoxTotal()) >= 0
&& smallBoxNum.compareTo(grade.getBoxSmallTotal()) >=0
){
return AjaxResult.success(RetailMemberRegionVO.builder()
.regionStatus(EYesNo.YES.getIntValue())
.build());
}
// if(ObjectUtil.isNotEmpty(retailAchieve.getArealPv())
// && result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
// && result.getSmallRangeTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) >=0
// ){
//
// return AjaxResult.success(RetailMemberRegionVO.builder()
// .regionStatus(EYesNo.YES.getIntValue())
// .build());
// }
}
}
// 达到条件但是没有选择区域需要弹窗选择区域
@ -202,12 +221,11 @@ public class RetailMemberController extends BaseController {
canSet = true;
}
if(EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()){
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
CuMemberRetailDataStatisticsResultVO result = retailAchieveService.getRetailDataStatisticsDetail(userId, pkCountry, systemType);
BigDecimal totalBoxNum = result.getTotalBoxNum();
BigDecimal smallBoxNum = result.getSmallRangeTotalBoxNum();
CuMemberExt memberExt = iCuMemberService.getMemberById(userId);
if(memberExt.getPkVertex().equals(RetailConstants.VERTEX_PK_ID)){
BigDecimal totalBoxNum = result.getTotalBoxNum();
BigDecimal smallBoxNum = result.getSmallRangeTotalBoxNum();
// BigDecimal bigBoxNum = result.getBigRangeTotalBoxNum();
if(ObjectUtil.isNotEmpty(totalBoxNum)
&& totalBoxNum.compareTo(RetailConstants.VERTEX_V5_TOTAL_BOX) >= 0
@ -216,11 +234,18 @@ public class RetailMemberController extends BaseController {
canSet = true;
}
}else{
if(result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
&& result.getSmallRangeTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) >=0
GradeDTO grade = gradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), pkCountry).getData();
if(ObjectUtil.isNotEmpty(totalBoxNum)
&& totalBoxNum.compareTo(grade.getBoxTotal()) >= 0
&& smallBoxNum.compareTo(grade.getBoxSmallTotal()) >=0
){
canSet = true;
}
// if(result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
// && result.getSmallRangeTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) >=0
// ){
// canSet = true;
// }
}
}
}