## 等级只保留会员一个等级;
This commit is contained in:
parent
e02f2c8f9f
commit
1c3d4738f3
|
@ -25,12 +25,4 @@ public interface IAwardsServiceApi {
|
|||
* 根据国家获取该国家的奖衔
|
||||
*/
|
||||
R<Map<String, BdAwards>> getAwards();
|
||||
|
||||
/**
|
||||
* 根据所属国家查询奖衔
|
||||
*
|
||||
* @param pkCountry
|
||||
* @return
|
||||
*/
|
||||
R<List<BdAwards>> queryByPkCountryAwards(Integer pkCountry);
|
||||
}
|
||||
|
|
|
@ -61,13 +61,6 @@ public interface IGradeServiceApi {
|
|||
*/
|
||||
R<List<GradeDTO>> selectGradeAll(Integer dataCountry);
|
||||
|
||||
/**
|
||||
* 根据国家查询等级配置列表
|
||||
*
|
||||
* @param pkCountry 国家
|
||||
*/
|
||||
R<List<BdGrade>> queryGrowUpFootmarkGrade(Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 查询全部的等级
|
||||
*
|
||||
|
|
|
@ -219,11 +219,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (cuMemberAwards.getOldLevel() < cuMemberRetailRangeExt.getPkAwards()) {
|
||||
cuMemberRetailRangeExt.setPkAwards(cuMemberAwards.getOldLevel());
|
||||
}
|
||||
if (cuMemberRetailRangeExt.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 11) {
|
||||
// 如果是合伙人,奖衔肯定得有,不能置为无
|
||||
cuMemberRetailRangeExt.setPkAwards(11);
|
||||
continue;
|
||||
}
|
||||
cuMemberAwards.setNewLevel(cuMemberAwards.getOldLevel());
|
||||
cuMemberAwardsList.add(cuMemberAwards);
|
||||
}
|
||||
|
@ -474,7 +469,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
while (true) {
|
||||
// 当月奖衔值 + 5,获取下一个奖衔值
|
||||
int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5;
|
||||
if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) {
|
||||
if (retailAwardsMap.containsKey(awardsValue)) {
|
||||
BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
||||
// 先验证累计业绩
|
||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) {
|
||||
|
@ -624,7 +619,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
while (true) {
|
||||
// 当月奖衔值 + 5,获取下一个奖衔值
|
||||
int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5;
|
||||
if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) {
|
||||
if (retailAwardsMap.containsKey(awardsValue)) {
|
||||
BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
||||
// 先验证累计业绩
|
||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) {
|
||||
|
|
|
@ -29,9 +29,7 @@ import com.hzs.member.account.vo.CuMemberWithdrawVO;
|
|||
import com.hzs.member.account.vo.CuMemberWithdrawalAddVO;
|
||||
import com.hzs.member.base.service.ICuMemberService;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.config.IGradeServiceApi;
|
||||
import com.hzs.system.config.IWithdrawalServiceApi;
|
||||
import com.hzs.system.config.dto.GradeDTO;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
@ -47,27 +45,19 @@ import java.util.List;
|
|||
public class ApiCuMemberWithdrawController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
ICuMemberBankService cuMemberBankService;
|
||||
|
||||
private ICuMemberBankService cuMemberBankService;
|
||||
@Autowired
|
||||
ICuMemberService cuMemberService;
|
||||
private ICuMemberService cuMemberService;
|
||||
@Autowired
|
||||
private ICuMemberBaseService baseService;
|
||||
@Autowired
|
||||
private ICuMemberAccountService cuMemberAccountService;
|
||||
@Autowired
|
||||
private ICuMemberWithdrawService cuMemberWithdrawService;
|
||||
|
||||
@DubboReference
|
||||
IWithdrawalServiceApi withdrawalServiceApi;
|
||||
|
||||
@Autowired
|
||||
ICuMemberBaseService baseService;
|
||||
|
||||
@Autowired
|
||||
ICuMemberAccountService cuMemberAccountService;
|
||||
|
||||
@Autowired
|
||||
ICuMemberWithdrawService cuMemberWithdrawService;
|
||||
|
||||
|
||||
@DubboReference
|
||||
IGradeServiceApi gradeServiceApi;
|
||||
|
||||
/**
|
||||
* 提现时展示信息
|
||||
*
|
||||
|
@ -140,18 +130,12 @@ public class ApiCuMemberWithdrawController extends BaseController {
|
|||
}
|
||||
Integer accountsType = baseService.getAccountValueById(pkAccount);
|
||||
|
||||
if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) {
|
||||
//结算等级为1 (目前是会员)不允许提现
|
||||
GradeDTO gradeDTO = gradeServiceApi.getGradeByGradeValue(EGrade.START_UP.getValue(), pkCountry).getData();
|
||||
if (cuMemberLoginExt.getPkSettleGrade().equals(gradeDTO.getPkId())) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.NOT_WITHDRAWAL_UPGRADE));
|
||||
}
|
||||
//校验是否实名
|
||||
Boolean existRealName = baseService.isExistRealName(pkMember, pkCountry, EBusinessModule.WITHDRAWAL.getValue());
|
||||
if (!existRealName) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.REAL_NAME_NOT_EXIST));
|
||||
}
|
||||
//校验是否实名
|
||||
Boolean existRealName = baseService.isExistRealName(pkMember, pkCountry, EBusinessModule.WITHDRAWAL.getValue());
|
||||
if (!existRealName) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.REAL_NAME_NOT_EXIST));
|
||||
}
|
||||
|
||||
//查询账户信息
|
||||
CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
|
||||
//是否可提现
|
||||
|
@ -185,10 +169,10 @@ public class ApiCuMemberWithdrawController extends BaseController {
|
|||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ENTER_INTEGER_VALUE));
|
||||
}
|
||||
|
||||
if (null != cashAmount && cashAmount.compareTo(minAmount) < 0) {
|
||||
if (cashAmount.compareTo(minAmount) < 0) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_AMOUNT_GREATER_MINIMUM_AMOUNT));
|
||||
}
|
||||
if (null != cashAmount && cashAmount.compareTo(maxAmount) > 0) {
|
||||
if (cashAmount.compareTo(maxAmount) > 0) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_AMOUNT_LESS_MAXIMUM_AMOUNT));
|
||||
}
|
||||
//校验倍数
|
||||
|
|
|
@ -1,150 +0,0 @@
|
|||
package com.hzs.member.base.controller.api;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.ESystemType;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
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.member.base.vo.AwardsVo;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.config.IAwardsServiceApi;
|
||||
import com.hzs.system.config.IGradeServiceApi;
|
||||
import com.hzs.system.config.dto.GradeDTO;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/member-footmark")
|
||||
public class MemberFootmarkController {
|
||||
|
||||
@DubboReference
|
||||
IGradeServiceApi gradeServiceApi;
|
||||
@DubboReference
|
||||
IAwardsServiceApi awardsServiceApi;
|
||||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
@Autowired
|
||||
private ICuMemberService memberService;
|
||||
|
||||
/**
|
||||
* 成长之路 奖衔
|
||||
*/
|
||||
@GetMapping("/grow-up-footmark-awards")
|
||||
public AjaxResult growUpFootmarkAwards() {
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
CuMember member = memberService.getMember(userId);
|
||||
Integer pkAwards = member.getPkAwards();
|
||||
R<CurrencyDTO> currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
CurrencyDTO currency = currencyDto.getData();
|
||||
R<BdAwards> awardsOne = awardsServiceApi.getAwardsOne(pkAwards);
|
||||
|
||||
List<BdAwards> awardsList = awardsServiceApi.queryByPkCountryAwards(pkCountry).getData();
|
||||
|
||||
// 奖衔级别
|
||||
Integer awardsValue = awardsOne.getData().getAwardsValue();
|
||||
// 子级名称
|
||||
String childLevelName = "";
|
||||
// 累计业绩
|
||||
BigDecimal achievement = BigDecimal.ZERO;
|
||||
// 用户头像
|
||||
String thisAvatarUrl = "";
|
||||
List<AwardsVo> resultList = new ArrayList<>();
|
||||
for (BdAwards bdAwards : awardsList) {
|
||||
// 下一级别
|
||||
if (bdAwards.getAwardsValue() == (awardsValue - 5)) {
|
||||
childLevelName = bdAwards.getAwardsName();
|
||||
}
|
||||
if (bdAwards.getAwardsValue() > awardsValue) {
|
||||
bdAwards.setColor("#C0C1C1");
|
||||
}
|
||||
if (pkAwards.equals(bdAwards.getPkId())) {
|
||||
achievement = bdAwards.getCommunityCheck();
|
||||
thisAvatarUrl = bdAwards.getImage();
|
||||
}
|
||||
|
||||
AwardsVo awardsVo = BeanUtil.copyProperties(bdAwards, AwardsVo.class);
|
||||
// 小区业绩
|
||||
BigDecimal communityCheck = bdAwards.getCommunityCheck().multiply(currency.getInExchangeRate());
|
||||
if (communityCheck.compareTo(new BigDecimal(10000)) > 0) {
|
||||
awardsVo.setCommunityCheckStr(communityCheck.divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + "万");
|
||||
} else {
|
||||
awardsVo.setCommunityCheckStr(communityCheck + "");
|
||||
}
|
||||
resultList.add(awardsVo);
|
||||
}
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("childLevelName", childLevelName);
|
||||
// 排序
|
||||
resultMap.put("awardsList", new ArrayList<>(resultList));
|
||||
resultMap.put("thisAwardsName", awardsOne.getData().getAwardsName());
|
||||
resultMap.put("thisPkAwards", awardsOne.getData().getPkId());
|
||||
resultMap.put("achievement", achievement);
|
||||
resultMap.put("thisAvatarUrl", thisAvatarUrl);
|
||||
return AjaxResult.success(resultMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 成长之路 等级
|
||||
*/
|
||||
@GetMapping("/grow-up-footmark-grade")
|
||||
public AjaxResult growUpFootmarkGrade() {
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
CuMember member = memberService.getMember(userId);
|
||||
Integer grade = member.getPkSettleGrade();
|
||||
// 当前等级
|
||||
String thisGradeName = "";
|
||||
// 用户头像
|
||||
String thisAvatarUrl = "";
|
||||
// 色值
|
||||
String color = "";
|
||||
R<CurrencyDTO> currencyDate = currencyServiceApi.getCurrency(pkCountry);
|
||||
CurrencyDTO currency = currencyDate.getData();
|
||||
R<GradeDTO> gradeDto = gradeServiceApi.getGrade(grade);
|
||||
List<BdGrade> gradeList = gradeServiceApi.queryGrowUpFootmarkGrade(pkCountry).getData();
|
||||
|
||||
for (BdGrade g : gradeList) {
|
||||
if (grade.equals(g.getPkId())) {
|
||||
thisGradeName = g.getGradeName();
|
||||
thisAvatarUrl = g.getImage();
|
||||
color = g.getColor();
|
||||
}
|
||||
if (g.getGradeValue() > gradeDto.getData().getGradeValue()) {
|
||||
g.setColor("#C0C1C1");
|
||||
}
|
||||
// 计算人民币业绩
|
||||
g.setStartValue(g.getStartValue().multiply(currency.getInExchangeRate()));
|
||||
}
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
// 颜色
|
||||
resultMap.put("color", color);
|
||||
// 等级
|
||||
resultMap.put("gradeList", gradeList.stream());
|
||||
// 当前等级
|
||||
resultMap.put("thisGradeName", thisGradeName);
|
||||
// 编号
|
||||
resultMap.put("memberCode", member.getMemberCode());
|
||||
// 会员名称
|
||||
resultMap.put("memberName", member.getMemberName());
|
||||
// 业绩
|
||||
resultMap.put("achievement", member.getConsumeAchieve());
|
||||
// 头像
|
||||
resultMap.put("thisAvatarUrl", thisAvatarUrl);
|
||||
return AjaxResult.success(resultMap);
|
||||
}
|
||||
|
||||
}
|
|
@ -911,36 +911,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
public Boolean normalRevokeOrder(Long pkApprove, SaOrderExt saOrder, CuMember cuMember, BusinessCommissionDTO businessCommissionDTO) {
|
||||
deductCancelOrderCost(businessCommissionDTO);
|
||||
|
||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
|
||||
// 复购订单
|
||||
// 会员等级发生变化,新等级需要处理
|
||||
BdGrade newGrade = saOrder.getNewGrade();
|
||||
if (null != cuMember && null != newGrade) {
|
||||
// 更新会员等级
|
||||
cuMember.setPkSettleGrade(newGrade.getPkId());
|
||||
}
|
||||
|
||||
// 处理升级记录(添加、删除)
|
||||
List<CuMemberLevel> deleteLevelList = saOrder.getDeleteLevelList();
|
||||
if (CollectionUtil.isNotEmpty(deleteLevelList)) {
|
||||
cuMemberLevelService.update(Wrappers.<CuMemberLevel>lambdaUpdate()
|
||||
.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue())
|
||||
.set(CuMemberLevel::getModifiedTime, new Date())
|
||||
.set(CuMemberLevel::getPkModified, pkApprove)
|
||||
.in(CuMemberLevel::getPkId, deleteLevelList.stream().map(CuMemberLevel::getPkId).collect(Collectors.toList()))
|
||||
);
|
||||
}
|
||||
List<CuMemberLevel> createLevelList = saOrder.getCreateLevelList();
|
||||
if (CollectionUtil.isNotEmpty(createLevelList)) {
|
||||
// 校验插入的升级时间要小于V4、V5的升级时间
|
||||
CuMemberLevel tmpLevel = cuMemberLevelService.getLevelByGradeValue(saOrder.getPkMember(), EGrade.VIP.getValue(), saOrder.getPayTime(), saOrder.getPkCountry());
|
||||
if (null != tmpLevel) {
|
||||
createLevelList = createLevelList.stream().filter(tmp -> tmp.getUpgradeTime().compareTo(tmpLevel.getUpgradeTime()) < 0).collect(Collectors.toList());
|
||||
}
|
||||
cuMemberLevelService.insertBatch(createLevelList);
|
||||
}
|
||||
}
|
||||
|
||||
// 更新会员标记,如果是则更新会员信息
|
||||
if (saOrder.getUpdateFlag() != null && EYesNo.YES.getIntValue() == saOrder.getUpdateFlag()) {
|
||||
if (null != cuMember) {
|
||||
|
@ -949,7 +919,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
}
|
||||
|
||||
// 部分撤单 todo 发货后邮费不退,未发货退邮费
|
||||
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
|
||||
// 钱包支付,则需要回退金额
|
||||
// 部分撤单
|
||||
|
|
|
@ -2329,7 +2329,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
@Override
|
||||
public CuMember shareRegisterMember(ShareRegisterParam registerParam) {
|
||||
// 处理等级
|
||||
GradeDTO gradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.START_UP.getValue(), CountryConstants.CHINA_COUNTRY).getData();
|
||||
GradeDTO gradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.MEMBER.getValue(), CountryConstants.CHINA_COUNTRY).getData();
|
||||
if (null == gradeDTO) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import com.hzs.common.domain.member.detail.CuMemberGrade;
|
|||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -29,18 +28,4 @@ public interface CuMemberLevelMapper extends BaseMapper<CuMemberLevel> {
|
|||
*/
|
||||
int insertGradeBatch(@Param("memberGradeList") List<CuMemberGrade> memberGradeList);
|
||||
|
||||
/**
|
||||
* 查询会员升级记录
|
||||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param gradeValue 等级值
|
||||
* @param queryTime 查询开始时间(可为空)
|
||||
* @param pkCountry 所属国家
|
||||
* @return
|
||||
*/
|
||||
CuMemberLevel getLevelByGradeValue(@Param("pkMember") Long pkMember,
|
||||
@Param("gradeValue") Integer gradeValue,
|
||||
@Param("queryTime") Date queryTime,
|
||||
@Param("pkCountry") Integer pkCountry);
|
||||
|
||||
}
|
||||
|
|
|
@ -46,15 +46,4 @@ public interface ICuMemberLevelService extends IService<CuMemberLevel> {
|
|||
*/
|
||||
List<CuMemberLevel> listMemberLevel(Long pkMember, Long pkOrder);
|
||||
|
||||
/**
|
||||
* 查询会员升级记录
|
||||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param gradeValue 等级值
|
||||
* @param queryTime 查询开始时间(可为空)
|
||||
* @param pkCountry 所属国家
|
||||
* @return
|
||||
*/
|
||||
CuMemberLevel getLevelByGradeValue(Long pkMember, Integer gradeValue, Date queryTime, Integer pkCountry);
|
||||
|
||||
}
|
||||
|
|
|
@ -48,9 +48,4 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
|
|||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CuMemberLevel getLevelByGradeValue(Long pkMember, Integer gradeValue, Date queryTime, Integer pkCountry) {
|
||||
return baseMapper.getLevelByGradeValue(pkMember, gradeValue, queryTime, pkCountry);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -857,9 +857,6 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
businessVO.setBusinessMemberList(businessMemberVOList);
|
||||
for (BusinessMemberVO memberVO : businessMemberListUpdate) {
|
||||
CuMemberExt memberExt = cuMemberService.getMemberById(memberVO.getPkMember());
|
||||
if(!gradesMap.get(EGrade.S_VIP.getValue()).getPkId().equals(Integer.parseInt(memberVO.getNewValue()))){
|
||||
continue;
|
||||
}
|
||||
// 没有奖衔
|
||||
Integer memberAwardsValue = awardsList.getData().stream().filter(o -> o.getPkId().equals(memberExt.getPkAwards())).findFirst().get().getAwardsValue();
|
||||
if(ObjectUtil.isNotEmpty(memberExt) && EAwards.HEADER.getValue() > memberAwardsValue){
|
||||
|
|
|
@ -2,46 +2,20 @@ package com.hzs.retail.member.controller.api;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
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 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.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||
import com.hzs.common.core.constant.SysConstants;
|
||||
import com.hzs.common.core.constant.msg.AreaConstants;
|
||||
import com.hzs.common.core.enums.EGrade;
|
||||
import com.hzs.common.core.enums.ENoticeWebsiteType;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.core.utils.PageUtils;
|
||||
import com.hzs.common.core.utils.sign.Base64Util;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
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.security.utils.SecurityUtils;
|
||||
import com.hzs.member.base.service.ICuMemberService;
|
||||
import com.hzs.retail.member.param.RetailMemberRegionParam;
|
||||
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
|
||||
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.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -57,15 +31,6 @@ public class RetailMemberController extends BaseController {
|
|||
private ICuMemberService iCuMemberService;
|
||||
@Autowired
|
||||
private IMemberRetailService iMemberRetailService;
|
||||
@Autowired
|
||||
private ICuMemberRetailRegionService iCuMemberRetailRegionService;
|
||||
@Autowired
|
||||
private ICuMemberRetailAchieveService retailAchieveService;
|
||||
|
||||
@DubboReference
|
||||
IAreaServiceApi iAreaServiceApi;
|
||||
@DubboReference
|
||||
IGradeServiceApi gradeServiceApi;
|
||||
|
||||
/**
|
||||
* 获取登录会员信息
|
||||
|
@ -90,247 +55,6 @@ public class RetailMemberController extends BaseController {
|
|||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员收益区域
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/get-region")
|
||||
public AjaxResult getRegion() {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Integer systemType = SecurityUtils.getSystemType();
|
||||
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 notFirst = countNum > 0;
|
||||
|
||||
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
|
||||
if (null != cuMemberRetailRegionExt) {
|
||||
// 已自选区域或者已后台指定
|
||||
if (null != cuMemberRetailRegionExt.getPkId()) {
|
||||
// 达到条件,也选择区域,需要进行显示
|
||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||
.regionStatus(EYesNo.YES.getIntValue())
|
||||
.province(cuMemberRetailRegionExt.getProvince())
|
||||
.provinceVal(cuMemberRetailRegionExt.getProvinceVal())
|
||||
.city(cuMemberRetailRegionExt.getCity())
|
||||
.cityVal(cuMemberRetailRegionExt.getCityVal())
|
||||
.county(cuMemberRetailRegionExt.getCounty())
|
||||
.countyVal(cuMemberRetailRegionExt.getCountyVal())
|
||||
.build());
|
||||
}
|
||||
// 未自选或未后台指定 验证是否激活 未激活不允许选
|
||||
// getIsRegion - 后台业务特殊标记,非后台办理过的为1, 后台办理过的为0,当为0时, 不设定任何条件,直接可选收益区域
|
||||
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
|
||||
// 2024.12.30 添加需求,指定会员可以进行区域选择
|
||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||
.regionStatus(EYesNo.YES.getIntValue())
|
||||
.build());
|
||||
}
|
||||
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()) {
|
||||
GradeDTO grade = gradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), pkCountry).getData();
|
||||
if (notFirst) {
|
||||
LocalDate today = LocalDate.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;
|
||||
CurrentMonthVO currentMonthVO = retailAchieveService.getCurrentMonthPV(today.format(formatter), userId, pkCountry, systemType);
|
||||
if (ObjectUtil.isNotEmpty(currentMonthVO)
|
||||
&& currentMonthVO.getTotalCurrentMonthPV().compareTo(SysConstants.TOTAL_AREA_PV) >= 0
|
||||
&& currentMonthVO.getSmallCurrentMonthPV().compareTo(SysConstants.SMALL_AREA_PV) >= 0
|
||||
) {
|
||||
|
||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||
.regionStatus(EYesNo.YES.getIntValue())
|
||||
.build());
|
||||
}
|
||||
} else {
|
||||
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());
|
||||
// }
|
||||
}
|
||||
// 达到条件,但是没有选择区域,需要弹窗选择区域
|
||||
// 验证伞下业绩+自己是否累计30W
|
||||
|
||||
/*
|
||||
2025年6月11日 取消其他验证
|
||||
// 2025.01.11 调整需求,当前会员必须有效(至少下过一单)
|
||||
if (iCuMemberRetailRegionService.getOrderCount(userId, systemType, BoxProductUtil.getBoxProductListBySystemType(systemType)) == 0) {
|
||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||
.regionStatus(EYesNo.NO.getIntValue())
|
||||
.build());
|
||||
}
|
||||
|
||||
// 2025.02.21 需求,2025.03.21 按正式规则执行(V5实单非注水盒数达标 或 月大区30万+小区10万,可选择区域)
|
||||
R<CuMemberRetail> checkResult = iMemberSettleBonusApi.queryValidateBoxOrAchieve(userId);
|
||||
if (checkResult.isSuccess()) {
|
||||
if (checkResult.getData().getValidateFlag()) {
|
||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||
.regionStatus(EYesNo.YES.getIntValue())
|
||||
.build());
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
// 没达到条件,不需要显示区域
|
||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||
.regionStatus(EYesNo.NO.getIntValue())
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置会员收益区域
|
||||
*
|
||||
* @param param 设置参数
|
||||
* @return
|
||||
*/
|
||||
@RepeatSubmitSimple
|
||||
@PostMapping("/set-region")
|
||||
public AjaxResult setRegion(@Valid @RequestBody RetailMemberRegionParam param) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Integer systemType = SecurityUtils.getSystemType();
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
|
||||
boolean canSet = false;
|
||||
|
||||
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
|
||||
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
|
||||
|
||||
if (null != cuMemberRetailRegionExt) {
|
||||
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
|
||||
canSet = true;
|
||||
}
|
||||
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()) {
|
||||
LambdaQueryWrapper<CuMemberRetailRegion> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CuMemberRetailRegion::getPkMember, userId);
|
||||
int countNum = iCuMemberRetailRegionService.count(queryWrapper);
|
||||
boolean notFirst = countNum > 0;
|
||||
if (notFirst) {
|
||||
LocalDate today = LocalDate.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;
|
||||
CurrentMonthVO currentMonthVO = retailAchieveService.getCurrentMonthPV(today.format(formatter), userId, pkCountry, systemType);
|
||||
if (ObjectUtil.isNotEmpty(currentMonthVO)
|
||||
&& currentMonthVO.getTotalCurrentMonthPV().compareTo(SysConstants.TOTAL_AREA_PV) >= 0
|
||||
&& currentMonthVO.getSmallCurrentMonthPV().compareTo(SysConstants.SMALL_AREA_PV) >= 0
|
||||
) {
|
||||
canSet = true;
|
||||
}
|
||||
} else {
|
||||
canSet = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!canSet) {
|
||||
return AjaxResult.error("还未达到选择收益区域条件");
|
||||
}
|
||||
|
||||
if (param.getCounty().equals(0) || param.getCity().equals(0)) {
|
||||
// 区为0 或 市为0,没有选择区或者没有选择市
|
||||
// 香港、澳门只有省,台湾有省、市
|
||||
BdArea province = iAreaServiceApi.getArea(param.getProvince()).getData();
|
||||
if (null == province) {
|
||||
return AjaxResult.error("选择区域省不存在,请重新选择");
|
||||
}
|
||||
if (param.getCounty().equals(0)
|
||||
&& !AreaConstants.XIANG_GANG.equals(province.getCode())
|
||||
&& !AreaConstants.AO_MEN.equals(province.getCode())
|
||||
&& !AreaConstants.TAI_WAN.equals(province.getCode())) {
|
||||
// 区为0,不是香港、港门、台湾,则需要提示
|
||||
return AjaxResult.error("请选择区");
|
||||
}
|
||||
if (param.getCity().equals(0)
|
||||
&& !AreaConstants.XIANG_GANG.equals(province.getCode())
|
||||
&& !AreaConstants.AO_MEN.equals(province.getCode())) {
|
||||
// 市为0,不是香港、港门,则需要提示
|
||||
return AjaxResult.error("请选择市");
|
||||
}
|
||||
}
|
||||
|
||||
// 校验市是否存在
|
||||
if (!param.getCity().equals(0)) {
|
||||
BdArea city = iAreaServiceApi.getArea(param.getCity()).getData();
|
||||
if (null == city) {
|
||||
return AjaxResult.error("选择区域市不存在,请重新选择");
|
||||
}
|
||||
}
|
||||
// 校验区是否存在
|
||||
if (!param.getCounty().equals(0)) {
|
||||
BdArea county = iAreaServiceApi.getArea(param.getCounty()).getData();
|
||||
if (null == county) {
|
||||
return AjaxResult.error("选择区域区不存在,请重新选择");
|
||||
}
|
||||
}
|
||||
|
||||
// 校验区域是否被占用
|
||||
// CuMemberRetailRegion cuMemberRetailRegion = iCuMemberRetailRegionService.getOne(Wrappers.<CuMemberRetailRegion>lambdaQuery()
|
||||
// .eq(CuMemberRetailRegion::getProvince, param.getProvince())
|
||||
// .eq(CuMemberRetailRegion::getCity, param.getCity())
|
||||
// .eq(CuMemberRetailRegion::getCounty, param.getCounty())
|
||||
// .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue())
|
||||
// .eq(CuMemberRetailRegion::getSystemType, systemType)
|
||||
// );
|
||||
// if (null != cuMemberRetailRegion) {
|
||||
// if (userId.equals(cuMemberRetailRegion.getPkMember())) {
|
||||
// // 当前收益区域就是当前会员,不需要处理
|
||||
// return AjaxResult.success();
|
||||
// } else {
|
||||
// return AjaxResult.error("当前区域已经被占用");
|
||||
// }
|
||||
// }
|
||||
int cuMemberRetailRegion = iCuMemberRetailRegionService.validateBindCount(param, EYesNo.YES.getIntValue(), SecurityUtils.getSystemType(), userId);
|
||||
if (cuMemberRetailRegion > 0) {
|
||||
return AjaxResult.error("当前区域已经被占用");
|
||||
}
|
||||
param.setPkId(cuMemberRetailRegionExt.getPkId());
|
||||
param.setPkMember(userId);
|
||||
param.setPkCountry(pkCountry);
|
||||
param.setSource(ENoticeWebsiteType.MEMBER.getValue());
|
||||
|
||||
param.setSystemType(systemType);
|
||||
|
||||
String str = iCuMemberRetailRegionService.setRegion(param);
|
||||
if (null == str) {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
return AjaxResult.error(str);
|
||||
}
|
||||
|
||||
/**
|
||||
* 收益区域
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/region-tree")
|
||||
public AjaxResult regionTree() {
|
||||
PageUtils.clearPage();
|
||||
List<BdArea> areaList = iCuMemberRetailRegionService.listChooseRegion(SecurityUtils.getSystemType());
|
||||
if (CollectionUtil.isEmpty(areaList)) {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
|
||||
treeNodeConfig.setDeep(3);
|
||||
|
||||
//0表示最顶层的id是0
|
||||
List<Tree<String>> build = TreeUtil.build(areaList, "0", treeNodeConfig,
|
||||
(treeNode, tree) -> {
|
||||
tree.setId(treeNode.getPkId().toString());
|
||||
tree.setParentId(treeNode.getParent().toString());
|
||||
tree.setName(treeNode.getName());
|
||||
});
|
||||
return AjaxResult.success(build);
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员推荐列表
|
||||
*
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.hzs.retail.member.controller.manage;
|
|||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.hzs.common.core.annotation.Log;
|
||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
||||
import com.hzs.common.core.enums.*;
|
||||
|
@ -26,11 +25,7 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 新零售收益区域配置
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/25 12:03
|
||||
* @param:
|
||||
* @return:
|
||||
* 新零售收益区域配置
|
||||
**/
|
||||
@RestController
|
||||
@RequestMapping("/manage/cu-member-retail-region")
|
||||
|
@ -39,13 +34,8 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
@Autowired
|
||||
private ICuMemberRetailRegionService cuMemberRetailRegionService;
|
||||
|
||||
|
||||
/**
|
||||
* @description: 会员收益区域配置
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/25 15:02
|
||||
* @param: [mrrExt]
|
||||
* @return: com.hzs.common.core.web.page.TableDataInfo
|
||||
* 会员收益区域配置
|
||||
**/
|
||||
@Log(module = EOperationModule.CU_MEMBER_RETAIL_REGION, business = EOperationBusiness.CU_MEMBER_RETAIL_REGION, method = EOperationMethod.SELECT)
|
||||
@GetMapping("/list")
|
||||
|
@ -64,11 +54,7 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 导出会员收益区域配置
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/25 14:59
|
||||
* @param: [response, mrrExt]
|
||||
* @return: void
|
||||
* 导出会员收益区域配置
|
||||
**/
|
||||
@Log(module = EOperationModule.CU_MEMBER_RETAIL_REGION, business = EOperationBusiness.CU_MEMBER_RETAIL_REGION, method = EOperationMethod.EXPORT)
|
||||
@PostMapping("/export")
|
||||
|
@ -87,11 +73,7 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 未绑定收益区域
|
||||
* @author: zhang jing
|
||||
* @date: 2025/1/9 13:54
|
||||
* @param: []
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 未绑定收益区域
|
||||
**/
|
||||
@GetMapping("/regionAreaList")
|
||||
public TableDataInfo regionAreaList() {
|
||||
|
@ -101,11 +83,7 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 导出未配置收益区域
|
||||
* @author: zhang jing
|
||||
* @date: 2025/1/15 11:05
|
||||
* @param: [response, mrrExt]
|
||||
* @return: void
|
||||
* 导出未配置收益区域
|
||||
**/
|
||||
@Log(module = EOperationModule.NOT_USED_REGION_AREA, business = EOperationBusiness.NOT_USED_REGION_AREA, method = EOperationMethod.EXPORT)
|
||||
@PostMapping("/export-region-area")
|
||||
|
@ -116,11 +94,7 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description:新增会员收益区域
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/25 16:18
|
||||
* @param: [mrrExt]
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 新增会员收益区域
|
||||
**/
|
||||
@Log(module = EOperationModule.CU_MEMBER_RETAIL_REGION, business = EOperationBusiness.CU_MEMBER_RETAIL_REGION, method = EOperationMethod.INSERT)
|
||||
@PostMapping("/save")
|
||||
|
@ -138,10 +112,6 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
Integer systemType = SecurityUtils.getSystemType();
|
||||
|
||||
CuMemberRetailRegionExt cuMemberRetailRegionExt = cuMemberRetailRegionService.getRegionByMember(mrrExt.getPkMember(), EGrade.S_VIP.getValue(), systemType);
|
||||
if (null == cuMemberRetailRegionExt) {
|
||||
return AjaxResult.error("还未达到选择收益区域条件");
|
||||
}
|
||||
CuMemberRetailRegionExt checkMrrExt = new CuMemberRetailRegionExt();
|
||||
checkMrrExt.setPkMember(mrrExt.getPkMember());
|
||||
checkMrrExt.setEffective(EDealerYesNo.YES.getValue());
|
||||
|
@ -176,11 +146,7 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* @description: 修改会员收益区域
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/25 16:18
|
||||
* @param: [mrrExt]
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 修改会员收益区域
|
||||
**/
|
||||
@Log(module = EOperationModule.CU_MEMBER_RETAIL_REGION, business = EOperationBusiness.CU_MEMBER_RETAIL_REGION, method = EOperationMethod.UPDATE)
|
||||
@PostMapping("/update")
|
||||
|
@ -216,11 +182,7 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* @description: 查询会员收益区域
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/25 16:18
|
||||
* @param: [pkId]
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 查询会员收益区域
|
||||
**/
|
||||
@Log(module = EOperationModule.CU_MEMBER_RETAIL_REGION, business = EOperationBusiness.CU_MEMBER_RETAIL_REGION, method = EOperationMethod.SELECT)
|
||||
@GetMapping("/getOne/{pkId}")
|
||||
|
@ -231,11 +193,7 @@ public class CuMemberRetailRegionController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* @description: 删除会员收益区域
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/25 16:18
|
||||
* @param: [pkId]
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 删除会员收益区域
|
||||
**/
|
||||
@Log(module = EOperationModule.CU_MEMBER_RETAIL_REGION, business = EOperationBusiness.CU_MEMBER_RETAIL_REGION, method = EOperationMethod.DELETE)
|
||||
@DeleteMapping("/{pkId}")
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.hzs.retail.member.mapper;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
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.retail.member.param.RetailMemberRegionParam;
|
||||
import com.hzs.retail.member.vo.UnboundAreaVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
@ -27,14 +26,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
|
|||
@Param("gradeValue") Integer gradeValue,
|
||||
@Param("systemType") Integer systemType);
|
||||
|
||||
/**
|
||||
* 可选择的收益区域
|
||||
*
|
||||
* @param systemType 系统类型
|
||||
* @return
|
||||
*/
|
||||
List<BdArea> listChooseRegion(@Param("systemType") Integer systemType, @Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 插入收益区域
|
||||
*
|
||||
|
|
|
@ -8,11 +8,7 @@ import java.io.Serializable;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 新零售会员收益区域入参
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/12/10 15:45
|
||||
* @Classname: RetailMemberRegionParam
|
||||
* @PackageName: com.hzs.retail.member.param
|
||||
* 新零售会员收益区域入参
|
||||
*/
|
||||
@Data
|
||||
public class RetailMemberRegionParam implements Serializable {
|
||||
|
|
|
@ -70,8 +70,5 @@ public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRa
|
|||
*/
|
||||
CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType);
|
||||
|
||||
|
||||
CurrentMonthVO getCurrentMonthPV(String date, Long pkMember, Integer pkCountry, Integer systemType);
|
||||
|
||||
PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param);
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.hzs.retail.member.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
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.retail.member.param.RetailMemberRegionParam;
|
||||
import com.hzs.retail.member.vo.UnboundAreaVO;
|
||||
|
||||
|
@ -32,14 +31,6 @@ public interface ICuMemberRetailRegionService extends IService<CuMemberRetailReg
|
|||
*/
|
||||
String setRegion(RetailMemberRegionParam param);
|
||||
|
||||
/**
|
||||
* 可选择的收益区域
|
||||
*
|
||||
* @param systemType 系统类型
|
||||
* @return
|
||||
*/
|
||||
List<BdArea> listChooseRegion(Integer systemType);
|
||||
|
||||
/**
|
||||
* 未绑定收益区域
|
||||
**/
|
||||
|
|
|
@ -361,49 +361,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CurrentMonthVO getCurrentMonthPV(String date, Long pkMember, Integer pkCountry, Integer systemType) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
LocalDate today = LocalDate.now();
|
||||
String yesterdayDate;
|
||||
String memberRetailTable = TableNameConstants.CU_MEMBER_RETAIL_S;
|
||||
if (today.getDayOfMonth() != 1) {
|
||||
LocalDate previousDay = today.minusDays(1);
|
||||
yesterdayDate = previousDay.format(DateTimeFormatter.ISO_LOCAL_DATE);
|
||||
memberRetailTable = getTableNameSpecial4Date(yesterdayDate);
|
||||
}
|
||||
String memberSecondTable = getDayTableNameSpecial();
|
||||
//查询直推会员
|
||||
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
|
||||
pkMemberList.add(userId);
|
||||
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder()
|
||||
.memberRetailTable(memberRetailTable)
|
||||
.memberRetailSTable(memberSecondTable)
|
||||
.pkMemberList(pkMemberList).systemType(systemType).build();
|
||||
List<CuMemberRetailDataStatisticsDetailVO> statisticsDetailVOList = baseMapper.getRetailDataStatisticsDetail(memberAchieveVO);
|
||||
CuMember cuMember = iCuMemberService.queryMember(userId);
|
||||
BigAndSmallRangeVO bigAndSmallRangeVO = DataStatisticsUtil.getBigAndSmallRangeVO(statisticsDetailVOList, cuMember);
|
||||
MarketDynamicsQueryDateParam param = new MarketDynamicsQueryDateParam();
|
||||
DataStatisticsUtil.setQueryDateParam(param);
|
||||
param.setCurrentDayTableName(memberSecondTable);
|
||||
param.setCurrentMonthTableName(memberRetailTable);
|
||||
param.setLastMonthTableName(getDayTableName(param.getLastMonthDate()));
|
||||
List<MarketDynamicsDetailVO> detailVOList = baseMapper.getMarketDynamicsDetail(param);
|
||||
BigDecimal totalMouthPV = detailVOList.stream()
|
||||
.map(MarketDynamicsDetailVO::getCurrentMonthPv)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal bigMouthPV = BigDecimal.ZERO;
|
||||
MarketDynamicsDetailVO bigRange = detailVOList.stream().filter(vo -> {
|
||||
assert bigAndSmallRangeVO != null;
|
||||
return vo.getPkId().equals(bigAndSmallRangeVO.getBigRangeId());
|
||||
}).findFirst().orElse(null);
|
||||
if (ObjectUtil.isNotEmpty(bigRange)) {
|
||||
bigMouthPV = bigRange.getCurrentMonthPv();
|
||||
}
|
||||
BigDecimal smallMountPV = totalMouthPV.subtract(bigMouthPV);
|
||||
return CurrentMonthVO.builder().smallCurrentMonthPV(smallMountPV).totalCurrentMonthPV(totalMouthPV).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param) {
|
||||
|
|
|
@ -8,8 +8,6 @@ import com.hzs.common.core.exception.ServiceException;
|
|||
import com.hzs.common.core.service.RedisService;
|
||||
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.ICuMemberRetailRegionService;
|
||||
|
@ -79,11 +77,6 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailR
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdArea> listChooseRegion(Integer systemType) {
|
||||
return baseMapper.listChooseRegion(systemType, SecurityUtils.getUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UnboundAreaVO> unboundAreaList(Integer pkCountry, Integer systemType) {
|
||||
return baseMapper.unboundAreaList(pkCountry, systemType);
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.hzs.retail.member.service.impl;
|
|||
import cn.hutool.core.util.DesensitizedUtil;
|
||||
import com.hzs.common.core.constant.CountryConstants;
|
||||
import com.hzs.common.core.constant.SysConstants;
|
||||
import com.hzs.common.core.enums.EGrade;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.member.base.service.ICuMemberService;
|
||||
|
@ -41,17 +40,8 @@ public class MemberRetailServiceImpl implements IMemberRetailService {
|
|||
.pkMaxAwards(cuMember.getPkMaxAwards())
|
||||
.build()).getData();
|
||||
|
||||
// 会员标记(0=正常会员,1=V0会员,2=V5会员)
|
||||
// 正常会员: 指V1以上,可以查看所有功能
|
||||
// V0会员: 指V0级别,只有会员专区
|
||||
// V5会员: 指V5级别,只有V5显示市场动态等
|
||||
// 会员标记(0=正常会员)
|
||||
int memberSign = 0;
|
||||
if (EGrade.START_UP.getValue() == memberDataDTO.getGradeValue()) {
|
||||
memberSign = 1;
|
||||
}
|
||||
if (EGrade.S_VIP.getValue() == memberDataDTO.getGradeValue()) {
|
||||
memberSign = 2;
|
||||
}
|
||||
|
||||
// 账号控制
|
||||
Integer control = null;
|
||||
|
|
|
@ -101,36 +101,4 @@
|
|||
)
|
||||
</update>
|
||||
|
||||
<!-- 查询会员升级记录 -->
|
||||
<select id="getLevelByGradeValue" resultType="com.hzs.common.domain.member.detail.CuMemberLevel">
|
||||
select *
|
||||
from (select cml.pk_member, cml.old_level, cml.new_level, cml.upgrade_time
|
||||
from cu_member_level cml
|
||||
where cml.del_flag = 0
|
||||
and cml.pk_member = #{pkMember}
|
||||
<if test="null != queryTime">
|
||||
and cml.upgrade_time > #{queryTime}
|
||||
</if>
|
||||
and cml.new_level in (select bg.pk_id
|
||||
from bd_grade bg
|
||||
where bg.del_flag = 0
|
||||
and bg.pk_country = #{pkCountry}
|
||||
and bg.grade_value >= #{gradeValue})
|
||||
union
|
||||
select cmg.pk_member, cmg.old_level, cmg.new_level, cmg.creation_time
|
||||
from cu_member_grade cmg
|
||||
where cmg.del_flag = 0
|
||||
and cmg.pk_member = #{pkMember}
|
||||
<if test="null != queryTime">
|
||||
and cmg.creation_time > #{queryTime}
|
||||
</if>
|
||||
and cmg.new_level in (select bg.pk_id
|
||||
from bd_grade bg
|
||||
where bg.del_flag = 0
|
||||
and bg.pk_country = #{pkCountry}
|
||||
and bg.grade_value >= #{gradeValue})
|
||||
order by upgrade_time) t
|
||||
where rownum = 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -35,31 +35,6 @@
|
|||
and bg.grade_value >= #{gradeValue}
|
||||
</select>
|
||||
|
||||
<!-- 可选择的收益区域 -->
|
||||
<select id="listChooseRegion" resultType="com.hzs.common.domain.system.base.BdArea">
|
||||
select ba.PK_ID, ba.PARENT, ba.NAME
|
||||
from bd_area ba
|
||||
where ba.del_flag = 0
|
||||
and ba.pk_country = 1
|
||||
and ba.ENABLE_STATE = 0
|
||||
and ba.pk_id not in (
|
||||
SELECT COUNTY
|
||||
FROM CU_MEMBER_RETAIL_REGION cmrr
|
||||
INNER JOIN cu_member cm ON cmrr.pk_member = cm.pk_id
|
||||
LEFT JOIN BD_VERTEX bv ON cm.PK_VERTEX = bv.PK_ID
|
||||
LEFT JOIN BD_REGION_VERTEX brv ON bv.REGION_VERTEX_PK_ID = brv.PK_ID
|
||||
where 1 = 1
|
||||
AND cmrr.PK_MEMBER IN (select pk_id
|
||||
from CU_MEMBER
|
||||
where PK_VERTEX in (select pk_id
|
||||
from BD_VERTEX
|
||||
where REGION_VERTEX_PK_ID in (select REGION_VERTEX_PK_ID
|
||||
from BD_VERTEX
|
||||
where pk_id in (select PK_VERTEX FROM cu_member WHERE PK_ID = #{userId}))
|
||||
and DEL_FLAG = 0))
|
||||
)
|
||||
</select>
|
||||
|
||||
<!-- 插入收益区域 -->
|
||||
<insert id="insertData">
|
||||
insert into cu_member_retail_region cmrr (
|
||||
|
|
|
@ -6,7 +6,6 @@ import com.hzs.common.core.annotation.RepeatSubmit;
|
|||
import com.hzs.common.core.config.BdConfig;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.EGrade;
|
||||
import com.hzs.common.core.enums.ESpecialArea;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.core.exception.ServiceException;
|
||||
|
@ -86,8 +85,7 @@ public class ApiRetailOrderController {
|
|||
|
||||
try {
|
||||
// 购物车中获取商品信息,获取等级
|
||||
BdGrade bdGrade = iSaOrderService.calculateGrade(levelParam.getSpecialArea(), convertShoppingCarToSku(SecurityUtils.getUserId(), levelParam.getShopList()),
|
||||
null, levelParam.getUpgradeMember(), SecurityUtils.getSystemType(), EYesNo.NO.getIntValue());
|
||||
BdGrade bdGrade = iSaOrderService.calculateGrade();
|
||||
if (null != bdGrade) {
|
||||
orderLevelVO.setIsEnough(true);
|
||||
orderLevelVO.setPkGradeVal(bdGrade.getGradeName());
|
||||
|
@ -153,7 +151,7 @@ public class ApiRetailOrderController {
|
|||
postageParam.setPkCreator(SecurityUtils.getUserId());
|
||||
|
||||
if (ESpecialArea.RETAIL_REGISTER.getValue() == postageParam.getSpecialArea()) {
|
||||
// 注册、升级包邮
|
||||
// 注册包邮
|
||||
return AjaxResult.success(RetailOrderPostageVO.builder()
|
||||
.postage(BigDecimal.ZERO)
|
||||
.build());
|
||||
|
@ -205,7 +203,7 @@ public class ApiRetailOrderController {
|
|||
// 获取等级列表
|
||||
List<BdGrade> gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
// 校验注册权限等
|
||||
String checkStr = this.checkRegistrationPermission(registerParam, gradeList);
|
||||
String checkStr = this.checkRegistrationPermission(registerParam);
|
||||
if (null != checkStr) {
|
||||
return AjaxResult.error(checkStr);
|
||||
}
|
||||
|
@ -249,7 +247,7 @@ public class ApiRetailOrderController {
|
|||
// 等级列表
|
||||
List<BdGrade> gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
// 校验注册权限等
|
||||
String checkStr = this.checkRegistrationPermission(registerParam, gradeList);
|
||||
String checkStr = this.checkRegistrationPermission(registerParam);
|
||||
if (null != checkStr) {
|
||||
return AjaxResult.error(checkStr);
|
||||
}
|
||||
|
@ -305,7 +303,7 @@ public class ApiRetailOrderController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 确认订单(注册、升级之外的订单)
|
||||
* 确认订单(注册之外的订单)
|
||||
*
|
||||
* @param orderParam 订单入参
|
||||
* @param source 数据来源
|
||||
|
@ -339,7 +337,7 @@ public class ApiRetailOrderController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 支付订单(注册、升级之外的订单)
|
||||
* 支付订单(注册之外的订单)
|
||||
*
|
||||
* @param payParam 支付订单入参
|
||||
* @return
|
||||
|
@ -527,38 +525,21 @@ public class ApiRetailOrderController {
|
|||
* 校验注册权限
|
||||
*
|
||||
* @param orderParam 订单入参
|
||||
* @param gradeList 等级列表
|
||||
* @return
|
||||
*/
|
||||
private String checkRegistrationPermission(RetailOrderRegisterParam orderParam, List<BdGrade> gradeList) {
|
||||
if (CollectionUtil.isEmpty(gradeList)) {
|
||||
gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
}
|
||||
|
||||
// 校验会员等级是否大于V0,不然不能进行注册会员
|
||||
private String checkRegistrationPermission(RetailOrderRegisterParam orderParam) {
|
||||
CuMember creatorMember = iMemberServiceApi.getRetailMember(orderParam.getPkCreator(), null).getData();
|
||||
if (null == creatorMember) {
|
||||
return "当前会员不存在";
|
||||
}
|
||||
// 校验推荐人等级是否为V0,如果是V0不能进行注册
|
||||
BdGrade memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(creatorMember.getPkSettleGrade())).findFirst().get();
|
||||
if (EGrade.START_UP.getValue() == memberGrade.getGradeValue()) {
|
||||
return "当前会员不能注册新会员";
|
||||
}
|
||||
orderParam.setCreatorMember(creatorMember);
|
||||
orderParam.setPkParent(orderParam.getPkCreator());
|
||||
|
||||
if (!creatorMember.getMemberCode().equals(orderParam.getParentCode())) {
|
||||
|
||||
CuMember parentMember = iMemberServiceApi.getRetailMember(null, orderParam.getParentCode()).getData();
|
||||
if (null == parentMember) {
|
||||
return "推荐编号不存在";
|
||||
}
|
||||
// // 校验推荐人是否大于V0,不然不能当推荐人
|
||||
// BdGrade parentGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(parentMember.getPkSettleGrade())).findFirst().get();
|
||||
// if (EGrade.START_UP.getValue() == parentGrade.getGradeValue()) {
|
||||
// return orderParam.getParentCode() + " 不能做为推荐人";
|
||||
// }
|
||||
|
||||
// 校验推荐人是否在当前会员伞下
|
||||
CuMember topMember = iMemberServiceApi.getRetailTopMember(parentMember.getPkId(), null, orderParam.getPkCreator(), null).getData();
|
||||
|
@ -567,7 +548,6 @@ public class ApiRetailOrderController {
|
|||
}
|
||||
orderParam.setPkParent(parentMember.getPkId());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -606,13 +586,7 @@ public class ApiRetailOrderController {
|
|||
if (null == buyMember) {
|
||||
return "购买会员编号不存在,请重试";
|
||||
}
|
||||
if (ESpecialArea.RETAIL_REPURCHASE.getValue() != specialArea) {
|
||||
// 判断购买会员是否是V0,V0不允许下升级、复购以外订单
|
||||
GradeDTO gradeDTO = iGradeServiceApi.getGrade(buyMember.getPkSettleGrade()).getData();
|
||||
if (gradeDTO.getGradeValue() == EGrade.START_UP.getValue()) {
|
||||
return "当前购买会员编号不允许下单";
|
||||
}
|
||||
}
|
||||
// TODO 必须在精品专区购买过商品才能在五折专区处理
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -192,8 +192,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
|
||||
if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea()) {
|
||||
// 注册、升级订单,计算会员等级
|
||||
BdGrade newGrade = iSaOrderService.calculateGrade(orderParam.getSpecialArea(), orderParam.getOrderItemsParams(), gradeList,
|
||||
cuMember, orderParam.getSystemType(), orderParam.getIsPay());
|
||||
BdGrade newGrade = iSaOrderService.calculateGrade();
|
||||
if (null == newGrade) {
|
||||
throw new ServiceException("会员不满足升级条件");
|
||||
}
|
||||
|
|
|
@ -414,17 +414,10 @@ public interface ISaOrderService extends IService<SaOrder> {
|
|||
CuMemberAccountExt queryRetailOrderSpendDetails(CuMemberAccountExt cuMemberAccount, SaOrder saOrder, List<SaOrderItems> orderItemList);
|
||||
|
||||
/**
|
||||
* 计算等级(根据盒数)
|
||||
* 计算等级
|
||||
*
|
||||
* @param specialArea 商品专区
|
||||
* @param orderItemsParams 商品明细
|
||||
* @param gradeList 等级列表(可为空)
|
||||
* @param updateGradeMember 升级会员信息(升级使用)
|
||||
* @param systemType 系统类型
|
||||
* @return 返回 null 则为不满足升级条件
|
||||
*/
|
||||
BdGrade calculateGrade(Integer specialArea, List<OrderItemsParam> orderItemsParams,
|
||||
List<BdGrade> gradeList, CuMember updateGradeMember,
|
||||
Integer systemType, Integer isPay);
|
||||
BdGrade calculateGrade();
|
||||
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ import com.hzs.system.base.dto.CurrencyDTO;
|
|||
import com.hzs.system.config.IAreaCurrencyServiceApi;
|
||||
import com.hzs.system.config.IGradeServiceApi;
|
||||
import com.hzs.system.config.dto.AreaCurrencyDTO;
|
||||
import com.hzs.system.config.dto.GradeDTO;
|
||||
import com.hzs.system.sys.IApprovalServiceApi;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
import com.hzs.system.sys.dto.ApprovalSubmitDTO;
|
||||
|
@ -1416,55 +1417,11 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
|
||||
|
||||
@Override
|
||||
public BdGrade calculateGrade(Integer specialArea, List<OrderItemsParam> orderItemsParams,
|
||||
List<BdGrade> gradeList, CuMember updateGradeMember,
|
||||
Integer systemType, Integer isPay) {
|
||||
if (CollectionUtil.isEmpty(gradeList)) {
|
||||
gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
}
|
||||
|
||||
// 当前产品盒数
|
||||
BigDecimal boxNum = BigDecimal.ZERO;
|
||||
|
||||
public BdGrade calculateGrade() {
|
||||
GradeDTO gradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.MEMBER.getValue(), CountryConstants.CHINA_COUNTRY).getData();
|
||||
// 返回等级
|
||||
BdGrade bdGrade = null;
|
||||
if (ESpecialArea.RETAIL_REGISTER.getValue() == specialArea) {
|
||||
// 注册专区直接算等级
|
||||
bdGrade = this.getGradeByBox(boxNum, gradeList, null);
|
||||
}
|
||||
return bdGrade;
|
||||
return BeanUtil.copyProperties(gradeDTO, BdGrade.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据盒数计算等级
|
||||
*
|
||||
* @param boxTotal 总盒数
|
||||
* @param gradeList 等级列表(可为空)
|
||||
* @param memberGrade 当前等级 -- 为空则为注册,不为空则为升级
|
||||
* @return
|
||||
*/
|
||||
private BdGrade getGradeByBox(final BigDecimal boxTotal, List<BdGrade> gradeList, BdGrade memberGrade) {
|
||||
if (CollectionUtil.isEmpty(gradeList)) {
|
||||
gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
}
|
||||
|
||||
if (null == memberGrade) {
|
||||
// 注册处理
|
||||
// 去掉 V4,V5 升级盒数小于购买盒数的最大一个等级为注册等级
|
||||
return gradeList.stream()
|
||||
.filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.VIP.getValue() && tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0)
|
||||
.max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
|
||||
} else {
|
||||
// 非注册处理
|
||||
// 查询等级比现在当前等级大的,然后倒序排序,再查询 购买盒数 <= 等级盒数 的第一个等级,就是当前升级的等级
|
||||
Optional<BdGrade> gradeOptional = gradeList.stream()
|
||||
// new 2025.06.25 V1-V3升级多送两级,需要支持送完还能买,此处暂时注释掉
|
||||
// .filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue())
|
||||
.sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
|
||||
.filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(BigDecimal.ZERO) > 0)
|
||||
.filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0).findFirst();
|
||||
return gradeOptional.orElse(memberGrade);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -40,8 +40,4 @@ public class AwardsServiceProvider implements IAwardsServiceApi {
|
|||
return R.ok(countryAwardsMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<BdAwards>> queryByPkCountryAwards(Integer pkCountry) {
|
||||
return R.ok(iBdAwardsService.queryByPkCountryAwards(pkCountry));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -109,11 +109,6 @@ public class GradeServiceProvider implements IGradeServiceApi {
|
|||
return R.ok(gradeDTOList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<BdGrade>> queryGrowUpFootmarkGrade(Integer pkCountry) {
|
||||
return R.ok(iBdGradeService.queryGrowUpFootmarkGrade(pkCountry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<GradeDTO>> findAll() {
|
||||
List<BdGrade> gradeList = iBdGradeService.list();
|
||||
|
|
|
@ -65,11 +65,4 @@ public interface IBdAwardsService extends IService<BdAwards> {
|
|||
**/
|
||||
Integer checkGradeAwards(Long pkRegisterGrade, Long pkSettleGrade, Long pkAwards);
|
||||
|
||||
/**
|
||||
* 根据所属国家查询奖衔
|
||||
*
|
||||
* @param pkCountry
|
||||
* @return
|
||||
*/
|
||||
List<BdAwards> queryByPkCountryAwards(Integer pkCountry);
|
||||
}
|
||||
|
|
|
@ -73,13 +73,6 @@ public interface IBdGradeService extends IService<BdGrade> {
|
|||
*/
|
||||
List<BdGrade> selectGradeAll(Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 根据国家查询等级配置列表
|
||||
*
|
||||
* @param pkCountry 国家
|
||||
*/
|
||||
List<BdGrade> queryGrowUpFootmarkGrade(Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 获取小于等于业绩最合适的等级
|
||||
*
|
||||
|
|
|
@ -126,12 +126,4 @@ public class BdAwardsServiceImpl extends ServiceImpl<BdAwardsMapper, BdAwards> i
|
|||
return baseMapper.checkGradeAwards(pkRegisterGrade, pkSettleGrade, pkAwards);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdAwards> queryByPkCountryAwards(Integer pkCountry) {
|
||||
LambdaQueryWrapper<BdAwards> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdAwards::getPkCountry, pkCountry);
|
||||
queryWrapper.eq(BdAwards::getEnableState, EnableStatus.ENABLE.getValue());
|
||||
queryWrapper.orderByAsc(BdAwards::getAwardsValue);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,7 +66,6 @@ public class BdGradeServiceImpl extends ServiceImpl<BdGradeMapper, BdGrade> impl
|
|||
LambdaQueryWrapper<BdGrade> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdGrade::getPkCountry, pkCountry);
|
||||
queryWrapper.eq(BdGrade::getEnableState, EnableStatus.ENABLE.getValue());
|
||||
queryWrapper.le(BdGrade::getGradeValue, EGrade.S_VIP.getValue());
|
||||
queryWrapper.orderByDesc(BdGrade::getGradeValue);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
@ -208,16 +207,6 @@ public class BdGradeServiceImpl extends ServiceImpl<BdGradeMapper, BdGrade> impl
|
|||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdGrade> queryGrowUpFootmarkGrade(Integer pkCountry) {
|
||||
LambdaQueryWrapper<BdGrade> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdGrade::getPkCountry, pkCountry);
|
||||
queryWrapper.eq(BdGrade::getEnableState, EnableStatus.ENABLE.getValue());
|
||||
queryWrapper.le(BdGrade::getGradeValue, EGrade.S_VIP.getValue());
|
||||
queryWrapper.orderByAsc(BdGrade::getGradeValue);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BdGrade getLastGrade(BigDecimal achieve, Integer pkCountry) {
|
||||
return baseMapper.getLastGrade(achieve, pkCountry);
|
||||
|
|
|
@ -90,11 +90,6 @@ public class EnumsInitController {
|
|||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
}
|
||||
|
||||
// 等级枚举枚举
|
||||
for (EGrade value : EGrade.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
}
|
||||
|
||||
// 直推配置取值枚举
|
||||
for (ETakeValueType value : ETakeValueType.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
|
|
|
@ -10,76 +10,71 @@ import lombok.Getter;
|
|||
@Getter
|
||||
public enum EAwards {
|
||||
|
||||
/**
|
||||
* -1=海粉
|
||||
*/
|
||||
SEA_FLOUR(0, -1, "海粉", 1),
|
||||
|
||||
/**
|
||||
* 0=无
|
||||
*/
|
||||
MEMBER(1, 0, "无", 0),
|
||||
/**
|
||||
* 黄宝
|
||||
* V1
|
||||
*/
|
||||
HEADER(2, 5, "一级", 0),
|
||||
/**
|
||||
* 绿宝
|
||||
* V2
|
||||
*/
|
||||
MANAGER(3, 10, "二级", 0),
|
||||
/**
|
||||
* 蓝宝
|
||||
* V3
|
||||
*/
|
||||
HIGH_MANAGER(4, 15, "三级", 0),
|
||||
/**
|
||||
* 钻石
|
||||
* V4
|
||||
*/
|
||||
SENIOR_MANAGER(5, 20, "四级", 0),
|
||||
/**
|
||||
* 黄钻
|
||||
* V5
|
||||
*/
|
||||
CHIEF(6, 25, "五级", 0),
|
||||
/**
|
||||
* 绿钻
|
||||
* V6
|
||||
*/
|
||||
HIGH_CHIEF(7, 30, "六级", 0),
|
||||
/**
|
||||
* 星耀蓝钻
|
||||
* V7
|
||||
*/
|
||||
SENIOR_CHIEF(8, 35, "七级", 0),
|
||||
/**
|
||||
* 王者红钻
|
||||
* 董事
|
||||
*/
|
||||
CHAIRMAN(9, 40, "八级", 0),
|
||||
/**
|
||||
* 传奇紫钻
|
||||
* 大使
|
||||
*/
|
||||
HONOR_CHAIRMAN(10, 45, "九级", 0),
|
||||
|
||||
/**
|
||||
* 10
|
||||
* 皇冠大使
|
||||
*/
|
||||
GLOBAL_CHAIRMAN(11, 50, "十级", 0),
|
||||
|
||||
/**
|
||||
* 11
|
||||
*/
|
||||
LEVEL_ELEVEN(12, 55, "十一级", 0),
|
||||
LEVEL_ELEVEN(12, 55, "十一级", 1),
|
||||
/**
|
||||
* 12
|
||||
*/
|
||||
LEVEL_TWELVE(13, 60, "十二级", 0),
|
||||
LEVEL_TWELVE(13, 60, "十二级", 1),
|
||||
/**
|
||||
* 13
|
||||
*/
|
||||
LEVEL_THIRTEEN(14, 65, "十三级", 0),
|
||||
LEVEL_THIRTEEN(14, 65, "十三级", 1),
|
||||
/**
|
||||
* 14
|
||||
*/
|
||||
LEVEL_FOURTEEN(15, 70, "十四级", 0),
|
||||
LEVEL_FOURTEEN(15, 70, "十四级", 1),
|
||||
/**
|
||||
* 15
|
||||
*/
|
||||
LEVEL_FIFTEEN(16, 75, "十五级", 0),
|
||||
LEVEL_FIFTEEN(16, 75, "十五级", 1),
|
||||
|
||||
;
|
||||
|
||||
|
@ -101,28 +96,4 @@ public enum EAwards {
|
|||
*/
|
||||
private final int enable;
|
||||
|
||||
/**
|
||||
* 根据枚举值获取等级枚举值(用于级差枚举值转换)
|
||||
*
|
||||
* @param value
|
||||
* @return
|
||||
*/
|
||||
public static Integer getGradeValueByValue(int value) {
|
||||
if (EGrade.START_UP.getValue() == value) {
|
||||
return EAwards.MEMBER.getValue();
|
||||
} else if (EGrade.HAI_FAN.getValue() == value) {
|
||||
return EAwards.HEADER.getValue();
|
||||
} else if (EGrade.YOU_KE.getValue() == value) {
|
||||
return EAwards.MANAGER.getValue();
|
||||
} else if (EGrade.MAKER.getValue() == value) {
|
||||
return EAwards.HIGH_MANAGER.getValue();
|
||||
} else if (EGrade.VIP.getValue() == value) {
|
||||
return EAwards.SENIOR_MANAGER.getValue();
|
||||
} else if (EGrade.S_VIP.getValue() == value) {
|
||||
return EAwards.CHIEF.getValue();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import com.hzs.common.core.constant.MemberFrameworkConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
@ -15,45 +14,20 @@ public enum EGrade {
|
|||
/**
|
||||
* -3=虚拟
|
||||
*/
|
||||
VIRTUALLY(-3, 0, "虚拟", 1, EnumsPrefixConstants.ENU_CAT + 3, MemberFrameworkConstants.xuni),
|
||||
VIRTUALLY(-3, 0, "虚拟", 1, MemberFrameworkConstants.xuni),
|
||||
/**
|
||||
* 1=待激活 死点 撤单
|
||||
*/
|
||||
DEAD_POINT(-1, 0, "待激活", 1, EnumsPrefixConstants.ENU_CAT + 1, MemberFrameworkConstants.toBeActivated),
|
||||
DEAD_POINT(-1, 0, "待激活", 1, MemberFrameworkConstants.toBeActivated),
|
||||
/**
|
||||
* 2=已注销 退单
|
||||
*/
|
||||
LOGGED_OUT(-2, 0, "已注销", 1, EnumsPrefixConstants.ENU_CAT + 2, MemberFrameworkConstants.LOG_OFF),
|
||||
LOGGED_OUT(-2, 0, "已注销", 1, MemberFrameworkConstants.LOG_OFF),
|
||||
|
||||
/**
|
||||
* 顾客
|
||||
* 会员
|
||||
*/
|
||||
START_UP(1, 20, "V0", 0, EnumsPrefixConstants.GRADE + "20", MemberFrameworkConstants.START_UP),
|
||||
|
||||
/**
|
||||
* VIP
|
||||
*/
|
||||
HAI_FAN(2, 30, "V1", 0, EnumsPrefixConstants.GRADE + "30", MemberFrameworkConstants.Hi_Pink),
|
||||
|
||||
/**
|
||||
* SVIP
|
||||
*/
|
||||
YOU_KE(3, 40, "V2", 0, EnumsPrefixConstants.GRADE + "40", MemberFrameworkConstants.YOU_KE),
|
||||
|
||||
/**
|
||||
* 卓越
|
||||
*/
|
||||
MAKER(4, 50, "V3", 0, EnumsPrefixConstants.GRADE + "50", MemberFrameworkConstants.MAKER),
|
||||
|
||||
/**
|
||||
* 首席
|
||||
*/
|
||||
VIP(5, 60, "V4", 0, EnumsPrefixConstants.GRADE + "60", MemberFrameworkConstants.VIP),
|
||||
|
||||
/**
|
||||
* 合伙人
|
||||
*/
|
||||
S_VIP(6, 70, "V5", 0, EnumsPrefixConstants.GRADE + "70", MemberFrameworkConstants.S_VIP),
|
||||
MEMBER(2, 30, "V1", 0, MemberFrameworkConstants.Hi_Pink),
|
||||
|
||||
;
|
||||
|
||||
|
@ -65,7 +39,6 @@ public enum EGrade {
|
|||
* 实际值
|
||||
*/
|
||||
private final int value;
|
||||
|
||||
/**
|
||||
* 显示标签
|
||||
*/
|
||||
|
@ -74,11 +47,6 @@ public enum EGrade {
|
|||
* 是否启用(0=是,1=否) -- 来源EYesNo
|
||||
*/
|
||||
private final int enable;
|
||||
/**
|
||||
* 国际化翻译key值
|
||||
*/
|
||||
private final String key;
|
||||
|
||||
/**
|
||||
* 头像地址
|
||||
*/
|
||||
|
@ -93,14 +61,4 @@ public enum EGrade {
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static String getGradeLabel(int value) {
|
||||
for (EGrade eGrade : EGrade.values()) {
|
||||
if (value == eGrade.value) {
|
||||
return eGrade.getLabel();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -36,13 +36,13 @@ public enum EOrderType {
|
|||
FICTITIOUS_ORDER(20, "虚拟订单", 1),
|
||||
|
||||
/**
|
||||
* 注册订单
|
||||
* 精品专区
|
||||
*/
|
||||
RETAIL_REGISTER(41, "注册订单", 0),
|
||||
RETAIL_REGISTER(41, "精品专区", 0),
|
||||
/**
|
||||
* 复购订单
|
||||
* 商城专区
|
||||
*/
|
||||
RETAIL_REPURCHASE(43, "复购订单", 0),
|
||||
RETAIL_REPURCHASE(43, "商城专区", 0),
|
||||
/**
|
||||
* 重消订单
|
||||
*/
|
||||
|
|
|
@ -31,13 +31,13 @@ public enum ESpecialArea {
|
|||
LIVE_BROADCAST(14, "直播专区", 1, 14, EMenuDetail.LIVE.getValue()),
|
||||
|
||||
/**
|
||||
* 会员专区(注册)
|
||||
* 精品专区
|
||||
*/
|
||||
RETAIL_REGISTER(41, "注册专区", 0, 41, -1),
|
||||
RETAIL_REGISTER(41, "精品专区", 0, 41, -1),
|
||||
/**
|
||||
* 复购专区
|
||||
* 商城专区
|
||||
*/
|
||||
RETAIL_REPURCHASE(43, "复购专区", 0, 43, -1),
|
||||
RETAIL_REPURCHASE(43, "商城专区", 0, 43, -1),
|
||||
/**
|
||||
* 重消专区
|
||||
*/
|
||||
|
|
|
@ -1,68 +0,0 @@
|
|||
package com.hzs.common.core.enums.retail;
|
||||
|
||||
import com.hzs.common.core.enums.EGrade;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 新零售商品等级价格枚举
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum ERetailWaresPrice {
|
||||
|
||||
/**
|
||||
* V0(20)
|
||||
*/
|
||||
V0(EGrade.START_UP.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V1(30)
|
||||
*/
|
||||
V1(EGrade.HAI_FAN.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V2(40)
|
||||
*/
|
||||
V2(EGrade.YOU_KE.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V3(50)
|
||||
*/
|
||||
V3(EGrade.MAKER.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V4(60)
|
||||
*/
|
||||
V4(EGrade.VIP.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V5(70)
|
||||
*/
|
||||
V5(EGrade.S_VIP.getValue(), new BigDecimal("399")),
|
||||
|
||||
;
|
||||
|
||||
/**
|
||||
* 等级值(EGrade中的value)
|
||||
*/
|
||||
private final int value;
|
||||
|
||||
/**
|
||||
* 价格
|
||||
*/
|
||||
private final BigDecimal price;
|
||||
|
||||
/**
|
||||
* 根据枚举值获取枚举
|
||||
*
|
||||
* @param value 枚举值
|
||||
* @return
|
||||
*/
|
||||
public static ERetailWaresPrice getEnumByValue(int value) {
|
||||
for (ERetailWaresPrice eRetailWaresPrice : ERetailWaresPrice.values()) {
|
||||
if (eRetailWaresPrice.value == value) {
|
||||
return eRetailWaresPrice;
|
||||
}
|
||||
}
|
||||
return V0;
|
||||
}
|
||||
|
||||
}
|
|
@ -192,19 +192,5 @@ public class SaOrderExt extends SaOrder {
|
|||
*/
|
||||
private Integer updateFlag;
|
||||
|
||||
/**
|
||||
* 最新等级
|
||||
*/
|
||||
private BdGrade newGrade;
|
||||
|
||||
/**
|
||||
* 需要添加的升级记录列表
|
||||
*/
|
||||
private List<CuMemberLevel> createLevelList;
|
||||
/**
|
||||
* 需要删除的升级记录列表
|
||||
*/
|
||||
private List<CuMemberLevel> deleteLevelList;
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue