## 兼容三阶段部分点位为空以及收益处理订单为空;
This commit is contained in:
parent
637aca701d
commit
f50645d5ab
|
@ -40,7 +40,7 @@ public interface ICuMemberBonusStageService extends IService<CuMemberBonusStage>
|
|||
/**
|
||||
* 填充指定点位
|
||||
*/
|
||||
boolean fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point,
|
||||
void fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point,
|
||||
CuMemberRetailDetail sourceRetailDetail, Date settleDate, EBonusStage eBonusStage,
|
||||
List<BonusStageData> bonusStageDataList);
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
|||
import com.hzs.common.domain.member.bonus.CuMemberBonus;
|
||||
import com.hzs.common.domain.member.bonus.CuMemberBonusStage;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
@ -29,6 +30,7 @@ import java.util.*;
|
|||
/**
|
||||
* 会员奖金-阶段收益明细表 服务实现类
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStageMapper, CuMemberBonusStage> implements ICuMemberBonusStageService {
|
||||
|
||||
|
@ -71,7 +73,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
|||
public CuMemberBonusStage getCuMemberBonusStage(SaOrderExt saOrderExt, CuMemberRetailRangeExt cuMemberRetailRange, CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
|
||||
CuMemberBonusStage cuMemberBonusStage = CuMemberBonusStage.builder()
|
||||
.pkBonus(cuMemberBonus.getPkId())
|
||||
.pkOrder(saOrderExt.getPkId())
|
||||
.pkOrder(null != saOrderExt ? saOrderExt.getPkId() : 0)
|
||||
.pkBonusItems(pkBonusItems)
|
||||
.incomeStatus(cuMemberRetailRange.getIncomeStatus())
|
||||
.calType(ECalType.VALUE.getValue())
|
||||
|
@ -117,8 +119,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
|||
for (String suffix : BonusConstants.FIELD_LIST) {
|
||||
Field pointMemberField = BonusConstants.FIELD_MAP.get(BonusConstants.POINT_MEMBER_FIELD_NAME + suffix);
|
||||
Field pointField = BonusConstants.FIELD_MAP.get(BonusConstants.POINT_FIELD_NAME + suffix);
|
||||
if (ReflectUtil.getFieldValue(targetRetailDetail, pointMemberField).equals(newParentRetailDetail.getPkMember())
|
||||
&& ReflectUtil.getFieldValue(targetRetailDetail, pointField).equals(newParentRetailDetail.getChildNode())) {
|
||||
if (newParentRetailDetail.getPkMember().equals(ReflectUtil.getFieldValue(targetRetailDetail, pointMemberField))
|
||||
&& newParentRetailDetail.getChildNode().equals(ReflectUtil.getFieldValue(targetRetailDetail, pointField))) {
|
||||
// 中间点位在目标点位的位置,根据位置获取新点位填充的位置
|
||||
switch (suffix) {
|
||||
case BonusConstants.POINT_11:
|
||||
|
@ -257,88 +259,95 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
|||
* 填充点位
|
||||
*/
|
||||
@Override
|
||||
public boolean fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point,
|
||||
CuMemberRetailDetail sourceRetailDetail, Date settleDate, EBonusStage eBonusStage,
|
||||
List<BonusStageData> bonusStageDataList) {
|
||||
public void fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point,
|
||||
CuMemberRetailDetail sourceRetailDetail, Date settleDate, EBonusStage eBonusStage,
|
||||
List<BonusStageData> bonusStageDataList) {
|
||||
ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + point, sourceRetailDetail.getPkMember());
|
||||
ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + point, sourceRetailDetail.getChildNode());
|
||||
ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.UPDATE_FLAG, 0);
|
||||
|
||||
switch (point) {
|
||||
case BonusConstants.POINT_31:
|
||||
case BonusConstants.POINT_32:
|
||||
case BonusConstants.POINT_33:
|
||||
case BonusConstants.POINT_34:
|
||||
case BonusConstants.POINT_35:
|
||||
case BonusConstants.POINT_36:
|
||||
case BonusConstants.POINT_37:
|
||||
case BonusConstants.POINT_38:
|
||||
// 如果填充的点位是第三层,理论上有可能已经全部填满,需要判断是否已经完成
|
||||
boolean isFinish = true;
|
||||
for (String suffix : BonusConstants.FIELD_LIST) {
|
||||
if (null == ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + suffix)) {
|
||||
isFinish = false;
|
||||
break;
|
||||
if (EBonusStage.ONE.getValue() == eBonusStage.getValue()
|
||||
|| EBonusStage.TWO.getValue() == eBonusStage.getValue()) {
|
||||
switch (point) {
|
||||
case BonusConstants.POINT_31:
|
||||
case BonusConstants.POINT_32:
|
||||
case BonusConstants.POINT_33:
|
||||
case BonusConstants.POINT_34:
|
||||
case BonusConstants.POINT_35:
|
||||
case BonusConstants.POINT_36:
|
||||
case BonusConstants.POINT_37:
|
||||
case BonusConstants.POINT_38:
|
||||
// 如果填充的点位是第三层,理论上有可能已经全部填满,需要判断是否已经完成
|
||||
boolean isFinish = true;
|
||||
for (String suffix : BonusConstants.FIELD_LIST) {
|
||||
if (null == ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + suffix)) {
|
||||
isFinish = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isFinish) {
|
||||
targetRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue());
|
||||
targetRetailDetail.setStageDate(settleDate);
|
||||
if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) {
|
||||
// 一阶段,全满发放阶段奖
|
||||
// 返回奖金收益处理数据
|
||||
BonusStageData bonusStageData = BonusStageData.builder()
|
||||
.bonusIncome(BonusConstants.ONE_BONUS)
|
||||
.targetPkMember(targetRetailDetail.getPkMember())
|
||||
.targetChildNode(targetRetailDetail.getChildNode())
|
||||
.stage(eBonusStage.getValue())
|
||||
.stageNum(14)
|
||||
.build();
|
||||
// 生成二阶段点位
|
||||
bonusStageData.setTwoRetailDetail(CuMemberRetailDetail.builder()
|
||||
.pkMember(targetRetailDetail.getPkMember())
|
||||
.childNode(targetRetailDetail.getChildNode())
|
||||
.pkParent(targetRetailDetail.getPkParent())
|
||||
.stage(EBonusStage.TWO.getValue())
|
||||
.stageStatus(EBonusStageStatus.NO.getValue())
|
||||
.pointType(targetRetailDetail.getPointType())
|
||||
.pointGift(targetRetailDetail.getPointGift())
|
||||
.creationTime(settleDate)
|
||||
.updateBool(0)
|
||||
.build());
|
||||
bonusStageDataList.add(bonusStageData);
|
||||
} else if (EBonusStage.TWO.getValue() == eBonusStage.getValue()) {
|
||||
// 二阶段,全满发放阶段奖
|
||||
// 返回奖金收益处理数据
|
||||
BonusStageData bonusStageData = BonusStageData.builder()
|
||||
.bonusIncome(BonusConstants.TWO_BONUS)
|
||||
.targetPkMember(targetRetailDetail.getPkMember())
|
||||
.targetChildNode(targetRetailDetail.getChildNode())
|
||||
.stage(eBonusStage.getValue())
|
||||
.stageNum(14)
|
||||
.build();
|
||||
bonusStageData.setThreeRetailDetail(CuMemberRetailDetail.builder()
|
||||
.pkMember(targetRetailDetail.getPkMember())
|
||||
.childNode(targetRetailDetail.getChildNode())
|
||||
.pkParent(targetRetailDetail.getPkParent())
|
||||
.stage(EBonusStage.THREE.getValue())
|
||||
.stageStatus(EBonusStageStatus.NO.getValue())
|
||||
.pointType(targetRetailDetail.getPointType())
|
||||
.pointGift(targetRetailDetail.getPointGift())
|
||||
.creationTime(settleDate)
|
||||
.updateBool(0)
|
||||
.build());
|
||||
bonusStageDataList.add(bonusStageData);
|
||||
} else if (EBonusStage.THREE.getValue() == eBonusStage.getValue()) {
|
||||
// TODO 三阶段发放特殊处理
|
||||
// TODO 三阶段填充满,判断是否需要赠送点位
|
||||
if (isFinish) {
|
||||
targetRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue());
|
||||
targetRetailDetail.setStageDate(settleDate);
|
||||
if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) {
|
||||
// 一阶段,全满发放阶段奖
|
||||
// 返回奖金收益处理数据
|
||||
BonusStageData bonusStageData = BonusStageData.builder()
|
||||
.bonusIncome(BonusConstants.ONE_BONUS)
|
||||
.targetPkMember(targetRetailDetail.getPkMember())
|
||||
.targetChildNode(targetRetailDetail.getChildNode())
|
||||
.stage(eBonusStage.getValue())
|
||||
.stageNum(14)
|
||||
.build();
|
||||
// 生成二阶段点位
|
||||
bonusStageData.setTwoRetailDetail(CuMemberRetailDetail.builder()
|
||||
.pkMember(targetRetailDetail.getPkMember())
|
||||
.childNode(targetRetailDetail.getChildNode())
|
||||
.pkParent(targetRetailDetail.getPkParent())
|
||||
.stage(EBonusStage.TWO.getValue())
|
||||
.stageStatus(EBonusStageStatus.NO.getValue())
|
||||
.pointType(targetRetailDetail.getPointType())
|
||||
.pointGift(targetRetailDetail.getPointGift())
|
||||
.creationTime(settleDate)
|
||||
.updateBool(0)
|
||||
.build());
|
||||
bonusStageDataList.add(bonusStageData);
|
||||
} else {
|
||||
// 二阶段,全满发放阶段奖
|
||||
// 返回奖金收益处理数据
|
||||
BonusStageData bonusStageData = BonusStageData.builder()
|
||||
.bonusIncome(BonusConstants.TWO_BONUS)
|
||||
.targetPkMember(targetRetailDetail.getPkMember())
|
||||
.targetChildNode(targetRetailDetail.getChildNode())
|
||||
.stage(eBonusStage.getValue())
|
||||
.stageNum(14)
|
||||
.build();
|
||||
bonusStageData.setThreeRetailDetail(CuMemberRetailDetail.builder()
|
||||
.pkMember(targetRetailDetail.getPkMember())
|
||||
.childNode(targetRetailDetail.getChildNode())
|
||||
.pkParent(targetRetailDetail.getPkParent())
|
||||
.stage(EBonusStage.THREE.getValue())
|
||||
.stageStatus(EBonusStageStatus.NO.getValue())
|
||||
.pointType(targetRetailDetail.getPointType())
|
||||
.pointGift(targetRetailDetail.getPointGift())
|
||||
.creationTime(settleDate)
|
||||
.updateBool(0)
|
||||
.build());
|
||||
bonusStageDataList.add(bonusStageData);
|
||||
}
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// TODO 三阶段发放特殊处理
|
||||
// TODO 三阶段填充满,判断是否需要赠送点位
|
||||
switch (point) {
|
||||
case BonusConstants.POINT_11:
|
||||
case BonusConstants.POINT_12:
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#{items}
|
||||
</foreach>
|
||||
and cmrd.stage = #{stage}
|
||||
and cmrd.stage_status = 1
|
||||
order by cmrd.pk_member, cmrd.child_node
|
||||
</select>
|
||||
|
||||
|
|
Loading…
Reference in New Issue