## 奖金结算时,如果当天没有订单修改结算等级、修改激活状态也会进行更新;
This commit is contained in:
parent
59a7bfc742
commit
f40781d460
|
@ -132,4 +132,14 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
|
|||
void mergeCuMemberRetailBackBoxBySpecial(@Param("rangeTableName") String rangeTableName,
|
||||
@Param("beforeTableName") String beforeTableName,
|
||||
@Param("period") Integer period);
|
||||
|
||||
/**
|
||||
* 更新会员激活状态
|
||||
*
|
||||
* @param rangeTableName
|
||||
* @param pkMemberList
|
||||
* @return
|
||||
*/
|
||||
int updateMemberEnable(@Param("rangeTableName") String rangeTableName, @Param("pkMemberList") List<Long> pkMemberList);
|
||||
|
||||
}
|
||||
|
|
|
@ -114,4 +114,14 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang
|
|||
* @param cuMemberTreeMap 树
|
||||
*/
|
||||
void updateCuMemberSecondRange(String secondTableName, Map<Long, CuMemberRetailRangeExt> cuMemberTreeMap);
|
||||
|
||||
/**
|
||||
* 更新会员激活状态
|
||||
*
|
||||
* @param rangeTableName
|
||||
* @param pkMemberList
|
||||
* @return
|
||||
*/
|
||||
int updateMemberEnable(String rangeTableName, List<Long> pkMemberList);
|
||||
|
||||
}
|
||||
|
|
|
@ -149,4 +149,10 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
|||
cuMemberTreeMap.forEach((key, value) -> cuMemberTreeList.add(value));
|
||||
return cuMemberBonusSettle.handleCutList(cuMemberTreeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateMemberEnable(String rangeTableName, List<Long> pkMemberList) {
|
||||
return baseMapper.updateMemberEnable(rangeTableName, pkMemberList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -111,7 +111,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
// 当期的手动激活的记录列表
|
||||
Map<Long, Date> activateMap = this.getActivateMap(saOrderExt.getPayTime());
|
||||
List<CuMemberServiceLog> activateList = this.getActivateList(saOrderExt.getPayTime());
|
||||
Map<Long, Date> activateMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(activateList)) {
|
||||
activateMap = activateList.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
CuMemberServiceLog::getPkMember,
|
||||
Collectors.collectingAndThen(
|
||||
Collectors.minBy(Comparator.comparing(CuMemberServiceLog::getCreationTime)),
|
||||
optional -> optional.get().getCreationTime()
|
||||
)
|
||||
));
|
||||
}
|
||||
// 查询体系奖项配置
|
||||
Map<Long, List<Integer>> vertexBonusMap = iBdVertexBonusService.queryVertexBonus();
|
||||
|
||||
|
@ -469,6 +480,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
iCuMemberAwardsService.calculateCuMemberRetailRangeAwardsInit(settleDate, period, rangeTableName);
|
||||
// 更新网体
|
||||
iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(settleEndDate, rangeTableName, yesterdayRangeTableName, isSameMonth);
|
||||
// 更新会员手动升级
|
||||
iCuMemberGradeService.updateCuMemberManualGrade(rangeTableName, period);
|
||||
|
||||
// 回退历史注水
|
||||
iCuMemberRetailRangeService.mergeCuMemberRetailBackBoxBySpecial(rangeTableName, yesterdayRangeTableName, period);
|
||||
|
@ -476,7 +489,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
iCuMemberRetailRangeService.mergeCuMemberRetailRangeBySpecial(rangeTableName, period);
|
||||
|
||||
// 当期的手动激活的记录列表
|
||||
Map<Long, Date> activateMap = this.getActivateMap(settleStartDate);
|
||||
List<CuMemberServiceLog> activateList = this.getActivateList(settleStartDate);
|
||||
|
||||
if (retailOrderList.size() > 0) {
|
||||
// 复购订单级差数据map(key:订单ID,value:订单明细+级差)
|
||||
|
@ -489,6 +502,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
List<CuMemberLevel> memberLevelList = iCuMemberGradeService.calculateCuMemberRetailGradeInit(period, settleStartDate, settleEndDate, rangeTableName);
|
||||
memberLevelList.forEach(cuMemberLevel -> memberLevelMap.put(cuMemberLevel.getPkOrder(), cuMemberLevel));
|
||||
|
||||
Map<Long, Date> activateMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(activateList)) {
|
||||
activateMap = activateList.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
CuMemberServiceLog::getPkMember,
|
||||
Collectors.collectingAndThen(
|
||||
Collectors.minBy(Comparator.comparing(CuMemberServiceLog::getCreationTime)),
|
||||
optional -> optional.get().getCreationTime()
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
// 按照血缘,查询该会员所有伞上会员
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||
|
||||
|
@ -653,6 +678,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
// 更新网体
|
||||
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||
} else {
|
||||
// 当日没有订单,也需要处理手动激活
|
||||
if (CollectionUtil.isNotEmpty(activateList)) {
|
||||
List<Long> pkMemberList = activateList.stream().map(CuMemberServiceLog::getPkMember).collect(Collectors.toList());
|
||||
iCuMemberRetailRangeService.updateMemberEnable(rangeTableName, pkMemberList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2102,17 +2133,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
* @param settleStartDate
|
||||
* @return
|
||||
*/
|
||||
private Map<Long, Date> getActivateMap(Date settleStartDate) {
|
||||
private List<CuMemberServiceLog> getActivateList(Date settleStartDate) {
|
||||
// 当期的手动激活的记录列表
|
||||
List<CuMemberServiceLog> activateList = iCuMemberServiceLogServiceApi.listActivateLog(settleStartDate).getData();
|
||||
return activateList.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
CuMemberServiceLog::getPkMember,
|
||||
Collectors.collectingAndThen(
|
||||
Collectors.minBy(Comparator.comparing(CuMemberServiceLog::getCreationTime)),
|
||||
optional -> optional.get().getCreationTime()
|
||||
)
|
||||
));
|
||||
return iCuMemberServiceLogServiceApi.listActivateLog(settleStartDate).getData();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -14,7 +14,12 @@ import java.util.List;
|
|||
public interface ICuMemberGradeService extends IService<CuMemberGrade> {
|
||||
|
||||
/**
|
||||
* 回退极差奖衔,每日重新结算,先把奖衔回退到前一天
|
||||
* 更新会员手动升级
|
||||
*/
|
||||
void updateCuMemberManualGrade(String rangeTableName, Integer period);
|
||||
|
||||
/**
|
||||
* 回退等级,每日重新结算,先把等级回退到前一天
|
||||
*
|
||||
* @param period 结算期间
|
||||
* @param rangeTableName 结算表
|
||||
|
|
|
@ -17,11 +17,16 @@ 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) {
|
||||
// 更新奖衔,回退等级
|
||||
public void updateCuMemberManualGrade(String rangeTableName, Integer period) {
|
||||
// 回退等级,更新手动升级
|
||||
baseMapper.deleteCuMemberGrade(period);
|
||||
baseMapper.updateCuMemberGrade(rangeTableName, period);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CuMemberLevel> calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName) {
|
||||
return baseMapper.queryCuMemberLevel(startDate, endDate);
|
||||
}
|
||||
|
||||
|
|
|
@ -816,4 +816,14 @@
|
|||
where pk_parent = #{pkParent}
|
||||
</select>
|
||||
|
||||
<!-- 更新会员激活状态 -->
|
||||
<update id="updateMemberEnable">
|
||||
update ${rangeTableName} cmr
|
||||
set cmr.enable_status = 0
|
||||
where cmr.pk_member in
|
||||
<foreach collection="pkMemberList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue