3
0
Fork 0

## 结算日奖;商品列表添加团队校验;

This commit is contained in:
cabbage 2025-07-10 17:03:07 +08:00
parent a8522ea109
commit ae9c04361a
48 changed files with 845 additions and 1531 deletions

View File

@ -3,7 +3,6 @@ package com.hzs.member.detail;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.base.CuMemberRegister;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
import java.util.List;
@ -29,14 +28,6 @@ public interface ICuMemberDetailServiceApi {
*/
R<List<CuMemberLevel>> getUpgradeList(Long pkMember);
/**
* 查询手动开通奖衔的最新一条
*
* @param pkMember 会员ID
* @return
*/
R<CuMemberAwardsExt> queryLastManualAwards(Long pkMember);
/**
* 查询会员注册信息
*

View File

@ -5,6 +5,8 @@ import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.ext.CuMemberExt;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
/**
* 会员 Mapper 接口
*/
@ -19,4 +21,9 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
*/
CuMemberExt queryLoginMember(@Param("memberCode") String memberCode, @Param("pkMember") Long pkMember);
/**
* 更新会员等级
*/
void updateCuMemberLevel(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
}

View File

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.ext.CuMemberExt;
import java.util.Date;
/**
* 会员 服务类
*/
@ -17,4 +19,9 @@ public interface ICuMemberService extends IService<CuMember> {
*/
CuMemberExt getMemberByCode(String memberCode);
/**
* 更新会员等级
*/
void updateCuMemberLevel(Date startDate, Date endDate);
}

View File

@ -7,6 +7,8 @@ import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.bonus.base.mapper.CuMemberMapper;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* 会员 服务实现类
*/
@ -18,4 +20,9 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
return baseMapper.queryLoginMember(memberCode, null);
}
@Override
public void updateCuMemberLevel(Date startDate, Date endDate) {
baseMapper.updateCuMemberLevel(startDate, endDate);
}
}

View File

@ -1,43 +0,0 @@
package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.CuMemberBonusCoach;
import com.hzs.common.domain.member.ext.CuMemberBonusCoachExt;
import com.hzs.bonus.bonus.param.BonusParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 会员奖金-辅导收益明细表 Mapper 接口
*/
public interface CuMemberBonusCoachMapper extends BaseMapper<CuMemberBonusCoach> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
*/
void deleteCuMemberBonusCoach(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusCoachList 会员奖金
*/
void batchInsertCuMemberBonusCoach(@Param("cuMemberBonusCoachList") List<?> cuMemberBonusCoachList);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusCoachExt> queryMemberBonusCoachByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusCoachExt> queryMemberBonusCoachByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -1,43 +0,0 @@
package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.CuMemberBonusExpand;
import com.hzs.common.domain.member.ext.CuMemberBonusExpandExt;
import com.hzs.bonus.bonus.param.BonusParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 会员奖金-拓展收益明细表 Mapper 接口
*/
public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpand> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
*/
void deleteCuMemberBonusExpand(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
*/
void batchInsertCuMemberBonusExpand(@Param("cuMemberBonusExpandList") List<?> cuMemberBonusExpandList);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusExpandExt> queryMemberBonusExpandByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusExpandExt> queryMemberBonusExpandByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -1,27 +0,0 @@
package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberBonusCoach;
import java.util.List;
import java.util.Set;
/**
* 会员奖金-辅导收益明细表 服务类
*/
public interface ICuMemberBonusCoachService extends IService<CuMemberBonusCoach> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
*/
void deleteCuMemberBonusCoach(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusCoachList 会员奖金
*/
void batchInsertCuMemberBonusCoach(List<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet);
}

View File

@ -1,28 +0,0 @@
package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberBonusExpand;
import java.util.List;
import java.util.Set;
/**
* 会员奖金-拓展收益明细表 服务类
*/
public interface ICuMemberBonusExpandService extends IService<CuMemberBonusExpand> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
*/
void deleteCuMemberBonusExpand(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
*/
void batchInsertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList, Set<Long> memberIdSet);
}

View File

@ -53,6 +53,23 @@ public abstract class BonusSettleHandle {
cuMemberBonusRange.setRemark(remark);
}
/**
* 获得 复购级差收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusRange 报单服务费
* @param sourceMemberRangeExt 提供奖金的人
* @param targetMemberRangeExt 获得奖金的人
*/
protected void rangeRepurRetailRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
CuMemberRetailRangeExt targetMemberRangeExt) {
String remark = String.format(BonusMsgConstants.REPUR_RANGE, saOrderExt.getOrderCode(),
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
cuMemberBonusRange.getCalAchieve(), sourceMemberRangeExt.getGradeName(), targetMemberRangeExt.getGradeName());
cuMemberBonusRange.setRemark(remark);
}
protected CuMemberBonus getCuMemberBonus(Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) {
if (cuMemberBonusMap.containsKey(pkMember)) {

View File

@ -2,6 +2,7 @@ package com.hzs.bonus.bonus.service.impl;
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
import com.hzs.bonus.detail.service.ICuMemberGradeService;
import com.hzs.bonus.order.service.IBonusOrderService;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.RetailConstants;
@ -12,10 +13,9 @@ import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.bonus.BdBonusDeduct;
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
import com.hzs.common.domain.member.bonus.*;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.ext.SaOrderWaresExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.member.detail.ICuMemberServiceLogServiceApi;
@ -41,13 +41,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
private ICuMemberRetailRangeService iCuMemberRetailRangeService;
@Autowired
private IBonusOrderService iBonusOrderService;
@Autowired
private ICuMemberGradeService iCuMemberGradeService;
@DubboReference
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
/**
* 日结
* 计算新零售团队的奖金首购级差复购级差
* 计算新零售奖金首购级差复购级差
*/
void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
Integer period, Integer yesterdayPeriod, Boolean isSameMonth) {
@ -78,19 +80,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
Map<Long, Date> activateMap = this.getActivateMap(settleStartDate);
if (retailOrderList.size() > 0) {
// 会员购买升级记录
Map<Long, CuMemberLevel> memberLevelMap = new HashMap<>();
List<CuMemberLevel> memberLevelList = iCuMemberGradeService.calculateCuMemberRetailGradeInit(period, settleStartDate, settleEndDate, rangeTableName);
memberLevelList.forEach(cuMemberLevel -> memberLevelMap.put(cuMemberLevel.getPkOrder(), cuMemberLevel));
// 会员的自动升级记录
Map<Long, CuMemberLevel> autoLevelMap = new HashMap<>();
List<CuMemberLevel> autoLevelList = iCuMemberGradeService.listAutoLevel(settleStartDate, settleEndDate);
autoLevelList.forEach(tmpLevel -> autoLevelMap.put(tmpLevel.getPkOrder(), tmpLevel));
// 按照血缘查询该会员所有伞上会员
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
// 会员结算mapkey会员IDvalue结算扩展
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
// 等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> gradeMap = new HashMap<>();
// 等级mapkey:等级IDvalue:等级对象
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
// 等级列表
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
for (BdGrade bdGrade : retaiGradeList) {
gradeMap.put(bdGrade.getGradeValue(), bdGrade);
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
}
// 结算会员map处理
@ -100,14 +109,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
// 级收益
// 收益
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
// 上面更新网体按会员表是否激活进行处理
for (SaOrderExt saOrderExt : retailOrderList) {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() ||
EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// 注册升级才能算激活状态
sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
}
@ -118,12 +127,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 订单指定产品盒数计算等级使用
int boxNum = 0;
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
boxNum += saOrderItems.getWaresQuantity();
}
}
int boxNum = saOrderExt.getBoxNum();
// 个人累计消费pv
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 复购重消盒数业绩算个人累计数据盒数业绩
@ -147,13 +152,35 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
&& boxNum > 0
) {
// 注册或升级订单并且存在盒数产品才有 直推级差
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
// 直推级差
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
}
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
// TODO new 复购订单计算复购级差
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt, gradeIdMap));
// 订单存在升级记录
if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) {
sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
}
}
}
// 订单存在自动升级记录高级店主处理
if (autoLevelMap.containsKey(saOrderExt.getPkId())) {
CuMemberLevel cuMemberLevel = autoLevelMap.get(saOrderExt.getPkId());
if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
CuMemberRetailRangeExt tmpMemberRetailRange = memberRangeExtMap.get(cuMemberLevel.getPkMember());
tmpMemberRetailRange.setPkGrade(bdGrade.getPkId());
tmpMemberRetailRange.setGradeValue(bdGrade.getGradeValue());
tmpMemberRetailRange.setGradeName(bdGrade.getGradeName());
}
}
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
&& boxNum > 0) {
// 复购订单计算复购级差
cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt));
}
}
if (cuMemberBonusRangeList.size() > 0) {
@ -171,10 +198,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
/**
* 累计团队盒数业绩等
*/
public List<CuMemberAwards> calculateRetailRangeGradeAwards(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, SaOrderExt saOrderExt,
Integer boxNum, Map<Long, Date> activateMap) {
// 会员奖衔升级列表
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
public void calculateRetailRangeGradeAwards(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, SaOrderExt saOrderExt,
Integer boxNum, Map<Long, Date> activateMap) {
// 订单会员
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 订单会员的推荐人
@ -207,15 +232,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent());
}
return cuMemberAwardsList;
}
/**
* 计算直推级差收益
*/
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO, Integer period,
SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) {
BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map<Integer, BdGrade> gradeIdMap) {
// 直推级差返回数据
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
@ -223,27 +246,28 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 推荐人
long pkParent = sourceMemberRangeExt.getPkParent();
// 订单等级值
Integer orderGradeValue = gradeIdMap.get(saOrderExt.getPkGrade()).getGradeValue();
// 商品最终价格
BigDecimal waresPrice = saOrderItems.getWaresPrice();
// 商品数量
BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity());
// 会员顺序
int memberLevel = 0;
// 前一个会员等级
int beforeGradeValue = 0;
// 前面累计奖金
BigDecimal totalBonus = BigDecimal.ZERO;
// 平级合伙人数量
int v3Count = 1;
// 计算直推级差
while (true) {
// 上一次处理的是公司等级则结束退出
if (beforeGradeValue == EGrade.COMPANY.getValue()) {
break;
}
// 推荐人
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent);
if (targetMemberRangeExt == null) {
if (null == targetMemberRangeExt) {
break;
}
// 推荐人的推荐人
pkParent = targetMemberRangeExt.getPkParent();
// 会员顺序
memberLevel += 1;
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus()
|| ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory()
@ -254,33 +278,252 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
continue;
}
// 当前会员等级值
int calGradeValue = targetMemberRangeExt.getGradeValue();
int targetGradeValue = targetMemberRangeExt.getGradeValue();
// 直推级差收益
BigDecimal rangeBonusIncome = BigDecimal.ZERO;
if (memberLevel == 1) {
// 直推拿80
rangeBonusIncome = rangeBonusIncome.add(RetailConstants.FIRST_DIRECT);
} else if (memberLevel == 2) {
// 间推拿20
rangeBonusIncome = rangeBonusIncome.add(RetailConstants.FIRST_INDIRECT);
if (EGrade.HAI_FAN.getValue() == orderGradeValue) {
// 订单等级是会员VIP
if (targetGradeValue > beforeGradeValue) {
// 当前会员等级大于上一个会员等级
if (EGrade.HAI_FAN.getValue() == targetGradeValue) {
// V1 推拿 60
rangeBonusIncome = RetailConstants.V1_V1;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V1);
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 80或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V1.subtract(totalBonus));
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 100或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V1.subtract(totalBonus));
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 200或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V1.subtract(totalBonus));
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 208或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V1.subtract(totalBonus));
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 220 或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V1.subtract(totalBonus));
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 240或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V1.subtract(totalBonus));
}
}
} else if (EGrade.YOU_KE.getValue() == orderGradeValue) {
// 订单等级是VIP
if (targetGradeValue > beforeGradeValue) {
// 当前会员等级大于上一个会员等级
if (EGrade.HAI_FAN.getValue() == targetGradeValue) {
// V1 推拿 300
rangeBonusIncome = RetailConstants.V1_V2;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V2);
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 400或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V2.subtract(totalBonus));
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 500或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V2.subtract(totalBonus));
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 1000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V2.subtract(totalBonus));
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 1040或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V2.subtract(totalBonus));
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 1100或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V2.subtract(totalBonus));
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 1200或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V2.subtract(totalBonus));
}
}
} else if (EGrade.MAKER.getValue() == orderGradeValue) {
// 订单是合伙人
if (targetGradeValue > beforeGradeValue) {
// 当前等级大于之前等级
if (EGrade.HAI_FAN.getValue() == targetGradeValue) {
// V1 推拿 600
rangeBonusIncome = RetailConstants.V1_V3;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V3);
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 800或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V3.subtract(totalBonus));
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 1000或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_1.subtract(totalBonus));
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 2000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V3.subtract(totalBonus));
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 2080或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V3.subtract(totalBonus));
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 2200或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V3.subtract(totalBonus));
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 2400或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V3.subtract(totalBonus));
}
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
if (v3Count == 1) {
// V3第一平级 推拿 1200或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_2.subtract(totalBonus));
v3Count++;
} else if (v3Count == 2) {
// V3第二平级 推拿 1300或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_3.subtract(totalBonus));
v3Count++;
}
}
} else if (EGrade.VIP.getValue() == orderGradeValue) {
// 订单是合伙人
if (targetGradeValue > beforeGradeValue) {
// 当前等级大于之前等级
if (EGrade.HAI_FAN.getValue() == targetGradeValue) {
// V1 推拿 1200
rangeBonusIncome = RetailConstants.V1_V4;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V4);
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 1600或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V4.subtract(totalBonus));
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 2000或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_1.subtract(totalBonus));
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 4000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V4.subtract(totalBonus));
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 4160或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V4.subtract(totalBonus));
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 4400或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V4.subtract(totalBonus));
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 4800或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V4.subtract(totalBonus));
}
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
if (v3Count == 1) {
// V3第一平级 推拿 2400或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_2.subtract(totalBonus));
v3Count++;
} else if (v3Count == 2) {
// V3第二平级 推拿 2600或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_3.subtract(totalBonus));
v3Count++;
}
}
} else if (EGrade.BRANCH_COMPANY.getValue() == orderGradeValue) {
// 订单是分公司
if (targetGradeValue >= EGrade.VIP.getValue() && targetGradeValue > beforeGradeValue) {
// 博羚店主以上才有级差 并且 当前等级大于之前等级
if (EGrade.VIP.getValue() == targetGradeValue) {
// 博羚店主拿 50000
rangeBonusIncome = RetailConstants.V4_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V6.subtract(totalBonus));
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// 高级店主拿 52000或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V6.subtract(totalBonus));
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// 分公司拿 55000或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V6.subtract(totalBonus));
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// 总公司拿 60000或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V6.subtract(totalBonus));
}
}
}
// TODO new
// 前一级会员等级
beforeGradeValue = targetGradeValue;
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
// 处理直推级差收益
// 会员奖金
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
// 会员级差
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
cuMemberBonusRange.setCalAchieve(waresPrice);
cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount());
cuMemberBonusRange.setPretaxIncome(rangeBonusIncome);
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
cuMemberBonusRange.setPkOrder(saOrderExt.getPkId());
cuMemberBonusRange.setPkOrderItems(0L);
rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
@ -293,6 +536,141 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
return memberBonusRangeList;
}
/**
* 计算复购级差收益
*/
List<CuMemberBonusRange> calculateRetailRepurRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt) {
// 直推级差返回数据
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
// 订单下单人自己
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 推荐人
long pkParent = sourceMemberRangeExt.getPkParent();
// 商品盒数
BigDecimal boxNum = new BigDecimal(saOrderExt.getBoxNum());
// 前一个会员等级
int beforeGradeValue = 0;
// 前面累计奖金
BigDecimal totalBonus = BigDecimal.ZERO;
// 平级合伙人数量
int v3Count = 1;
// 计算直推级差
while (true) {
// 上一次处理的是公司等级则结束退出
if (beforeGradeValue == EGrade.COMPANY.getValue()) {
break;
}
// 推荐人
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent);
if (null == targetMemberRangeExt) {
break;
}
// 推荐人的推荐人
pkParent = targetMemberRangeExt.getPkParent();
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus()
|| ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory()
|| targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()
|| targetMemberRangeExt.getGradeValue() == EGrade.START_UP.getValue()
|| EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
// 停算收益非正常会员未激活等级为顾客停止收益直接跳过
continue;
}
// 当前会员等级值
int targetGradeValue = targetMemberRangeExt.getGradeValue();
// 复购级差收益
BigDecimal rangeBonusIncome = BigDecimal.ZERO;
if (targetGradeValue > beforeGradeValue) {
// 当前等级大于之前等级
if (EGrade.HAI_FAN.getValue() == targetGradeValue) {
// V1 6
rangeBonusIncome = RetailConstants.REPURCHASE_V1.multiply(boxNum);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V1).multiply(boxNum);
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 8或者减去之前累计
rangeBonusIncome = RetailConstants.REPURCHASE_V2.multiply(boxNum).subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V2.subtract(totalBonus).multiply(boxNum));
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 10或者减去之前累计
rangeBonusIncome = RetailConstants.REPURCHASE_V3_1.multiply(boxNum).subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_1.subtract(totalBonus).multiply(boxNum));
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 20或者减去之前累计
rangeBonusIncome = RetailConstants.REPURCHASE_V4.multiply(boxNum).subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V4.subtract(totalBonus).multiply(boxNum));
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 20.8或者减去之前累计
rangeBonusIncome = RetailConstants.REPURCHASE_V5.multiply(boxNum).subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V5.subtract(totalBonus).multiply(boxNum));
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 22或者减去之前累计
rangeBonusIncome = RetailConstants.REPURCHASE_V6.multiply(boxNum).subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V6.subtract(totalBonus).multiply(boxNum));
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 24或者减去之前累计
rangeBonusIncome = RetailConstants.REPURCHASE_V7.multiply(boxNum).subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V7.subtract(totalBonus).multiply(boxNum));
}
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
if (v3Count == 1) {
// V3第一平级 推拿 12或者减去之前累计
rangeBonusIncome = RetailConstants.REPURCHASE_V3_2.multiply(boxNum).subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_2.subtract(totalBonus).multiply(boxNum));
v3Count++;
} else if (v3Count == 2) {
// V3第二平级 推拿 13或者减去之前累计
rangeBonusIncome = RetailConstants.REPURCHASE_V3_3.multiply(boxNum).subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V3_3.subtract(totalBonus).multiply(boxNum));
v3Count++;
}
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
// 处理复购级差收益
// 会员奖金
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_INCOME.getValue());
// 会员级差
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount());
cuMemberBonusRange.setPretaxIncome(rangeBonusIncome);
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
cuMemberBonusRange.setPkOrder(saOrderExt.getPkId());
cuMemberBonusRange.setPkOrderItems(0L);
rangeRepurRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
}
memberBonusRangeList.add(cuMemberBonusRange);
}
}
return memberBonusRangeList;
}
private CuMemberBonusRange getCuMemberRetailBonusRange(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt,
CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
CuMemberBonusRange cuMemberBonusRange = CuMemberBonusRange.builder()

View File

@ -31,50 +31,16 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
@Autowired
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Autowired
private ICuMemberBonusService iCuMemberBonusService;
@Autowired
private ICuMemberBonusPushService iCuMemberBonusPushService;
@Autowired
private ICuMemberBonusDetailService iCuMemberBonusDetailService;
@Autowired
private ICuMemberBonusRangeService iCuMemberBonusRangeService;
@Autowired
private BonusSettleRangeHandle bonusSettleRangeHandle;
private ICuMemberBonusService cuMemberBonusService;
private ICuMemberBonusPushService cuMemberBonusPushService;
private ICuMemberBonusExpandService cuMemberBonusExpandService;
private ICuMemberBonusCoachService cuMemberBonusCoachService;
private ICuMemberBonusDetailService cuMemberBonusDetailService;
private ICuMemberBonusRangeService cuMemberBonusRangeService;
@Autowired
public void setCuMemberBonusPushService(ICuMemberBonusPushService cuMemberBonusPushService) {
this.cuMemberBonusPushService = cuMemberBonusPushService;
}
@Autowired
public void setCuMemberBonusExpandService(ICuMemberBonusExpandService cuMemberBonusExpandService) {
this.cuMemberBonusExpandService = cuMemberBonusExpandService;
}
@Autowired
public void setCuMemberBonusCoachService(ICuMemberBonusCoachService cuMemberBonusCoachService) {
this.cuMemberBonusCoachService = cuMemberBonusCoachService;
}
@Autowired
public void setCuMemberBonusDetailService(ICuMemberBonusDetailService cuMemberBonusDetailService) {
this.cuMemberBonusDetailService = cuMemberBonusDetailService;
}
@Autowired
public void setCuMemberBonusRangeService(ICuMemberBonusRangeService cuMemberBonusRangeService) {
this.cuMemberBonusRangeService = cuMemberBonusRangeService;
}
@Autowired
public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) {
this.cuMemberBonusService = cuMemberBonusService;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void calculateCuMemberBonus(String settleDate, List<SaOrderExt> saOrderExtList) {
@ -96,7 +62,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
// 今天和昨天是否同月
Boolean isSameMonth = DateUtils.getMonth(settleDate).equals(DateUtils.getMonth(yesterday));
// 计算新零售团队奖金
// 计算新零售奖金
bonusSettleRangeHandle.calculateRetailBonusByDay(settleDate, cuMemberBonusMap, bonusConfigDTO, recordDetailVO,
period, yesterdayPeriod, isSameMonth);
@ -115,24 +81,18 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
* @param bonusRecordDetailVO 奖金明细表
*/
void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
cuMemberBonusPushService.deleteCuMemberBonusPush(period);
cuMemberBonusExpandService.deleteCuMemberBonusExpand(period);
cuMemberBonusCoachService.deleteCuMemberBonusCoach(period);
cuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
cuMemberBonusRangeService.deleteCuMemberBonusRange(period);
cuMemberBonusService.deleteCuMemberBonus(period);
iCuMemberBonusPushService.deleteCuMemberBonusPush(period);
iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
iCuMemberBonusService.deleteCuMemberBonus(period);
if (cuMemberBonusMap.size() == 0) {
return;
}
List<CuMemberBonusPush> batchMemberBonusPushList = new ArrayList<>();
List<CuMemberBonusExpand> batchMemberBonusExpandList = new ArrayList<>();
List<CuMemberBonusCoach> batchMemberBonusCoachList = new ArrayList<>();
List<CuMemberBonusDetail> batchMemberBonusDetailList = new ArrayList<>();
List<CuMemberBonusRange> batchMemberBonusRangeList = new ArrayList<>();
List<CuMemberBonus> cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap);
List<CuMemberBonusPush> cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList();
List<CuMemberBonusExpand> cuMemberBonusExpandList = bonusRecordDetailVO.getCuMemberBonusExpandList();
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusRecordDetailVO.getCuMemberBonusCoachList();
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList();
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList();
if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) {
@ -140,16 +100,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId()));
batchMemberBonusPushList.addAll(cuMemberBonusPushList);
}
if (cuMemberBonusExpandList != null && cuMemberBonusExpandList.size() > 0) {
cuMemberBonusExpandList.forEach(cuMemberBonusExpand ->
cuMemberBonusExpand.setPkBonus(cuMemberBonusMap.get(cuMemberBonusExpand.getPkBonus()).getPkId()));
batchMemberBonusExpandList.addAll(cuMemberBonusExpandList);
}
if (cuMemberBonusCoachList != null && cuMemberBonusCoachList.size() > 0) {
cuMemberBonusCoachList.forEach(cuMemberBonusCoach ->
cuMemberBonusCoach.setPkBonus(cuMemberBonusMap.get(cuMemberBonusCoach.getPkBonus()).getPkId()));
batchMemberBonusCoachList.addAll(cuMemberBonusCoachList);
}
if (cuMemberBonusDetailList != null && cuMemberBonusDetailList.size() > 0) {
cuMemberBonusDetailList.forEach(cuMemberBonusDetail ->
cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId()));
@ -161,17 +111,15 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
batchMemberBonusRangeList.addAll(cuMemberBonusRangeList);
}
// 插入奖金主表
cuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(period);
cuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
cuMemberBonusExpandService.batchInsertCuMemberBonusExpand(batchMemberBonusExpandList, memberIdSet);
cuMemberBonusCoachService.batchInsertCuMemberBonusCoach(batchMemberBonusCoachList, memberIdSet);
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
iCuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
}
private List<CuMemberBonus> setCuMemberBonusSeq(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap) {
List<Long> pkIdList = cuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size());
List<Long> pkIdList = iCuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size());
int i = 0;
// 判断时间重算的时候直接是已公布
Integer grantStatus = EGrantStatus.SETTLED.getValue();

View File

@ -1,51 +0,0 @@
package com.hzs.bonus.bonus.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.bonus.service.ICuMemberBonusCoachService;
import com.hzs.common.domain.member.bonus.CuMemberBonusCoach;
import com.hzs.bonus.bonus.mapper.CuMemberBonusCoachMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* 会员奖金-辅导收益明细表 服务实现类
*/
@Service
public class CuMemberBonusCoachServiceImpl extends ServiceImpl<CuMemberBonusCoachMapper, CuMemberBonusCoach> implements ICuMemberBonusCoachService {
private CuMemberBonusSettle cuMemberBonusSettle;
@Autowired
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
this.cuMemberBonusSettle = cuMemberBonusSettle;
}
@Override
public void deleteCuMemberBonusCoach(Integer period) {
baseMapper.deleteCuMemberBonusCoach(period);
}
@Override
public void batchInsertCuMemberBonusCoach(List<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet) {
if (cuMemberBonusCoachList.size() == 0) {
return;
}
List<CuMemberBonusCoach> cuMemberBonusCoaches = new ArrayList<>();
for (CuMemberBonusCoach cuMemberBonusCoach : cuMemberBonusCoachList) {
if (memberIdSet.contains(cuMemberBonusCoach.getPkBonus())) {
cuMemberBonusCoaches.add(cuMemberBonusCoach);
}
}
if (cuMemberBonusCoaches.size() == 0) {
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusCoaches);
lists.forEach(list ->
baseMapper.batchInsertCuMemberBonusCoach(list));
}
}

View File

@ -1,49 +0,0 @@
package com.hzs.bonus.bonus.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.bonus.service.ICuMemberBonusExpandService;
import com.hzs.common.domain.member.bonus.CuMemberBonusExpand;
import com.hzs.bonus.bonus.mapper.CuMemberBonusExpandMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* 会员奖金-拓展收益明细表 服务实现类
*/
@Service
public class CuMemberBonusExpandServiceImpl extends ServiceImpl<CuMemberBonusExpandMapper, CuMemberBonusExpand> implements ICuMemberBonusExpandService {
@Autowired
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void deleteCuMemberBonusExpand(Integer period) {
baseMapper.deleteCuMemberBonusExpand(period);
}
@Override
public void batchInsertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList, Set<Long> memberIdSet) {
if (cuMemberBonusExpandList.size() == 0) {
return;
}
List<CuMemberBonusExpand> memberBonusExpands = new ArrayList<>();
for (CuMemberBonusExpand cuMemberBonusExpand : cuMemberBonusExpandList) {
if (memberIdSet.contains(cuMemberBonusExpand.getPkBonus())) {
memberBonusExpands.add(cuMemberBonusExpand);
}
}
if (memberBonusExpands.size() == 0) {
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(memberBonusExpands);
lists.forEach(list ->
baseMapper.batchInsertCuMemberBonusExpand(list));
}
}

View File

@ -56,10 +56,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
private CuMemberBonusDetailMapper cuMemberBonusDetailMapper;
private CuMemberBonusExpandMapper cuMemberBonusExpandMapper;
private CuMemberBonusCoachMapper cuMemberBonusCoachMapper;
private CuMemberBonusRangeMapper cuMemberBonusRangeMapper;
private CuMemberBonusSettle cuMemberBonusSettle;
@ -83,16 +79,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
this.cuMemberBonusSettle = cuMemberBonusSettle;
}
@Autowired
public void setCuMemberBonusExpandMapper(CuMemberBonusExpandMapper cuMemberBonusExpandMapper) {
this.cuMemberBonusExpandMapper = cuMemberBonusExpandMapper;
}
@Autowired
public void setCuMemberBonusCoachMapper(CuMemberBonusCoachMapper cuMemberBonusCoachMapper) {
this.cuMemberBonusCoachMapper = cuMemberBonusCoachMapper;
}
@Autowired
public void setCuMemberBonusRangeMapper(CuMemberBonusRangeMapper cuMemberBonusRangeMapper) {
this.cuMemberBonusRangeMapper = cuMemberBonusRangeMapper;
@ -321,31 +307,9 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
memberBonusDetailVO.setSourceMemberName(cuMemberBonusDetail.getSourceMemberName());
memberBonusDetailVOList.add(memberBonusDetailVO);
});
} else if (EBonusItems.EXPANSION_INCOME.getValue() == bonusItemsValue ||
EBonusItems.CONSUMPTION_EXPANSION_INCOME.getValue() == bonusItemsValue) {
// 拓展收益复购拓展收益
List<CuMemberBonusExpandExt> cuMemberBonusExpandList = cuMemberBonusExpandMapper.queryMemberBonusExpandByBonusItems(bonusParam);
dataTable = getDataTable(cuMemberBonusExpandList);
cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> {
MemberBonusDetailVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusExpand, MemberBonusDetailVO.class);
memberBonusDetailVO.setSourceMemberCode(cuMemberBonusExpand.getSourceMemberCode());
memberBonusDetailVO.setSourceMemberName(cuMemberBonusExpand.getSourceMemberName());
memberBonusDetailVOList.add(memberBonusDetailVO);
});
} else if (EBonusItems.COACHING_INCOME.getValue() == bonusItemsValue) {
// 辅导收益
// 拓展收益复购拓展收益
List<CuMemberBonusCoachExt> cuMemberBonusCoachList = cuMemberBonusCoachMapper.queryMemberBonusCoachByBonusItems(bonusParam);
dataTable = getDataTable(cuMemberBonusCoachList);
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusCoach, MemberBonusDetailVO.class);
memberBonusDetailVO.setSourceMemberCode(cuMemberBonusCoach.getSourceMemberCode());
memberBonusDetailVO.setSourceMemberName(cuMemberBonusCoach.getSourceMemberName());
memberBonusDetailVOList.add(memberBonusDetailVO);
});
} else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue) {
// 复购极差
// 拓展收益复购拓展收益
} else if (EBonusItems.RETAIL_RANGE_INCOME.getValue() == bonusItemsValue
|| EBonusItems.RETAIL_REPURCHASE_INCOME.getValue() == bonusItemsValue) {
// 直推级差收益复购级差收益
List<CuMemberBonusRangeExt> cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItems(bonusParam);
dataTable = getDataTable(cuMemberBonusRangeList);
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
@ -355,8 +319,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
memberBonusDetailVOList.add(memberBonusDetailVO);
});
} else {
// 其他收益 服务补贴分红收益嗨粉直推
// 拓展收益复购拓展收益
// 其他收益
List<CuMemberBonusDetailExt> cuMemberBonusDetailList = cuMemberBonusDetailMapper.queryMemberBonusDetailByBonusItems(bonusParam);
dataTable = getDataTable(cuMemberBonusDetailList);
cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> {
@ -410,27 +373,9 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusDetail, MemberBonusDetailSerVO.class);
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else if (EBonusItems.EXPANSION_INCOME.getValue() == bonusItemsValue ||
EBonusItems.CONSUMPTION_EXPANSION_INCOME.getValue() == bonusItemsValue) {
// 拓展收益复购拓展收益
List<CuMemberBonusExpandExt> cuMemberBonusExpandList = cuMemberBonusExpandMapper.queryMemberBonusExpandByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusExpandList);
cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> {
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusExpand, MemberBonusDetailSerVO.class);
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else if (EBonusItems.COACHING_INCOME.getValue() == bonusItemsValue) {
// 辅导收益
// 拓展收益复购拓展收益
List<CuMemberBonusCoachExt> cuMemberBonusCoachList = cuMemberBonusCoachMapper.queryMemberBonusCoachByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusCoachList);
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusCoach, MemberBonusDetailSerVO.class);
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue || EBonusItems.RETAIL_RANGE_INCOME.getValue() == bonusItemsValue) {
// 复购极差
// 拓展收益复购拓展收益
} else if (EBonusItems.RETAIL_RANGE_INCOME.getValue() == bonusItemsValue
|| EBonusItems.RETAIL_REPURCHASE_INCOME.getValue() == bonusItemsValue) {
// 直推级差收益复购级差收益
List<CuMemberBonusRangeExt> cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusRangeList);
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
@ -438,8 +383,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else {
// 其他收益 服务补贴分红收益嗨粉直推
// 拓展收益复购拓展收益
// 其他收益
List<CuMemberBonusDetailExt> cuMemberBonusDetailList = cuMemberBonusDetailMapper.queryMemberBonusDetailByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusDetailList);
cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> {

View File

@ -0,0 +1,28 @@
package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
/**
* 会员信息-等级升级记录 Mapper 接口
*/
public interface CuMemberGradeMapper extends BaseMapper<CuMemberGrade> {
/**
* 回退会员等级
*/
void updateCuMemberGrade(@Param("rangeTableName") String rangeTableName, @Param("period") Integer period);
/**
* 查询会员等级
*/
List<CuMemberLevel> queryCuMemberLevel(@Param("startDate") Date startDate,
@Param("endDate") Date endDate,
@Param("upType") Integer upType);
}

View File

@ -0,0 +1,32 @@
package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import java.util.Date;
import java.util.List;
/**
* 会员信息-等级升级记录 服务类
*/
public interface ICuMemberGradeService extends IService<CuMemberGrade> {
/**
* 回退极差奖衔每日重新结算先把等级回退到前一天
*
* @param period 结算期间
* @param rangeTableName 结算表
*/
List<CuMemberLevel> calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName);
/**
* 自动升级列表
*
* @param startDate
* @param endDate
* @return
*/
List<CuMemberLevel> listAutoLevel(Date startDate, Date endDate);
}

View File

@ -0,0 +1,33 @@
package com.hzs.bonus.detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.detail.mapper.CuMemberGradeMapper;
import com.hzs.bonus.detail.service.ICuMemberGradeService;
import com.hzs.common.core.enums.EUpgradeType;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 会员信息-等级升级记录 服务实现类
*/
@Service
public class CuMemberGradeServiceImpl extends ServiceImpl<CuMemberGradeMapper, CuMemberGrade> implements ICuMemberGradeService {
@Override
public List<CuMemberLevel> calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName) {
// 根据手动升级记录更新日结表
baseMapper.updateCuMemberGrade(rangeTableName, period);
// 购买升级记录列表
return baseMapper.queryCuMemberLevel(startDate, endDate, EUpgradeType.BUY_UPGRADE.getValue());
}
@Override
public List<CuMemberLevel> listAutoLevel(Date startDate, Date endDate) {
// 自动升级记录列表
return baseMapper.queryCuMemberLevel(startDate, endDate, EUpgradeType.AUTO_UPGRADE.getValue());
}
}

View File

@ -80,6 +80,7 @@
recommend_num = 0,
team_num = 0,
enable_status = 1,
pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20),
region_address = 0,
big_box_num = 0,
small_box_num = 0,
@ -109,6 +110,7 @@
a.team_consume_pv = b.team_consume_pv,
a.team_consume_amount = b.team_consume_amount,
a.recommend_num = b.recommend_num, a.team_num = b.team_num,
a.pk_grade = b.pk_grade,
a.enable_status = b.enable_status,
a.big_box_num = b.big_box_num, a.small_box_num = b.small_box_num,
a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv

View File

@ -98,4 +98,29 @@
</if>
</select>
<update id="updateCuMemberLevel">
merge into cu_member a
using (
select cm.pk_id, m.new_level pk_grade
from cu_member cm
inner join(
select a.*
from cu_member_level a
inner join (
select pk_member, max(pk_id) pk_id
from cu_member_level
where del_flag = 0
and up_type = 4
and upgrade_time >= #{startDate,jdbcType=DATE}
and upgrade_time &lt; #{endDate,jdbcType=DATE}
group by pk_member) b
on a.pk_id = b.pk_id) m
on cm.pk_id = m.pk_member
where cm.pk_settle_grade &lt; m.new_level
) b
on (a.pk_id = b.pk_id)
when matched then
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
</update>
</mapper>

View File

@ -1,269 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusCoachMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberBonusCoach" type="com.hzs.common.domain.member.ext.CuMemberBonusCoachExt">
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_BONUS" property="pkBonus"/>
<result column="PK_ORDER" property="pkOrder"/>
<result column="PK_BONUS_ITEMS" property="pkBonusItems"/>
<result column="INCOME_STATUS" property="incomeStatus"/>
<result column="CAL_TYPE" property="calType"/>
<result column="CAL_ACHIEVE" property="calAchieve"/>
<result column="CAL_VALUE" property="calValue"/>
<result column="PRETAX_INCOME" property="pretaxIncome"/>
<result column="INCOME_TAX" property="incomeTax"/>
<result column="REAL_INCOME" property="realIncome"/>
<result column="CURRENT_GENERATION" property="currentGeneration"/>
<result column="COACH_GENERATION" property="coachGeneration"/>
<result column="COACH_NO_CAPPING" property="coachNoCapping"/>
<result column="COACH_CAPPING" property="coachCapping"/>
<result column="COACH_NORMAL_HALF" property="coachNormalHalf"/>
<result column="COACH_NORMAL_REAL" property="coachNormalReal"/>
<result column="REMARK" property="remark"/>
<result column="INCOME_RATIO" property="incomeRatio"/>
<result column="INCOME_DIAL_RATIO" property="incomeDialRatio"/>
<result column="ORDER_DIAL_RATIO" property="orderDialRatio"/>
<result column="ORDER_CODE" property="orderCode"/>
<result column="ORDER_TYPE" property="orderType"/>
<result column="PK_SOURCE_COUNTRY" property="pkSourceCountry"/>
<result column="SOURCE_COUNTRY_NAME" property="sourceCountryName"/>
<result column="SOURCE_MEMBER_CODE" property="sourceMemberCode"/>
<result column="SOURCE_MEMBER_NAME" property="sourceMemberName"/>
<result column="PK_RATE" property="pkRate"/>
<result column="ORDER_AMOUNT" property="orderAmount"/>
<result column="ORDER_ACHIEVE" property="orderAchieve"/>
<result column="MEMBER_CODE" property="memberCode"/>
<result column="MEMBER_NAME" property="memberName"/>
<result column="PK_SETTLE_GRADE" property="pkSettleGrade"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="VERTEX_NAME" property="vertexName"/>
<result column="TEAM_NAME" property="teamName"/>
<result column="TEAM_CODE" property="teamCode"/>
<result column="SETTLE_DATE" property="settleDate"/>
<result column="SETTLE_COUNTRY" property="settleCountry"/>
<result column="PERIOD" property="period"/>
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
<result column="service_code" property="serviceCode"/>
<result column="pk_vertex" property="pkVertex"/>
<result column="nick_name" property="nickName"/>
</resultMap>
<insert id="batchInsertCuMemberBonusCoach">
insert ALL
<foreach item="item" index="index" collection="cuMemberBonusCoachList" separator=" ">
into cu_member_bonus_coach(pk_bonus,pk_order,pk_bonus_items,income_status,
cal_type,cal_achieve,cal_value,pretax_income,
income_tax,real_income,current_generation,coach_generation,coach_no_capping,
coach_capping,coach_normal_half,coach_normal_real,remark,
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
values
(
#{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus},
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pretaxIncome},
#{item.incomeTax},#{item.realIncome},#{item.currentGeneration},#{item.coachGeneration},
#{item.coachNoCapping},#{item.coachCapping},#{item.coachNormalHalf},#{item.coachNormalReal},
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
#{item.pkCountry},#{item.pkCreator}
)
</foreach>
SELECT 1 FROM dual
</insert>
<delete id="deleteCuMemberBonusCoach">
delete
from CU_MEMBER_BONUS_COACH
where PK_BONUS in (
select pk_id
from cu_member_bonus
where period = #{period}
and grant_status &lt;= 2)
</delete>
<select id="queryMemberBonusCoachByBonusItems" resultMap="CuMemberBonusCoach">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
b.coach_no_capping,b.coach_capping,b.coach_normal_half,b.coach_normal_real,
cu.service_code,
cu.pk_vertex,
cu.nick_name
from sa_order so
inner join (
select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,cc.coach_no_capping,
cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from
cu_member_bonus cb
inner join cu_member_bonus_coach cc
on cb.pk_id = cc.pk_bonus
where cb.income_status=0 and cc.income_status = 0
and cc.pk_bonus_items = #{pkBonusItems}
<if test="pkBonus != null">
and cc.pk_bonus = #{pkBonus}
</if>
<if test="period != null">
and cb.period =#{period}
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
<where>
1=1 and b.pk_member=#{pkMember}
<if test="orderCode != null and orderCode != ''">
and so.order_code like #{orderCode}|| '%'
</if>
<if test="sourceMemberCode != null and sourceMemberCode != ''">
and (cu.member_code = #{sourceMemberCode} or cu.service_code = #{sourceMemberCode})
</if>
<if test="sourceMemberName != null and sourceMemberName != ''">
and (cu.member_name = #{sourceMemberName} or cu.nick_name = #{sourceMemberName})
</if>
<if test="startDate != null">
and cp.settle_date >= #{startDate, jdbcType=DATE}
</if>
<if test="endDate != null">
and cp.settle_date &lt; #{endDate, jdbcType=DATE}
</if>
</where>
order by b.period,b.pk_bonus_items,b.real_income desc
</select>
<select id="queryMemberBonusCoachByBonusItemsForServer" resultMap="CuMemberBonusCoach">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
b.coach_no_capping,b.coach_capping,b.coach_normal_half,b.coach_normal_real,bct.short_name settle_country from sa_order so
inner join (
select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,
cc.coach_no_capping,cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from cu_member_bonus cb
inner join cu_member_bonus_coach cc
on cb.pk_id = cc.pk_bonus
where 1=1
<if test="bonusParam.period != null">
and cb.period =#{bonusParam.period}
</if>
<if test="bonusParam.vertexList != null and bonusParam.vertexList.size >0">
and exists(
select 1 from (
<foreach collection="bonusParam.vertexList" item="item" separator=" union ">
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
</foreach>
<if test="bonusParam.teamList != null and bonusParam.teamList.size >0">
union
<foreach collection="bonusParam.teamList" item="item" separator=" union ">
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
</foreach>
</if>
) a
where a.pk_id = cb.pk_member
)
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
left join bd_country bct
on bct.pk_id=tar.pk_settle_country
<where>
1=1
<if test="bonusParam.pkCountry != null">
and tar.pk_settle_country = #{bonusParam.pkCountry}
</if>
<if test="bonusParam.orderType != null">
and so.order_type = #{bonusParam.orderType}
</if>
<if test="bonusParam.pkVertex != null">
and bv.pk_id = #{bonusParam.pkVertex}
</if>
<if test="bonusParam.pkTeamCode != null">
and ct.pk_id =#{bonusParam.pkTeamCode}
</if>
<if test="bonusParam.sourceCountry != null">
and bt.pk_id = #{bonusParam.sourceCountry}
</if>
<if test="bonusParam.incomeStatus != null">
and b.income_status = #{bonusParam.incomeStatus}
</if>
<if test="bonusParam.orderCode != null and bonusParam.orderCode != ''">
and so.order_code like #{bonusParam.orderCode}|| '%'
</if>
<if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''">
and cu.member_code = #{bonusParam.sourceMemberCode}
</if>
<if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''">
and cu.member_name = #{bonusParam.sourceMemberName}
</if>
<if test="bonusParam.memberCode != null and bonusParam.memberCode != ''">
and tar.member_code = #{bonusParam.memberCode}
</if>
<if test="bonusParam.memberName != null and bonusParam.memberName != ''">
and tar.member_name = #{bonusParam.memberName}
</if>
<if test="bonusParam.settleCountry != null">
and tar.pk_settle_country = #{bonusParam.settleCountry}
</if>
<if test="bonusParam.startDate != null">
and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE}
</if>
<if test="bonusParam.endDate != null">
and cp.settle_date &lt;#{bonusParam.endDate, jdbcType=DATE}
</if>
</where>
<choose>
<when test="bonusParam.sort == null or bonusParam.sort ==1">order by cp.settle_date desc, so.order_code,b.current_generation</when>
<when test="bonusParam.sort ==2">order by tar.pk_vertex, b.real_income desc</when>
<otherwise>order by tar.pk_teamcode</otherwise>
</choose>
</select>
</mapper>

View File

@ -1,279 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusExpandMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberBonusExpand" type="com.hzs.common.domain.member.ext.CuMemberBonusExpandExt">
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_BONUS" property="pkBonus"/>
<result column="PK_ORDER" property="pkOrder"/>
<result column="PK_BONUS_ITEMS" property="pkBonusItems"/>
<result column="INCOME_STATUS" property="incomeStatus"/>
<result column="CAL_TYPE" property="calType"/>
<result column="CAL_ACHIEVE" property="calAchieve"/>
<result column="CAL_VALUE" property="calValue"/>
<result column="PRETAX_INCOME" property="pretaxIncome"/>
<result column="INCOME_TAX" property="incomeTax"/>
<result column="REAL_INCOME" property="realIncome"/>
<result column="CURRENT_TOUCH" property="currentTouch"/>
<result column="EXPAND_TOUCH" property="expandTouch"/>
<result column="EXPAND_NO_CAPPING" property="expandNoCapping"/>
<result column="EXPAND_CAPPING" property="expandCapping"/>
<result column="EXPAND_NORMAL_HALF" property="expandNormalHalf"/>
<result column="EXPAND_NORMAL_REAL" property="expandNormalReal"/>
<result column="REMARK" property="remark"/>
<result column="INCOME_RATIO" property="incomeRatio"/>
<result column="INCOME_DIAL_RATIO" property="incomeDialRatio"/>
<result column="ORDER_DIAL_RATIO" property="orderDialRatio"/>
<result column="ORDER_CODE" property="orderCode"/>
<result column="ORDER_TYPE" property="orderType"/>
<result column="PK_SOURCE_COUNTRY" property="pkSourceCountry"/>
<result column="SOURCE_COUNTRY_NAME" property="sourceCountryName"/>
<result column="SOURCE_MEMBER_CODE" property="sourceMemberCode"/>
<result column="SOURCE_MEMBER_NAME" property="sourceMemberName"/>
<result column="PK_RATE" property="pkRate"/>
<result column="ORDER_AMOUNT" property="orderAmount"/>
<result column="ORDER_ACHIEVE" property="orderAchieve"/>
<result column="MEMBER_CODE" property="memberCode"/>
<result column="MEMBER_NAME" property="memberName"/>
<result column="PK_SETTLE_GRADE" property="pkSettleGrade"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="VERTEX_NAME" property="vertexName"/>
<result column="TEAM_NAME" property="teamName"/>
<result column="TEAM_CODE" property="teamCode"/>
<result column="SETTLE_DATE" property="settleDate"/>
<result column="SETTLE_COUNTRY" property="settleCountry"/>
<result column="PERIOD" property="period"/>
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
<result column="add_touch" property="addTouch" />
<result column="service_code" property="serviceCode"/>
<result column="pk_vertex" property="pkVertex"/>
<result column="nick_name" property="nickName"/>
</resultMap>
<insert id="batchInsertCuMemberBonusExpand">
insert ALL
<foreach item="item" index="index" collection="cuMemberBonusExpandList" separator=" ">
into cu_member_bonus_expand(pk_bonus,pk_order,pk_bonus_items,income_status,
cal_type,cal_achieve,cal_value,pretax_income,
income_tax,real_income,current_touch,expand_touch,add_touch,expand_no_capping,
expand_capping,expand_normal_half,expand_normal_real,remark,
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
values
(
#{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus},
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pretaxIncome},
#{item.incomeTax},#{item.realIncome},#{item.currentTouch},#{item.expandTouch},#{item.addTouch,jdbcType=NUMERIC},
#{item.expandNoCapping},#{item.expandCapping},#{item.expandNormalHalf},#{item.expandNormalReal},
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
#{item.pkCountry},#{item.pkCreator}
)
</foreach>
SELECT 1 FROM dual
</insert>
<delete id="deleteCuMemberBonusExpand">
delete
from CU_MEMBER_BONUS_EXPAND
where PK_BONUS in (
select pk_id
from cu_member_bonus
where period = #{period} and grant_status &lt;= 2)
</delete>
<select id="queryMemberBonusExpandByBonusItems" resultMap="CuMemberBonusExpand">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.current_touch,b.expand_touch,b.expand_no_capping,b.expand_capping,b.expand_normal_half,b.expand_normal_real,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,
cu.service_code,
cu.pk_vertex,
cu.nick_name
from sa_order so
inner join (
select cb.pk_member,ce.pk_order,cb.period,cb.pk_country,ce.pk_bonus_items,ce.income_status,ce.cal_achieve,ce.pretax_income,ce.income_tax,ce.real_income,
ce.current_touch,ce.expand_touch,ce.expand_no_capping,ce.expand_capping,ce.expand_normal_half,ce.expand_normal_real,
ce.remark,ce.income_ratio,ce.income_dial_ratio,ce.order_dial_ratio from cu_member_bonus cb
inner join cu_member_bonus_expand ce
on cb.pk_id = ce.pk_bonus
where cb.income_status=0 and ce.income_status = 0
and ce.pk_bonus_items = #{pkBonusItems}
<if test="pkBonus != null">
and ce.pk_bonus = #{pkBonus}
</if>
<if test="period != null">
and cb.period =#{period}
</if>
<if test="pkBonusItems != null">
and ce.pk_bonus_items = #{pkBonusItems}
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
<where>
1=1 and b.pk_member=#{pkMember}
<if test="orderCode != null and orderCode != ''">
and so.order_code like #{orderCode}|| '%'
</if>
<if test="sourceMemberCode != null and sourceMemberCode != ''">
and (cu.member_code = #{sourceMemberCode} or cu.service_code = #{sourceMemberCode})
</if>
<if test="sourceMemberName != null and sourceMemberName != ''">
and (cu.member_name = #{sourceMemberName} or cu.nick_name = #{sourceMemberName})
</if>
<if test="startDate != null">
and cp.settle_date >= #{startDate, jdbcType=DATE}
</if>
<if test="endDate != null">
and cp.settle_date &lt; #{endDate, jdbcType=DATE}
</if>
</where>
order by b.period,b.pk_bonus_items,b.real_income desc
</select>
<select id="queryMemberBonusExpandByBonusItemsForServer" resultMap="CuMemberBonusExpand">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_touch,b.expand_touch,
b.expand_no_capping,b.expand_capping,b.expand_normal_half,b.expand_normal_real,bct.short_name settle_country from (
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order
union
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_t_order
) so
inner join (
select cb.pk_member,ce.pk_order,cb.period,cb.pk_country,ce.pk_bonus_items,ce.income_status,ce.CAL_ACHIEVE,ce.pretax_income,ce.income_tax,ce.real_income,
ce.remark,ce.income_ratio,ce.income_dial_ratio,ce.order_dial_ratio,ce.current_touch,ce.expand_touch,
ce.expand_no_capping,ce.expand_capping,ce.expand_normal_half,ce.expand_normal_real from
cu_member_bonus cb
inner join cu_member_bonus_expand ce
on cb.pk_id = ce.pk_bonus
where 1=1
<if test="bonusParam.period != null">
and cb.period =#{bonusParam.period}
</if>
<if test="bonusParam.pkBonusItems != null">
and ce.pk_bonus_items = #{bonusParam.pkBonusItems}
</if>
<if test="bonusParam.vertexList != null and bonusParam.vertexList.size >0">
and exists(
select 1 from (
<foreach collection="bonusParam.vertexList" item="item" separator=" union ">
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
</foreach>
<if test="bonusParam.teamList != null and bonusParam.teamList.size >0">
union
<foreach collection="bonusParam.teamList" item="item" separator=" union ">
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
</foreach>
</if>
) a
where a.pk_id = cb.pk_member
)
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
left join bd_country bct
on bct.pk_id=tar.pk_settle_country
<where>
1=1
<if test="bonusParam.pkCountry != null">
and tar.pk_settle_country = #{bonusParam.pkCountry}
</if>
<if test="bonusParam.orderType != null">
and so.order_type = #{bonusParam.orderType}
</if>
<if test="bonusParam.pkVertex != null">
and bv.pk_id = #{bonusParam.pkVertex}
</if>
<if test="bonusParam.pkTeamCode != null">
and ct.pk_id =#{bonusParam.pkTeamCode}
</if>
<if test="bonusParam.sourceCountry != null">
and bt.pk_id = #{bonusParam.sourceCountry}
</if>
<if test="bonusParam.incomeStatus != null">
and b.income_status = #{bonusParam.incomeStatus}
</if>
<if test="bonusParam.orderCode != null and bonusParam.orderCode != ''">
and so.order_code like #{bonusParam.orderCode}|| '%'
</if>
<if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''">
and cu.member_code = #{bonusParam.sourceMemberCode}
</if>
<if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''">
and cu.member_name = #{bonusParam.sourceMemberName}
</if>
<if test="bonusParam.memberCode != null and bonusParam.memberCode != ''">
and tar.member_code = #{bonusParam.memberCode}
</if>
<if test="bonusParam.memberName != null and bonusParam.memberName != ''">
and tar.member_name = #{bonusParam.memberName}
</if>
<if test="bonusParam.settleCountry != null">
and tar.pk_settle_country = #{bonusParam.settleCountry}
</if>
<if test="bonusParam.startDate != null">
and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE}
</if>
<if test="bonusParam.endDate != null">
and cp.settle_date &lt;#{bonusParam.endDate, jdbcType=DATE}
</if>
</where>
<choose>
<when test="bonusParam.sort == null or bonusParam.sort ==1">order by cp.settle_date desc, so.order_code,b.current_touch</when>
<when test="bonusParam.sort ==2">order by tar.pk_vertex, b.real_income desc</when>
<otherwise>order by tar.pk_teamcode</otherwise>
</choose>
</select>
</mapper>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.detail.mapper.CuMemberGradeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberGrade" type="com.hzs.common.domain.member.detail.CuMemberGrade">
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="PERIOD" property="period"/>
<result column="UP_TYPE" property="upType"/>
<result column="OLD_LEVEL" property="oldLevel"/>
<result column="NEW_LEVEL" property="newLevel"/>
<result column="REMARK" property="remark"/>
</resultMap>
<update id="updateCuMemberGrade">
merge into ${rangeTableName} a
using (
select a.pk_member, max(a.new_level) pk_grade
from cu_member_grade a
inner join(
select pk_member, max(nvl(modified_time, creation_time)) creation_time
from cu_member_grade
where period = #{period}
and del_flag = 0
and up_type = 2
group by pk_member) b
on a.pk_member = b.pk_member and nvl(a.modified_time, a.creation_time) = b.creation_time
group by a.pk_member
) b
on (a.pk_member = b.pk_member)
when matched then
update set
a.pk_grade = b.pk_grade
</update>
<select id="queryCuMemberLevel" resultType="com.hzs.common.domain.member.detail.CuMemberLevel">
select *
from cu_member_level
where del_flag = 0
and up_type = #{upType}
and upgrade_time >= #{startDate,jdbcType=DATE}
and upgrade_time &lt; #{endDate,jdbcType=DATE}
order by upgrade_time
</select>
</mapper>

View File

@ -50,9 +50,9 @@
<result column="CREATOR_CODE" property="creatorCode"/>
<result column="PK_SETTLE_COUNTRY" property="pkSettleCountry"/>
<result column="PK_CENTER_CODE" property="pkCenterCode"/>
<result column="PK_STORE_LEVEL" property="pkStoreLevel"/>
<result column="IN_EXCHANGE_RATE" property="inExchangeRate"/>
<result column="PK_CORP" property="pkCorp"/>
<result column="pk_grade" property="pkGrade"/>
<collection property="orderWaresExtList" ofType="com.hzs.common.domain.sale.ext.SaOrderWaresExt">
<result column="ITEMS_ID" property="pkId"/>
<result column="WARES_QUANTITY" property="waresQuantity"/>
@ -106,6 +106,7 @@
so.pk_creator,
so.consume_amount,
so.box_num,
cml.new_level pk_grade,
nvl(st.pk_id,0) items_id,
nvl(st.pk_order,0) pk_order,
nvl(st.pk_wares,0) pk_wares,
@ -114,6 +115,10 @@
nvl(st.wares_quantity,0) wares_quantity,
nvl(bw.area_income, 0) area_income
from sa_order so
left join cu_member_level cml
on cml.pk_member = so.pk_member
and cml.pk_order = so.pk_id
and cml.del_flag = 0
left join sa_order_wares st
on so.pk_id = st.pk_order and st.wares_price > 0
left join bd_wares bw

View File

@ -21,30 +21,6 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
*/
Integer queryExistOracleTable(String tableName);
/**
* 查询会员结算表查询出结算表中会员伞下左右区满足等级
*
* @param settleTableName 结算表
* @param awardsValue 验证等级对应的值
* @param placeDept 部门
* @param pkMember 会员
*/
Integer queryCuMemberSettlePlaceUnderUmbrella(@Param("settleTableName") String settleTableName,
@Param("awardsValue") Integer awardsValue,
@Param("placeDept") Integer placeDept,
@Param("pkMember") Long pkMember);
/**
* 查询会员结算表查询出结算表中会员血缘关系满足等级
*
* @param settleTableName 结算表
* @param pkMember 会员
*/
Integer queryCuMemberSettleBloodUnderUmbrella(@Param("settleTableName") String settleTableName,
@Param("awardsValue") Integer awardsValue,
@Param("placeDept") Integer placeDept,
@Param("pkMember") Long pkMember);
/**
* 根据pkmember查询
*

View File

@ -19,24 +19,6 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
*/
Integer queryExistOracleTable(String tableName);
/**
* 查询会员结算表查询出结算表中会员伞下左右区满足等级
*
* @param settleTableName 结算表
* @param placeDept 部门
* @param awardsValue 奖衔对应的值
* @param pkMember 会员
*/
Boolean queryCuMemberSettlePlaceUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember);
/**
* 查询会员结算表查询出结算表中会员血缘关系满足等级
*
* @param settleTableName 结算表
* @param pkMember 会员
*/
Boolean queryCuMemberSettleBloodUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember);
/**
* 根据pkmember查询
*

View File

@ -26,16 +26,6 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
return baseMapper.queryExistOracleTable(tableName);
}
@Override
public Boolean queryCuMemberSettlePlaceUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember) {
return baseMapper.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, awardsValue, placeDept, pkMember) > 0;
}
@Override
public Boolean queryCuMemberSettleBloodUnderUmbrella(String settleTableName, Integer awardsValue, Integer placeDept, Long pkMember) {
return baseMapper.queryCuMemberSettleBloodUnderUmbrella(settleTableName, awardsValue, placeDept, pkMember) > 0;
}
@Override
public CuMemberSettleExt queryCuMemberTreeByPkMemberTable(String settleTableName, Long pkMember) {
return baseMapper.queryCuMemberTreeByPkMemberTable(settleTableName, pkMember);

View File

@ -1500,7 +1500,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 保存会员等级变动
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0);
// 判断推送MQ处理推荐人等级
// 判断处理推荐人等级
handleParentUpgrade(cuMember, saOrder);
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
@ -1516,7 +1516,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 保存会员等级变动如果旧等级和新等级相同则不记录
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
}
// 判断推送MQ处理推荐人等级
// 判断处理推荐人等级
handleParentUpgrade(cuMember, saOrder);
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);

View File

@ -2494,6 +2494,9 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
// 指定会员可见
isShowWares = pkMemberList.contains(showWaresDTO.getLoginMember());
}
if (isShowWares) {
break;
}
}
resultMap.put(showWaresDTO.getPkWares(), isShowWares);
}

View File

@ -2,44 +2,10 @@ package com.hzs.member.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 会员信息-奖衔升级记录 Mapper 接口
*/
public interface CuMemberAwardsMapper extends BaseMapper<CuMemberAwards> {
/**
* 批量更新会员奖衔记录此方法用于奖金结算批量更新为删除状态留存奖衔降级记录
*
* @param cuMemberAwardsList 更新的人
* @param period 期间
*/
Integer updateBatchCuMemberAwards(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList, @Param("period") Integer period);
/**
* 查询会员最后一条奖衔升级记录
*
* @param cuMemberAwardsList 奖衔升级记录
*/
List<CuMemberAwards> queryLastCuMemberAwards(@Param("cuMemberAwardsList") List<?> cuMemberAwardsList);
/**
* 批量插入奖衔记录
*
* @param cuMemberAwardsList 需要插入的奖衔列表
*/
Integer saveBatchCuMemberAwards(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList);
/**
* 查询手动升级的最新一条
*
* @param pkMember 会员ID
* @return
*/
CuMemberAwardsExt queryLastManualAwards(@Param("pkMember") Long pkMember);
}

View File

@ -3,10 +3,8 @@ package com.hzs.member.detail.provider;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.base.CuMemberRegister;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
import com.hzs.member.base.service.ICuMemberRegisterService;
import com.hzs.member.detail.ICuMemberDetailServiceApi;
import com.hzs.member.detail.service.ICuMemberAwardsService;
import com.hzs.member.detail.service.ICuMemberLevelService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
@ -22,8 +20,6 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
@Autowired
private ICuMemberLevelService iCuMemberLevelService;
@Autowired
private ICuMemberAwardsService iCuMemberAwardsService;
@Autowired
private ICuMemberRegisterService iCuMemberRegisterService;
@Override
@ -36,11 +32,6 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
return R.ok(iCuMemberLevelService.getUpgradeList(pkMember));
}
@Override
public R<CuMemberAwardsExt> queryLastManualAwards(Long pkMember) {
return R.ok(iCuMemberAwardsService.queryLastManualAwards(pkMember));
}
@Override
public R<CuMemberRegister> getMemberRegister(Long pkMember) {
return R.ok(iCuMemberRegisterService.queryCuMemberRegister(pkMember));

View File

@ -2,7 +2,6 @@ package com.hzs.member.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
import java.util.Date;
@ -20,12 +19,4 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
*/
void deleteCuMemberAwards(Long pkOrder, Long pkApprove, Date currentDateTime);
/**
* 查询手动开通的最新一条
*
* @param pkMember 会员ID
* @return
*/
CuMemberAwardsExt queryLastManualAwards(Long pkMember);
}

View File

@ -1,20 +1,11 @@
package com.hzs.member.detail.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.MemberFieldConstants;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.ComputeUtil;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.member.achieve.service.ICuMemberTreeService;
import com.hzs.member.detail.mapper.CuMemberAwardsMapper;
import com.hzs.member.detail.service.ICuMemberAwardsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@ -25,9 +16,6 @@ import java.util.*;
@Service
public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper, CuMemberAwards> implements ICuMemberAwardsService {
@Autowired
private ICuMemberTreeService iCuMemberTreeService;
@Override
public void deleteCuMemberAwards(Long pkOrder, Long pkApprove, Date currentDateTime) {
LambdaUpdateWrapper<CuMemberAwards> updateWrapper = new LambdaUpdateWrapper<>();
@ -38,155 +26,4 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
update(updateWrapper);
}
/**
* 更新奖衔记录
*
* @param enoughAwardsMemberList 满足业绩
* @param originalCuMemberSettleMap 原来的map
* @param period 期间
*/
private List<CuMemberAwards> updateAwardsRecord(List<CuMemberSettleExt> enoughAwardsMemberList, Map<Long, CuMemberSettleExt> originalCuMemberSettleMap,
Integer period) {
if (enoughAwardsMemberList.size() == 0) {
return null;
}
// 更新奖衔记录变动
// 增加奖衔记录表
// 更新升奖衔的会员插入升衔记录
return upgradeCuMemberAwards(enoughAwardsMemberList, originalCuMemberSettleMap, period);
}
/**
* 插入升级记录
*
* @param enoughAwardsMemberList 足够升级的
* @param originalCuMemberSettleMap 记录会员原等级的map
* @param period 期间
*/
private List<CuMemberAwards> upgradeCuMemberAwards(List<CuMemberSettleExt> enoughAwardsMemberList, Map<Long, CuMemberSettleExt> originalCuMemberSettleMap,
Integer period) {
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
if (enoughAwardsMemberList.size() > 0) {
// 记录要入库的为了验证是否首次晋升
enoughAwardsMemberList.forEach(enoughAwardsMember -> getCuMemberAwards(originalCuMemberSettleMap, period, cuMemberAwardsList, enoughAwardsMember));
// 验证满足的这群人是否是首次晋升查询出值的不是首次晋升
List<CuMemberAwards> originalCuMemberAwardsList = baseMapper.queryLastCuMemberAwards(cuMemberAwardsList);
// 是首次晋升的数据
Map<Long, CuMemberAwards> cuMemberAwardsMap = new HashMap<>(ComputeUtil.mapInitCapacity(originalCuMemberAwardsList.size()));
originalCuMemberAwardsList.forEach(cuMemberAwards -> cuMemberAwardsMap.put(cuMemberAwards.getPkMember(), cuMemberAwards));
cuMemberAwardsList.forEach(cuMemberAwards -> {
CuMemberAwards memberAwards = cuMemberAwardsMap.get(cuMemberAwards.getPkMember());
// 没有奖衔升级记录或者奖衔升级记录是会员的 算首次晋升
if (memberAwards == null || memberAwards.getNewLevel() == EAwards.MEMBER.getValue()) {
cuMemberAwards.setPurchaseStatus(EYesNo.YES.getIntValue());
}
});
// 插入记录
baseMapper.saveBatchCuMemberAwards(cuMemberAwardsList);
}
return cuMemberAwardsList;
}
private void getCuMemberAwards(Map<Long, CuMemberSettleExt> originalCuMemberSettleMap, Integer period, List<CuMemberAwards> cuMemberAwardsList, CuMemberSettleExt enoughAwardsMember) {
CuMemberAwards cuMemberAwards = CuMemberAwards.builder()
.pkMember(enoughAwardsMember.getPkMember())
.period(period)
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
// 原等级
.oldLevel(originalCuMemberSettleMap.get(enoughAwardsMember.getPkMember()).getPkOriAwards())
.newLevel(enoughAwardsMember.getPkAwards())
// 默认不免考
.purchaseStatus(EYesNo.NO.getIntValue())
.build();
cuMemberAwards.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuMemberAwards.setPkCountry(enoughAwardsMember.getPkSettleCountry());
cuMemberAwardsList.add(cuMemberAwards);
}
/**
* 更新降衔的会员把升衔记录删除
*
* @param period 期间
* @param changeAwardsList 降低奖衔的人
* @param cuMemberAwardsList 所有变动记录的数据
*/
private void reduceCuMemberAwards(List<CuMemberAwards> changeAwardsList, Integer period, List<CuMemberAwards> cuMemberAwardsList) {
// 验证是否有降奖衔的降奖衔的也要更新
if (changeAwardsList.size() > 0) {
// 更新奖衔表将奖衔升级记录修改为删除状态
QueryWrapper<CuMemberAwards> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MemberFieldConstants.PERIOD, period);
baseMapper.updateBatchCuMemberAwards(changeAwardsList, period);
// 根据 changeAwardsList 查找到这群人的历史奖衔升级记录
List<CuMemberAwards> hisCuMemberAwardsList = baseMapper.queryLastCuMemberAwards(changeAwardsList);
Map<Long, CuMemberAwards> cuMemberAwardsMap = new HashMap<>();
hisCuMemberAwardsList.forEach(cuMemberAwards -> cuMemberAwardsMap.put(cuMemberAwards.getPkMember(), cuMemberAwards));
// 用于更新网体将原有奖衔还原
changeAwardsList.forEach(cuMemberAwards -> {
if (cuMemberAwardsMap.containsKey(cuMemberAwards.getPkMember())) {
// 原有奖衔
cuMemberAwards.setNewLevel(cuMemberAwardsMap.get(cuMemberAwards.getPkMember()).getNewLevel());
} else {
// 没有值的变为会员
cuMemberAwards.setNewLevel(EAwards.MEMBER.getValue());
}
});
cuMemberAwardsList.addAll(changeAwardsList);
}
}
/**
* 查询某一期变动的奖衔
*
* @param period 奖金期
*/
private List<CuMemberAwards> queryCuMemberAwardsByPeriod(Integer period) {
QueryWrapper<CuMemberAwards> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MemberFieldConstants.PERIOD, period);
queryWrapper.eq(MemberFieldConstants.UP_TYPE, EUpgradeType.AUTO_UPGRADE.getValue());
return baseMapper.selectList(queryWrapper);
}
/**
* 验证血缘关系
*
* @param settleTableName 结算表
* @param cuMemberSettleExt 会员结算表
* @param bdAwards 等级
*/
private Boolean validateBloodRelation(String settleTableName, CuMemberSettleExt cuMemberSettleExt, BdAwards bdAwards) {
// 左区满足且满足血缘
if (iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), cuMemberSettleExt.getPkMember()) &&
iCuMemberTreeService.queryCuMemberSettleBloodUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), cuMemberSettleExt.getPkMember())) {
// 验证血缘左区存在血缘关系的
// 右区满足且满足血缘
// 进行验证血缘验证
return iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), cuMemberSettleExt.getPkMember()) &&
iCuMemberTreeService.queryCuMemberSettleBloodUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), cuMemberSettleExt.getPkMember());
}
return false;
}
/**
* 验证左右区安置关系
*
* @param settleTableName 结算表
* @param bdAwards 等级
* @param pkMember 会员
*/
private Boolean validateCuMemberPlaceRelation(String settleTableName, BdAwards bdAwards, Long pkMember) {
// 验证左区
if (iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsLeft(), EPlaceDept.LEFT_DEPT.getValue(), pkMember)) {
// 在验证右区
return iCuMemberTreeService.queryCuMemberSettlePlaceUnderUmbrella(settleTableName, bdAwards.getPkCheckAwardsRight(), EPlaceDept.RIGHT_DEPT.getValue(), pkMember);
}
return false;
}
@Override
public CuMemberAwardsExt queryLastManualAwards(Long pkMember) {
return baseMapper.queryLastManualAwards(pkMember);
}
}

View File

@ -105,36 +105,6 @@
where table_name = upper(#{tableName})
</select>
<select id="queryCuMemberSettlePlaceUnderUmbrella" resultType="java.lang.Integer">
select count(a.pk_member)
from (
select pk_member, pk_awards, pk_parent, pk_place_parent, place_dept
from ${settleTableName} start with pk_place_parent = #{pkMember} and place_dept=#{placeDept}
connect by pk_place_parent = prior pk_member
) a
inner join bd_awards ba
on a.pk_awards = ba.pk_id
where ba.awards_value >= (select awards_value from bd_awards where pk_id = #{awardsValue})
</select>
<select id="queryCuMemberSettleBloodUnderUmbrella" resultType="java.lang.Integer">
select count(pk_member)
from (
select pk_member
from ${settleTableName} start with pk_parent = #{pkMember}
connect by pk_parent = prior pk_member) a
where a.pk_member in (
select a.pk_member
from (
select pk_member, pk_awards, pk_parent, pk_place_parent, place_dept
from ${settleTableName} start with pk_place_parent = #{pkMember} and place_dept=#{placeDept}
connect by pk_place_parent = prior pk_member
) a
inner join bd_awards ba
on a.pk_awards = ba.pk_id
where ba.awards_value >= (select awards_value from bd_awards where pk_id = #{awardsValue}))
</select>
<select id="queryCuMemberTreeByPkMemberTable" resultMap="CuMemberSettleExt">
select
<if test="tableName != null and tableName != ''">

View File

@ -2,73 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.member.detail.mapper.CuMemberAwardsMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberAwards" type="com.hzs.common.domain.member.detail.CuMemberAwards">
<id column="PK_ID" property="pkId"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="PERIOD" property="period"/>
<result column="UP_TYPE" property="upType"/>
<result column="OLD_LEVEL" property="oldLevel"/>
<result column="NEW_LEVEL" property="newLevel"/>
<result column="PURCHASE_STATUS" property="purchaseStatus"/>
<result column="PK_ORDER" property="pkOrder"/>
<result column="REMARK" property="remark"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
</resultMap>
<insert id="saveBatchCuMemberAwards">
insert ALL
<foreach item="item" index="index" collection="cuMemberAwardsList" separator=" ">
into cu_member_awards(pk_member,period,up_type,old_level,new_level,purchase_status,pk_creator,pk_country) values
(
#{item.pkMember},#{item.period},#{item.upType},#{item.oldLevel},#{item.newLevel},#{item.purchaseStatus},#{item.pkCreator},
#{item.pkCountry}
)
</foreach>
SELECT 1 FROM dual
</insert>
<update id="updateBatchCuMemberAwards">
update cu_member_awards set del_flag = 1, modified_time = sysdate, PK_MODIFIED = 1
where period= #{period} and pk_member in
<foreach collection="cuMemberAwardsList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
</update>
<select id="queryLastCuMemberAwards" resultMap="CuMemberAwards">
select ca.pk_member,ba.awards_value new_level from cu_member_awards ca
inner join (
select pk_member,max(pk_id) pk_id from cu_member_awards
where del_flag=0 and pk_member in
<foreach collection="cuMemberAwardsList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
group by pk_member
) cm
on ca.pk_id=cm.pk_id
inner join bd_awards ba
on ca.new_level = ba.pk_id
where ca.del_flag=0 and ba.del_flag=0
</select>
<!-- 查询手动升级的最新一条 -->
<select id="queryLastManualAwards" resultType="com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt">
select *
from (select cma.*, ba.awards_value
from cu_member_awards cma
left join bd_awards ba
on ba.pk_id = cma.new_level
where cma.del_flag = 0
and cma.pk_member = #{pkMember}
and cma.up_type = 2
order by cma.creation_time desc)
where rownum = 1
</select>
</mapper>

View File

@ -17,14 +17,12 @@ import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.ext.BdWaresExt;
import com.hzs.common.domain.sale.ext.BdWaresSpecsSkuExt;
import com.hzs.common.domain.sale.wares.BdWares;
import com.hzs.common.domain.sale.wares.BdWaresLabel;
import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.sale.wares.BdWaresSpecsSku;
import com.hzs.common.domain.sale.wares.*;
import com.hzs.common.domain.system.config.BdLabel;
import com.hzs.common.domain.system.ext.BdLabelExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.IMemberServiceApi;
import com.hzs.member.base.dto.ShowWaresDTO;
import com.hzs.retail.wares.param.RetailWaresDetailParam;
import com.hzs.retail.wares.param.RetailWaresParam;
import com.hzs.retail.wares.vo.RetailWaresDetailVO;
@ -174,6 +172,8 @@ public class ApiRetailWaresController extends BaseController {
Integer pkGrade, boolean showLabel) {
// 返回商品列表
List<RetailWaresVO> resultList = new ArrayList<>();
// 当前会员ID
Long userId = SecurityUtils.getUserId();
// 汇率比例
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
@ -205,7 +205,26 @@ public class ApiRetailWaresController extends BaseController {
}
}
// 检验商品团队信息
Map<Integer, List<BdWaresAuthority>> waresAuthorityMap = iBdWaresService.getWaresAuthority(waresIdList);
List<ShowWaresDTO> showWaresList = bdWaresExtList.stream().map(tmpBdWares -> {
ShowWaresDTO showWaresDTO = new ShowWaresDTO();
showWaresDTO.setPkWares(tmpBdWares.getPkId());
showWaresDTO.setLoginMember(userId);
showWaresDTO.setWaresAuthorityList(waresAuthorityMap.get(tmpBdWares.getPkId()));
return showWaresDTO;
}).collect(Collectors.toList());
R<Map<Integer, Boolean>> waresShowMapDto = iMemberServiceApi.checkIsShowWares(showWaresList);
Map<Integer, Boolean> waresShowMap = waresShowMapDto.getData();
for (BdWaresExt bdWaresExt : bdWaresExtList) {
// 校验团队信息
Boolean isShowWares = waresShowMap.get(bdWaresExt.getPkId());
if (null == isShowWares || !isShowWares) {
continue;
}
if (null != list) {
// 商品标签处理
// 保证标签

View File

@ -18,12 +18,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 仓库配置前端控制器
* </p>
*
* @author hzs
* @since 2022-08-02
*/
@Slf4j
@RestController
@ -41,15 +36,15 @@ public class ApiBdStorehouseController extends BaseController {
@Log(module = EOperationModule.STOREHOUSE, business = EOperationBusiness.STOREHOUSE, method = EOperationMethod.SELECT)
@GetMapping("/list")
public TableDataInfo list(BdStorehouseVO bdStorehouse) {
if(bdStorehouse.getPkCountry() == null){
if (bdStorehouse.getPkCountry() == null) {
bdStorehouse.setPkCountry(SecurityUtils.getPkCountry());
}
List<BdStorehouseVO> list = iBdStorehouseService.selectBdStorehouseList(bdStorehouse);
list.forEach( itm ->{
BdStorehouseAreaMiddleVO sam=new BdStorehouseAreaMiddleVO();
list.forEach(itm -> {
BdStorehouseAreaMiddleVO sam = new BdStorehouseAreaMiddleVO();
sam.setPkStorehouse(itm.getPkId());
sam.setPkCountry(bdStorehouse.getPkCountry());
List<BdStorehouseAreaMiddleVO> samList=iBdStorehouseAreaMiddleService.getBdStorehouseAreaMiddleList(sam);
List<BdStorehouseAreaMiddleVO> samList = iBdStorehouseAreaMiddleService.getBdStorehouseAreaMiddleList(sam);
itm.setSamList(samList);
});
return getDataTable(list);

View File

@ -8,17 +8,13 @@ import com.hzs.system.base.vo.BdStorehouseVO;
import java.util.List;
/**
* <p>
* 仓库信息Mapper 接口
* </p>
*
* @author hzs
* @since 2022-08-02
* 仓库信息Mapper 接口
*/
public interface BdStorehouseMapper extends BaseMapper<BdStorehouse> {
/**
* 查询仓库列表信息
*
* @param bdStorehouse
* @return
*/
@ -26,6 +22,7 @@ public interface BdStorehouseMapper extends BaseMapper<BdStorehouse> {
/**
* 获取单条仓库信息
*
* @param bdStorehouse
* @return
*/
@ -33,6 +30,7 @@ public interface BdStorehouseMapper extends BaseMapper<BdStorehouse> {
/**
* 校验仓库信息是否重复
*
* @param bdStorehouse
* @return
*/

View File

@ -10,7 +10,6 @@ import com.hzs.common.core.enums.EDelFlag;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.base.BdStorehouseAreaMiddle;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.system.base.mapper.BdStorehouseMapper;
import com.hzs.system.base.service.IBdStorehouseAreaMiddleService;
import com.hzs.system.base.service.IBdStorehouseService;
@ -20,49 +19,30 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* <p>
* 仓库信息服务实现类
* </p>
*
* @author hzs
* @since 2022-08-02
*/
@Service
public class BdStorehouseServiceImpl extends ServiceImpl<BdStorehouseMapper, BdStorehouse> implements IBdStorehouseService {
@Autowired
private IBdStorehouseAreaMiddleService iBdStorehouseAreaMiddleService;
/**
* 查询仓库列表信息
*
* @param bdStorehouse
* @return
*/
@Override
public List<BdStorehouseVO> selectBdStorehouseList(BdStorehouseVO bdStorehouse) {
return baseMapper.selectBdStorehouseList(bdStorehouse);
}
/**
* 新增仓库信息
*
* @param bdStorehouseVO
* @return
*/
@Transactional(rollbackFor = Exception.class)
@Override
public boolean intBdStorehouse(BdStorehouseVO bdStorehouseVO) {
BdStorehouse bdStorehouse= BeanUtil.copyProperties(bdStorehouseVO, BdStorehouse.class);
BdStorehouse bdStorehouse = BeanUtil.copyProperties(bdStorehouseVO, BdStorehouse.class);
baseMapper.insert(bdStorehouse);
if(CollectionUtil.isNotEmpty(bdStorehouseVO.getProvinceList())){
BdStorehouseAreaMiddleVO sam=BeanUtil.copyProperties(bdStorehouseVO, BdStorehouseAreaMiddleVO.class);
if (CollectionUtil.isNotEmpty(bdStorehouseVO.getProvinceList())) {
BdStorehouseAreaMiddleVO sam = BeanUtil.copyProperties(bdStorehouseVO, BdStorehouseAreaMiddleVO.class);
sam.setPkStorehouse(bdStorehouse.getPkId());
iBdStorehouseAreaMiddleService.intStoArMiddle(sam);
}
@ -80,11 +60,6 @@ public class BdStorehouseServiceImpl extends ServiceImpl<BdStorehouseMapper, BdS
return baseMapper.getBdStorehouse(bdStorehouse);
}
/**
* 校验仓库信息是否重复
* @param bdStorehouse
* @return
*/
@Override
public BdStorehouse checkBdStorehouse(BdStorehouse bdStorehouse) {
return baseMapper.checkBdStorehouse(bdStorehouse);
@ -116,26 +91,26 @@ public class BdStorehouseServiceImpl extends ServiceImpl<BdStorehouseMapper, BdS
updateWrapper.set("WARE_ADDRESS", bdStorehouse.getWareAddress());
updateWrapper.set("PROVINCE", bdStorehouse.getProvince());
updateWrapper.set("CITY", bdStorehouse.getCity());
if(bdStorehouse.getCounty() != null) {
if (bdStorehouse.getCounty() != null) {
updateWrapper.set("COUNTY", bdStorehouse.getCounty());
}
updateWrapper.set("CONTACTS", bdStorehouse.getContacts());
updateWrapper.set("MOBILE_PHONE", bdStorehouse.getMobilePhone());
if(bdStorehouse.getPkCorp() != null) {
if (bdStorehouse.getPkCorp() != null) {
updateWrapper.set("PK_CORP", bdStorehouse.getPkCorp());
}
updateWrapper.set("PK_MODIFIED", bdStorehouse.getPkModified());
updateWrapper.set("MODIFIED_TIME",bdStorehouse.getModifiedTime());
updateWrapper.set("MODIFIED_TIME", bdStorehouse.getModifiedTime());
update(updateWrapper);
BdStorehouseAreaMiddleVO sam=BeanUtil.copyProperties(bdStorehouse, BdStorehouseAreaMiddleVO.class);
BdStorehouseAreaMiddleVO sam = BeanUtil.copyProperties(bdStorehouse, BdStorehouseAreaMiddleVO.class);
sam.setPkStorehouse(bdStorehouse.getPkId());
UpdateWrapper<BdStorehouseAreaMiddle> updateWrapper1=new UpdateWrapper<>();
updateWrapper1.eq("PK_STOREHOUSE",bdStorehouse.getPkId());
updateWrapper1.set("DEL_FLAG",EDelFlag.DELETE.getValue());
UpdateWrapper<BdStorehouseAreaMiddle> updateWrapper1 = new UpdateWrapper<>();
updateWrapper1.eq("PK_STOREHOUSE", bdStorehouse.getPkId());
updateWrapper1.set("DEL_FLAG", EDelFlag.DELETE.getValue());
iBdStorehouseAreaMiddleService.update(updateWrapper1);
if(CollectionUtil.isNotEmpty(bdStorehouse.getProvinceList())){
for(Integer i:bdStorehouse.getProvinceList()){
BdStorehouseAreaMiddle sa=new BdStorehouseAreaMiddle();
if (CollectionUtil.isNotEmpty(bdStorehouse.getProvinceList())) {
for (Integer i : bdStorehouse.getProvinceList()) {
BdStorehouseAreaMiddle sa = new BdStorehouseAreaMiddle();
sa.setProvince(i);
sa.setPkStorehouse(bdStorehouse.getPkId());
sa.setPkCountry(bdStorehouse.getPkCountry());
@ -147,13 +122,6 @@ public class BdStorehouseServiceImpl extends ServiceImpl<BdStorehouseMapper, BdS
return true;
}
/**
* @description: 删除仓库
* @author: zhang jing
* @date: 2023/5/16 16:42
* @param: [pkId]
* @return: boolean
**/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delBdStorehouse(BdStorehouseVO bdStorehouse) {

View File

@ -25,11 +25,6 @@ public class MemberFieldConstants {
*/
public static final String MEMBER_CODE = "member_code";
/**
* 推荐人
*/
public static final String PK_REFERENCE = "pk_reference";
/**
* 推荐人主键
*/
@ -119,13 +114,6 @@ public class MemberFieldConstants {
* 期间
*/
public static final String PERIOD = "period";
public static final String START_PERIOD = "START_PERIOD";
public static final String END_PERIOD = "END_PERIOD";
/**
* 升级类型 (1=自动升级,2=手动升级,3=购买赠予)
*/
public static final String UP_TYPE = "up_type";
/**
* 代理类型 (1=代理商,2=店铺)

View File

@ -10,45 +10,123 @@ import java.util.List;
public class RetailConstants {
/**
* 直推拿
* 会员 会员 60
* VIP 会员 80
* 合伙人 会员 100
* 博羚店主 会员 200
* 高级店主 会员 208
* 分公司 会员 220
* 总公司 会员 240
*/
public static final BigDecimal FIRST_DIRECT = new BigDecimal("60");
public static final BigDecimal V1_V1 = new BigDecimal("60");
public static final BigDecimal V2_V1 = new BigDecimal("80");
public static final BigDecimal V3_V1 = new BigDecimal("100");
public static final BigDecimal V4_V1 = new BigDecimal("200");
public static final BigDecimal V5_V1 = new BigDecimal("208");
public static final BigDecimal V6_V1 = new BigDecimal("220");
public static final BigDecimal V7_V1 = new BigDecimal("240");
/**
* 间推拿20
* 会员 VIP 300
* VIP VIP 400
* 合伙人 VIP 500
* 博羚店主 VIP 1000
* 高级店主 VIP 1040
* 分公司 VIP 1100
* 总公司 VIP 1200
*/
public static final BigDecimal FIRST_INDIRECT = new BigDecimal("20");
public static final BigDecimal V1_V2 = new BigDecimal("300");
public static final BigDecimal V2_V2 = new BigDecimal("400");
public static final BigDecimal V3_V2 = new BigDecimal("500");
public static final BigDecimal V4_V2 = new BigDecimal("1000");
public static final BigDecimal V5_V2 = new BigDecimal("1040");
public static final BigDecimal V6_V2 = new BigDecimal("1100");
public static final BigDecimal V7_V2 = new BigDecimal("1200");
/**
* 第一店长拿100
* 会员 合伙人 600
* VIP 合伙人 800
* 合伙人1 合伙人 1000
* 合伙人2 合伙人 1200
* 合伙人3 合伙人 1300
* 博羚店主 合伙人 2000
* 高级店主 合伙人 2080
* 分公司 合伙人 2200
* 总公司 合伙人 2400
*/
public static final BigDecimal FIRST_ONE_STORE = new BigDecimal("100");
public static final BigDecimal V1_V3 = new BigDecimal("600");
public static final BigDecimal V2_V3 = new BigDecimal("800");
public static final BigDecimal V3_V3_1 = new BigDecimal("1000");
public static final BigDecimal V3_V3_2 = new BigDecimal("1200");
public static final BigDecimal V3_V3_3 = new BigDecimal("1300");
public static final BigDecimal V4_V3 = new BigDecimal("2000");
public static final BigDecimal V5_V3 = new BigDecimal("2080");
public static final BigDecimal V6_V3 = new BigDecimal("2200");
public static final BigDecimal V7_V3 = new BigDecimal("2400");
/**
* 第二店长拿8
* 会员 合伙人 1200
* VIP 合伙人 1600
* 合伙人1 合伙人 2000
* 合伙人2 合伙人 2400
* 合伙人3 合伙人 2600
* 博羚店主 合伙人 4000
* 高级店主 合伙人 4160
* 分公司 合伙人 4400
* 总公司 合伙人 4800
*/
public static final BigDecimal FIRST_TWO_STORE = new BigDecimal("8");
public static final BigDecimal V1_V4 = new BigDecimal("1200");
public static final BigDecimal V2_V4 = new BigDecimal("1600");
public static final BigDecimal V3_V4_1 = new BigDecimal("2000");
public static final BigDecimal V3_V4_2 = new BigDecimal("2400");
public static final BigDecimal V3_V4_3 = new BigDecimal("2600");
public static final BigDecimal V4_V4 = new BigDecimal("4000");
public static final BigDecimal V5_V4 = new BigDecimal("4160");
public static final BigDecimal V6_V4 = new BigDecimal("4400");
public static final BigDecimal V7_V4 = new BigDecimal("4800");
/**
* 分公司拿12
* 博羚店主 分公司 50000
* 高级店主 分公司 52000
* 分公司 分公司 55000
* 总公司 分公司 60000
*/
public static final BigDecimal FIRST_BRANCH_COMPANY = new BigDecimal("12");
public static final BigDecimal V4_V6 = new BigDecimal("50000");
public static final BigDecimal V5_V6 = new BigDecimal("52000");
public static final BigDecimal V6_V6 = new BigDecimal("55000");
public static final BigDecimal V7_V6 = new BigDecimal("60000");
/**
* 总公司拿20
* 复购
* 会员 6
* VIP 8
* 合伙人1 10
* 合伙人2 12
* 合伙人3 13
* 博羚店主 20
* 高级店主 20.8
* 分公司 22
* 总公司 24
*/
public static final BigDecimal FIRST_COMPANY = new BigDecimal("20");
public static final BigDecimal REPURCHASE_V1 = new BigDecimal("6");
public static final BigDecimal REPURCHASE_V2 = new BigDecimal("8");
public static final BigDecimal REPURCHASE_V3_1 = new BigDecimal("10");
public static final BigDecimal REPURCHASE_V3_2 = new BigDecimal("12");
public static final BigDecimal REPURCHASE_V3_3 = new BigDecimal("13");
public static final BigDecimal REPURCHASE_V4 = new BigDecimal("20");
public static final BigDecimal REPURCHASE_V5 = new BigDecimal("20.8");
public static final BigDecimal REPURCHASE_V6 = new BigDecimal("22");
public static final BigDecimal REPURCHASE_V7 = new BigDecimal("24");
/**
* 会员VIP合伙人 每月可购买1套4盒
*/
public static final Integer V1_LIMIT = 1;
/**
* 博羚店主高级店主 每月可购买10套40盒
*/
public static final Integer V4_LIMIT = 10;
/**
* 分公司 每月可购买25套100盒
*/
public static final Integer V6_LIMIT = 25;
/**
* 总公司 不限购给一个很大的值
*/
public static final Integer V1_LIMIT = 1;
public static final Integer V4_LIMIT = 10;
public static final Integer V6_LIMIT = 25;
public static final Integer V7_LIMIT = 10000;
/**

View File

@ -15,6 +15,11 @@ public class BonusMsgConstants {
*/
public static String RANGE = "订单编号%s,%s为%s贡献了直推级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。";
/**
* 复购级差收益说明
*/
public static String REPUR_RANGE = "订单编号%s,%s为%s贡献了复购级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。";
/**
* 奖金重算 -- 只能重算7天内的奖金
*/

View File

@ -14,58 +14,58 @@ public enum EBonusItems {
/**
* 直推收益
*/
DIRECT_INCOME(3, "旧直推收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 3),
DIRECT_INCOME(3, "旧直推收益", 1),
/**
* 拓展收益
*/
EXPANSION_INCOME(4, "旧拓展收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 4),
EXPANSION_INCOME(4, "旧拓展收益", 1),
/**
* 辅导收益
*/
COACHING_INCOME(5, "旧辅导收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 5),
COACHING_INCOME(5, "旧辅导收益", 1),
/**
* 分红收益
*/
DIVIDEND_INCOME(6, "旧分红收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 6),
DIVIDEND_INCOME(6, "旧分红收益", 1),
/**
* 服务补贴
*/
SERVICE_SUBSIDIES(7, "旧服务补贴", 0, EnumsPrefixConstants.BONUS_ITEMS + 7),
SERVICE_SUBSIDIES(7, "旧服务补贴", 1),
/**
* 复购差收益
* 复购差收益
*/
REPURCHASE_RANGE_INCOME(8, "旧复购极差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 8),
REPURCHASE_RANGE_INCOME(8, "旧复购级差收益", 1),
/**
* 复购拓展收益
*/
CONSUMPTION_EXPANSION_INCOME(9, "旧复购拓展收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 9),
CONSUMPTION_EXPANSION_INCOME(9, "旧复购拓展收益", 1),
/**
* 旧商城重销
*/
RESALE_IN_THE_MALL(10, "旧商城重销", 0, EnumsPrefixConstants.BONUS_ITEMS + 10),
RESALE_IN_THE_MALL(10, "旧商城重销", 1),
/**
* 平台服务费
*/
PLATFORM_SERVICE_FEE(11, "旧平台服务费", 0, EnumsPrefixConstants.BONUS_ITEMS + 11),
PLATFORM_SERVICE_FEE(11, "旧平台服务费", 1),
/**
* 复购券
*/
REPURCHASE_COUPONS(12, "旧复购券", 0, EnumsPrefixConstants.BONUS_ITEMS + 12),
REPURCHASE_COUPONS(12, "旧复购券", 1),
/**
* 复购券均分收益
*/
REPURCHASE_COUPONS_SHARE(13, "旧复购券均分", 0, EnumsPrefixConstants.BONUS_ITEMS + 13),
REPURCHASE_COUPONS_SHARE(13, "旧复购券均分", 1),
////////////////////////////////////////////////// 新奖项 //////////////////////////////////////////////////
/**
* 直推级差收益 -- 秒结日奖
*/
RETAIL_RANGE_INCOME(25, "直推收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 25),
RETAIL_RANGE_INCOME(25, "直推级差收益", 0),
/**
* 复购级差收益 -- 秒结日奖
*/
RETAIL_REPURCHASE_INCOME(35, "复购收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 35),
RETAIL_REPURCHASE_INCOME(35, "复购级差收益", 0),
;
@ -90,8 +90,5 @@ public enum EBonusItems {
* 是否启用0=,1= -- 来源EYesNo
*/
private final int enable;
/**
* 国际化翻译key值
*/
private final String key;
}

View File

@ -59,7 +59,7 @@ public enum EGrade {
*/
BRANCH_COMPANY(7, 80, "V6", 0, EnumsPrefixConstants.GRADE + "80", MemberFrameworkConstants.COUNTY_AGENT),
/**
* 公司
* 公司
*/
COMPANY(8, 90, "V7", 0, EnumsPrefixConstants.GRADE + "90", MemberFrameworkConstants.CITY_AGENT),

View File

@ -12,7 +12,7 @@ import lombok.Getter;
public enum EUpgradeType {
/**
* 1=自动升级 (奖衔),2=手动升级等级奖衔,3=购买赠予奖衔 4=购买升级等级前台报单升级 5=活动升级等级
* 1=自动升级 -- 目前只高级店主升级为自动升级
*/
AUTO_UPGRADE(1, "自动升级", 0, EnumsPrefixConstants.UPGRADE_TYPE + 1),

View File

@ -116,7 +116,7 @@ public class CuMemberBonus extends BaseEntity {
private BigDecimal repurPushIncome;
/**
* 复购级差收益
* 复购级差收益 -- 新复购级差收益
*/
@TableField("REPUR_RANGE_INCOME")
private BigDecimal repurRangeIncome;
@ -224,7 +224,7 @@ public class CuMemberBonus extends BaseEntity {
private BigDecimal makerRealSubtotal;
/**
* 新零售直推收益
* 新零售直推收益 -- 新直推级差收益
*/
@TableField("RETAIL_RANGE_INCOME")
private BigDecimal retailRangeIncome;

View File

@ -1,23 +0,0 @@
package com.hzs.common.domain.member.detail.ext;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Description: 奖衔升级记录扩展类
* @Author: jiang chao
* @Time: 2024/2/28 16:38
* @Classname: CuMemberAwardsExt
* @PackageName: com.hzs.common.domain.member.detail.ext
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class CuMemberAwardsExt extends CuMemberAwards {
/**
* 奖衔值
*/
private Integer awardsValue;
}

View File

@ -35,14 +35,6 @@ public class SaOrderExt extends SaOrder {
* 会员电话
*/
private String memberPhone;
/**
* 服务编号
*/
private String memberServiceCode;
/**
* 会员昵称
*/
private String memberNickName;
/**
* 所属体系
*/
@ -61,25 +53,12 @@ public class SaOrderExt extends SaOrder {
* 创建人姓名
*/
private String creatorName;
/**
* 创建人服务编号
*/
private String creatorServiceCode;
/**
* 创建人昵称
*/
private String creatorNickName;
/**
* 创建人体系
*/
private Long creatorPkVertex;
/**
* 结算国
*/
private Integer pkSettleCountry;
/**
* 审核状态0=待提交1=待审核2=审核通过3=审核驳回
*/
@ -99,11 +78,6 @@ public class SaOrderExt extends SaOrder {
*/
private Long pkCenterCode;
/**
* 店铺等级
*/
private Integer pkStoreLevel;
/**
* 订单明细表
*/
@ -134,11 +108,6 @@ public class SaOrderExt extends SaOrder {
*/
private Integer editType;
/**
* 提货码
*/
private String selfCode;
/**
* 公司
*/

View File

@ -9,12 +9,7 @@ import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @description: 自提订单申请
* @author: sui q
* @time: 2023/4/19 19:28
* @classname: SaOrderSelfLogExt
* @package_name: com.hzs.common.domain.sale.ext
* version 1.0.0
* 自提订单申请
*/
@EqualsAndHashCode(callSuper = true)
@Data