## 复购辅导收益;奖金明细、奖金汇总添加新字段;

This commit is contained in:
cabbage 2025-04-19 15:18:05 +08:00
parent fd310590bf
commit bb6eb8bf5f
30 changed files with 408 additions and 442 deletions

View File

@ -355,12 +355,10 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
*
* @param settleTableName 结算表
* @param period
* @param yesterdayPeriod
* @param firPurchaseOrderList 首单列表
*/
List<CuMemberSettleExt> batchQueryCuMemberSettlePlaceParent(@Param("settleTableName") String settleTableName,
@Param("period") Integer period,
@Param("yesterdayPeriod") Integer yesterdayPeriod,
@Param("firPurchaseOrderList") List<?> firPurchaseOrderList);
/**

View File

@ -284,7 +284,7 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
* @param period
* @param firPurchaseOrderList 首单列表
*/
Map<Long, List<CuMemberSettleExt>> batchQueryCuMemberSettlePlaceParent(String settleTableName, Integer period, Integer yesterdayPeriod, List<SaOrderExt> firPurchaseOrderList);
Map<Long, List<CuMemberSettleExt>> batchQueryCuMemberSettlePlaceParent(String settleTableName, Integer period, List<SaOrderExt> firPurchaseOrderList);
/**
* 批量根据量奖信息查询会员结算表中的父级血缘数据

View File

@ -382,12 +382,12 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
}
@Override
public Map<Long, List<CuMemberSettleExt>> batchQueryCuMemberSettlePlaceParent(String settleTableName, Integer period, Integer yesterdayPeriod, List<SaOrderExt> firPurchaseOrderList) {
public Map<Long, List<CuMemberSettleExt>> batchQueryCuMemberSettlePlaceParent(String settleTableName, Integer period, List<SaOrderExt> firPurchaseOrderList) {
// 查询出所有父级安置人
List<CuMemberSettleExt> cuMemberSettleExtList = new ArrayList<>();
List<List<?>> listList = cuMemberBonusSettle.handleCutList(firPurchaseOrderList, MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
listList.forEach(list ->
cuMemberSettleExtList.addAll(baseMapper.batchQueryCuMemberSettlePlaceParent(settleTableName, period, yesterdayPeriod, list)));
cuMemberSettleExtList.addAll(baseMapper.batchQueryCuMemberSettlePlaceParent(settleTableName, period, list)));
// key订单IDvalue订单向上找安置人列表
Map<Long, List<CuMemberSettleExt>> memberSettleMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size()));
cuMemberSettleExtList.forEach(cuMemberSettleExt -> {

View File

@ -38,12 +38,8 @@ import java.util.List;
@Slf4j
public class ApiCuMemberBonusController extends BaseController {
private ICuMemberBonusService cuMemberBonusService;
@Autowired
public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) {
this.cuMemberBonusService = cuMemberBonusService;
}
private ICuMemberBonusService cuMemberBonusService;
// /**
// * 查询会员某个时间段内的奖金默认查询15天内,查询直推
@ -115,7 +111,8 @@ public class ApiCuMemberBonusController extends BaseController {
memberBonusFirstPurchaseVO.setServiceSpend(cuMemberBonus.getServiceSpend());
// 拓展收益 = 首购拓展 + 复购拓展 + 复购推荐
memberBonusFirstPurchaseVO.setExpandIncome(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getExpandIncome(), memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome()));
memberBonusFirstPurchaseVO.setExpandIncome(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getExpandIncome(),
memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome()));
// 首购实发小计 = 首购实发小计 + 复购实发小计
memberBonusFirstPurchaseVO.setPurRealSubtotal(ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal()));
@ -178,7 +175,8 @@ public class ApiCuMemberBonusController extends BaseController {
memberBonusVO.setSettleDate(DateUtils.currentDate());
BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(cuMemberBonus.getDirectIncome(), cuMemberBonus.getExpandIncome(),
cuMemberBonus.getCoachIncome(), cuMemberBonus.getServiceIncome(), cuMemberBonus.getShareIncome(),
cuMemberBonus.getRepurExpandIncome(), cuMemberBonus.getRepurRangeIncome(), cuMemberBonus.getRepurPushIncome()),
cuMemberBonus.getRepurExpandIncome(), cuMemberBonus.getRepurCoachIncome(), cuMemberBonus.getRepurRangeIncome(),
cuMemberBonus.getRepurPushIncome()),
ComputeUtil.computeAdd(cuMemberBonus.getPurRealSubtotal(), cuMemberBonus.getRepurRealSubtotal()));
memberBonusVO.setBackPoints(ComputeUtil.computeMultiplyHalf(serviceSpend));
memberBonusVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend));

View File

@ -49,36 +49,26 @@ import java.util.stream.Collectors;
@RequestMapping("/manage/bonus")
public class CuMemberBonusController extends BaseController {
private ICuMemberBonusService cuMemberBonusService;
private ITransactionCommonService transactionCommonService;
@Autowired
private ICuMemberBonusService iCuMemberBonusService;
@Autowired
private ITransactionCommonService iTransactionCommonService;
@DubboReference
private IUserServiceApi userServiceApi;
IUserServiceApi userServiceApi;
@DubboReference
private IMenuColumnServiceApi menuColumnServiceApi;
@Autowired
public void setTransactionCommonService(ITransactionCommonService transactionCommonService) {
this.transactionCommonService = transactionCommonService;
}
@Autowired
public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) {
this.cuMemberBonusService = cuMemberBonusService;
}
IMenuColumnServiceApi menuColumnServiceApi;
/**
* 分页查询会员某个时间段内的奖金汇总
*/
@AccessPermissions("totalBonus")
@PostMapping("/query-bonus-total")
@Log(module = EOperationModule.BONUS_TOTAL,business = EOperationBusiness.BONUS_TOTAL , method = EOperationMethod.SELECT)
@Log(module = EOperationModule.BONUS_TOTAL, business = EOperationBusiness.BONUS_TOTAL, method = EOperationMethod.SELECT)
@ColumnAuthority(perms = "totalBonus")
public TableDataInfo listBonusTotal(@RequestBody BonusParam bonusParam){
List<Integer> pkVertex=new ArrayList<>();
if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
public TableDataInfo listBonusTotal(@RequestBody BonusParam bonusParam) {
List<Integer> pkVertex = new ArrayList<>();
if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
.map(Integer::parseInt)
.collect(Collectors.toList());
@ -87,7 +77,7 @@ public class CuMemberBonusController extends BaseController {
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
packageBonusParam(bonusParam);
startPage();
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam);
TableDataInfo dataTable = getDataTable(cuMemberBonusList);
dataTable.setRows(getBonusTotalVoS(cuMemberBonusList));
return dataTable;
@ -97,10 +87,10 @@ public class CuMemberBonusController extends BaseController {
* 分页查询会员某个时间段内的奖金汇总
*/
@PostMapping("/export-bonus-total")
@Log(module = EOperationModule.BONUS_TOTAL,business = EOperationBusiness.BONUS_TOTAL , method = EOperationMethod.EXPORT)
public void exportBonusTotal(HttpServletResponse response, BonusParam bonusParam){
List<Integer> pkVertex=new ArrayList<>();
if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
@Log(module = EOperationModule.BONUS_TOTAL, business = EOperationBusiness.BONUS_TOTAL, method = EOperationMethod.EXPORT)
public void exportBonusTotal(HttpServletResponse response, BonusParam bonusParam) {
List<Integer> pkVertex = new ArrayList<>();
if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
.map(Integer::parseInt)
.collect(Collectors.toList());
@ -108,7 +98,7 @@ public class CuMemberBonusController extends BaseController {
bonusParam.setPkVertexList(pkVertex);
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
packageBonusParam(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam);
List<BonusTotalVO> bonusTotalVoList = getBonusTotalVoS(cuMemberBonusList);
Map<String, Integer> sourceBonusList = menuColumnServiceApi.queryMenuColumn("totalBonus", SecurityUtils.getUserId()).getData();
ExcelUtil<BonusTotalVO> util = new ExcelUtil<>(BonusTotalVO.class, sourceBonusList);
@ -119,7 +109,7 @@ public class CuMemberBonusController extends BaseController {
List<BonusTotalVO> totalVoList = new ArrayList<>();
cuMemberBonusList.forEach(cuMemberBonus -> {
BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class);
for(String key : CuMemberBonusVO.INCOME_ARRAY){
for (String key : CuMemberBonusVO.INCOME_ARRAY) {
ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate()));
}
totalVoList.add(bonusTotalVO);
@ -133,9 +123,9 @@ public class CuMemberBonusController extends BaseController {
@AccessPermissions("BonusDetail")
@PostMapping("/query-bonus-detail")
@Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
public TableDataInfo listBonus(@RequestBody BonusParam bonusParam){
List<Integer> pkVertex=new ArrayList<>();
if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
public TableDataInfo listBonus(@RequestBody BonusParam bonusParam) {
List<Integer> pkVertex = new ArrayList<>();
if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
.map(Integer::parseInt)
.collect(Collectors.toList());
@ -143,16 +133,16 @@ public class CuMemberBonusController extends BaseController {
bonusParam.setPkVertexList(pkVertex);
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
//获取管理员权限角色地区范围 体系列表团队列表)
Date date=DateUtils.currentDate();
if(bonusParam.getStartDate()==null||bonusParam.getEndDate()==null){
Date date = DateUtils.currentDate();
if (bonusParam.getStartDate() == null || bonusParam.getEndDate() == null) {
bonusParam.setStartDate(DateUtils.currentMonthFirstDate());
bonusParam.setEndDate(DateUtils.beforeDate(1, ChronoUnit.DAYS,date));
bonusParam.setEndDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, date));
}
packageBonusParam(bonusParam);
startPage();
List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
CuMemberBonusExt cmb =cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam);
if(cmb!=null){
List<CuMemberBonusExt> cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
CuMemberBonusExt cmb = iCuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam);
if (cmb != null) {
cmb.setMemberCode("合计");
cuMemberBonusExtList.add(cmb);
}
@ -167,9 +157,9 @@ public class CuMemberBonusController extends BaseController {
*/
@PostMapping("/export-bonus-detail")
@Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
public void exportBonusDetail(HttpServletResponse response, BonusParam bonusParam){
List<Integer> pkVertex=new ArrayList<>();
if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
public void exportBonusDetail(HttpServletResponse response, BonusParam bonusParam) {
List<Integer> pkVertex = new ArrayList<>();
if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
.map(Integer::parseInt)
.collect(Collectors.toList());
@ -177,23 +167,23 @@ public class CuMemberBonusController extends BaseController {
bonusParam.setPkVertexList(pkVertex);
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
packageBonusParam(bonusParam);
List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.initCuMemberBonus();
List<CuMemberBonusExt> cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
CuMemberBonusExt cuMemberBonusExt = iCuMemberBonusService.initCuMemberBonus();
cuMemberBonusExt.setMemberCode("小计:");
if(CollectionUtil.isNotEmpty(cuMemberBonusExtList)) {
if (CollectionUtil.isNotEmpty(cuMemberBonusExtList)) {
cuMemberBonusExt.setOutExchangeRate(cuMemberBonusExtList.get(0).getOutExchangeRate());
for (CuMemberBonusExt memberBonusExt : cuMemberBonusExtList) {
cuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt);
iCuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt);
}
}
cuMemberBonusExtList.add(cuMemberBonusExt);
List<CuMemberBonusVO> cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList);
List<CuMemberBonusVO> cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList);
Map<String, Integer> bonusDetail = menuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData();
ExcelUtil<CuMemberBonusVO> util = new ExcelUtil<>(CuMemberBonusVO.class,bonusDetail);
ExcelUtil<CuMemberBonusVO> util = new ExcelUtil<>(CuMemberBonusVO.class, bonusDetail);
util.exportExcel(response, cuMemberBonusVoList, "奖金明细导出");
}
private List<CuMemberBonusVO> getBonusDetail(List<CuMemberBonusExt> cuMemberBonusExtList) {
private List<CuMemberBonusVO> getBonusDetail(List<CuMemberBonusExt> cuMemberBonusExtList) {
List<CuMemberBonusVO> cuMemberBonusVoList = new ArrayList<>(cuMemberBonusExtList.size());
for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
CuMemberBonusVO cuMemberBonusVO = BeanUtil.copyProperties(cuMemberBonusExt, CuMemberBonusVO.class);
@ -201,7 +191,7 @@ public class CuMemberBonusController extends BaseController {
cuMemberBonusVO.setMemberCode(CommonUtil.getMemberCode(cuMemberBonusExt.getMemberCode(), cuMemberBonusExt.getServiceCode()));
cuMemberBonusVO.setMemberName(CommonUtil.getMemberName(cuMemberBonusExt.getPkVertex(), cuMemberBonusExt.getMemberName(), cuMemberBonusExt.getNickName()));
for(String key :CuMemberBonusVO.INCOME_ARRAY){
for (String key : CuMemberBonusVO.INCOME_ARRAY) {
ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate()));
}
cuMemberBonusVoList.add(cuMemberBonusVO);
@ -215,11 +205,11 @@ public class CuMemberBonusController extends BaseController {
@AccessPermissions("sourceBonus")
@PostMapping("/query-bonus-source")
@Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.SELECT)
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam){
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
packageBonusParam(bonusParam);
startPage();
return cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
return iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
}
@ -228,29 +218,29 @@ public class CuMemberBonusController extends BaseController {
*/
@PostMapping("/export-bonus-source")
@Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.EXPORT)
public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam){
public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam) {
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
packageBonusParam(bonusParam);
TableDataInfo tableDataInfo = cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
List<MemberBonusDetailSerVO> memberBonusDetailSerVOList = (List<MemberBonusDetailSerVO>) tableDataInfo.getRows();
// 获取需要翻译的枚举翻译
Map<String, String> transactionMap = transactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values());
Map<Integer, String> transactionLongMap = transactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values());
Map<Integer, String> transactionLongMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) {
if(transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) {
if (transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) {
memberBonusDetailSerVO.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType()));
}
if(transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())){
if (transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())) {
memberBonusDetailSerVO.setIncomeStatusVal(transactionMap.get(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus()));
}
if(transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())){
if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())) {
memberBonusDetailSerVO.setPkSettleGradeVal(transactionLongMap.get(memberBonusDetailSerVO.getPkSettleGrade()));
}
if(transactionLongMap.containsKey(memberBonusDetailSerVO.getPkAwards())){
if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkAwards())) {
memberBonusDetailSerVO.setPkAwardsVal(transactionLongMap.get(memberBonusDetailSerVO.getPkAwards()));
}
}
ExcelUtil<MemberBonusDetailSerVO> util = new ExcelUtil<>(MemberBonusDetailSerVO.class,menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData());
ExcelUtil<MemberBonusDetailSerVO> util = new ExcelUtil<>(MemberBonusDetailSerVO.class, menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData());
util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出");
}

View File

@ -9,9 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-辅导收益明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-11-15
@ -20,37 +18,29 @@ public interface CuMemberBonusCoachMapper extends BaseMapper<CuMemberBonusCoach>
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusCoach(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusCoachList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusCoach(@Param("cuMemberBonusCoachList") List<?> cuMemberBonusCoachList);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusCoachExt> queryMemberBonusCoachByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusCoachExt> queryMemberBonusCoachByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -9,9 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-会员奖金汇总表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-11-11
@ -22,9 +20,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
* @return: List<Integer>
* @Author: sui q
* @Date: 2022/12/13 13:47
*/
List<Long> batchQueryCuMemberBonusSeq(Integer rowNum);
@ -32,9 +27,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
* @Date: 2023/1/13 11:27
*/
List<CuMemberBonus> queryMemberBonusTotalByCondition(BonusParam bonusParam);
@ -42,9 +34,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
* @Date: 2023/1/13 11:27
*/
List<CuMemberBonusExt> queryMemberBonusByCondition(BonusParam bonusParam);
@ -52,9 +41,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
* @Date: 2023/1/13 11:27
*/
List<CuMemberBonusExt> queryMemberBonusByConditionForServer(@Param("bonusParam") BonusParam bonusParam);
@ -67,15 +53,10 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
**/
CuMemberBonusExt queryMemberBonusByConditionForServerSum(@Param("bonusParam") BonusParam bonusParam);
/**
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
* @Date: 2023/1/13 11:27
*/
List<CuMemberBonusExt> queryBonusTotalVoByConditionForServer(@Param("bonusParam") BonusParam bonusParam);
@ -83,9 +64,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonus(Integer period);
@ -93,9 +71,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
* 批量插入会员奖金主表
*
* @param cuMemberBonusList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonus(@Param("cuMemberBonusList") List<?> cuMemberBonusList);
@ -103,9 +78,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
* 批量插入会员奖金主表
*
* @param cuMemberBonusList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertOrUpdateCuMemberBonus(@Param("cuMemberBonusList") List<CuMemberBonus> cuMemberBonusList);
@ -114,19 +86,14 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
*
* @param grantStatus 发放状态
* @param oldGrantStatus 原来的发放状态
* @return: Boolean
* @Author: sui q
* @Date: 2023/3/20 17:21
*/
Integer updateCuMemberBonusStatus(@Param("pkCountry") Integer pkCountry, @Param("grantStatus") Integer grantStatus,
@Param("oldGrantStatus") Integer oldGrantStatus, @Param("startPeriod") Integer startPeriod,
@Param("endPeriod") Integer endPeriod);
/*
* @description: 查询会员一周周期的拓展累计复购拓展累计
* @author: sui q
* @date: 2023/7/15 14:26
* @param: null null
* 查询会员一周周期的拓展累计复购拓展累计
**/
List<CuMemberBonus> queryWeekMemberBonus(@Param("startPeriod") int startPeriod, @Param("endPeriod") int endPeriod);
}

View File

@ -21,4 +21,5 @@ public interface CuMemberRepeatBonusMapper extends BaseMapper<CuMemberRepeatBonu
* @param: null null
**/
void insertCuMemberRepeatBonus(@Param("cuMemberRepeatBonusList") List<CuMemberRepeatBonus> cuMemberRepeatBonusList);
}

View File

@ -7,9 +7,7 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-辅导收益明细表 服务类
* </p>
*
* @author hzs
* @since 2022-11-15
@ -18,19 +16,15 @@ public interface ICuMemberBonusCoachService extends IService<CuMemberBonusCoach>
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusCoach(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusCoachList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusCoach(List<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet);
}

View File

@ -24,9 +24,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
* @return: List<Integer>
* @Author: sui q
* @Date: 2022/12/13 13:47
*/
List<Long> batchQueryCuMemberBonusSeq(Integer rowNum);
@ -34,9 +31,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
* @Date: 2023/1/13 11:27
*/
List<CuMemberBonusExt> queryMemberBonusVoByCondition(BonusParam bonusParam);
@ -44,9 +38,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 根据查询条件查询会员秒接奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
* @Date: 2023/1/13 11:27
*/
List<CuMemberBonusExt> queryMemberSecondBonusVoByCondition(BonusParam bonusParam);
@ -54,9 +45,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
* @Date: 2023/1/13 11:27
*/
List<CuMemberBonusExt> queryMemberBonusTotalByCondition(BonusParam bonusParam);
@ -64,9 +52,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
* @Date: 2023/1/13 11:27
*/
List<CuMemberBonusExt> queryMemberBonusVoByConditionForServer(BonusParam bonusParam);
@ -83,9 +68,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 根据条件查询查询每天奖金汇总
*
* @param bonusParam 查询条件
* @return: List<BonusTotalVO>
* @Author: sui q
* @Date: 2023/3/6 9:26
*/
List<CuMemberBonusExt> queryBonusTotalVoByConditionForServer(BonusParam bonusParam);
@ -93,17 +75,11 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 根据查询条件查询会员明细奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusDetailVO>
* @Author: sui q
* @Date: 2023/1/13 17:27
*/
TableDataInfo queryMemberBonusDetailVoByCondition(BonusParam bonusParam);
/*
* @description: 查询创客空间奖金来源
* @author: sui q
* @date: 2024/7/12 10:36
* @param: null null
**/
List<MemberBonusDetailVO> queryMemberMarkBonusDetailSource(BonusParam bonusParam);
@ -111,9 +87,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 后台根据查询条件查询会员奖金明细
*
* @param bonusParam 查询条件
* @return: List<MemberBonusDetailSerVO>
* @Author: sui q
* @Date: 2023/1/23 14:41
*/
TableDataInfo queryMemberBonusDetailSerVoByCondition(BonusParam bonusParam);
@ -121,9 +94,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonus(Integer period);
@ -131,9 +101,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 批量插入会员奖金主表
*
* @param cuMemberBonusList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonus(List<CuMemberBonus> cuMemberBonusList);
@ -141,17 +108,11 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* 批量插入会员奖金主表
*
* @param cuMemberBonusList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertOrUpdateCuMemberBonus(List<CuMemberBonus> cuMemberBonusList);
/*
* @description: 查询会员奖金
* @author: sui q
* @date: 2023/8/8 11:52
* @param: null null
**/
List<CuMemberBonus> queryCuMemberBonus(int period, List<CuMemberBonus> cuMemberBonusList);
@ -161,9 +122,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* @param grantStatus 发放状态
* @param oldGrantStatus 原来的发放状态
* @param startPeriod 期间
* @return: Boolean
* @Author: sui q
* @Date: 2023/3/20 17:21
*/
Boolean updateCuMemberBonusStatus(Integer pkCountry, Integer grantStatus, Integer oldGrantStatus, Integer startPeriod, Integer endPeriod);
@ -173,9 +131,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
* @param grantStatus 发放状态
* @param startPeriod 期间
* @param endPeriod 期间
* @return: List<CuMemberBonus>
* @Author: sui q
* @Date: 2023/3/21 9:44
*/
List<CuMemberBonus> queryCuMemberBonusByCondition(Integer pkCountry, Integer grantStatus, Integer startPeriod, Integer endPeriod);

View File

@ -408,20 +408,19 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
*
* @param settleTableName 结算表
* @param period 期间
* @param yesterdayPeriod 昨日期间
* @param bonusConfigDTO 参数
* @param firPurchaseOrderList 首单
* @param cuMemberBonusMap 所有计算出来的奖金汇总
*/
List<CuMemberBonusExpand> calculateExpandBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleDate, String settleTableName, BonusConfigDTO bonusConfigDTO,
Map<String, String> systemConfigMap, List<SaOrderExt> firPurchaseOrderList,
Integer period, Integer yesterdayPeriod, Map<Long, CuMemberBonus> weekMemberBonusMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
Integer period, Map<Long, CuMemberBonus> weekMemberBonusMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuBonusExpandExt> cuBonusExpandExtMap) {
// 根据开始期间结束期间查询
List<CuMemberBonusExpand> cuMemberBonusExpandList = new ArrayList<>();
// 获取所有订单的上级根据订单往上一步步计算
// key订单IDvalue订单向上找安置人列表
Map<Long, List<CuMemberSettleExt>> memberSettleMap = iCuMemberTreeService.batchQueryCuMemberSettlePlaceParent(settleTableName, period, yesterdayPeriod, firPurchaseOrderList);
Map<Long, List<CuMemberSettleExt>> memberSettleMap = iCuMemberTreeService.batchQueryCuMemberSettlePlaceParent(settleTableName, period, firPurchaseOrderList);
// 获取复购考核结果
List<CuMemberSettleExt> queryMemberList = new ArrayList<>();
@ -672,12 +671,12 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
*/
List<CuMemberBonusCoach> calculateCoachBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDateStr, BonusConfigDTO bonusConfigDTO,
List<SaOrderExt> firPurchaseOrderList, List<CuMemberBonusExpand> cuMemberBonusExpandList, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuMemberRiskControl> riskControlMap, List<BdAwards> awardsList) {
Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuMemberRiskControl> riskControlMap, List<BdAwards> awardsList, boolean firstBool) {
Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size()));
firPurchaseOrderList.forEach(saOrderExt ->
saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt));
return calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDateStr, bonusConfigDTO, cuMemberBonusExpandList, period,
cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList);
cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList, firstBool);
}
/**
@ -686,7 +685,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
List<CuMemberBonusCoach> calculateCoachBonusOne(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDateStr, BonusConfigDTO bonusConfigDTO,
List<CuMemberBonusExpand> cuMemberBonusExpandList, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
Map<Long, SaOrderExt> saOrderExtMap, Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuMemberRiskControl> riskControlMap,
List<BdAwards> awardsList) {
List<BdAwards> awardsList, boolean firstBool) {
// 领导奖数据列表
List<CuMemberBonusCoach> cuMemberBonusCoachList = new ArrayList<>();
@ -718,7 +717,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// }
List<CuMemberBonusCoach> coachBonusList = calculateBonusCoach(cuMemberSettleExtMap, bonusConfigDTO, period, cuMemberBonusMap,
saOrderExtMap, cuMemberAssessMap, bonusIdSettleMap, cuMemberBonusExpand, cuAwardsControlMap,
riskControlMap, cuMemberBonusNumMap, awardsList);
riskControlMap, cuMemberBonusNumMap, awardsList, firstBool);
if (coachBonusList.size() > 0) {
cuMemberBonusCoachList.addAll(coachBonusList);
}
@ -733,7 +732,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
private List<CuMemberBonusCoach> calculateBonusCoach(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO, Integer period,
Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, SaOrderExt> saOrderExtMap, Map<Long, CuMemberAssess> cuMemberAssessMap,
Map<Long, CuMemberSettleExt> bonusIdSettleMap, CuMemberBonusExpand cuMemberBonusExpand, Map<Long, CuAwardsControl> cuAwardsControlMap,
Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberBonusNumMap, List<BdAwards> awardsList) {
Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberBonusNumMap, List<BdAwards> awardsList, boolean firstBool) {
// 目前这个会员只用来处理备注会员信息使用
CuMemberSettleExt sourceMemberSettleExt = bonusIdSettleMap.get(cuMemberBonusExpand.getPkBonus());
// 用于回写血缘总共多少代
@ -761,13 +760,23 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// 会员状态不正常 或者 停算收益 直接跳过
continue;
}
if (validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.COACHING_INCOME.getValue())) {
// 校验当前国家是否有该奖项
continue;
if (firstBool) {
if (validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.COACHING_INCOME.getValue())) {
// 校验当前国家是否有该奖项
continue;
}
} else {
if (validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.COACHING_INCOME.getValue())) {
// 校验当前国家是否有该奖项
continue;
}
}
SaOrderExt saOrderExt = saOrderExtMap.get(cuMemberBonusExpand.getPkOrder());
if (null == saOrderExt || !validateSecondOrderExistBonus(saOrderExt, EBonusItems.COACHING_INCOME.getValue())) {
// 订单为空 或者 判断二次发货是否有辅导收益
if (null == saOrderExt
// || !validateSecondOrderExistBonus(saOrderExt, EBonusItems.COACHING_INCOME.getValue())
) {
// 订单为空 或者 判断二次发货是否有辅导收益 -- 原二次发货判断去掉
continue;
}
@ -793,7 +802,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
awardCalRadio = coachAward.getCoachRatio();
}
// 生成辅导收益明细
CuMemberBonusCoach cuMemberBonusCoach = getCuMemberBonusCoach(bonusConfigDTO, cuMemberBonusExpand, i, targetMemberSettleExt, awardCalRadio);
CuMemberBonusCoach cuMemberBonusCoach = getCuMemberBonusCoach(bonusConfigDTO, cuMemberBonusExpand, i, targetMemberSettleExt, awardCalRadio, firstBool);
// TODO new 如果拓展收益是延缓发放那么辅导收益也需要延缓发放
if (EBonusIncomeStatus.DELAY_GRANT.getValue() == cuMemberBonusExpand.getIncomeStatus()) {
cuMemberBonusCoach.setIncomeStatus(EBonusIncomeStatus.DELAY_GRANT.getValue());
@ -823,11 +832,18 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// 收益占比
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
coachRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt);
coachRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt, firstBool);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusCoach.getIncomeStatus()) {
cuMemberBonus.setCoachIncome(ComputeUtil.computeAdd(cuMemberBonus.getCoachIncome(), cuMemberBonusCoach.getPretaxIncome()));
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach);
if (firstBool) {
// 首购处理
cuMemberBonus.setCoachIncome(ComputeUtil.computeAdd(cuMemberBonus.getCoachIncome(), cuMemberBonusCoach.getPretaxIncome()));
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach);
} else {
// 复购处理
cuMemberBonus.setRepurCoachIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurCoachIncome(), cuMemberBonusCoach.getPretaxIncome()));
setPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach);
}
}
backMemberBonusCoachList.add(cuMemberBonusCoach);
@ -867,13 +883,15 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
}
private CuMemberBonusCoach getCuMemberBonusCoach(BonusConfigDTO bonusConfigDTO, CuMemberBonusExpand cuMemberBonusExpand,
int i, CuMemberSettleExt targetMemberSettleExt, BigDecimal awardCalRadio) {
int i, CuMemberSettleExt targetMemberSettleExt, BigDecimal awardCalRadio, boolean firstBool) {
// 奖金项首购复购判断
Integer bonusItems = firstBool ? EBonusItems.COACHING_INCOME.getValue() : EBonusItems.REPURCHASE_COACHING_INCOME.getValue();
CuMemberBonusCoach cuMemberBonusCoach = CuMemberBonusCoach.builder()
.pkBonus(targetMemberSettleExt.getPkMember())
.pkOrder(cuMemberBonusExpand.getPkOrder())
.pkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.COACHING_INCOME.getValue()))
.calType(ECalType.RATIO.getValue())
.pkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), bonusItems))
.incomeStatus(cuMemberBonusExpand.getIncomeStatus())
.calType(ECalType.RATIO.getValue())
.calAchieve(cuMemberBonusExpand.getPretaxIncome())
.currentGeneration(i)
// 计算比例

View File

@ -516,8 +516,9 @@ public abstract class BonusSettleHandle {
* @Date: 2022/11/17 11:22
*/
protected void coachRemark(SaOrderExt saOrderExt, CuMemberBonusCoach cuMemberBonusCoach,
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
String remark = String.format(BonusMsgConstants.COACH, cuMemberBonusCoach.getCurrentGeneration(), saOrderExt.getOrderCode(),
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt, boolean firstBool) {
String remark = String.format(firstBool ? BonusMsgConstants.COACH : BonusMsgConstants.REPURCHASE_COACH,
cuMemberBonusCoach.getCurrentGeneration(), saOrderExt.getOrderCode(),
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusCoach.getCalAchieve(), cuMemberBonusCoach.getCalValue());
@ -837,6 +838,7 @@ public abstract class BonusSettleHandle {
.repurPushIncome(BigDecimal.ZERO)
.repurRangeIncome(BigDecimal.ZERO)
.repurExpandIncome(BigDecimal.ZERO)
.repurCoachIncome(BigDecimal.ZERO)
.repurRealSubtotal(BigDecimal.ZERO)
.cloudDirectIncome(BigDecimal.ZERO)
.cloudPurIncome(BigDecimal.ZERO)
@ -1080,7 +1082,9 @@ public abstract class BonusSettleHandle {
// 处理扣项
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
// 复购实发小计
cuMemberBonus.setRepurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRepurRealSubtotal(), realIncome));
// 实发收益总计
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
}

View File

@ -139,12 +139,12 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
* @param cuMemberBonusMap 所有计算出来的奖金汇总
*/
List<CuMemberBonusExpand> calculateRepurchaseExpandBonus(Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDateStr,
BonusConfigDTO bonusConfigDTO, Map<String, String> systemConfigMap, List<SaOrderExt> purchaseOrderList, Integer period, Integer yesterdayPeriod,
BonusConfigDTO bonusConfigDTO, Map<String, String> systemConfigMap, List<SaOrderExt> purchaseOrderList, Integer period,
Map<Long, CuMemberBonus> weekMemberBonusMap, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, CuBonusExpandExt> cuBonusExpandExtMap) {
List<CuMemberBonusExpand> cuMemberBonusExpandList = new ArrayList<>();
// 获取所有订单的上级根据订单往上一步步计算
// key订单IDvalue订单向上找安置人列表
Map<Long, List<CuMemberSettleExt>> memberSettleMap = iCuMemberTreeService.batchQueryCuMemberSettlePlaceParent(settleTableName, period, yesterdayPeriod, purchaseOrderList);
Map<Long, List<CuMemberSettleExt>> memberSettleMap = iCuMemberTreeService.batchQueryCuMemberSettlePlaceParent(settleTableName, period, purchaseOrderList);
// 订单安置上找所有会员列表
List<CuMemberSettleExt> memberSettleExtList = new ArrayList<>();
@ -1032,7 +1032,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
BigDecimal maxIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), gradeExpandRatio);
// actualIncome = 业绩 * 等级扩展比例
BigDecimal actualIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), countryExpandRatio);
log.info("复购. maxIncome: {}, actualIncome: {}", maxIncome, actualIncome);
log.info("复购. maxIncome: {}, gradeExpandRatio: {}; actualIncome: {}, countryExpandRatio: {}", maxIncome, gradeExpandRatio, actualIncome, countryExpandRatio);
// 获取等级对应的封顶值累计复购扩展 + 当前等级对应订单的最大收益
BigDecimal expandIncome = ComputeUtil.computeAdd(ComputeUtil.computeAdd(cuMemberBonus.getRepurExpandIncome(), actualIncome), weekRepExpandIncome);

View File

@ -236,7 +236,13 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
// 计算领导奖
Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(1);
saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt);
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, cuMemberBonusExpandList, period, cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList);
// 领导奖现在首购复购都有此处需要传入参数区分
boolean firstFlag = EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
|| EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType();
// 领导奖处理
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, cuMemberBonusExpandList, period, cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList, firstFlag);
// 计算报单服务费
CuMemberBonusDetail cuMemberBonusDetail = bonusSettleFirstPurchaseHandle.calculateServiceBonusOne(settleDate, cuMemberAssessMap, cuMemberSettleExtMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt);
// 复购券
@ -248,9 +254,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
cuMemberBonusExpandList.forEach(cuMemberBonusExpand ->
cuMemberBonusExpand.setPkBonus(cuMemberBonusMap.get(cuMemberBonusExpand.getPkBonus()).getPkId()));
iCuMemberBonusExpandService.batchInsertCuMemberBonusExpand(cuMemberBonusExpandList, memberIdSet);
cuMemberBonusCoachList.forEach(cuMemberBonusCoach ->
cuMemberBonusCoach.setPkBonus(cuMemberBonusMap.get(cuMemberBonusCoach.getPkBonus()).getPkId()));
iCuMemberBonusCoachService.batchInsertCuMemberBonusCoach(cuMemberBonusCoachList, memberIdSet);
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
if (cuMemberBonusDetail != null) {
cuMemberBonusDetailList.add(cuMemberBonusDetail);
@ -678,7 +686,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
cuBonusExpandExtList.forEach(cuBonusExpandExt -> cuBonusExpandExtMap.put(cuBonusExpandExt.getPkMember(), cuBonusExpandExt));
if (firPurchaseOrderList.size() > 0) {
calculateFirPurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO,
firPurchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap);
firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap);
}
List<CuMemberRepeatBonus> cuMemberBonusList = new ArrayList<>();
for (CuMemberBonus cuMemberBonus : cuMemberBonusMap.values()) {
@ -827,12 +835,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
// 计算复购
if (repurchaseOrderList.size() > 0) {
leXueRangeParam = calculatePurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO,
repurchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap);
repurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap);
}
// 计算首购
if (firPurchaseOrderList.size() > 0) {
calculateFirPurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO,
firPurchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap);
firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap);
}
// 计算商城业绩
if (mallOrderList.size() > 0) {
@ -870,9 +878,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
*
* @param cuMemberBonusMap 奖金主表
* @param bonusRecordDetailVO 奖金明细表
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:52
*/
void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
// 删除 直推收益明细表
@ -885,9 +890,9 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
// 删除 奖金收益明细表(复购极差)
iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
// TODO new 删除拓展收益延缓主表
// new 删除拓展收益延缓主表
iCuMemberBonusDelayService.deleteCuMemberBonusDelay(period);
// TODO new 删除拓展收益延缓明细表
// new 删除拓展收益延缓明细表
iCuMemberBonusDelayDetailService.deleteCuMemberBonusDelayDetail(period);
// 删除 会员奖金汇总表
iCuMemberBonusService.deleteCuMemberBonus(period);
@ -979,14 +984,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
}
/**
* 根据订单类型封装为不同订单列表
*
* @param firPurchaseOrderList 首购
* @param repurchaseOrderList 复购
* @param mallOrderList 商城
* @param saOrderExt 来源订单
* @Description: 根据订单类型封装为不同订单列表
* @return: void
* @Author: sui q
* @Date: 2023/2/13 15:08
*/
private void packageSaOrderListByType(List<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList,
List<SaOrderExt> mallOrderList, SaOrderExt saOrderExt) {
@ -1018,7 +1021,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
* @param firPurchaseOrderList 首购订单
*/
private void calculateFirPurchaseOrder(Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDate,
Map<String, String> systemConfigMap, BonusConfigDTO bonusConfigDTO, List<SaOrderExt> firPurchaseOrderList, Integer period, Integer yesterdayPeriod,
Map<String, String> systemConfigMap, BonusConfigDTO bonusConfigDTO, List<SaOrderExt> firPurchaseOrderList, Integer period,
Map<Long, CuMemberBonus> weekMemberBonusMap, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO,
Map<String, BdAwards> awardsMap, List<BdAwards> awardsList, Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuBonusExpandExt> cuBonusExpandExtMap) {
// 获得国家是三单循环还是四单循环
@ -1031,7 +1034,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
//****************************计算量奖(拓展收益)*****************************/
List<CuMemberBonusExpand> cuMemberBonusExpandList = bonusSettleFirstPurchaseHandle.calculateExpandBonus(cuMemberSettleExtMap, settleDate, settleTableName, bonusConfigDTO, systemConfigMap,
firPurchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, riskControlMap, cuBonusExpandExtMap);
firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, riskControlMap, cuBonusExpandExtMap);
if (cuMemberBonusExpandList.size() > 0) {
if (null == bonusRecordDetailVO.getCuMemberBonusExpandList()) {
bonusRecordDetailVO.setCuMemberBonusExpandList(cuMemberBonusExpandList);
@ -1043,10 +1046,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
bonusSettlePurchaseHandle.handleFirExpandDelay(cuMemberBonusExpandList, period, bonusRecordDetailVO);
}
//*********************************计算领导奖(辅导收益)************************/
//*********************************计算领导奖(首购辅导收益)************************/
// 判断是否有量奖有量奖有辅导奖
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, firPurchaseOrderList,
cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList);
cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, true);
bonusRecordDetailVO.setCuMemberBonusCoachList(cuMemberBonusCoachList);
//*********************************计算服务奖************************/
@ -1062,10 +1065,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusExpand);
memberBonusDetailCalVO.setExpandIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getExpandIncome(), cuMemberBonusExpand.getRealIncome()));
});
// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
// MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusCoach);
// memberBonusDetailCalVO.setCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getCoachIncome(), cuMemberBonusCoach.getRealIncome()));
// });
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusCoach);
memberBonusDetailCalVO.setCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getCoachIncome(), cuMemberBonusCoach.getRealIncome()));
});
cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusDetail);
memberBonusDetailCalVO.setServiceIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getServiceIncome(), cuMemberBonusDetail.getRealIncome()));
@ -1088,12 +1091,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
});
// 辅导收益
// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder());
// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
// cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome()));
// cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
// });
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder());
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome()));
cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
});
// 报单服务费
cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusDetail.getPkOrder());
@ -1140,9 +1143,9 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
* @param rangeDtoMap 乐学奖金使用的汇率map
*/
private LeXueRangeParam calculatePurchaseOrder(Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDate,
Map<String, String> systemConfigMap, BonusConfigDTO bonusConfigDTO, List<SaOrderExt> purchaseOrderList, Integer period, Integer yesterdayPeriod,
Map<String, String> systemConfigMap, BonusConfigDTO bonusConfigDTO, List<SaOrderExt> purchaseOrderList, Integer period,
Map<Long, CuMemberBonus> weekMemberBonusMap, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO,
Map<String, BdAwards> awardsMap, Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuBonusExpandExt> cuBonusExpandExtMap, Map<String, RangeDTO> rangeDtoMap) {
Map<String, BdAwards> awardsMap, List<BdAwards> awardsList, Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuBonusExpandExt> cuBonusExpandExtMap, Map<String, RangeDTO> rangeDtoMap) {
//****************************复购直推*****************************
// 查找10代血缘验证复购考核考核通过的给与奖金 紧缩
// List<CuMemberBonusPush> cuMemberBonusPushList = bonusSettlePurchaseHandle.calculateRepurchasePushBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, purchaseOrderList, period, cuMemberBonusMap);
@ -1155,7 +1158,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
// }
//****************************计算量奖(拓展收益)*****************************/
List<CuMemberBonusExpand> cuMemberBonusExpandList = bonusSettlePurchaseHandle.calculateRepurchaseExpandBonus(riskControlMap, cuMemberSettleExtMap, settleTableName, settleDate,
bonusConfigDTO, systemConfigMap, purchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, cuBonusExpandExtMap);
bonusConfigDTO, systemConfigMap, purchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, cuBonusExpandExtMap);
if (cuMemberBonusExpandList.size() > 0) {
if (null == bonusRecordDetailVO.getCuMemberBonusExpandList()) {
bonusRecordDetailVO.setCuMemberBonusExpandList(cuMemberBonusExpandList);
@ -1167,6 +1170,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
bonusSettlePurchaseHandle.handleRepExpandDelay(cuMemberBonusExpandList, period, bonusRecordDetailVO);
}
//*********************************计算领导奖(复购辅导收益)************************/
// 判断是否有量奖有量奖有辅导奖
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, purchaseOrderList,
cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, false);
bonusRecordDetailVO.setCuMemberBonusCoachList(cuMemberBonusCoachList);
//****************************乐学极差(复购)*****************************/
LeXueRangeParam leXueRangeParam = new LeXueRangeParam();
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusSettlePurchaseHandle.calculateRepurchaseRangeBonus(cuMemberSettleExtMap, settleTableName, settleDate, rangeDtoMap, awardsMap,
@ -1178,6 +1187,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusExpand);
memberBonusDetailCalVO.setRepExpandIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getRepExpandIncome(), cuMemberBonusExpand.getRealIncome()));
});
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusCoach);
memberBonusDetailCalVO.setRepCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getRepCoachIncome(), cuMemberBonusCoach.getRealIncome()));
});
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusRange);
memberBonusDetailCalVO.setRepRangeIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getRepRangeIncome(), cuMemberBonusRange.getRealIncome()));
@ -1193,6 +1206,13 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepExpandIncome(), memberBonusDetailCalVO.getRealIncome()));
cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
});
// 辅导收益
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder());
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepCoachIncome(), memberBonusDetailCalVO.getRealIncome()));
cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
});
// 复购极差
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusRange.getPkOrder());
@ -1324,6 +1344,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
.coachIncome(BigDecimal.ZERO)
.serviceIncome(BigDecimal.ZERO)
.repExpandIncome(BigDecimal.ZERO)
.repCoachIncome(BigDecimal.ZERO)
.repRangeIncome(BigDecimal.ZERO)
.hiFunIncome(BigDecimal.ZERO)
.haiFunIncome(BigDecimal.ZERO)

View File

@ -13,9 +13,7 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-辅导收益明细表 服务实现类
* </p>
*
* @author hzs
* @since 2022-11-15
@ -37,20 +35,19 @@ public class CuMemberBonusCoachServiceImpl extends ServiceImpl<CuMemberBonusCoac
@Override
public void batchInsertCuMemberBonusCoach(List<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet) {
if(cuMemberBonusCoachList.size() == 0){
if (cuMemberBonusCoachList.size() == 0) {
return;
}
List<CuMemberBonusCoach> cuMemberBonusCoaches = new ArrayList<>();
for (CuMemberBonusCoach cuMemberBonusCoach : cuMemberBonusCoachList) {
if(memberIdSet.contains(cuMemberBonusCoach.getPkBonus())){
if (memberIdSet.contains(cuMemberBonusCoach.getPkBonus())) {
cuMemberBonusCoaches.add(cuMemberBonusCoach);
}
}
if(cuMemberBonusCoaches.size()==0){
if (cuMemberBonusCoaches.size() == 0) {
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusCoaches);
lists.forEach(list ->
baseMapper.batchInsertCuMemberBonusCoach(list));
lists.forEach(list -> baseMapper.batchInsertCuMemberBonusCoach(list));
}
}

View File

@ -592,8 +592,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusList);
lists.forEach(list ->
baseMapper.batchInsertCuMemberBonus(list));
lists.forEach(list -> baseMapper.batchInsertCuMemberBonus(list));
}
@Override
@ -618,15 +617,15 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
@Override
public List<CuMemberBonus> queryCuMemberBonusByCondition(Integer pkCountry, Integer grantStatus, Integer startPeriod, Integer endPeriod) {
QueryWrapper<CuMemberBonus> queryWrapper = new QueryWrapper<>();
queryWrapper.select("pk_member,pk_rate,pk_country,sum(direct_income) direct_income,sum(expand_income) expand_income,sum(expand_no_capping) expand_no_capping," +
"sum(expand_capping) expand_capping,sum(coach_income) coach_income,sum(share_income) share_income," +
"sum(service_income) service_income,sum(back_points) back_points,sum(service_spend) service_spend," +
"sum(pur_real_subtotal) pur_real_subtotal,sum(repur_range_income) repur_range_income,sum(repur_expand_income) repur_expand_income," +
"sum(repur_real_subtotal) repur_real_subtotal,sum(cloud_direct_income) cloud_direct_income,sum(cloud_pur_income) cloud_pur_income," +
"sum(cloud_repur_income) cloud_repur_income,sum(cloud_real_subtotal) cloud_real_subtotal,sum(repur_coupon) repur_coupon," +
"sum(REPUR_COUPON_SHARE) REPUR_COUPON_SHARE,sum(REPUR_COUPON_SUBTOTAL) REPUR_COUPON_SUBTOTAL," +
"sum(global_points) global_points,sum(car_award_points) car_award_points,sum(hi_fun_income) hi_fun_income," +
"sum(real_income_total) real_income_total");
queryWrapper.select("pk_member, pk_rate, pk_country, sum(direct_income) direct_income, " +
"sum(expand_income) expand_income, sum(expand_no_capping) expand_no_capping, sum(expand_capping) expand_capping, sum(coach_income) coach_income, " +
"sum(share_income) share_income, sum(service_income) service_income, sum(back_points) back_points, sum(service_spend) service_spend, " +
"sum(pur_real_subtotal) pur_real_subtotal, sum(repur_range_income) repur_range_income, sum(repur_expand_income) repur_expand_income, sum(repur_coach_income) repur_coach_income, " +
"sum(repur_real_subtotal) repur_real_subtotal, sum(cloud_direct_income) cloud_direct_income, sum(cloud_pur_income) cloud_pur_income, " +
"sum(cloud_repur_income) cloud_repur_income, sum(cloud_real_subtotal) cloud_real_subtotal, sum(repur_coupon) repur_coupon, " +
"sum(REPUR_COUPON_SHARE) REPUR_COUPON_SHARE, sum(REPUR_COUPON_SUBTOTAL) REPUR_COUPON_SUBTOTAL, " +
"sum(global_points) global_points, sum(car_award_points) car_award_points, sum(hi_fun_income) hi_fun_income, " +
"sum(real_income_total) real_income_total ");
queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry);
queryWrapper.eq(MemberBonusFieldConstants.GRANT_STATUS, grantStatus);
queryWrapper.eq(MemberBonusFieldConstants.INCOME_STATUS, ENormalDisable.NORMAL.getValue());

View File

@ -26,7 +26,7 @@ public class CuMemberBonusVO implements Serializable {
"directIncome", "expandIncome", "expandNoCapping", "expandCapping",
"coachIncome", "shareIncome", "serviceIncome", "cloudDirectIncome",
"cloudPurIncome", "cloudRepurIncome", "repurPushIncome", "repurRangeIncome", "repurExpandIncome",
"repurCoupon", "repurCouponShare", "backPoints", "serviceSpend",
"repurCoachIncome", "repurCoupon", "repurCouponShare", "backPoints", "serviceSpend",
"globalPoints", "carAwardPoints", "storeIncome", "hiFunIncome",
"makerDirectIncome", "makerShareIncome", "makerRealSubtotal", "purRealSubtotal",
"cloudRealSubtotal", "repurRealSubtotal", "repurCouponSubtotal", "realIncomeTotal"};
@ -257,6 +257,17 @@ public class CuMemberBonusVO implements Serializable {
@Excel(name = "复购拓展收益($)", scale = 2)
private BigDecimal repurExpandIncome;
/**
* 复购拓展收益
*/
@Excel(name = "复购拓展收益", scale = 2)
private BigDecimal repurCoachIncomeOri;
/**
* 复购拓展收益
*/
@Excel(name = "复购拓展收益($)", scale = 2)
private BigDecimal repurCoachIncome;
/**
* 复购卷
*/

View File

@ -80,6 +80,11 @@ public class MemberBonusDetailCalVO implements Serializable {
*/
private BigDecimal repExpandIncome;
/**
* 复购辅导收益
*/
private BigDecimal repCoachIncome;
/**
* 复购极差收益
*/

View File

@ -1370,11 +1370,16 @@
left join (
select cmbd.pk_member, cmbd.after_grant_income
from CU_MEMBER_BONUS_DELAY cmbd
where exists (select 1
from (select cmbd.pk_member, max(cmbd.period) period
from cu_member_bonus_delay cmbd
where cmbd.del_flag = 0
and cmbd.period = #{yesterdayPeriod}
group by cmbd.pk_member) t
where t.pk_member = cmbd.pk_member
and t.period = cmbd.period)
) cmb
on cmb.pk_member = a.pk_member
order by a.pk_order,a.sort
order by a.pk_order, a.sort
</select>
<select id="batchQueryCuMemberSettleParent" resultMap="CuMemberSettleExt">
@ -2317,7 +2322,7 @@
nvl(t.b_sum_pv, 0) + nvl(t.rep_b_sum_pv, 0) - nvl(cms.b_sum_pv, 0) - nvl(cms.rep_b_sum_pv, 0) b_sum_pv
from (
select cms.*, ba.awards_value
from (select cms.pk_member, cms.pk_awards
from (select cms.pk_member, cms.a_sum_pv, cms.b_sum_pv, cms.rep_a_sum_pv, cms.rep_b_sum_pv, cms.pk_awards
from ${settleTableName} cms
where cms.pk_member in
<foreach collection="pkMemberList" item="item" open="(" close=")" separator=",">

View File

@ -51,7 +51,6 @@
<result column="SETTLE_COUNTRY" property="settleCountry"/>
<result column="PERIOD" property="period"/>
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
<result column="service_code" property="serviceCode"/>
<result column="pk_vertex" property="pkVertex"/>
<result column="nick_name" property="nickName"/>
@ -60,23 +59,28 @@
<insert id="batchInsertCuMemberBonusCoach">
insert ALL
<foreach item="item" index="index" collection="cuMemberBonusCoachList" separator=" ">
into cu_member_bonus_coach(pk_bonus,pk_order,pk_bonus_items,income_status,
cal_type,cal_achieve,cal_value,pretax_income,
income_tax,real_income,current_generation,coach_generation,coach_no_capping,
coach_capping,coach_normal_half,coach_normal_real,remark,
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
values
(
#{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus},
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pretaxIncome},
#{item.incomeTax},#{item.realIncome},#{item.currentGeneration},#{item.coachGeneration},
#{item.coachNoCapping},#{item.coachCapping},#{item.coachNormalHalf},#{item.coachNormalReal},
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
#{item.pkCountry},#{item.pkCreator}
into cu_member_bonus_coach (
pk_bonus, pk_order, pk_bonus_items, income_status,
cal_type, cal_achieve, cal_value,
pretax_income, income_tax, real_income, current_generation,
coach_generation, coach_no_capping, coach_capping,
coach_normal_half, coach_normal_real, remark,
income_ratio, income_dial_ratio, order_dial_ratio,
pk_country, pk_creator
)
values (
#{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus},
#{item.calType}, #{item.calAchieve}, #{item.calValue},
#{item.pretaxIncome}, #{item.incomeTax}, #{item.realIncome}, #{item.currentGeneration},
#{item.coachGeneration}, #{item.coachNoCapping}, #{item.coachCapping},
#{item.coachNormalHalf},#{item.coachNormalReal}, #{item.remark},
#{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
#{item.pkCountry}, #{item.pkCreator}
)
</foreach>
SELECT 1 FROM dual
</insert>
<delete id="deleteCuMemberBonusCoach">
delete
from CU_MEMBER_BONUS_COACH
@ -89,7 +93,8 @@
<select id="queryMemberBonusCoachByBonusItems" resultMap="CuMemberBonusCoach">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country
pk_source_country,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
@ -99,7 +104,8 @@
cu.nick_name
from sa_order so
inner join (
select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
select
cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,cc.coach_no_capping,
cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from
cu_member_bonus cb
@ -153,6 +159,7 @@
</where>
order by b.period,b.pk_bonus_items,b.real_income desc
</select>
<select id="queryMemberBonusCoachByBonusItemsForServer" resultMap="CuMemberBonusCoach">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
@ -161,7 +168,8 @@
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
b.coach_no_capping,b.coach_capping,b.coach_normal_half,b.coach_normal_real,bct.short_name settle_country from sa_order so
inner join (
select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
select
cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,
cc.coach_no_capping,cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from cu_member_bonus cb
inner join cu_member_bonus_coach cc

View File

@ -28,6 +28,7 @@
<result column="REPUR_PUSH_INCOME" property="repurPushIncome"/>
<result column="REPUR_RANGE_INCOME" property="repurRangeIncome"/>
<result column="REPUR_EXPAND_INCOME" property="repurExpandIncome"/>
<result column="REPUR_COACH_INCOME" property="repurCoachIncome"/>
<result column="REPUR_REAL_SUBTOTAL" property="repurRealSubtotal"/>
<result column="CLOUD_DIRECT_INCOME" property="cloudDirectIncome"/>
<result column="CLOUD_PUR_INCOME" property="cloudPurIncome"/>
@ -62,7 +63,6 @@
<result column="PK_VERTEX" property="pkVertex"/>
<result column="SERVICE_CODE" property="serviceCode"/>
<result column="NICK_NAME" property="nickName"/>
</resultMap>
<update id="updateCuMemberBonusStatus">
@ -83,56 +83,58 @@
and grant_status &lt;= 2
</delete>
<!-- 批量插入会员奖金主表 -->
<insert id="batchInsertCuMemberBonus">
merge into cu_member_bonus cb
using(
select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
repur_coupon,repur_coupon_share,repur_coupon_subtotal,global_points,
car_award_points,store_income,hi_fun_income,hai_fun_income,
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
pk_country,pk_creator,grant_status,income_status from(
select pk_id, pk_member, period, pk_rate, direct_income, expand_income, expand_no_capping,
expand_capping, coach_income, share_income, service_income, back_points, service_spend,
pur_real_subtotal, repur_push_income, repur_range_income, repur_expand_income, repur_coach_income, repur_real_subtotal,
cloud_direct_income, cloud_pur_income, cloud_repur_income, cloud_real_subtotal,
repur_coupon, repur_coupon_share, repur_coupon_subtotal, global_points,
car_award_points, store_income, hi_fun_income, hai_fun_income,
maker_direct_income, maker_share_income, maker_real_subtotal, real_income_total,
pk_country, pk_creator, grant_status, income_status
from (
<foreach item="item" index="index" collection="cuMemberBonusList" separator=" union ">
select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate,jdbcType=INTEGER}
pk_rate,
#{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping}
expand_no_capping,
#{item.expandCapping} expand_capping,#{item.coachIncome} coach_income,#{item.shareIncome} share_income,
#{item.serviceIncome} service_income,#{item.backPoints} back_points,#{item.serviceSpend} service_spend,
#{item.purRealSubtotal} pur_real_subtotal,#{item.repurPushIncome} repur_push_income,#{item.repurRangeIncome}
repur_range_income,
#{item.repurExpandIncome} repur_expand_income,#{item.repurRealSubtotal} repur_real_subtotal,
#{item.cloudDirectIncome} cloud_direct_income,#{item.cloudPurIncome} cloud_pur_income,
#{item.cloudRepurIncome} cloud_repur_income,#{item.cloudRealSubtotal} cloud_real_subtotal,
#{item.repurCoupon} repur_coupon,#{item.repurCouponShare} repur_coupon_share,
#{item.repurCouponSubtotal} repur_coupon_subtotal,#{item.globalPoints} global_points,
#{item.carAwardPoints} car_award_points,#{item.storeIncome} store_income,#{item.hiFunIncome} hi_fun_income,
#{item.haiFunIncome} hai_fun_income,#{item.makerDirectIncome} maker_direct_income,
#{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal}
maker_real_subtotal,#{item.realIncomeTotal} real_income_total,
#{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,#{item.grantStatus}
grant_status,#{item.incomeStatus} income_status from dual
</foreach>) )b
on (cb.pk_member=b.pk_member and cb.period=b.period)
select
#{item.pkId} pk_id, #{item.pkMember} pk_member, #{item.period} period, #{item.pkRate,jdbcType=INTEGER} pk_rate,
#{item.directIncome} direct_income, #{item.expandIncome} expand_income, #{item.expandNoCapping} expand_no_capping,
#{item.expandCapping} expand_capping, #{item.coachIncome} coach_income, #{item.shareIncome} share_income,
#{item.serviceIncome} service_income, #{item.backPoints} back_points, #{item.serviceSpend} service_spend,
#{item.purRealSubtotal} pur_real_subtotal, #{item.repurPushIncome} repur_push_income, #{item.repurRangeIncome} repur_range_income,
#{item.repurExpandIncome} repur_expand_income, #{item.repurCoachIncome} repur_coach_income, #{item.repurRealSubtotal} repur_real_subtotal,
#{item.cloudDirectIncome} cloud_direct_income, #{item.cloudPurIncome} cloud_pur_income,
#{item.cloudRepurIncome} cloud_repur_income, #{item.cloudRealSubtotal} cloud_real_subtotal,
#{item.repurCoupon} repur_coupon, #{item.repurCouponShare} repur_coupon_share,
#{item.repurCouponSubtotal} repur_coupon_subtotal, #{item.globalPoints} global_points,
#{item.carAwardPoints} car_award_points, #{item.storeIncome} store_income, #{item.hiFunIncome} hi_fun_income,
#{item.haiFunIncome} hai_fun_income, #{item.makerDirectIncome} maker_direct_income,
#{item.makerShareIncome} maker_share_income, #{item.makerRealSubtotal} maker_real_subtotal, #{item.realIncomeTotal} real_income_total,
#{item.pkCountry} pk_country, #{item.pkCreator} pk_creator, #{item.grantStatus} grant_status, #{item.incomeStatus} income_status
from dual
</foreach>)
)b
on (cb.pk_member = b.pk_member and cb.period = b.period)
WHEN NOT MATCHED THEN
insert(pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
repur_coupon,repur_coupon_share,repur_coupon_subtotal,global_points,
car_award_points,store_income,hi_fun_income,hai_fun_income,
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
pk_country,pk_creator,grant_status,income_status)
values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping,
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal,
b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal,
b.repur_coupon,b.repur_coupon_share,b.repur_coupon_subtotal,b.global_points,
b.car_award_points,b.store_income,b.hi_fun_income,b.hai_fun_income,
b.maker_direct_income,b.maker_share_income,b.maker_real_subtotal,b.real_income_total,
b.pk_country,b.pk_creator,b.grant_status,b.income_status)
insert (
pk_id, pk_member, period, pk_rate, direct_income, expand_income, expand_no_capping,
expand_capping, coach_income, share_income, service_income, back_points, service_spend,
pur_real_subtotal, repur_push_income, repur_range_income, repur_expand_income, repur_coach_income, repur_real_subtotal,
cloud_direct_income, cloud_pur_income, cloud_repur_income, cloud_real_subtotal,
repur_coupon, repur_coupon_share, repur_coupon_subtotal, global_points,
car_award_points, store_income, hi_fun_income, hai_fun_income,
maker_direct_income, maker_share_income, maker_real_subtotal, real_income_total,
pk_country, pk_creator, grant_status, income_status)
values (
b.pk_id, b.pk_member, b.period, b.pk_rate, b.direct_income, b.expand_income, b.expand_no_capping,
b.expand_capping, b.coach_income, b.share_income, b.service_income, b.back_points, b.service_spend,
b.pur_real_subtotal, b.repur_push_income, b.repur_range_income, b.repur_expand_income, b.repur_coach_income, b.repur_real_subtotal,
b.cloud_direct_income, b.cloud_pur_income, b.cloud_repur_income, b.cloud_real_subtotal,
b.repur_coupon, b.repur_coupon_share, b.repur_coupon_subtotal, b.global_points,
b.car_award_points, b.store_income, b.hi_fun_income, b.hai_fun_income,
b.maker_direct_income, b.maker_share_income, b.maker_real_subtotal, b.real_income_total,
b.pk_country, b.pk_creator, b.grant_status, b.income_status)
</insert>
<insert id="insertOrUpdateCuMemberBonus">
@ -140,7 +142,7 @@
using(
select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income, repur_coach_income, repur_real_subtotal,
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
repur_coupon,repur_coupon_subtotal,global_points,
car_award_points,hi_fun_income,hai_fun_income,
@ -152,7 +154,7 @@
#{item.expandCapping} expand_capping,#{item.coachIncome} coach_income,#{item.shareIncome} share_income,
#{item.serviceIncome} service_income,#{item.backPoints} back_points,#{item.serviceSpend} service_spend,
#{item.purRealSubtotal} pur_real_subtotal,#{item.repurPushIncome} repur_push_income,
#{item.repurRangeIncome} repur_range_income,#{item.repurExpandIncome} repur_expand_income,
#{item.repurRangeIncome} repur_range_income,#{item.repurExpandIncome} repur_expand_income, #{item.repurCoachIncome} repur_coach_income,
#{item.repurRealSubtotal} repur_real_subtotal,#{item.cloudDirectIncome} cloud_direct_income,
#{item.cloudPurIncome} cloud_pur_income,#{item.cloudRepurIncome} cloud_repur_income,
#{item.cloudRealSubtotal} cloud_real_subtotal,#{item.repurCoupon} repur_coupon,
@ -173,6 +175,7 @@
a.service_income=a.service_income+b.service_income,a.back_points=a.back_points+b.back_points,a.service_spend=a.service_spend+b.service_spend,
a.pur_real_subtotal=a.pur_real_subtotal+b.pur_real_subtotal,a.repur_push_income=a.repur_push_income+b.repur_push_income,
a.repur_range_income=a.repur_range_income+b.repur_range_income,a.repur_expand_income=a.repur_expand_income+b.repur_expand_income,
a.repur_coach_income=a.repur_coach_income+b.repur_coach_income,
a.repur_real_subtotal=a.repur_real_subtotal+b.repur_real_subtotal,a.cloud_direct_income=a.cloud_direct_income+b.cloud_direct_income,
a.cloud_pur_income=a.cloud_pur_income+b.cloud_pur_income,a.cloud_repur_income=a.cloud_repur_income+b.cloud_repur_income,
a.cloud_real_subtotal=a.cloud_real_subtotal+b.cloud_real_subtotal,a.repur_coupon=a.repur_coupon+b.repur_coupon,
@ -181,13 +184,13 @@
when not matched then
insert (pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income, repur_coach_income, repur_real_subtotal,
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
repur_coupon,global_points,car_award_points,hi_fun_income,real_income_total,
pk_country,pk_creator,grant_status,income_status)
values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping,
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal,
b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income, b.repur_coach_income, b.repur_real_subtotal,
b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal,
b.repur_coupon,b.global_points,b.car_award_points,b.hi_fun_income,b.real_income_total,
b.pk_country,b.pk_creator,b.grant_status,b.income_status)
@ -254,19 +257,17 @@
order by cp.settle_date desc
</select>
<!-- 根据查询条件查询会员奖金 -->
<select id="queryMemberBonusByConditionForServer" resultMap="CuMemberBonus">
select cm.member_code,cm.member_name,cm.pk_settle_grade,cm.pk_awards,bv.vertex_name,ct.team_name,
cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
cb.expand_capping,cb.coach_income,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal,
cb.cloud_direct_income,cb.cloud_pur_income,cb.cloud_repur_income,cb.cloud_real_subtotal,
cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income,
cb.maker_direct_income,cb.maker_share_income,cb.maker_real_subtotal,cb.hai_fun_income,
cb.global_points,cb.car_award_points,cb.hi_fun_income,cb.pk_rate,bc.out_exchange_rate,
cb.real_income_total,
cm.pk_vertex,
cm.service_code,
cm.nick_name
select cm.member_code, cm.member_name, cm.pk_settle_grade, cm.pk_awards, bv.vertex_name, ct.team_name,
cb.period, cp.settle_date, cb.direct_income, cb.expand_income, cb.expand_no_capping,
cb.expand_capping, cb.coach_income, cb.share_income, cb.service_income, cb.back_points, cb.service_spend,
cb.pur_real_subtotal, cb.repur_push_income, cb.repur_range_income, cb.repur_expand_income, cb.repur_coach_income,
cb.repur_real_subtotal, cb.cloud_direct_income, cb.cloud_pur_income, cb.cloud_repur_income, cb.cloud_real_subtotal,
cb.repur_coupon, cb.repur_coupon_share, cb.repur_coupon_subtotal, cb.store_income,
cb.maker_direct_income, cb.maker_share_income, cb.maker_real_subtotal, cb.hai_fun_income,
cb.global_points, cb.car_award_points, cb.hi_fun_income, cb.pk_rate,bc.out_exchange_rate,
cb.real_income_total, cm.pk_vertex, cm.service_code, cm.nick_name
from cu_member_bonus cb
inner join cu_member cm
on cb.pk_member = cm.pk_id
@ -278,8 +279,8 @@
on ct.pk_id = cm.pk_team_code
left join bd_currency bc
on bc.pk_country = cb.pk_country
where cb.del_flag=0 and cm.del_flag=0
and cp.del_flag=0
where cb.del_flag = 0 and cm.del_flag = 0
and cp.del_flag = 0
<if test="bonusParam.pkCountry != null">
and cm.pk_settle_country = #{bonusParam.pkCountry}
</if>
@ -296,13 +297,13 @@
and cm.pk_team_code = #{bonusParam.pkTeamCode}
</if>
<if test="bonusParam.startDate != null">
and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE}
and cp.settle_date >= #{bonusParam.startDate, jdbcType=DATE}
</if>
<if test="bonusParam.endDate != null">
and cp.settle_date &lt; #{bonusParam.endDate, jdbcType=DATE}
</if>
<if test="bonusParam.period != null">
and cb.period >=#{bonusParam.period}
and cb.period >= #{bonusParam.period}
</if>
<if test="bonusParam.pkVertexList!=null and bonusParam.pkVertexList.size> 0 ">
and cm.PK_VERTEX in
@ -315,7 +316,7 @@
select 1 from (
<foreach collection="bonusParam.vertexList" item="item" separator=" union ">
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
where del_flag = 0 and PAY_STATUS = 1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
</foreach>
@ -323,7 +324,7 @@
union
<foreach collection="bonusParam.teamList" item="item" separator=" union ">
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
where del_flag = 0 and PAY_STATUS = 1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
</foreach>
@ -350,6 +351,7 @@
nvl(sum(cb.repur_push_income),0) repur_push_income,
nvl(sum(cb.repur_range_income),0) repur_range_income,
nvl(sum(cb.repur_expand_income),0) repur_expand_income,
nvl(sum(cb.repur_coach_income),0) repur_coach_income,
nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal,
nvl(sum(cb.cloud_direct_income),0) cloud_direct_income,
nvl(sum(cb.cloud_pur_income),0) cloud_pur_income,
@ -437,25 +439,28 @@
</select>
<select id="queryBonusTotalVoByConditionForServer" resultMap="CuMemberBonus">
select cb.period,cp.settle_date,nvl(min(bc.out_exchange_rate),1) out_exchange_rate,sum(cb.direct_income) direct_income,sum(cb.expand_income) expand_income,
sum(cb.expand_no_capping) expand_no_capping,sum(cb.expand_capping) expand_capping,sum(cb.coach_income) coach_income,
sum(cb.share_income) share_income,sum(cb.service_income) service_income,sum(cb.back_points) back_points,
sum(cb.service_spend) service_spend,sum(cb.pur_real_subtotal) pur_real_subtotal,
sum(cb.repur_push_income) repur_push_income,sum(cb.repur_range_income) repur_range_income,
sum(cb.repur_expand_income) repur_expand_income,sum(cb.repur_real_subtotal) repur_real_subtotal,sum(cb.cloud_direct_income) cloud_direct_income,
sum(cb.cloud_pur_income) cloud_pur_income,sum(cb.cloud_repur_income) cloud_repur_income,sum(cb.cloud_real_subtotal) cloud_real_subtotal,
sum(cb.repur_coupon) repur_coupon,sum(repur_coupon_share) repur_coupon_share,
sum(cb.repur_coupon_subtotal) repur_coupon_subtotal,sum(cb.global_points) global_points,
sum(cb.car_award_points) car_award_points,sum(cb.hi_fun_income) hi_fun_income,
sum(store_income) store_income,sum(cb.maker_direct_income) maker_direct_income,
sum(cb.maker_share_income) maker_share_income,sum(cb.maker_real_subtotal) maker_real_subtotal,
sum(cb.real_income_total) real_income_total from cu_member_bonus cb
select cb.period ,cp.settle_date, nvl(min(bc.out_exchange_rate),1) out_exchange_rate,
sum(cb.direct_income) direct_income, sum(cb.expand_income) expand_income,
sum(cb.expand_no_capping) expand_no_capping, sum(cb.expand_capping) expand_capping, sum(cb.coach_income) coach_income,
sum(cb.share_income) share_income, sum(cb.service_income) service_income, sum(cb.back_points) back_points,
sum(cb.service_spend) service_spend, sum(cb.pur_real_subtotal) pur_real_subtotal,
sum(cb.repur_push_income) repur_push_income, sum(cb.repur_range_income) repur_range_income,
sum(cb.repur_expand_income) repur_expand_income, sum(cb.repur_coach_income) repur_coach_income, sum(cb.repur_real_subtotal) repur_real_subtotal,
sum(cb.cloud_direct_income) cloud_direct_income, sum(cb.cloud_pur_income) cloud_pur_income,
sum(cb.cloud_repur_income) cloud_repur_income, sum(cb.cloud_real_subtotal) cloud_real_subtotal,
sum(cb.repur_coupon) repur_coupon, sum(repur_coupon_share) repur_coupon_share,
sum(cb.repur_coupon_subtotal) repur_coupon_subtotal, sum(cb.global_points) global_points,
sum(cb.car_award_points) car_award_points, sum(cb.hi_fun_income) hi_fun_income,
sum(store_income) store_income, sum(cb.maker_direct_income) maker_direct_income,
sum(cb.maker_share_income) maker_share_income, sum(cb.maker_real_subtotal) maker_real_subtotal,
sum(cb.real_income_total) real_income_total
from cu_member_bonus cb
inner join cu_member_settle_period cp
on cb.period = cp.pk_id
left join bd_currency bc
on bc.pk_id = cb.pk_rate
inner join cu_member cm on cb.PK_MEMBER=cm.pk_id
where cb.del_flag=0 and cp.del_flag=0
inner join cu_member cm on cb.PK_MEMBER = cm.pk_id
where cb.del_flag = 0 and cp.del_flag = 0
<if test="bonusParam.pkCountry != null">
and cb.pk_country = #{bonusParam.pkCountry}
</if>
@ -466,7 +471,7 @@
and cp.settle_date &lt;= #{bonusParam.endDate, jdbcType=DATE}
</if>
<if test="bonusParam.period != null">
and cb.period =#{bonusParam.period}
and cb.period = #{bonusParam.period}
</if>
<if test="bonusParam.pkVertexList!=null and bonusParam.pkVertexList.size> 0 ">
and cm.PK_VERTEX in
@ -479,7 +484,7 @@
select 1 from (
<foreach collection="bonusParam.vertexList" item="item" separator=" union ">
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
where del_flag = 0 and PAY_STATUS = 1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
</foreach>

View File

@ -5,16 +5,16 @@
<insert id="insertCuMemberRepeatBonus">
insert ALL
<foreach item="item" index="index" collection="cuMemberRepeatBonusList" separator=" ">
into CU_MEMBER_REPEAT_BONUS(pk_member,period,pk_rate,direct_income,expand_income,
coach_income,share_income,service_income,back_points,service_spend,
pur_real_subtotal,maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
pk_country,pk_creator)
values
(#{item.pkMember},#{item.period},#{item.pkRate,jdbcType=INTEGER},#{item.directIncome},
#{item.expandIncome},#{item.coachIncome},#{item.shareIncome},#{item.serviceIncome},
#{item.backPoints},#{item.serviceSpend},#{item.purRealSubtotal},#{item.makerDirectIncome},
#{item.makerShareIncome},#{item.makerRealSubtotal},#{item.realIncomeTotal},
#{item.pkCountry},#{item.pkCreator})
into CU_MEMBER_REPEAT_BONUS(pk_member, period, pk_rate,
direct_income, expand_income, coach_income, share_income, service_income,
back_points, service_spend, pur_real_subtotal,
maker_direct_income, maker_share_income, maker_real_subtotal, real_income_total,
pk_country, pk_creator)
values (#{item.pkMember}, #{item.period}, #{item.pkRate, jdbcType=INTEGER},
#{item.directIncome}, #{item.expandIncome}, #{item.coachIncome}, #{item.shareIncome}, #{item.serviceIncome},
#{item.backPoints}, #{item.serviceSpend}, #{item.purRealSubtotal},
#{item.makerDirectIncome}, #{item.makerShareIncome}, #{item.makerRealSubtotal}, #{item.realIncomeTotal},
#{item.pkCountry}, #{item.pkCreator})
</foreach>
SELECT 1 FROM dual
</insert>

View File

@ -28,6 +28,7 @@
<result column="REPUR_PUSH_INCOME" property="repurPushIncome"/>
<result column="REPUR_RANGE_INCOME" property="repurRangeIncome"/>
<result column="REPUR_EXPAND_INCOME" property="repurExpandIncome"/>
<result column="REPUR_COACH_INCOME" property="repurCoachIncome"/>
<result column="REPUR_REAL_SUBTOTAL" property="repurRealSubtotal"/>
<result column="CLOUD_DIRECT_INCOME" property="cloudDirectIncome"/>
<result column="CLOUD_PUR_INCOME" property="cloudPurIncome"/>

View File

@ -544,11 +544,11 @@ public class SaOrderHandle {
});
int level = cuMember.getPkSettleGrade();
int rangeType = ERangeType.GRADE.getValue();
BdAwards bdAwards = awardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
if (bdAwards.getAwardsValue() > EAwards.MEMBER.getValue()) {
level = cuMember.getPkAwards();
rangeType = ERangeType.AWARDS.getValue();
}
// BdAwards bdAwards = awardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
// if (bdAwards.getAwardsValue() > EAwards.MEMBER.getValue()) {
// level = cuMember.getPkAwards();
// rangeType = ERangeType.AWARDS.getValue();
// }
if (specsSkuList.size() == 0) {
return;
}

View File

@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.enums.EAwards;
import com.hzs.common.core.enums.ERangeType;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.sale.wares.mapper.BdWaresRangeMapper;
import com.hzs.sale.wares.service.IBdWaresRangeService;
import com.hzs.system.config.IAwardsServiceApi;
@ -38,11 +36,11 @@ public class BdWaresRangeServiceImpl extends ServiceImpl<BdWaresRangeMapper, BdW
public List<BdWaresRange> queryWaresRangeByCondition(CuMember cuMember, List<Integer> pkWareList) {
int level = cuMember.getPkSettleGrade();
int rangeType = ERangeType.GRADE.getValue();
BdAwards bdAwards = awardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
if (bdAwards.getAwardsValue() > EAwards.MEMBER.getValue()) {
level = cuMember.getPkAwards();
rangeType = ERangeType.AWARDS.getValue();
}
// BdAwards bdAwards = awardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
// if (bdAwards.getAwardsValue() > EAwards.MEMBER.getValue()) {
// level = cuMember.getPkAwards();
// rangeType = ERangeType.AWARDS.getValue();
// }
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
if (rangeDTO == null) {
return new ArrayList<>();

View File

@ -1,9 +1,8 @@
package com.hzs.system.config.controller.manage;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
@ -32,9 +31,7 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 奖项配置 前端控制器
* </p>
*
* @author zhangjing
* @since 2022-11-09
@ -44,16 +41,12 @@ import java.util.List;
public class BdBonusItemsController extends BaseController {
@Autowired
private IBdBonusItemsService bonusItemsService;
@DubboReference
private ITransactionServiceApi iTransactionServiceApi;
private IBdBonusItemsService iBdBonusItemsService;
@Autowired
private RedisService redisService;
@Autowired
public void setRedisService(RedisService redisService) {
this.redisService = redisService;
}
@DubboReference
ITransactionServiceApi iTransactionServiceApi;
/**
* @description: 查询奖项配置列表
@ -62,18 +55,18 @@ public class BdBonusItemsController extends BaseController {
* @param: [bonusItems]
* @return: com.hzs.common.core.web.page.TableDataInfo
**/
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
@GetMapping("/list")
public TableDataInfo list(BdBonusItems bonusItems) {
startPage();
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
if(StringUtils.isNotNull(bonusItems.getBonusName())){
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
if (StringUtils.isNotNull(bonusItems.getBonusName())) {
queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
}
queryWrapper.orderByAsc("PK_ID");
queryWrapper.orderByAsc(BdBonusItems::getPkId);
List<BdBonusItemsExt> listExt = new ArrayList<>();
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
List<BdBonusItems> list = iBdBonusItemsService.list(queryWrapper);
list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
TableDataInfo tableDataInfo = getDataTable(list);
tableDataInfo.setRows(listExt);
@ -87,21 +80,22 @@ public class BdBonusItemsController extends BaseController {
* @param: [response, bonusItems]
* @return: void
**/
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.EXPORT)
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, BdBonusItems bonusItems) {
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
if(StringUtils.isNotNull(bonusItems.getBonusName())){
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
if (StringUtils.isNotNull(bonusItems.getBonusName())) {
queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
}
queryWrapper.orderByAsc("PK_ID");
queryWrapper.orderByAsc(BdBonusItems::getPkId);
List<BdBonusItemsExt> listExt = new ArrayList<>();
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
List<BdBonusItems> list = iBdBonusItemsService.list(queryWrapper);
list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
ExcelUtil<BdBonusItemsExt> util = new ExcelUtil<>(BdBonusItemsExt.class);
util.exportExcel(response, listExt, "奖项配置");
}
/**
* @description: 查询奖项配置列表(下拉选)
* @author: zhang jing
@ -109,17 +103,17 @@ public class BdBonusItemsController extends BaseController {
* @param: [bonusItems]
* @return: com.hzs.common.core.web.page.TableDataInfo
**/
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
@GetMapping("/listNoPage")
public TableDataInfo listNoPage(BdBonusItems bonusItems) {
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
if(StringUtils.isNotNull(bonusItems.getBonusName())){
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
if (StringUtils.isNotNull(bonusItems.getBonusName())) {
queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
}
queryWrapper.orderByAsc("PK_ID");
queryWrapper.orderByAsc(BdBonusItems::getPkId);
List<ApiBdBonusItemsVO> listVO = new ArrayList<>();
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
List<BdBonusItems> list = iBdBonusItemsService.list(queryWrapper);
list.forEach(item -> listVO.add(BeanUtil.copyProperties(item, ApiBdBonusItemsVO.class)));
return getDataTable(listVO);
}
@ -131,10 +125,10 @@ public class BdBonusItemsController extends BaseController {
* @param: [grade]
* @return: com.hzs.common.core.web.domain.AjaxResult
**/
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.INSERT)
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.INSERT)
@PostMapping("/generate")
public AjaxResult generate(@RequestBody BdBonusItems bonusItems) {
return AjaxResult.success(bonusItemsService.generate(bonusItems));
return AjaxResult.success(iBdBonusItemsService.generate(bonusItems));
}
@ -145,53 +139,50 @@ public class BdBonusItemsController extends BaseController {
* @param: [bonusItems]
* @return: com.hzs.common.core.web.domain.AjaxResult
**/
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.UPDATE)
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody BdBonusItems bonusItems) {
Integer pkCountry=SecurityUtils.getPkCountry();
if(StringUtils.isEmpty(bonusItems.getBonusName())){
Integer pkCountry = SecurityUtils.getPkCountry();
if (StringUtils.isEmpty(bonusItems.getBonusName())) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.BONUS_NAME_NOT_NULL));
}
if(StringUtils.isNull(bonusItems.getEnableState())){
if (StringUtils.isNull(bonusItems.getEnableState())) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.ENABLE_STATE_NOT_NULL));
}
if(StringUtils.isNull(bonusItems.getSettleType())){
if (StringUtils.isNull(bonusItems.getSettleType())) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.SETTLE_TYPE_NOT_NULL));
}
if(StringUtils.isNull(bonusItems.getPublishTime())){
if (StringUtils.isNull(bonusItems.getPublishTime())) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_TIME_NOT_NULL));
}
if(StringUtils.isNull(bonusItems.getPublishDate())){
if (StringUtils.isNull(bonusItems.getPublishDate())) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_DATE_NOT_NULL));
}
if(StringUtils.isNull(bonusItems.getGrantDate())){
if (StringUtils.isNull(bonusItems.getGrantDate())) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.GRANT_DATE_NOT_NULL));
}
if(StringUtils.isNull(bonusItems.getWithdrawalDate())){
if (StringUtils.isNull(bonusItems.getWithdrawalDate())) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.WITHDRAWAL_DATE_NOT_NULL));
}
//字段翻译保存到数据库
if(null!=bonusItems.getPkTransaction()){
if (null != bonusItems.getPkTransaction()) {
R<Boolean> b = iTransactionServiceApi.updateTransaction(pkCountry,
bonusItems.getBonusName(),bonusItems.getPkTransaction(), true);
}else{
bonusItems.getBonusName(), bonusItems.getPkTransaction(), true);
} else {
//字段翻译保存到数据库
R<Integer> pkTransaction= iTransactionServiceApi.createTransaction(pkCountry, ETransactionKey.BD_BONUS_ITEMS,
R<Integer> pkTransaction = iTransactionServiceApi.createTransaction(pkCountry, ETransactionKey.BD_BONUS_ITEMS,
bonusItems.getBonusName(), EYesNo.YES, EYesNo.NO);
bonusItems.setPkTransaction(pkTransaction.getData());
}
bonusItems.setPkModified(SecurityUtils.getUserId());
bonusItems.setModifiedTime(new Date());
redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + pkCountry);
return toAjax(bonusItemsService.updateById(bonusItems));
return toAjax(iBdBonusItemsService.updateById(bonusItems));
}
/**
* @description: 查询单条奖项配置
* @author: zhang jing
@ -199,11 +190,11 @@ public class BdBonusItemsController extends BaseController {
* @param: [pkId]
* @return: com.hzs.common.core.web.domain.AjaxResult
**/
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
@GetMapping("/getOne/{pkId}")
public AjaxResult getOne(@PathVariable Long pkId) {
BdBonusItems bonusItems = bonusItemsService.getById(pkId);
BdBonusItemsExt bonusItemsExt=BeanUtil.copyProperties(bonusItems, BdBonusItemsExt.class);
BdBonusItems bonusItems = iBdBonusItemsService.getById(pkId);
BdBonusItemsExt bonusItemsExt = BeanUtil.copyProperties(bonusItems, BdBonusItemsExt.class);
return AjaxResult.success(bonusItemsExt);
}
@ -215,22 +206,22 @@ public class BdBonusItemsController extends BaseController {
* @param: [pkId]
* @return: com.hzs.common.core.web.domain.AjaxResult
**/
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.DELETE)
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.DELETE)
@DeleteMapping("/{pkId}")
public AjaxResult delete(@PathVariable Long pkId) {
UpdateWrapper<BdBonusItems> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("PK_ID", pkId);
updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue());
updateWrapper.set("PK_MODIFIED", SecurityUtils.getUserId());
updateWrapper.set("MODIFIED_TIME", new Date());
LambdaUpdateWrapper<BdBonusItems> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(BdBonusItems::getPkId, pkId);
updateWrapper.set(BdBonusItems::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapper.set(BdBonusItems::getPkModified, SecurityUtils.getUserId());
updateWrapper.set(BdBonusItems::getModifiedTime, new Date());
redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + SecurityUtils.getPkCountry());
//删除翻译
BdBonusItems bdBonusItems=bonusItemsService.getById(pkId);
List<Long> pkIdList=new ArrayList<>();
if(null!=bdBonusItems.getPkTransaction()){
BdBonusItems bdBonusItems = iBdBonusItemsService.getById(pkId);
List<Long> pkIdList = new ArrayList<>();
if (null != bdBonusItems.getPkTransaction()) {
pkIdList.add(bdBonusItems.getPkTransaction().longValue());
R<Boolean> b=iTransactionServiceApi.removeTransactionByPkId(pkIdList);
R<Boolean> b = iTransactionServiceApi.removeTransactionByPkId(pkIdList);
}
return toAjax(bonusItemsService.update(updateWrapper));
return toAjax(iBdBonusItemsService.update(updateWrapper));
}
}

View File

@ -114,6 +114,7 @@ public class BonusMsgConstants {
// public static String REPURCHASE_EXPAND = "MSG_BONUS_016";
public static String REPURCHASE_EXPAND = "当前是第%d碰,共%d碰,订单编号%s,%s为%s贡献了复购拓展收益,计算业绩%f,拓展比例%f。";
public static String REPURCHASE_COACH = "当前是第%d代,共#代,订单编号%s,%s为%s贡献了复购辅导收益,计算业绩%f,辅导比例%f。";
public static String BONUS_EXPAND_DELAY = "%s,拓展收益延缓发放";

View File

@ -117,6 +117,11 @@ public enum EBonusItems {
*/
HELP_EACH_INCOME(24, "互助收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 24),
/**
* 复购辅导收益
*/
REPURCHASE_COACHING_INCOME(25, "复购辅导收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 25),
;
public static EBonusItems getEnumByValue(int value) {

View File

@ -12,9 +12,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 奖金扣项配置
* </p>
*
* @author hzs
* @since 2022-11-04

View File

@ -130,6 +130,12 @@ public class CuMemberBonus extends BaseEntity {
@TableField("REPUR_EXPAND_INCOME")
private BigDecimal repurExpandIncome;
/**
* 复购辅导收益
*/
@TableField("REPUR_COACH_INCOME")
private BigDecimal repurCoachIncome;
/**
* 复购实发小计
*/