Compare commits

..

No commits in common. "91fac644d346a4ba8edfd238fde430604d1920ee" and "637aca701dd01116950eb79a77d4a9d25881c13d" have entirely different histories.

6 changed files with 81 additions and 98 deletions

View File

@ -40,7 +40,7 @@ public interface ICuMemberBonusStageService extends IService<CuMemberBonusStage>
/** /**
* 填充指定点位 * 填充指定点位
*/ */
void fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point, boolean fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point,
CuMemberRetailDetail sourceRetailDetail, Date settleDate, EBonusStage eBonusStage, CuMemberRetailDetail sourceRetailDetail, Date settleDate, EBonusStage eBonusStage,
List<BonusStageData> bonusStageDataList); List<BonusStageData> bonusStageDataList);

View File

@ -1114,7 +1114,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberBonusStage.setChildNode(bonusStageData.getTargetChildNode()); cuMemberBonusStage.setChildNode(bonusStageData.getTargetChildNode());
cuMemberBonusStage.setStage(bonusStageData.getStage()); cuMemberBonusStage.setStage(bonusStageData.getStage());
cuMemberBonusStage.setStageNum(bonusStageData.getStageNum()); cuMemberBonusStage.setStageNum(bonusStageData.getStageNum());
cuMemberBonusStage.setPkSourceMember(sourceMember.getPkMember());
stageIncomeRemark(saOrderExt, cuMemberBonusStage, sourceMember, targetMember); stageIncomeRemark(saOrderExt, cuMemberBonusStage, sourceMember, targetMember);
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusStage, saOrderExt != null ? saOrderExt.getOrderAmount() : null, saOrderExt != null ? saOrderExt.getInExchangeRate() : null); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusStage, saOrderExt != null ? saOrderExt.getOrderAmount() : null, saOrderExt != null ? saOrderExt.getInExchangeRate() : null);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusStage.getIncomeStatus()) { if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusStage.getIncomeStatus()) {

View File

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

View File

@ -11,7 +11,6 @@
#{items} #{items}
</foreach> </foreach>
and cmrd.stage = #{stage} and cmrd.stage = #{stage}
and cmrd.stage_status = 1
order by cmrd.pk_member, cmrd.child_node order by cmrd.pk_member, cmrd.child_node
</select> </select>

View File

@ -22,13 +22,13 @@
cal_type, cal_achieve, cal_value, cal_type, cal_achieve, cal_value,
pretax_income, income_tax, real_income, remark, pretax_income, income_tax, real_income, remark,
income_ratio, income_dial_ratio, order_dial_ratio, income_ratio, income_dial_ratio, order_dial_ratio,
pk_creator, child_node, stage, stage_num, pk_source_member) pk_creator, child_node, stage, stage_num)
values ( values (
#{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus}, #{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus},
#{item.calType}, #{item.calAchieve}, #{item.calValue}, #{item.calType}, #{item.calAchieve}, #{item.calValue},
#{item.pretaxIncome}, #{item.incomeTax}, #{item.realIncome}, #{item.remark}, #{item.pretaxIncome}, #{item.incomeTax}, #{item.realIncome}, #{item.remark},
#{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio}, #{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
#{item.pkCreator}, #{item.childNode}, #{item.stage}, #{item.stageNum}, #{item.pkSourceMember}) #{item.pkCreator}, #{item.childNode}, #{item.stage}, #{item.stageNum})
</foreach> </foreach>
SELECT 1 FROM dual SELECT 1 FROM dual
</insert> </insert>

View File

@ -133,11 +133,5 @@ public class CuMemberBonusStage extends BaseEntity {
@TableField("STAGE_NUM") @TableField("STAGE_NUM")
private Integer stageNum; private Integer stageNum;
/**
* 来源会员ID
*/
@TableField("PK_SOURCE_MEMBER")
private Long pkSourceMember;
} }