## 奖衔计算方式改为先算奖衔;赠点排点方式问题修复;
This commit is contained in:
parent
8b5d7a5f9d
commit
83136f1387
|
@ -1,7 +1,6 @@
|
|||
package com.hzs.system.config.dto;
|
||||
|
||||
import com.hzs.common.domain.bonus.BdBonusDeduct;
|
||||
import com.hzs.common.domain.bonus.BdBonusService;
|
||||
import com.hzs.common.domain.system.config.*;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
||||
import com.hzs.system.sys.dto.BdCurrencyDTO;
|
||||
|
@ -27,46 +26,14 @@ public class BonusConfigDTO implements Serializable {
|
|||
*/
|
||||
private Map<String, BdBonusItemsExt> bonusItemsExtMap;
|
||||
|
||||
/**
|
||||
* 循环配置 key 第一个键国家主键 +等级,第二个键 循环类型 EBonusType
|
||||
*/
|
||||
private Map<String, BonusDirectLoopDTO> bonusDirectLoopDtoMap;
|
||||
|
||||
/**
|
||||
* 直推奖励配置 key 第一个键国家主键 ,第二个键 range_type+pk_level
|
||||
*/
|
||||
private Map<String, BonusDirectDTO> bonusDirectDtoMap;
|
||||
|
||||
/**
|
||||
* 一次性补差 key 国家作为主键,只有一条
|
||||
* 奖衔列表
|
||||
*/
|
||||
private Map<Integer, BonusDifferenceDTO> bonusDifferenceDtoMap;
|
||||
|
||||
/**
|
||||
* 复购推荐奖励配置 key第一个键国家主键,第二个键 代数
|
||||
*/
|
||||
private Map<Integer, Map<Integer, BonusRepurchasePushDTO>> bonusRepurchasePushMap;
|
||||
|
||||
/**
|
||||
* 拓展奖配置 国家+等级
|
||||
*/
|
||||
private Map<String, BdGrade> gradeMap;
|
||||
|
||||
/**
|
||||
* 主任每个国家值对应的配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + 奖衔值 为了解决服务中心算主任
|
||||
*/
|
||||
private Map<String, BdAwards> directorAwardsMap;
|
||||
|
||||
/**
|
||||
* 辅导奖配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getPkAwards()
|
||||
*/
|
||||
private Map<String, BdAwards> awardsMap;
|
||||
|
||||
/**
|
||||
* 辅导奖配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getAwardsValue()
|
||||
*/
|
||||
private Map<String, BdAwards> awardsValueMap;
|
||||
|
||||
private List<BdAwards> awardsList;
|
||||
|
||||
/**
|
||||
|
@ -74,9 +41,4 @@ public class BonusConfigDTO implements Serializable {
|
|||
*/
|
||||
private Map<Integer, BdBonusDeduct> bonusDeductsMap;
|
||||
|
||||
/**
|
||||
* 报单服务费 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getservicetype()
|
||||
*/
|
||||
private Map<String, BdBonusService> bonusServiceMap;
|
||||
|
||||
}
|
||||
|
|
|
@ -5,13 +5,6 @@ import lombok.Data;
|
|||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: sui q
|
||||
* @Time: 2022/11/14 16:38
|
||||
* @Classname: BonusDifferenceDTO
|
||||
* @PackageName: com.hzs.system.config.dto
|
||||
*/
|
||||
@Data
|
||||
public class BonusDifferenceDTO implements Serializable {
|
||||
|
||||
|
|
|
@ -6,11 +6,7 @@ import java.io.Serializable;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description: 循环配置
|
||||
* @Author: sui q
|
||||
* @Time: 2022/11/14 16:26
|
||||
* @Classname: BonusDirectLoopDTO
|
||||
* @PackageName: com.hzs.system.config.dto
|
||||
* 循环配置
|
||||
*/
|
||||
@Data
|
||||
public class BonusDirectLoopDTO implements Serializable {
|
||||
|
|
|
@ -6,12 +6,7 @@ import java.io.Serializable;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @description: 复购直推dto
|
||||
* @author: sui q
|
||||
* @time: 2023/6/29 15:17
|
||||
* @classname: BonusRepurchasePushDTO
|
||||
* @package_name: com.hzs.system.config.dto
|
||||
* version 1.0.0
|
||||
* 复购直推dto
|
||||
*/
|
||||
@Data
|
||||
public class BonusRepurchasePushDTO implements Serializable {
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.hzs.common.domain.member.ext.CuMemberExt;
|
|||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -121,11 +122,31 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
|
|||
List<CuMemberRetailRangeExt> listChildRetail(@Param("rangeTableName") String rangeTableName,
|
||||
@Param("pkParentList") List<Long> pkParentList);
|
||||
|
||||
/**
|
||||
* 更新会员血缘上累计数据
|
||||
*/
|
||||
Boolean updateMemberParentDate(@Param("rangeTableName") String rangeTableName,
|
||||
@Param("achieveList") List<?> achieveList);
|
||||
|
||||
/**
|
||||
* 查询符合奖衔业绩条件会员
|
||||
*/
|
||||
List<CuMemberRetailRangeExt> queryEnoughAwardMember(@Param("rangeTableName") String rangeTableName,
|
||||
@Param("totalCheck") BigDecimal totalCheck,
|
||||
@Param("pkAwards") Integer pkAwards);
|
||||
|
||||
/**
|
||||
* 查询会员血缘下达标奖衔会员
|
||||
*/
|
||||
List<Integer> listChildAwards(@Param("rangeTableName") String rangeTableName,
|
||||
@Param("pkAwards") Integer pkAwards,
|
||||
@Param("childMemberList") List<Long> childMemberList);
|
||||
@Param("childMemberList") List<?> childMemberList);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔
|
||||
*/
|
||||
int updateCuMemberAwardsByPeriod(@Param("rangeTableName") String rangeTableName,
|
||||
@Param("period") Integer period,
|
||||
@Param("awardType") Integer awardType);
|
||||
|
||||
}
|
||||
|
|
|
@ -94,6 +94,11 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
|
|||
*/
|
||||
void truncateCuMemberTreeTable(@Param("tableName") String tableName);
|
||||
|
||||
/**
|
||||
* 清除表数据
|
||||
*/
|
||||
void clearTable(@Param("tableName") String tableName);
|
||||
|
||||
/**
|
||||
* 将会员表数据插入结算日表中
|
||||
*
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.hzs.bonus.achieve.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
|
@ -82,9 +83,25 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang
|
|||
|
||||
void initMemberRetailSecondRange(String tableName, CuMemberExt member);
|
||||
|
||||
/**
|
||||
* 更新会员血缘上累计数据
|
||||
*/
|
||||
void updateMemberParentDate(String rangeTableName, Map<Long, MemberAchieveParam> memberAchieveHashMap);
|
||||
|
||||
/**
|
||||
* 查询符合奖衔业绩条件会员
|
||||
*/
|
||||
List<CuMemberRetailRangeExt> queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards);
|
||||
|
||||
/**
|
||||
* 查询会员血缘下达标奖衔会员
|
||||
*/
|
||||
List<Integer> listChildAwards(String rangeTableName, Integer pkAwards, List<Long> childMemberList);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔
|
||||
*/
|
||||
void updateCuMemberAwardsByPeriod(String rangeTableName, Integer period);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -56,6 +56,11 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
|
|||
*/
|
||||
void truncateCuMemberTreeTable(String tableName);
|
||||
|
||||
/**
|
||||
* 清除表数据
|
||||
*/
|
||||
void clearTable(String tableName);
|
||||
|
||||
/**
|
||||
* 创建会员网体推荐人索引
|
||||
*
|
||||
|
@ -77,4 +82,5 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
|
|||
*/
|
||||
void createCuMemberTreePlaceIndex(String tableName);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ import com.hzs.common.core.utils.DateUtils;
|
|||
import com.hzs.common.domain.member.achieve.CuMemberAchieve;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.service.ITransactionCommonService;
|
||||
import com.hzs.bonus.achieve.mapper.CuMemberAchieveMapper;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -18,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
@ -28,22 +26,11 @@ import java.util.*;
|
|||
@Service
|
||||
public class CuMemberAchieveServiceImpl extends ServiceImpl<CuMemberAchieveMapper, CuMemberAchieve> implements ICuMemberAchieveService {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberTreeService cuMemberTreeService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
|
||||
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) {
|
||||
this.cuMemberTreeService = cuMemberTreeService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
ITransactionCommonService iTransactionCommonService;
|
||||
|
||||
@Override
|
||||
public String createCuMemberAchieve(String date) {
|
||||
|
|
|
@ -95,7 +95,7 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
|
|||
sourceMember.setChildRetailMap(new LinkedHashMap<>());
|
||||
|
||||
// 会员直推数据
|
||||
List<CuMemberRetailRangeExt> retailRangeList = cuMemberRetailRangeMapper.listChildRetail(rangeTableName, Collections.singletonList(sourceMember.getPkParent()));
|
||||
List<CuMemberRetailRangeExt> retailRangeList = cuMemberRetailRangeMapper.listChildRetail(rangeTableName, Collections.singletonList(sourceMember.getPkMember()));
|
||||
if (CollectionUtil.isNotEmpty(retailRangeList)) {
|
||||
// 直推数据列表
|
||||
LinkedHashMap<Date, CuMemberRetailRangeExt> childRetailMap = sourceMember.getChildRetailMap();
|
||||
|
|
|
@ -3,9 +3,11 @@ package com.hzs.bonus.achieve.service.impl;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.enums.EAwardsType;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
|
@ -44,7 +46,7 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
|||
@Override
|
||||
public void mergeMemberRetailRangeDetailByYesterday(String detailTableName, String yesterdayDetailTableName) {
|
||||
// 清空当前明细表
|
||||
iCuMemberTreeService.truncateCuMemberTreeTable(detailTableName);
|
||||
iCuMemberTreeService.clearTable(detailTableName);
|
||||
// 用昨天的数据初始化当前明细表
|
||||
baseMapper.mergeMemberRetailRangeDetailByYesterday(detailTableName, yesterdayDetailTableName);
|
||||
}
|
||||
|
@ -173,12 +175,28 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
|||
return cuMemberBonusSettle.handleCutList(cuMemberTreeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateMemberParentDate(String rangeTableName, Map<Long, MemberAchieveParam> memberAchieveHashMap) {
|
||||
if (memberAchieveHashMap.size() == 0) {
|
||||
return;
|
||||
}
|
||||
List<List<?>> listList = cuMemberBonusSettle.handleCutList(memberAchieveHashMap.values(), MagicNumberConstants.BATCH_UPDATE_NUM);
|
||||
listList.forEach(list -> {
|
||||
baseMapper.updateMemberParentDate(rangeTableName, list);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CuMemberRetailRangeExt> queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards) {
|
||||
return baseMapper.queryEnoughAwardMember(settleTableName, totalCheck, pkAwards);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Integer> listChildAwards(String rangeTableName, Integer pkAwards, List<Long> childMemberList) {
|
||||
List<Integer> checkList = new ArrayList<>();
|
||||
List<List<?>> queryList = cuMemberBonusSettle.handleCutList(childMemberList, MagicNumberConstants.BATCH_QUERY_NUM);
|
||||
queryList.forEach(tmpList -> {
|
||||
List<Integer> tmpCheckList = baseMapper.listChildAwards(rangeTableName, pkAwards, childMemberList);
|
||||
List<Integer> tmpCheckList = baseMapper.listChildAwards(rangeTableName, pkAwards, tmpList);
|
||||
if (tmpCheckList.size() > 0) {
|
||||
checkList.addAll(tmpCheckList);
|
||||
}
|
||||
|
@ -186,4 +204,9 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
|||
return checkList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberAwardsByPeriod(String rangeTableName, Integer period) {
|
||||
baseMapper.updateCuMemberAwardsByPeriod(rangeTableName, period, EAwardsType.RANGE_TYPE.getValue());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import com.hzs.bonus.achieve.service.ICuMemberAchieveService;
|
|||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
import com.hzs.common.core.constant.TableNameConstants;
|
||||
import com.hzs.common.core.enums.EAwardsType;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberTree;
|
||||
import com.hzs.bonus.achieve.mapper.CuMemberTreeMapper;
|
||||
|
@ -55,7 +54,8 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
baseMapper.insertCuMemberRetailRangeByMember(retailRangeTableName);
|
||||
}
|
||||
// 创建结算明细表
|
||||
String retailRangeTableDetailName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + period;;
|
||||
String retailRangeTableDetailName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + period;
|
||||
;
|
||||
number = baseMapper.queryExistOracleTable(retailRangeTableDetailName);
|
||||
if (number == null || number <= 0) {
|
||||
baseMapper.createCuMemberRetailDetail(retailRangeTableDetailName);
|
||||
|
@ -124,6 +124,11 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
baseMapper.truncateCuMemberTreeTable(tableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearTable(String tableName) {
|
||||
baseMapper.clearTable(tableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createCuMemberTreeDayOnlyIndex(String tableName) {
|
||||
baseMapper.createCuMemberTreeDayOnlyIndex(tableName);
|
||||
|
@ -139,4 +144,5 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
baseMapper.createCuMemberTreePlaceIndex(tableName);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -17,9 +17,9 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
|||
CuMember getByPkId(@Param("pkId") Serializable id);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔根据临时表
|
||||
* 更新会员奖衔
|
||||
*/
|
||||
int updateCuMemberRetailAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType);
|
||||
int updateCuMemberAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔根据临时表
|
||||
|
|
|
@ -14,10 +14,11 @@ import java.util.List;
|
|||
public interface ICuMemberService extends IService<CuMember> {
|
||||
|
||||
CuMember getByPkId(Serializable id);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔根据临时表 -- 日结
|
||||
* 更新会员奖衔
|
||||
*/
|
||||
void updateCuMemberRetailRangeByPeriod(Integer period);
|
||||
void updateCuMemberAwardsByPeriod(Integer period);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔根据临时表
|
||||
|
|
|
@ -23,8 +23,8 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberRetailRangeByPeriod(Integer period) {
|
||||
baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
|
||||
public void updateCuMemberAwardsByPeriod(Integer period) {
|
||||
baseMapper.updateCuMemberAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
import com.hzs.common.core.constant.BonusFieldConstants;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
|
@ -11,7 +12,6 @@ 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.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
||||
import com.hzs.system.config.dto.BonusConfigDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -234,4 +234,26 @@ public abstract class BonusSettleHandle {
|
|||
return bdBonusDeduct;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理订单累计业绩、累计金额
|
||||
*/
|
||||
public void assortSaOrder(Map<Long, MemberAchieveParam> memberAchieveHashMap, List<SaOrderExt> orderExtList) {
|
||||
for (SaOrderExt saOrderExt : orderExtList) {
|
||||
MemberAchieveParam cuMemberAchieve;
|
||||
if (memberAchieveHashMap.containsKey(saOrderExt.getPkMember())) {
|
||||
cuMemberAchieve = memberAchieveHashMap.get(saOrderExt.getPkMember());
|
||||
} else {
|
||||
cuMemberAchieve = MemberAchieveParam.builder()
|
||||
.pkMember(saOrderExt.getPkMember())
|
||||
.newPv(BigDecimal.ZERO)
|
||||
.newAmount(BigDecimal.ZERO)
|
||||
.build();
|
||||
memberAchieveHashMap.put(saOrderExt.getPkMember(), cuMemberAchieve);
|
||||
}
|
||||
cuMemberAchieve.setNewPv(ComputeUtil.computeAdd(cuMemberAchieve.getNewPv(), saOrderExt.getOrderAchieve()));
|
||||
cuMemberAchieve.setNewAmount(ComputeUtil.computeAdd(cuMemberAchieve.getNewAmount(), saOrderExt.getOrderAmount()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
|
@ -139,7 +140,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 实时网体查询血缘伞上会员,更新秒结表奖衔
|
||||
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember(), EYesNo.YES.getIntValue());
|
||||
// 恢复秒结表奖衔
|
||||
iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod, EYesNo.YES.getIntValue());
|
||||
iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod);
|
||||
// 查询 昨天日结 + 今天秒结 血缘伞上+直推
|
||||
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||
} else {
|
||||
|
@ -150,7 +151,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 实时网体查询血缘上会员,更新订单支付日结表奖衔
|
||||
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember(), EYesNo.NO.getIntValue());
|
||||
// 恢复日结表奖衔
|
||||
iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod, EYesNo.NO.getIntValue());
|
||||
iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod);
|
||||
// 查询 订单下单日结 血缘上会员结算数据
|
||||
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||
}
|
||||
|
@ -275,8 +276,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 结算明细前一天表
|
||||
String yesterdayRangeDetailTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + yesterdayPeriod;
|
||||
|
||||
// 回退奖衔,将奖衔回退到结算前状态
|
||||
iCuMemberAwardsService.calculateCuMemberRetailRangeAwardsInit(settleDate, period, rangeTableName);
|
||||
// 初始化结算网体数据(昨天数据更新到今天数据)
|
||||
iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(rangeTableName, yesterdayRangeTableName, isSameMonth);
|
||||
// 初始化结算明细数据(昨天数据更新到今天数据)
|
||||
|
@ -286,19 +285,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
List<CuMemberRetailDetail> stageList = new ArrayList<>();
|
||||
|
||||
if (orderList.size() > 0) {
|
||||
// 按照血缘,查询该会员所有伞上会员
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList);
|
||||
// 会员结算map(key:会员ID,value:结算扩展)
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
// 会员转map
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||
}
|
||||
}
|
||||
// 查询血缘会员明细数据(一阶段)
|
||||
iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE, EBonusStageStatus.NO, null);
|
||||
|
||||
// 奖衔
|
||||
Map<Integer, BdAwards> awardsMap = new HashMap<>();
|
||||
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
||||
|
@ -313,6 +299,28 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 阶段收益
|
||||
List<CuMemberBonusStage> cuMemberBonusStageList = new ArrayList<>();
|
||||
|
||||
// 更新血缘上个人、团队累计业绩,用于处理奖衔
|
||||
Map<Long, MemberAchieveParam> memberAchieveHashMap = new HashMap<>();
|
||||
// 订单累计业绩、累计金额
|
||||
assortSaOrder(memberAchieveHashMap, orderList);
|
||||
// 更新血缘上业绩、金额
|
||||
iCuMemberRetailRangeService.updateMemberParentDate(rangeTableName, memberAchieveHashMap);
|
||||
// 处理奖衔
|
||||
iCuMemberAwardsService.calculateCuMemberAwards(rangeTableName, awardsList, awardsMap, settleStartDate, period);
|
||||
|
||||
// 按照血缘,查询该会员所有伞上会员
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList);
|
||||
// 会员结算map(key:会员ID,value:结算扩展)
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
// 会员转map
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||
}
|
||||
}
|
||||
// 查询血缘会员明细数据(一阶段)
|
||||
iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE, EBonusStageStatus.NO, null);
|
||||
|
||||
for (SaOrderExt saOrderExt : orderList) {
|
||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
if (null == sourceMember) {
|
||||
|
@ -324,10 +332,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
|
||||
// 自己消费的相关金额、业绩处理
|
||||
sourceMember.setNewConsumePv(orderAchieve);
|
||||
sourceMember.setConsumePv(sourceMember.getConsumePv().add(orderAchieve));
|
||||
sourceMember.setMonthConsumePv(sourceMember.getMonthConsumePv().add(orderAchieve));
|
||||
sourceMember.setNewConsumeAmount(orderAmount);
|
||||
sourceMember.setConsumeAmount(sourceMember.getConsumeAmount().add(orderAmount));
|
||||
sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount));
|
||||
// // 自己计算奖衔,目前业绩都只往下传,所以此处暂时不需要处理订单会员的奖衔
|
||||
// this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember);
|
||||
|
@ -367,6 +373,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 五折专区
|
||||
sourceMember.setRepConsumeNewPv(sourceMember.getRepConsumeNewPv().add(orderAchieve));
|
||||
sourceMember.setRepConsumeNewAmount(sourceMember.getRepConsumeNewAmount().add(orderAmount));
|
||||
|
||||
// 领导级差收益 -- 来源PV
|
||||
this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period,
|
||||
awardsMap, saOrderExt, sourceMember);
|
||||
|
@ -406,12 +413,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (cuMemberBonusStageList.size() > 0) {
|
||||
bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList);
|
||||
}
|
||||
if (cuMemberAwardsList.size() > 0) {
|
||||
// 批量插入会员奖衔记录
|
||||
iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
|
||||
// 更新会员表奖衔数据
|
||||
iCuMemberService.updateCuMemberRetailRangeByPeriod(period);
|
||||
}
|
||||
// if (cuMemberAwardsList.size() > 0) {
|
||||
// // 批量插入会员奖衔记录
|
||||
// iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
|
||||
// // 更新会员表奖衔数据
|
||||
// iCuMemberService.updateCuMemberAwardsByPeriod(period);
|
||||
// }
|
||||
// 更新日结数据
|
||||
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||
// 更新日结明细数据
|
||||
|
@ -1024,67 +1031,67 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算奖衔
|
||||
*/
|
||||
private void calculateAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
|
||||
SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap, List<CuMemberAwards> cuMemberAwardsList,
|
||||
CuMemberRetailRangeExt targetMember) {
|
||||
// 校验大小区会员数据
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList = null;
|
||||
// 计算分红奖衔
|
||||
while (true) {
|
||||
// 当月奖衔值 + 5,获取下一个奖衔值
|
||||
int awardsValue = targetMember.getAwardsValue() + 5;
|
||||
if (retailAwardsMap.containsKey(awardsValue)) {
|
||||
BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
||||
|
||||
if (ComputeUtil.compareValue(targetMember.getTeamConsumePv(), bdAwards.getTotalCheck())) {
|
||||
// 团队累计业绩 >= 奖衔累计业绩
|
||||
if (null == cuMemberRangeExtList) {
|
||||
// 昨日结算表,查询会员直推数据
|
||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
|
||||
}
|
||||
// 大区
|
||||
BigDecimal consumeBigPv = BigDecimal.ZERO;
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||
}
|
||||
// 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩
|
||||
BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv());
|
||||
if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
|
||||
// 累计业绩 > 大区业绩,则累计就成为大区
|
||||
consumeBigPv = consumePv;
|
||||
}
|
||||
}
|
||||
// 小区业绩 = 团队累计业绩 - 大区业绩
|
||||
BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv);
|
||||
if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) {
|
||||
// 小区业绩 >= 考核小区业绩
|
||||
if (bdAwards.getPlaceDeptNum() > 0) {
|
||||
// 验证每条血缘下,满足达标数量
|
||||
List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(),
|
||||
cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList()));
|
||||
if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) {
|
||||
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards()));
|
||||
targetMember.setPkAwards(bdAwards.getPkId());
|
||||
targetMember.setAwardsValue(bdAwards.getAwardsValue());
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
// 不需要考核血缘达标,直接给奖衔
|
||||
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards()));
|
||||
targetMember.setPkAwards(bdAwards.getPkId());
|
||||
targetMember.setAwardsValue(bdAwards.getAwardsValue());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// /**
|
||||
// * 计算奖衔
|
||||
// */
|
||||
// private void calculateAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
|
||||
// SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap, List<CuMemberAwards> cuMemberAwardsList,
|
||||
// CuMemberRetailRangeExt targetMember) {
|
||||
// // 校验大小区会员数据
|
||||
// List<CuMemberRetailRangeExt> cuMemberRangeExtList = null;
|
||||
// // 计算分红奖衔
|
||||
// while (true) {
|
||||
// // 当月奖衔值 + 5,获取下一个奖衔值
|
||||
// int awardsValue = targetMember.getAwardsValue() + 5;
|
||||
// if (retailAwardsMap.containsKey(awardsValue)) {
|
||||
// BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
||||
//
|
||||
// if (ComputeUtil.compareValue(targetMember.getTeamConsumePv(), bdAwards.getTotalCheck())) {
|
||||
// // 团队累计业绩 >= 奖衔累计业绩
|
||||
// if (null == cuMemberRangeExtList) {
|
||||
// // 昨日结算表,查询会员直推数据
|
||||
// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
|
||||
// }
|
||||
// // 大区
|
||||
// BigDecimal consumeBigPv = BigDecimal.ZERO;
|
||||
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||
// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||
// }
|
||||
// // 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩
|
||||
// BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv());
|
||||
// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
|
||||
// // 累计业绩 > 大区业绩,则累计就成为大区
|
||||
// consumeBigPv = consumePv;
|
||||
// }
|
||||
// }
|
||||
// // 小区业绩 = 团队累计业绩 - 大区业绩
|
||||
// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv);
|
||||
// if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) {
|
||||
// // 小区业绩 >= 考核小区业绩
|
||||
// if (bdAwards.getPlaceDeptNum() > 0) {
|
||||
// // 验证每条血缘下,满足达标数量
|
||||
// List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(),
|
||||
// cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList()));
|
||||
// if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) {
|
||||
// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards()));
|
||||
// targetMember.setPkAwards(bdAwards.getPkId());
|
||||
// targetMember.setAwardsValue(bdAwards.getAwardsValue());
|
||||
// continue;
|
||||
// }
|
||||
// } else {
|
||||
// // 不需要考核血缘达标,直接给奖衔
|
||||
// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards()));
|
||||
// targetMember.setPkAwards(bdAwards.getPkId());
|
||||
// targetMember.setAwardsValue(bdAwards.getAwardsValue());
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 计算团队奖衔
|
||||
|
@ -1101,11 +1108,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
while (null != targetMember) {
|
||||
// 累计业绩
|
||||
targetMember.setTeamNewPv(targetMember.getTeamNewPv().add(orderAchieve));
|
||||
targetMember.setTeamConsumePv(targetMember.getTeamConsumePv().add(orderAchieve));
|
||||
targetMember.setTeamMonthPv(targetMember.getTeamMonthPv().add(orderAchieve));
|
||||
// 累计金额
|
||||
targetMember.setTeamNewAmount(targetMember.getTeamNewAmount().add(orderAmount));
|
||||
targetMember.setTeamConsumeAmount(targetMember.getTeamConsumeAmount().add(orderAmount));
|
||||
targetMember.setTeamMonthAmount(targetMember.getTeamMonthAmount().add(orderAmount));
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
|
||||
|
@ -1113,13 +1118,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 团队精品专区
|
||||
targetMember.setRegTeamNewPv(targetMember.getRegTeamNewPv().add(orderAchieve));
|
||||
targetMember.setRegTeamNewAmount(targetMember.getRegTeamNewAmount().add(orderAmount));
|
||||
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.DISCOUNT_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||
// 团队商城专区
|
||||
targetMember.setRepTeamNewPv(targetMember.getRepTeamNewPv().add(orderAchieve));
|
||||
targetMember.setRepTeamNewAmount(targetMember.getRepTeamNewAmount().add(orderAmount));
|
||||
}
|
||||
// 计算奖衔
|
||||
calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, targetMember);
|
||||
// // 计算奖衔
|
||||
// calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, targetMember);
|
||||
|
||||
targetMember = memberRangeExtMap.get(targetMember.getPkParent());
|
||||
}
|
||||
|
|
|
@ -3,8 +3,11 @@ package com.hzs.bonus.detail.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 会员信息-奖衔升级记录 服务类
|
||||
|
@ -12,9 +15,9 @@ import java.util.List;
|
|||
public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
|
||||
|
||||
/**
|
||||
* 回退极差奖衔,每日重新结算,先把奖衔回退到前一天
|
||||
* 计算奖衔
|
||||
*/
|
||||
void calculateCuMemberRetailRangeAwardsInit(String settleDate, Integer period, String rangeTableName);
|
||||
void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Map<Integer, BdAwards> awardsMap, Date settleDate, Integer period);
|
||||
|
||||
/**
|
||||
* 批量插入奖衔记录
|
||||
|
@ -36,6 +39,6 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
|
|||
/**
|
||||
* 回退奖衔
|
||||
*/
|
||||
void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday);
|
||||
void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,21 +1,25 @@
|
|||
package com.hzs.bonus.detail.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
||||
import com.hzs.common.core.constant.*;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
import com.hzs.bonus.detail.mapper.CuMemberAwardsMapper;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 会员信息-奖衔升级记录 服务实现类
|
||||
|
@ -29,9 +33,11 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
private ICuMemberTreeService iCuMemberTreeService;
|
||||
@Autowired
|
||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||
@Autowired
|
||||
private ICuMemberRetailRangeService iCuMemberRetailRangeService;
|
||||
|
||||
@Override
|
||||
public void calculateCuMemberRetailRangeAwardsInit(String settleDate, Integer period, String rangeTableName) {
|
||||
public void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Map<Integer, BdAwards> awardsMap, Date settleDate, Integer period) {
|
||||
// 回退结算表奖衔
|
||||
iCuMemberTreeService.updateBackCuMemberRetailRangeAward(rangeTableName, period);
|
||||
// 回退会员表奖衔
|
||||
|
@ -41,9 +47,94 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
|
||||
// 更新手动设置奖衔,一种有效期前的,一种有效期到达的
|
||||
// 有效期前的奖衔小于手动的,修改奖衔,
|
||||
Date date = DateUtils.parseStringToDate(settleDate);
|
||||
iCuMemberTreeService.updateCuMemberRetailRangeAwardByDate(rangeTableName, date);
|
||||
iCuMemberService.updateCuMemberRetailRangeAwardByDate(date);
|
||||
iCuMemberTreeService.updateCuMemberRetailRangeAwardByDate(rangeTableName, settleDate);
|
||||
iCuMemberService.updateCuMemberRetailRangeAwardByDate(settleDate);
|
||||
|
||||
// 会员升级记录
|
||||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||
// 校验大小区会员数据(key:会员ID,value:会员推荐人列表)
|
||||
Map<Long, List<CuMemberRetailRangeExt>> cuMemberRangeExtMap = new HashMap<>();
|
||||
|
||||
for (BdAwards bdAwards : awardsList) {
|
||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardMember(rangeTableName, bdAwards.getTotalCheck(), bdAwards.getPkId());
|
||||
cuMemberAwardsList.addAll(this.calculateAwards(rangeTableName, bdAwards, period, cuMemberRetailRangeExtList, cuMemberRangeExtMap));
|
||||
}
|
||||
if (cuMemberAwardsList.size() > 0) {
|
||||
// 插入会员升级记录表
|
||||
this.saveBatchCuMemberAwards(cuMemberAwardsList);
|
||||
// 更新会员表奖衔数据
|
||||
iCuMemberService.updateCuMemberAwardsByPeriod(period);
|
||||
// 更新结算网体表 -- 结算日期到当前日期的所有日结算表
|
||||
iCuMemberRetailRangeService.updateCuMemberAwardsByPeriod(rangeTableName, period);
|
||||
}
|
||||
}
|
||||
|
||||
private List<CuMemberAwards> calculateAwards(String rangeTableName, BdAwards bdAwards, Integer period,
|
||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList, Map<Long, List<CuMemberRetailRangeExt>> cuMemberRangeExtMap) {
|
||||
// 只满足业绩的
|
||||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||
|
||||
if (cuMemberRetailRangeExtList.size() > 0) {
|
||||
Date nowDate = new Date();
|
||||
|
||||
cuMemberRetailRangeExtList.forEach(targetMember -> {
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList = cuMemberRangeExtMap.get(targetMember.getPkMember());
|
||||
if (null == cuMemberRangeExtList) {
|
||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
|
||||
cuMemberRangeExtMap.put(targetMember.getPkMember(), cuMemberRangeExtList);
|
||||
}
|
||||
// 大区
|
||||
BigDecimal consumeBigPv = BigDecimal.ZERO;
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||
// 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩
|
||||
BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv());
|
||||
if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
|
||||
// 累计业绩 > 大区业绩,则累计就成为大区
|
||||
consumeBigPv = consumePv;
|
||||
}
|
||||
}
|
||||
// 小区业绩 = 团队累计业绩 - 大区业绩
|
||||
BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv);
|
||||
if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) {
|
||||
// 小区业绩 >= 考核小区业绩
|
||||
if (bdAwards.getPlaceDeptNum() > 0) {
|
||||
if (CollectionUtil.isNotEmpty(cuMemberRangeExtList)) {
|
||||
// 验证每条血缘下,满足达标数量
|
||||
List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(),
|
||||
cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList()));
|
||||
if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) {
|
||||
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
|
||||
targetMember.setPkAwards(bdAwards.getPkId());
|
||||
targetMember.setAwardsValue(bdAwards.getAwardsValue());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 不需要考核血缘达标,直接给奖衔
|
||||
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
|
||||
targetMember.setPkAwards(bdAwards.getPkId());
|
||||
targetMember.setAwardsValue(bdAwards.getAwardsValue());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return cuMemberAwardsList;
|
||||
}
|
||||
|
||||
private CuMemberAwards getCuMemberRetailAwards(CuMemberRetailRangeExt sourceRangeExt, Integer period, BdAwards bdAwards,
|
||||
Integer awardType, Integer oldLevel, Date nowDate) {
|
||||
CuMemberAwards cuMemberAwards = CuMemberAwards.builder()
|
||||
.pkMember(sourceRangeExt.getPkMember())
|
||||
.period(period)
|
||||
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
|
||||
.awardType(awardType)
|
||||
.oldLevel(null == oldLevel ? sourceRangeExt.getPkAwards() : oldLevel)
|
||||
.newLevel(bdAwards.getPkId())
|
||||
.purchaseStatus(EYesNo.NO.getIntValue())
|
||||
.build();
|
||||
cuMemberAwards.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
cuMemberAwards.setPkCountry(sourceRangeExt.getPkCountry());
|
||||
cuMemberAwards.setCreationTime(nowDate);
|
||||
return cuMemberAwards;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -64,28 +155,8 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
}
|
||||
|
||||
@Override
|
||||
public void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday) {
|
||||
public void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period) {
|
||||
baseMapper.mergeCuMemberBackAwards(rangeTableName, pkMember, period, EAwardsType.RANGE_TYPE.getValue());
|
||||
if (EYesNo.YES.getIntValue() == isToday) {
|
||||
// 当天,需要处理秒结的分红奖衔
|
||||
baseMapper.mergeCuMemberBackAwards(rangeTableName, pkMember, period, EAwardsType.SHARE_TYPE.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -943,6 +943,48 @@
|
|||
order by a.pk_parent, a.pay_time
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 更新会员血缘上累计数据 -->
|
||||
<update id="updateMemberParentDate">
|
||||
merge into ${rangeTableName} a
|
||||
using (
|
||||
select pk_member,
|
||||
sum(consume_pv) consume_pv,
|
||||
sum(consume_amount) consume_amount,
|
||||
sum(team_consume_pv) team_consume_pv,
|
||||
sum(team_consume_amount) team_consume_amount
|
||||
from (
|
||||
<foreach collection="achieveList" item="item" open=" " separator=" union all " close=" ">
|
||||
SELECT cmr.pk_member,
|
||||
DECODE(cmr.pk_member, #{item.pkMember}, #{item.newPv}, 0) AS consume_pv,
|
||||
DECODE(cmr.pk_member, #{item.pkMember}, #{item.newAmount}, 0) AS consume_amount,
|
||||
DECODE(cmr.pk_member, #{item.pkMember}, 0, #{item.newPv}) AS team_consume_pv,
|
||||
DECODE(cmr.pk_member, #{item.pkMember}, 0, #{item.newAmount}) AS team_consume_amount
|
||||
FROM ${rangeTableName} cmr
|
||||
START WITH cmr.pk_member = #{item.pkMember}
|
||||
CONNECT BY cmr.pk_member = PRIOR cmr.pk_parent
|
||||
</foreach>
|
||||
) tmp
|
||||
group by pk_member
|
||||
) b
|
||||
on (a.pk_member = b.pk_member)
|
||||
when matched then
|
||||
update set
|
||||
a.consume_pv = a.consume_pv + b.consume_pv,
|
||||
a.consume_amount = a.consume_amount + b.consume_amount,
|
||||
a.team_consume_pv = a.team_consume_pv + b.team_consume_pv,
|
||||
a.team_consume_amount = a.team_consume_amount + b.team_consume_amount
|
||||
</update>
|
||||
|
||||
<!-- 查询符合奖衔业绩条件会员 -->
|
||||
<select id="queryEnoughAwardMember" resultMap="CuMemberRetailRangeExt">
|
||||
select cmr.*
|
||||
from ${rangeTableName} cmr
|
||||
where cmr.category = 0
|
||||
and cmr.team_consume_pv >= #{totalCheck}
|
||||
and #{pkAwards} > cmr.pk_awards
|
||||
</select>
|
||||
|
||||
<!-- 查询会员血缘下达标奖衔会员 -->
|
||||
<select id="listChildAwards" resultType="int">
|
||||
<foreach collection="childMemberList" item="item" close=" " open=" " separator="union">
|
||||
|
@ -957,4 +999,23 @@
|
|||
</foreach>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 更新会员奖衔 -->
|
||||
<update id="updateCuMemberAwardsByPeriod">
|
||||
merge into ${rangeTableName} a
|
||||
using (
|
||||
select pk_member, max(new_level) pk_awards
|
||||
from cu_member_awards
|
||||
where period = #{period} and award_type = #{awardType}
|
||||
and del_flag = 0
|
||||
group by pk_member
|
||||
) b
|
||||
on (a.pk_member = b.pk_member)
|
||||
when matched then
|
||||
update set
|
||||
<if test="awardType == 1">
|
||||
a.pk_awards = b.pk_awards
|
||||
</if>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -77,14 +77,11 @@
|
|||
<result column="MALL_AMOUNT" property="mallAmount"/>
|
||||
<result column="MALL_PV" property="mallPv"/>
|
||||
<result column="MALL_NEW_PV" property="mallNewPv"/>
|
||||
<result column="MIN_ACHIEVE" property="minAchieve"/>
|
||||
<result column="REGISTER_Blo_NEW_PV" property="registerBloNewPv"/>
|
||||
<result column="UPGRADE_Blo_NEW_PV" property="upgradeBloNewPv"/>
|
||||
<result column="REPURCHASE_Blo_NEW_PV" property="repurchaseBloNewPv"/>
|
||||
<result column="HI_FUN_Blo_NEW_PV" property="hiFunBloNewPv"/>
|
||||
<result column="MALL_Blo_NEW_PV" property="mallBloNewPv"/>
|
||||
<result column="ROUND" property="round"/>
|
||||
<result column="SECOND" property="second"/>
|
||||
<result column="ASSESS_TYPE" property="assessType"/>
|
||||
<result column="PK_ORDER" property="pkOrder"/>
|
||||
<result column="LEVEL" property="level"/>
|
||||
|
@ -96,10 +93,7 @@
|
|||
<result column="PK_DATA_ID" property="pkDataId"/>
|
||||
<result column="directPushNumber" property="directPushNumber"/>
|
||||
<result column="historyPerformancePv" property="historyPerformancePv"/>
|
||||
<result column="STORE_LEVEL" property="storeLevel"/>
|
||||
<result column="IS_MAKER_GIFT" property="isMakerGift"/>
|
||||
<result column="EXPIRE_STATUS" property="expireStatus"/>
|
||||
<result column="IS_PAY_REG" property="isPayReg"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 会员网体月表数据,用于查询 网体跟业绩分开 横向分表-->
|
||||
|
@ -131,8 +125,6 @@
|
|||
is_bus_license NUMBER(1) default 1 not null,
|
||||
is_maker_space NUMBER(1) default 1 not null,
|
||||
pk_country number(4) default 1 not null,
|
||||
store_level NUMBER(2) default 0,
|
||||
is_maker_gift NUMBER(1) default 1,
|
||||
expire_status number(1) default 1
|
||||
</sql>
|
||||
|
||||
|
@ -194,10 +186,7 @@
|
|||
UPGRADE_Blo_NEW_PV NUMBER(17,6) default 0 not null,
|
||||
REPURCHASE_Blo_NEW_PV NUMBER(17,6) default 0 not null,
|
||||
HI_FUN_Blo_NEW_PV NUMBER(17,6) default 0 not null,
|
||||
MALL_Blo_NEW_PV NUMBER(17,6) default 0 not null,
|
||||
min_achieve number(17,6) default 0 not null,
|
||||
round NUMBER(6) default 0 not null,
|
||||
second NUMBER(4) default 1 not null
|
||||
MALL_Blo_NEW_PV NUMBER(17,6) default 0 not null
|
||||
</sql>
|
||||
|
||||
<sql id="memberParent">
|
||||
|
@ -206,7 +195,7 @@
|
|||
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
|
||||
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,
|
||||
repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_grade,
|
||||
min_achieve,round,second,bg.grade_value,store_level,expire_status from (
|
||||
bg.grade_value,expire_status from (
|
||||
<include refid="QueryMemberParent"></include>
|
||||
) a
|
||||
inner join bd_grade bg
|
||||
|
@ -265,7 +254,7 @@
|
|||
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
|
||||
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,
|
||||
repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_grade,
|
||||
min_achieve,round,second,store_level,expire_status
|
||||
expire_status
|
||||
from ${settleTableName}
|
||||
where pay_status = 1
|
||||
start with pk_member = #{item}
|
||||
|
@ -568,6 +557,11 @@
|
|||
truncate table ${tableName}
|
||||
</delete>
|
||||
|
||||
<!-- 清除表数据 -->
|
||||
<delete id="clearTable">
|
||||
delete from ${tableName}
|
||||
</delete>
|
||||
|
||||
<select id="queryExistOracleTable" resultType="java.lang.Integer">
|
||||
select 1
|
||||
from user_tables
|
||||
|
@ -584,8 +578,8 @@
|
|||
is_maker_space,purchase_status,share_status,bg.grade_value,pk_parent,is_maker_space,
|
||||
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
|
||||
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,c.pk_vertex,
|
||||
repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,min_achieve,round,second,c.register_authority,store_level,
|
||||
c.is_maker_gift,c.expire_status from ${settleTableName} c
|
||||
repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,c.register_authority,
|
||||
,c.expire_status from ${settleTableName} c
|
||||
left join bd_grade bg
|
||||
on c.pk_grade = bg.pk_id
|
||||
where pk_member in
|
||||
|
@ -604,7 +598,7 @@
|
|||
cl.is_maker_space,cl.purchase_status,cl.share_status,
|
||||
cl.a_balance,cl.b_balance,cl.r_a_balance,cl.r_b_balance,cl.rep_a_balance,cl.rep_b_balance,cl.r_rep_a_balance,cl.r_rep_b_balance,
|
||||
cl.register_amount,cl.register_pv,cl.upgrade_amount,cl.upgrade_pv,cl.repurchase_amount,cl.pk_center_code,cl.register_authority,
|
||||
cl.repurchase_pv,cl.hi_fun_amount,cl.hi_fun_pv,cl.mall_amount,cl.mall_pv,cl.min_achieve,cl.round,cl.second from ${settleTableName} ct
|
||||
cl.repurchase_pv,cl.hi_fun_amount,cl.hi_fun_pv,cl.mall_amount,cl.mall_pv from ${settleTableName} ct
|
||||
inner join ${settleTableName} cl
|
||||
on ct.pk_parent = cl.pk_member
|
||||
where ct.pk_member in
|
||||
|
@ -616,12 +610,11 @@
|
|||
is_maker_space,purchase_status,share_status,
|
||||
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
|
||||
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,register_authority,
|
||||
repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,min_achieve,round,second from ${settleTableName}
|
||||
repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv from ${settleTableName}
|
||||
where pk_member in
|
||||
<foreach collection="memberPkList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -85,7 +85,8 @@
|
|||
<result column="TEAM_NAME" property="teamName"/>
|
||||
</resultMap>
|
||||
|
||||
<update id="updateCuMemberRetailAwardsByPeriod">
|
||||
<!-- 更新会员奖衔 -->
|
||||
<update id="updateCuMemberAwardsByPeriod">
|
||||
merge into cu_member a
|
||||
using (
|
||||
select pk_member, max(new_level) pk_awards
|
||||
|
@ -100,9 +101,6 @@
|
|||
<if test="awardType == 1">
|
||||
a.pk_awards = b.pk_awards,
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
a.pk_range_awards = b.pk_awards,
|
||||
</if>
|
||||
a.modified_time = sysdate
|
||||
</update>
|
||||
|
||||
|
|
|
@ -23,22 +23,6 @@
|
|||
<result column="AWARD_TYPE" property="awardType"/>
|
||||
</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, award_type, pk_creator, pk_country, system_type
|
||||
)
|
||||
values (
|
||||
#{item.pkMember}, #{item.period}, #{item.upType}, #{item.oldLevel}, #{item.newLevel},
|
||||
#{item.purchaseStatus}, #{item.awardType}, #{item.pkCreator}, #{item.pkCountry}, #{item.systemType}
|
||||
)
|
||||
</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
|
||||
|
@ -61,6 +45,62 @@
|
|||
update set a.assess_target = b.assess_target,a.assess_status = b.assess_status
|
||||
</update>
|
||||
|
||||
<!-- 批量插入奖衔记录 -->
|
||||
<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, award_type, pk_creator, pk_country
|
||||
)
|
||||
values (
|
||||
#{item.pkMember}, #{item.period}, #{item.upType}, #{item.oldLevel}, #{item.newLevel},
|
||||
#{item.purchaseStatus}, #{item.awardType}, #{item.pkCreator}, #{item.pkCountry}
|
||||
)
|
||||
</foreach>
|
||||
SELECT 1 FROM dual
|
||||
</insert>
|
||||
|
||||
<!-- 删除自动升级的奖衔升级记录 -->
|
||||
<delete id="deleteCuMemberAwards">
|
||||
update cu_member_awards cma
|
||||
set cma.del_flag = 1,
|
||||
cma.modified_time = sysdate
|
||||
where period = #{period}
|
||||
and up_type = 1
|
||||
and cma.del_flag = 0
|
||||
</delete>
|
||||
|
||||
<!-- 删除升级的奖衔 -->
|
||||
<delete id="deleteCuMemberAwardsByList">
|
||||
update cu_member_awards cma
|
||||
set cma.del_flag = 1,
|
||||
cma.modified_time = sysdate
|
||||
where period = #{period} and del_flag = 0 and up_type = 1
|
||||
and pk_id in
|
||||
<foreach collection="cuMemberAwards" item="item" open="(" close=")" separator=",">
|
||||
#{item.pkId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<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>
|
||||
|
||||
<update id="mergeCuMemberBackAwards">
|
||||
merge into ${rangeTableName} a
|
||||
using (
|
||||
|
@ -90,59 +130,8 @@
|
|||
<if test="awardType == 1">
|
||||
a.pk_awards = b.old_level
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
a.pk_share_awards = b.old_level
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<!-- 删除自动升级的奖衔升级记录 -->
|
||||
<delete id="deleteCuMemberAwards">
|
||||
update cu_member_awards cma
|
||||
set cma.del_flag = 1,
|
||||
cma.modified_time = sysdate
|
||||
where period = #{period}
|
||||
and up_type = 1
|
||||
and cma.del_flag = 0
|
||||
</delete>
|
||||
|
||||
<!-- 删除升级的奖衔 -->
|
||||
<delete id="deleteCuMemberAwardsByList">
|
||||
update cu_member_awards cma
|
||||
set cma.del_flag = 1,
|
||||
cma.modified_time = sysdate
|
||||
where period = #{period} and del_flag = 0 and up_type = 1
|
||||
and pk_id in
|
||||
<foreach collection="cuMemberAwards" item="item" open="(" close=")" separator=",">
|
||||
#{item.pkId}
|
||||
</foreach>
|
||||
|
||||
<!--
|
||||
delete from cu_member_awards where period = #{period} and del_flag = 0 and up_type = 1
|
||||
and pk_id in
|
||||
<foreach collection="cuMemberAwards" item="item" open="(" close=")" separator=",">
|
||||
#{item.pkId}
|
||||
</foreach>
|
||||
-->
|
||||
</delete>
|
||||
|
||||
<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="queryCuMemberAwards" resultType="com.hzs.common.domain.member.detail.CuMemberAwards">
|
||||
select ca.*
|
||||
from cu_member_awards ca
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
package com.hzs.system.bonus.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.bonus.BdBonusService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-11-01
|
||||
*/
|
||||
public interface BdBonusServiceMapper extends BaseMapper<BdBonusService> {
|
||||
|
||||
|
|
|
@ -1,18 +1,10 @@
|
|||
package com.hzs.system.bonus.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.bonus.BdBonusService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-11-01
|
||||
*/
|
||||
public interface IBdBonusServiceService extends IService<BdBonusService> {
|
||||
|
||||
|
@ -21,11 +13,4 @@ public interface IBdBonusServiceService extends IService<BdBonusService> {
|
|||
*/
|
||||
BdBonusService getBonusServiceById(Integer pkId);
|
||||
|
||||
/**
|
||||
* 查询所有国家的报单服务费
|
||||
* @return: List<BdBonusService>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/21 16:05
|
||||
*/
|
||||
List<BdBonusService> queryBonusService();
|
||||
}
|
||||
|
|
|
@ -1,26 +1,16 @@
|
|||
package com.hzs.system.bonus.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.domain.bonus.BdBonusService;
|
||||
import com.hzs.common.domain.sale.product.BdAreaClassify;
|
||||
import com.hzs.system.bonus.mapper.BdBonusServiceMapper;
|
||||
import com.hzs.system.bonus.service.IBdBonusServiceService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-11-01
|
||||
*/
|
||||
@Service
|
||||
public class BdBonusServiceServiceImpl extends ServiceImpl<BdBonusServiceMapper, BdBonusService> implements IBdBonusServiceService {
|
||||
|
@ -28,9 +18,6 @@ public class BdBonusServiceServiceImpl extends ServiceImpl<BdBonusServiceMapper,
|
|||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
/**
|
||||
* 根据id 查询服务补贴
|
||||
*/
|
||||
@Override
|
||||
public BdBonusService getBonusServiceById(Integer pkId) {
|
||||
String redisKey = CacheConstants.BD_BONUS_SERVICE + pkId;
|
||||
|
@ -44,10 +31,4 @@ public class BdBonusServiceServiceImpl extends ServiceImpl<BdBonusServiceMapper,
|
|||
return bonusService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdBonusService> queryBonusService() {
|
||||
QueryWrapper<BdBonusService> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("PK_ID,SERVICE_TYPE,SERVICE_RADIO,ASSESSMENT_TYPE,PK_COUNTRY");
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
package com.hzs.system.config.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.system.config.BdBonusDifference;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 一次性补差升级配置 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-11-02
|
||||
*/
|
||||
public interface BdBonusDifferenceMapper extends BaseMapper<BdBonusDifference> {
|
||||
|
||||
|
|
|
@ -1,27 +1,11 @@
|
|||
package com.hzs.system.config.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.system.config.BdBonusDirectLoop;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusDirectLoopExt;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 直推循环配置 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-11-03
|
||||
*/
|
||||
public interface BdBonusDirectLoopMapper extends BaseMapper<BdBonusDirectLoop> {
|
||||
|
||||
/**
|
||||
* 查询奖金推荐明细
|
||||
* @return: List<BdBonusDirectLoopExt>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/17 17:34
|
||||
*/
|
||||
List<BdBonusDirectLoopExt> queryBonusDirectLoop();
|
||||
}
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
package com.hzs.system.config.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 复购直推配置 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-06-29
|
||||
*/
|
||||
public interface BdRepoDirectPushMapper extends BaseMapper<BdRepoDirectPush> {
|
||||
|
||||
|
|
|
@ -2,19 +2,15 @@ package com.hzs.system.config.provider;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.ERangeType;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.domain.bonus.BdBonusDeduct;
|
||||
import com.hzs.common.domain.bonus.BdBonusService;
|
||||
import com.hzs.common.domain.system.base.BdCountry;
|
||||
import com.hzs.common.domain.system.base.BdCurrency;
|
||||
import com.hzs.common.domain.system.config.*;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusDirectLoopExt;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
||||
import com.hzs.system.base.service.IBdCountryService;
|
||||
import com.hzs.system.base.service.IBdCurrencyService;
|
||||
import com.hzs.system.bonus.service.IBdBonusDeductService;
|
||||
import com.hzs.system.bonus.service.IBdBonusServiceService;
|
||||
import com.hzs.system.config.IBonusItemsServiceApi;
|
||||
import com.hzs.system.config.dto.*;
|
||||
import com.hzs.system.config.service.*;
|
||||
|
@ -32,37 +28,17 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
|
||||
@Autowired
|
||||
private IBdBonusItemsService bonusItemsService;
|
||||
|
||||
@Autowired
|
||||
private IBdBonusDirectLoopService bdBonusDirectLoopService;
|
||||
|
||||
@Autowired
|
||||
private IBdBonusDirectService bdBonusDirectService;
|
||||
|
||||
@Autowired
|
||||
private IBdBonusDifferenceService bdBonusDifferenceService;
|
||||
|
||||
@Autowired
|
||||
private IBdGradeService gradeService;
|
||||
|
||||
@Autowired
|
||||
private IBdAwardsService awardsService;
|
||||
|
||||
private IBdAwardsService iBdAwardsService;
|
||||
@Autowired
|
||||
private IBdBonusDeductService bdBonusDeductService;
|
||||
|
||||
@Autowired
|
||||
private IBdBonusServiceService bdBonusServiceService;
|
||||
|
||||
@Autowired
|
||||
private IBdCurrencyService bdCurrencyService;
|
||||
|
||||
@Autowired
|
||||
private IBdCountryService bdCountryService;
|
||||
|
||||
@Autowired
|
||||
private IBdRepoDirectPushService bdRepoDirectPushService;
|
||||
|
||||
@Override
|
||||
public R<List<BdBonusItemsExt>> queryBonusItems(Integer pkCountry) {
|
||||
return R.ok(bonusItemsService.queryBonusItems(pkCountry));
|
||||
|
@ -90,26 +66,12 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
countrySet.add(bdCountry.getPkId()));
|
||||
bonusConfigDTO.setBonusItemsExtMap(getBdBonusItemsExtMap(countrySet));
|
||||
// 根据奖金项验证参数,没有配置参数的,需要提醒
|
||||
// 查询循环配置参数
|
||||
bonusConfigDTO.setBonusDirectLoopDtoMap(getBonusLoopConfig());
|
||||
// 查询直推奖励配置
|
||||
bonusConfigDTO.setBonusDirectDtoMap(getBonusDirectConfig());
|
||||
// 一次性补差
|
||||
bonusConfigDTO.setBonusDifferenceDtoMap(getBonusDifferenceConfig());
|
||||
// 复购直推配置
|
||||
bonusConfigDTO.setBonusRepurchasePushMap(getRepurchasePushMap());
|
||||
// 拓展奖跟辅导奖需要查询所有国家的配置
|
||||
// 拓展奖配置
|
||||
bonusConfigDTO.setGradeMap(getBonusExpandGradeConfig());
|
||||
// 辅导奖配置
|
||||
Map<String, BdAwards> awardsValueMap = new HashMap<>();
|
||||
bonusConfigDTO.setAwardsMap(getBonusCoachConfig(awardsValueMap));
|
||||
bonusConfigDTO.setAwardsValueMap(awardsValueMap);
|
||||
bonusConfigDTO.setAwardsList(awardsService.queryRetailAwards());
|
||||
// 奖金扣项
|
||||
bonusConfigDTO.setBonusDeductsMap(getBonusDeductConfig());
|
||||
// 报单服务费
|
||||
bonusConfigDTO.setBonusServiceMap(getBonusServiceConfig());
|
||||
// 奖衔列表
|
||||
bonusConfigDTO.setAwardsList(iBdAwardsService.queryAwards());
|
||||
return R.ok(bonusConfigDTO);
|
||||
}
|
||||
|
||||
|
@ -133,39 +95,6 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
return bonusItemsMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 复购直推奖励
|
||||
*/
|
||||
private Map<Integer, Map<Integer, BonusRepurchasePushDTO>> getRepurchasePushMap() {
|
||||
List<BdRepoDirectPush> bdRepoDirectPushList = bdRepoDirectPushService.queryRepoDirectPush();
|
||||
Map<Integer, Map<Integer, BonusRepurchasePushDTO>> repurchasePushMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdRepoDirectPushList.size()));
|
||||
bdRepoDirectPushList.forEach(bdRepoDirectPush -> {
|
||||
BonusRepurchasePushDTO bonusRepurchasePushDTO = BeanUtil.copyProperties(bdRepoDirectPush, BonusRepurchasePushDTO.class);
|
||||
if (repurchasePushMap.containsKey(bonusRepurchasePushDTO.getPkCountry())) {
|
||||
repurchasePushMap.get(bonusRepurchasePushDTO.getPkCountry()).put(bonusRepurchasePushDTO.getAlgebra(), bonusRepurchasePushDTO);
|
||||
} else {
|
||||
Map<Integer, BonusRepurchasePushDTO> map = new HashMap<>();
|
||||
map.put(bonusRepurchasePushDTO.getAlgebra(), bonusRepurchasePushDTO);
|
||||
repurchasePushMap.put(bonusRepurchasePushDTO.getPkCountry(), map);
|
||||
}
|
||||
});
|
||||
return repurchasePushMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得奖金循环配置的参数
|
||||
*/
|
||||
private Map<String, BonusDirectLoopDTO> getBonusLoopConfig() {
|
||||
List<BdBonusDirectLoopExt> bonusDirectLoopList = bdBonusDirectLoopService.queryBonusDirectLoop();
|
||||
Map<String, BonusDirectLoopDTO> bonusDirectLoopDtoMap = new HashMap<>(4);
|
||||
bonusDirectLoopList.forEach(bdBonusDirectLoop -> {
|
||||
BonusDirectLoopDTO bonusDirectLoopDTO = BeanUtil.copyProperties(bdBonusDirectLoop, BonusDirectLoopDTO.class);
|
||||
bonusDirectLoopDtoMap.put(bonusDirectLoopDTO.getPkCountry().toString() + bonusDirectLoopDTO.getBonusType()
|
||||
+ bonusDirectLoopDTO.getPkGrade(), bonusDirectLoopDTO);
|
||||
});
|
||||
return bonusDirectLoopDtoMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得奖金 推荐什么等级 直推奖励配置
|
||||
*/
|
||||
|
@ -179,43 +108,6 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
return directDtoHashMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得奖金 推荐什么等级 直推奖励配置
|
||||
*/
|
||||
private Map<Integer, BonusDifferenceDTO> getBonusDifferenceConfig() {
|
||||
List<BdBonusDifference> bdBonusDifferenceList = bdBonusDifferenceService.queryBonusDifference();
|
||||
Map<Integer, BonusDifferenceDTO> bonusDifferenceDtoMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDifferenceList.size()));
|
||||
bdBonusDifferenceList.forEach(bonusDirectDTO -> {
|
||||
BonusDifferenceDTO bonusDifferenceDTO = BeanUtil.copyProperties(bonusDirectDTO, BonusDifferenceDTO.class);
|
||||
bonusDifferenceDtoMap.put(bonusDifferenceDTO.getPkCountry(), bonusDifferenceDTO);
|
||||
});
|
||||
return bonusDifferenceDtoMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取等级对应的拓展奖对应参数
|
||||
*/
|
||||
private Map<String, BdGrade> getBonusExpandGradeConfig() {
|
||||
List<BdGrade> bdGradeList = gradeService.queryBdGrade();
|
||||
Map<String, BdGrade> bdGradeMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdGradeList.size()));
|
||||
bdGradeList.forEach(bdGrade ->
|
||||
bdGradeMap.put(bdGrade.getPkCountry().toString() + "_" + bdGrade.getPkId(), bdGrade));
|
||||
return bdGradeMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取奖衔对应的辅导奖对应参数
|
||||
*/
|
||||
private Map<String, BdAwards> getBonusCoachConfig(Map<String, BdAwards> awardsValueMap) {
|
||||
List<BdAwards> bdAwardsList = awardsService.queryAwards();
|
||||
Map<String, BdAwards> bdAwardsMap = new LinkedHashMap<>(ComputeUtil.mapInitCapacity(bdAwardsList.size()));
|
||||
bdAwardsList.forEach(bdAwards -> {
|
||||
bdAwardsMap.put(bdAwards.getPkCountry().toString() + ERangeType.AWARDS.getValue() + bdAwards.getPkId(), bdAwards);
|
||||
awardsValueMap.put(bdAwards.getPkCountry().toString() + ERangeType.AWARDS.getValue() + bdAwards.getAwardsValue(), bdAwards);
|
||||
});
|
||||
return bdAwardsMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取每个国家奖金项对应的扣项
|
||||
*/
|
||||
|
@ -227,15 +119,4 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
return bdBonusDeductMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取每个国家奖金项对应的扣项
|
||||
*/
|
||||
private Map<String, BdBonusService> getBonusServiceConfig() {
|
||||
List<BdBonusService> bdBonusServiceList = bdBonusServiceService.queryBonusService();
|
||||
Map<String, BdBonusService> bdBonusDeductMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusServiceList.size()));
|
||||
bdBonusServiceList.forEach(bdBonusService ->
|
||||
bdBonusDeductMap.put(bdBonusService.getPkCountry().toString() + bdBonusService.getServiceType(), bdBonusService));
|
||||
return bdBonusDeductMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -55,11 +55,6 @@ public interface IBdAwardsService extends IService<BdAwards> {
|
|||
*/
|
||||
List<BdAwards> queryAwards();
|
||||
|
||||
/*
|
||||
* 查询新零售奖衔
|
||||
**/
|
||||
List<BdAwards> queryRetailAwards();
|
||||
|
||||
/**
|
||||
* 查询等级或奖衔是否被使用
|
||||
**/
|
||||
|
|
|
@ -1,26 +1,11 @@
|
|||
package com.hzs.system.config.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.system.config.BdBonusDifference;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 一次性补差升级配置 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-11-02
|
||||
*/
|
||||
public interface IBdBonusDifferenceService extends IService<BdBonusDifference> {
|
||||
|
||||
/**
|
||||
* 查询固定升级降级,用于海外累计升级
|
||||
* @return: List<BdBonusDifference>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/21 11:09
|
||||
*/
|
||||
List<BdBonusDifference> queryBonusDifference();
|
||||
}
|
||||
|
|
|
@ -1,39 +1,18 @@
|
|||
package com.hzs.system.config.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.system.config.BdBonusDirectLoop;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusDirectLoopExt;
|
||||
import com.hzs.system.config.vo.BdBonusDirectVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 直推循环配置 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-11-03
|
||||
*/
|
||||
public interface IBdBonusDirectLoopService extends IService<BdBonusDirectLoop> {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 新增直推奖励循环配置、直推奖励配置、嗨粉直推配置奖励、一次性补差升级配置
|
||||
* @author: zhang jing
|
||||
* @date: 2022/11/4 10:46
|
||||
* @param: [bonusDirectVo]
|
||||
* @return: boolean
|
||||
**/
|
||||
boolean saveBonusDirectVo(BdBonusDirectVo bonusDirectVo, Integer pkCountry, String addAttribute);
|
||||
|
||||
/**
|
||||
* 查询奖金推荐明细
|
||||
* @return: List<BdBonusDirectLoopExt>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/17 17:34
|
||||
*/
|
||||
List<BdBonusDirectLoopExt> queryBonusDirectLoop();
|
||||
}
|
||||
|
|
|
@ -1,26 +1,11 @@
|
|||
package com.hzs.system.config.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 复购直推配置 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-06-29
|
||||
*/
|
||||
public interface IBdRepoDirectPushService extends IService<BdRepoDirectPush> {
|
||||
|
||||
/*
|
||||
* @description: 查询复购直推配置的参数
|
||||
* @author: sui q
|
||||
* @date: 2023/6/29 15:21
|
||||
* @param: null null
|
||||
**/
|
||||
List<BdRepoDirectPush> queryRepoDirectPush();
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ import org.apache.dubbo.config.annotation.DubboReference;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -110,14 +109,7 @@ public class BdAwardsServiceImpl extends ServiceImpl<BdAwardsMapper, BdAwards> i
|
|||
@Override
|
||||
public List<BdAwards> queryAwards() {
|
||||
LambdaQueryWrapper<BdAwards> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdAwards::getSystemType, 0);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdAwards> queryRetailAwards() {
|
||||
LambdaQueryWrapper<BdAwards> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdAwards::getSystemType, 2);
|
||||
queryWrapper.orderByAsc(BdAwards::getAwardsValue);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,27 +1,15 @@
|
|||
package com.hzs.system.config.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.domain.system.config.BdBonusDifference;
|
||||
import com.hzs.system.config.mapper.BdBonusDifferenceMapper;
|
||||
import com.hzs.system.config.service.IBdBonusDifferenceService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 一次性补差升级配置 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-11-02
|
||||
*/
|
||||
@Service
|
||||
public class BdBonusDifferenceServiceImpl extends ServiceImpl<BdBonusDifferenceMapper, BdBonusDifference> implements IBdBonusDifferenceService {
|
||||
|
||||
@Override
|
||||
public List<BdBonusDifference> queryBonusDifference() {
|
||||
return baseMapper.selectList(new QueryWrapper<>());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package com.hzs.system.config.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.enums.EDelFlag;
|
||||
|
@ -9,7 +7,6 @@ import com.hzs.common.core.enums.ERangeType;
|
|||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.domain.system.config.*;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusDirectLoopExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.system.config.mapper.BdBonusDirectLoopMapper;
|
||||
import com.hzs.system.config.service.*;
|
||||
import com.hzs.system.config.vo.BdBonusDirectVo;
|
||||
|
@ -18,16 +15,9 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 直推循环配置 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-11-03
|
||||
*/
|
||||
@Service
|
||||
public class BdBonusDirectLoopServiceImpl extends ServiceImpl<BdBonusDirectLoopMapper, BdBonusDirectLoop> implements IBdBonusDirectLoopService {
|
||||
|
@ -43,14 +33,6 @@ public class BdBonusDirectLoopServiceImpl extends ServiceImpl<BdBonusDirectLoopM
|
|||
@Autowired
|
||||
private IBdRepoDirectPushService iBdRepoDirectPushService;
|
||||
|
||||
|
||||
/**
|
||||
* @description: 新增直推奖励循环配置、直推奖励配置、嗨粉直推配置奖励、一次性补差升级配置
|
||||
* @author: zhang jing
|
||||
* @date: 2022/11/3 19:17
|
||||
* @param: [bonusDirectLoopExtsList]
|
||||
* @return: boolean
|
||||
**/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean saveBonusDirectVo(BdBonusDirectVo bonusDirectVo, Integer pkCountry, String addAttribute) {
|
||||
|
@ -156,8 +138,4 @@ public class BdBonusDirectLoopServiceImpl extends ServiceImpl<BdBonusDirectLoopM
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdBonusDirectLoopExt> queryBonusDirectLoop() {
|
||||
return baseMapper.queryBonusDirectLoop();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,29 +1,15 @@
|
|||
package com.hzs.system.config.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
||||
import com.hzs.system.config.mapper.BdRepoDirectPushMapper;
|
||||
import com.hzs.system.config.service.IBdRepoDirectPushService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 复购直推配置 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-06-29
|
||||
*/
|
||||
@Service
|
||||
public class BdRepoDirectPushServiceImpl extends ServiceImpl<BdRepoDirectPushMapper, BdRepoDirectPush> implements IBdRepoDirectPushService {
|
||||
|
||||
@Override
|
||||
public List<BdRepoDirectPush> queryRepoDirectPush() {
|
||||
QueryWrapper<BdRepoDirectPush> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("algebra,cal_type,push_value,pk_country");
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,31 +2,5 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.system.config.mapper.BdBonusDirectLoopMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BdBonusDirectLoopExt" type="com.hzs.common.domain.system.config.ext.BdBonusDirectLoopExt">
|
||||
<id column="PK_ID" property="pkId" />
|
||||
<result column="DEL_FLAG" property="delFlag" />
|
||||
<result column="PK_COUNTRY" property="pkCountry" />
|
||||
<result column="CREATION_TIME" property="creationTime" />
|
||||
<result column="MODIFIED_TIME" property="modifiedTime" />
|
||||
<result column="PK_CREATOR" property="pkCreator" />
|
||||
<result column="PK_MODIFIED" property="pkModified" />
|
||||
<result column="BONUS_TYPE" property="bonusType" />
|
||||
<result column="FIRST_ORDER" property="firstOrder" />
|
||||
<result column="SECOND_ORDER" property="secondOrder" />
|
||||
<result column="THIRD_ORDER" property="thirdOrder" />
|
||||
<result column="FOURTH_ORDER" property="fourthOrder" />
|
||||
<result column="PK_GRADE" property="pkGrade" />
|
||||
<result column="TAKE_VALUE_TYPE" property="takeValueType" />
|
||||
</resultMap>
|
||||
|
||||
<select id="queryBonusDirectLoop" resultMap="BdBonusDirectLoopExt">
|
||||
select bl.pk_id,bonus_type,first_order,second_order,third_order,fourth_order,bl.pk_country,
|
||||
cal_type,bd.pk_grade from bd_bonus_direct_loop bl
|
||||
inner join BD_LOOP_DETAILS bd
|
||||
on bl.pk_id = bd.pk_bonus_direct
|
||||
where bl.del_flag=0 and bd.del_flag=0
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -7,11 +7,7 @@ import lombok.EqualsAndHashCode;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description: 日结算表,表内存储网体关系、会员业绩
|
||||
* @Author: sui q
|
||||
* @Time: 2022/10/31 14:22
|
||||
* @Classname: CuMemberTreeExt
|
||||
* @PackageName: com.hzs.common.domain.member.ext
|
||||
* 日结算表,表内存储网体关系、会员业绩
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
|
@ -300,21 +296,6 @@ public class CuMemberSettleExt extends CuMemberTree {
|
|||
*/
|
||||
private BigDecimal mallBloNewPv;
|
||||
|
||||
/**
|
||||
* 循环中最小业绩
|
||||
*/
|
||||
private BigDecimal minAchieve;
|
||||
|
||||
/**
|
||||
* 轮
|
||||
*/
|
||||
private Integer round;
|
||||
|
||||
/**
|
||||
* 次
|
||||
*/
|
||||
private Integer second;
|
||||
|
||||
/**
|
||||
* 考核类型,不入库,只用来区分复购考核跟分红考核
|
||||
*/
|
||||
|
@ -363,30 +344,11 @@ public class CuMemberSettleExt extends CuMemberTree {
|
|||
*/
|
||||
private BigDecimal historyPerformancePv;
|
||||
|
||||
/**
|
||||
* 店铺等级
|
||||
*/
|
||||
private Integer storeLevel;
|
||||
|
||||
/**
|
||||
* 购买创客礼包
|
||||
*/
|
||||
private Integer isMakerGift;
|
||||
/**
|
||||
* 有效状态(1=有效期,2=休止期,3=已终止)
|
||||
*/
|
||||
private Integer expireStatus;
|
||||
|
||||
/**
|
||||
* 是否买过注册
|
||||
*/
|
||||
private Integer isPayReg;
|
||||
|
||||
/**
|
||||
* 福利比例
|
||||
*/
|
||||
private BigDecimal abonusRatio;
|
||||
|
||||
/**
|
||||
* 实发收益总计
|
||||
*/
|
||||
|
|
|
@ -12,12 +12,7 @@ import lombok.experimental.Accessors;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 直推循环配置
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-11-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
@ -77,5 +72,4 @@ public class BdBonusDirectLoop extends BaseEntity {
|
|||
private Integer takeValueType;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -12,12 +12,7 @@ import lombok.experimental.Accessors;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 复购直推配置
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-06-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
@ -2,15 +2,11 @@ package com.hzs.common.domain.system.config.ext;
|
|||
|
||||
import com.hzs.common.domain.system.config.*;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 直推循环配置
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-11-03
|
||||
*/
|
||||
@Data
|
||||
public class BdBonusDirectLoopExt extends BdBonusDirectLoop {
|
||||
|
|
Loading…
Reference in New Issue