## 调整部分奖金处理;生产定时任务token替换;
This commit is contained in:
parent
e944bb10b9
commit
846e667c5b
|
@ -13,29 +13,29 @@ import java.util.Map;
|
|||
*/
|
||||
public interface IMemberSettleBonusApi {
|
||||
|
||||
/*
|
||||
* 定时任务每天自动计算奖金
|
||||
**/
|
||||
/**
|
||||
* 定时任务每天自动计算奖金
|
||||
*/
|
||||
R<Boolean> autoCalculateBonus(Date settleDate);
|
||||
|
||||
/*
|
||||
* 定时任务每天自动公布奖金
|
||||
**/
|
||||
/**
|
||||
* 定时任务每天自动公布奖金
|
||||
*/
|
||||
void autoPublishBonus();
|
||||
|
||||
/*
|
||||
* 定时任务每天自动发放奖金
|
||||
**/
|
||||
/**
|
||||
* 定时任务每天自动发放奖金
|
||||
*/
|
||||
void autoGrantBonus();
|
||||
|
||||
/*
|
||||
* 每日生成业绩、月表统计数据
|
||||
**/
|
||||
/**
|
||||
* 每日生成业绩、月表统计数据
|
||||
*/
|
||||
void insertCuMemberAchieveByEveryDay();
|
||||
|
||||
/*
|
||||
* 退单回退业绩
|
||||
**/
|
||||
/**
|
||||
* 退单回退业绩
|
||||
*/
|
||||
Boolean chargeBackSaOrder(SaOrder saOrder);
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,13 +5,6 @@ import lombok.Data;
|
|||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: sui q
|
||||
* @Time: 2023/2/21 15:32
|
||||
* @Classname: BonusExpandDTO
|
||||
* @PackageName: com.hzs.system.config.dto
|
||||
*/
|
||||
@Data
|
||||
public class BonusExpandDTO implements Serializable {
|
||||
|
||||
|
|
|
@ -4,26 +4,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.bonus.param.BonusParam;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberAchieve;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberAchieveExt;
|
||||
import com.hzs.bonus.achieve.param.MonthAchieveParam;
|
||||
import com.hzs.bonus.achieve.vo.CuMemberAwardsUnderVO;
|
||||
import com.hzs.bonus.achieve.vo.CuMemberMonthAchieveContrastVO;
|
||||
import com.hzs.bonus.achieve.vo.CuMemberNewAddAchieveVO;
|
||||
import com.hzs.common.domain.member.ext.CuMemberSettleCountryExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员业绩记录 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-10-26
|
||||
*/
|
||||
public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
||||
|
||||
|
@ -31,9 +18,6 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
* 创建会员网体记录表
|
||||
*
|
||||
* @param tableName 日期
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/10/31 11:44
|
||||
*/
|
||||
void createCuMemberAchieveTable(String tableName);
|
||||
|
||||
|
@ -41,17 +25,11 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
* 创建每年的会员考核表
|
||||
*
|
||||
* @param tableName 表名
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/7 14:10
|
||||
*/
|
||||
void createCuMemberMonthTable(String tableName);
|
||||
|
||||
/*
|
||||
* @description:更新会员业绩表 每月月统计报表
|
||||
* @author: sui q
|
||||
* @date: 2023/8/29 10:57
|
||||
* @param: null null
|
||||
* 更新会员业绩表 每月月统计报表
|
||||
**/
|
||||
void mergeCuMemberMonth(@Param("date") String date, @Param("period") Integer period);
|
||||
|
||||
|
@ -61,9 +39,6 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
* @param targetTableName 目标表 网体月表
|
||||
* @param sourceTableName 来源表 结算日表
|
||||
* @param period 期间
|
||||
* @return: void2
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/16 11:35
|
||||
*/
|
||||
void insertCuMemberAchieveBySettleDate(@Param("targetTableName") String targetTableName,
|
||||
@Param("sourceTableName") String sourceTableName, @Param("period") Integer period);
|
||||
|
@ -74,9 +49,6 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
* @param targetTableName 目标表 网体月表
|
||||
* @param sourceTableName 来源表 结算日表
|
||||
* @param period 期间
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/16 11:35
|
||||
*/
|
||||
void mergeCuMemberAchieveBySettleDate(@Param("targetTableName") String targetTableName,
|
||||
@Param("sourceTableName") String sourceTableName, @Param("period") Integer period);
|
||||
|
@ -87,9 +59,6 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
*
|
||||
* @param sourceTable 来源表,记录10天跟月表一摸一样的滚动表数据
|
||||
* @param targetTable 目标表 记录10天跟月表一摸一样的滚动表数据
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/10/31 16:26
|
||||
*/
|
||||
void updateCuMemberSettleAchieveByBeforeDay(@Param("sourceTable") String sourceTable, @Param("targetTable") String targetTable,
|
||||
@Param("flag") Integer flag);
|
||||
|
@ -100,9 +69,6 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
*
|
||||
* @param sourceTable 来源表,记录10天跟月表一摸一样的滚动表数据
|
||||
* @param targetTable 目标表 记录10天跟月表一摸一样的滚动表数据
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/10/31 16:26
|
||||
*/
|
||||
void updateCuMemberSettleAchieveDetailByBeforeDay(@Param("sourceTable") String sourceTable, @Param("targetTable") String targetTable,
|
||||
@Param("flag") Integer flag);
|
||||
|
@ -113,41 +79,26 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
*
|
||||
* @param sourceTable 来源表,记录10天跟月表一摸一样的滚动表数据
|
||||
* @param targetTable 目标表 记录10天跟月表一摸一样的滚动表数据
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/10/31 16:26
|
||||
*/
|
||||
void updateCuMemberSettleCountryDetailByBeforeDay(@Param("sourceTable") String sourceTable, @Param("targetTable") String targetTable);
|
||||
|
||||
/*
|
||||
* @description: 根据期间更新会员表复消剩余收益次数 复消剩余收益奖金
|
||||
* @author: sui q
|
||||
* @date: 2023/11/2 16:15
|
||||
* @param: null null
|
||||
* 根据期间更新会员表复消剩余收益次数 复消剩余收益奖金
|
||||
**/
|
||||
void mergeBackCuMemberReSaleDate(@Param("targetTable") String targetTable, @Param("period") Integer period);
|
||||
|
||||
/*
|
||||
* @description: 更新为最初始的数据,新增的为0,历史的通过昨天进行更新
|
||||
* @author: sui q
|
||||
* @date: 2023/8/11 14:57
|
||||
* @param: null null
|
||||
* 更新为最初始的数据,新增的为0,历史的通过昨天进行更新
|
||||
**/
|
||||
void updateCuMemberSettleInitAchieve(String targetTable);
|
||||
|
||||
/*
|
||||
* @description: 更新为最初始的数据,新增的为0,历史的通过昨天进行更新
|
||||
* @author: sui q
|
||||
* @date: 2023/8/11 14:57
|
||||
* @param: null null
|
||||
* 更新为最初始的数据,新增的为0,历史的通过昨天进行更新
|
||||
**/
|
||||
void updateCuMemberSettleDetailInitAchieve(String targetTable);
|
||||
|
||||
/*
|
||||
* @description: 更新为最初始的数据,新增的为0,历史的通过昨天进行更新
|
||||
* @author: sui q
|
||||
* @date: 2023/8/11 14:57
|
||||
* @param: null null
|
||||
* 更新为最初始的数据,新增的为0,历史的通过昨天进行更新
|
||||
**/
|
||||
void updateCuMemberCountryDetailInitAchieve(String targetTable);
|
||||
|
||||
|
@ -157,9 +108,6 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
* @param targetTable 结算表
|
||||
* @param period 期间
|
||||
* @param pkId 主键
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/11 13:42
|
||||
*/
|
||||
void updateCuMemberSettleAchieveBySpecialBus(@Param("targetTable") String targetTable, @Param("period") Integer period,
|
||||
@Param("pkId") Long pkId);
|
||||
|
@ -169,18 +117,12 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
*
|
||||
* @param memberAchieveParamList 会员业绩
|
||||
* @param tableName 更新的表,结算日的日表
|
||||
* @return: Boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/2 11:30
|
||||
*/
|
||||
Boolean updateCuMemberBackOldAchieveEveryDay(@Param("memberAchieveParamList") List<?> memberAchieveParamList,
|
||||
@Param("tableName") String tableName ,@Param("settleTableNameDetail") String settleTableNameDetail);
|
||||
@Param("tableName") String tableName, @Param("settleTableNameDetail") String settleTableNameDetail);
|
||||
|
||||
/*
|
||||
* @description: 退单回退业绩
|
||||
* @author: sui q
|
||||
* @date: 2023/9/22 9:27
|
||||
* @param: null null
|
||||
* 退单回退业绩
|
||||
**/
|
||||
void chargeBackSaOrder(@Param("targetTable") String targetTable, @Param("sourceTable") String sourceTable,
|
||||
@Param("period") Integer period, @Param("achieve") MemberAchieveParam memberAchieveParam);
|
||||
|
@ -190,27 +132,18 @@ public interface CuMemberAchieveMapper extends BaseMapper<CuMemberAchieve> {
|
|||
*
|
||||
* @param memberAchieveParamList 会员业绩
|
||||
* @param tableName 更新的表,结算日的日表
|
||||
* @return: Boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/2 11:30
|
||||
*/
|
||||
void updateCuMemberBackAchieveEveryDay(@Param("memberAchieveParamList") List<?> memberAchieveParamList, @Param("settleTableNameDetail") String settleTableNameDetail,
|
||||
@Param("tableName") String tableName);
|
||||
|
||||
/*
|
||||
* @description: 更新累计血缘业绩
|
||||
* @author: sui q
|
||||
* @date: 2023/10/10 15:16
|
||||
* @param: null null
|
||||
* 更新累计血缘业绩
|
||||
**/
|
||||
void updateCuMemberBloodAchieveEveryDate(@Param("memberAchieveParamList") List<?> memberAchieveParamList,
|
||||
@Param("tableName") String tableName);
|
||||
|
||||
/*
|
||||
* @description: 查询会员公司来源业绩
|
||||
* @author: sui q
|
||||
* @date: 2024/1/18 20:52
|
||||
* @param: null null
|
||||
* 查询会员公司来源业绩
|
||||
**/
|
||||
List<CuMemberSettleCountryExt> queryCuMemberSettleCountry(@Param("settleCountryTable")String settleCountryTable, @Param("bonusParam") BonusParam bonusParam);
|
||||
List<CuMemberSettleCountryExt> queryCuMemberSettleCountry(@Param("settleCountryTable") String settleCountryTable, @Param("bonusParam") BonusParam bonusParam);
|
||||
}
|
||||
|
|
|
@ -10,28 +10,17 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员结算期间 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-10-26
|
||||
*/
|
||||
public interface CuMemberSettlePeriodMapper extends BaseMapper<CuMemberSettlePeriod> {
|
||||
|
||||
/*
|
||||
* @description: 根据日期查询会员结算期间
|
||||
* @author: sui q
|
||||
* @date: 2023/7/27 19:21
|
||||
* @param: null null
|
||||
* 根据日期查询会员结算期间
|
||||
**/
|
||||
CuMemberSettlePeriodExt queryMemberSettlePeriod(@Param("pkCountry") Integer pkCountry, @Param("settleDate") Date settleDate);
|
||||
|
||||
/*
|
||||
* @description: 查询期间
|
||||
* @author: sui q
|
||||
* @date: 2023/7/29 15:44
|
||||
* @param: null null
|
||||
* 查询期间
|
||||
**/
|
||||
List<CuMemberSettlePeriodExt> queryMemberSettlePeriodByCondition(MemberPeriodParam memberPeriodParam);
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.hzs.bonus.achieve.mapper;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberTree;
|
||||
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||
import com.hzs.bonus.achieve.param.MemberParentCountParam;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
|
@ -262,13 +261,4 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
|
|||
*/
|
||||
void updateCuMemberSettleCountry(@Param("settleTableNameCountry") String settleTableName, @Param("cuMemberSettleCountryExtList") List<?> cuMemberTreeList);
|
||||
|
||||
/**
|
||||
* 查询会员直推业绩
|
||||
*
|
||||
* @param settleTableName
|
||||
* @param memberIds
|
||||
* @return
|
||||
*/
|
||||
List<MemberParentCountParam> queryByMemberParentSumPv(@Param("tableName") String settleTableName, @Param("memberIds") List<Long> memberIds);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
package com.hzs.bonus.achieve.param;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
@ -13,12 +9,7 @@ import java.io.Serializable;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员业绩记录
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-10-26
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
package com.hzs.bonus.achieve.param;/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2023/7/10 14:01
|
||||
* @Classname: MemberParentCountParam
|
||||
* @PackageName: com.hzs.member.achieve.param
|
||||
*/
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*@BelongsProject: hzs_cloud
|
||||
*@BelongsPackage: com.hzs.member.achieve.param
|
||||
*@Author: yh
|
||||
*@CreateTime: 2023-07-10 14:01
|
||||
*@Description: TODO
|
||||
*@Version: 1.0
|
||||
*/
|
||||
@Data
|
||||
public class MemberParentCountParam {
|
||||
|
||||
|
||||
/**
|
||||
* 会员主键
|
||||
*/
|
||||
private Long pkMember;
|
||||
|
||||
/**
|
||||
* 会员直推数量
|
||||
*/
|
||||
private Long parentMemberCount;
|
||||
|
||||
/**
|
||||
* 会员直推pv
|
||||
*/
|
||||
private BigDecimal parentMemberSumPv;
|
||||
}
|
|
@ -8,11 +8,7 @@ import java.io.Serializable;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 奖金期数
|
||||
* @Author: sui q
|
||||
* @Time: 2023/3/24 10:50
|
||||
* @Classname: MemberPeriodParam
|
||||
* @PackageName: com.hzs.member.achieve.param
|
||||
* 奖金期数
|
||||
*/
|
||||
@Data
|
||||
public class MemberPeriodParam implements Serializable {
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
package com.hzs.bonus.achieve.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 月度业绩
|
||||
* @author: sui q
|
||||
* @time: 2023/8/29 17:37
|
||||
* @classname: MonthAchieveParam
|
||||
* @package_name: com.hzs.member.achieve.param
|
||||
* version 1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class MonthAchieveParam implements Serializable {
|
||||
|
||||
private String month;
|
||||
|
||||
private String memberCode;
|
||||
|
||||
private String memberName;
|
||||
|
||||
private Long pkMember;
|
||||
|
||||
private Integer placeDept;
|
||||
|
||||
private Date startDate;
|
||||
|
||||
private Date endDate;
|
||||
|
||||
/**
|
||||
* 等级
|
||||
*/
|
||||
private Integer pk_grade;
|
||||
|
||||
/**
|
||||
* 真实奖衔
|
||||
*/
|
||||
private Integer pk_awards;
|
||||
}
|
|
@ -9,12 +9,7 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员结算期间 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-10-26
|
||||
*/
|
||||
public interface ICuMemberSettlePeriodService extends IService<CuMemberSettlePeriod> {
|
||||
|
||||
|
@ -22,53 +17,40 @@ public interface ICuMemberSettlePeriodService extends IService<CuMemberSettlePer
|
|||
|
||||
/**
|
||||
* 根据日期获得日期对应的期间
|
||||
*
|
||||
* @param date 日期 2023-02-02
|
||||
* @return: CuMemberSettlePeriod
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/2 13:32
|
||||
*/
|
||||
*/
|
||||
CuMemberSettlePeriod getCuMemberSettlePeriodByDate(String date);
|
||||
|
||||
/*
|
||||
* @description: 根据期间查询会员结算期间
|
||||
* @author: sui q
|
||||
* @date: 2024/2/25 10:20
|
||||
* @param: null null
|
||||
* 根据期间查询会员结算期间
|
||||
**/
|
||||
CuMemberSettlePeriod getCuMemberSettlePkPeriod(Integer pkPeriod);
|
||||
|
||||
/**
|
||||
* 根据日期获得日期对应的期间
|
||||
*
|
||||
* @param date 日期 2023-02-02
|
||||
* @return: CuMemberSettlePeriod
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/2 13:32
|
||||
*/
|
||||
CuMemberSettlePeriodExt getCuMemberSettlePeriod(Integer pkCountry, Date date);
|
||||
|
||||
/**
|
||||
* 根据国家查询奖金期数返回到前台
|
||||
* @return: List<CuMemberSettlePeriod>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/30 17:27
|
||||
*/
|
||||
List<CuMemberSettlePeriod> queryCuMemberSettlePeriod();
|
||||
|
||||
/**
|
||||
* 根据国家查询奖金期数返回到前台
|
||||
*
|
||||
* @param periodParam 查询参数
|
||||
* @return: List<CuMemberSettlePeriod>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/30 17:27
|
||||
*/
|
||||
*/
|
||||
List<CuMemberSettlePeriodExt> queryCuMemberSettlePeriod(MemberPeriodParam periodParam);
|
||||
|
||||
/**
|
||||
* 根据时间更新会员结算期间状态
|
||||
*
|
||||
* @param cuMemberSettlePeriodByDate 修改的期间
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/20 18:37
|
||||
*/
|
||||
*/
|
||||
void updateCuMemberSettlePeriodByDate(CuMemberSettlePeriodExt cuMemberSettlePeriodByDate);
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,8 +5,6 @@ import com.hzs.common.domain.member.achieve.CuMemberTree;
|
|||
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.param.MemberParentCountParam;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -186,15 +184,6 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
|
|||
*/
|
||||
void updateCuMemberSettle(String settleTableName, String settleTableNameDetail, String settleTableCountry, Map<Long, CuMemberSettleExt> cuMemberTreeMap);
|
||||
|
||||
/**
|
||||
* 查询会员直推业绩
|
||||
*
|
||||
* @param settleTableName
|
||||
* @param memberIds
|
||||
* @return
|
||||
*/
|
||||
List<MemberParentCountParam> queryByMemberParentSumPv(String settleTableName, List<Long> memberIds);
|
||||
|
||||
/**
|
||||
* 删除日表数据
|
||||
*
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.hzs.bonus.achieve.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodDetailService;
|
||||
|
@ -28,32 +29,20 @@ import java.time.temporal.ChronoUnit;
|
|||
import java.util.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员结算期间 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-10-26
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettlePeriodMapper, CuMemberSettlePeriod> implements ICuMemberSettlePeriodService {
|
||||
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodDetailService cuMemberSettlePeriodDetailService;
|
||||
private ICuMemberSettlePeriodDetailService iCuMemberSettlePeriodDetailService;
|
||||
|
||||
@DubboReference
|
||||
private ICountryServiceApi countryServiceApi;
|
||||
|
||||
ICountryServiceApi iCountryServiceApi;
|
||||
@DubboReference
|
||||
private ISystemConfigServiceApi systemConfigServiceApi;
|
||||
|
||||
@Autowired
|
||||
public void setRedisService(RedisService redisService) {
|
||||
this.redisService = redisService;
|
||||
}
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
|
||||
@Override
|
||||
public void initCuMemberPeriod(String settleDate) {
|
||||
|
@ -63,11 +52,11 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
packageSettleCountry(weekSettleCountry, daySettleCountry);
|
||||
List<CuMemberSettlePeriodDetail> cuMemberSettlePeriodDetailList = new ArrayList<>();
|
||||
Date startDate = DateUtils.parseStringToDate("2023-12-12");
|
||||
Date endDate = DateUtils.parseStringToDate(settleDate);
|
||||
Date endDate = DateUtils.parseStringToDate(settleDate);
|
||||
Map<String, CuMemberSettlePeriod> memberSettlePeriodMap = queryCuMemberSettlePeriod(startDate,
|
||||
endDate);
|
||||
List<String> periodList = new ArrayList<>();
|
||||
while (DateUtils.compareDate(endDate, startDate) >=0) {
|
||||
while (DateUtils.compareDate(endDate, startDate) >= 0) {
|
||||
if (daySettleCountry.size() > 0) {
|
||||
CuMemberSettlePeriod cuMemberSettlePeriod = memberSettlePeriodMap.get(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startDate));
|
||||
for (Integer pkCountry : daySettleCountry) {
|
||||
|
@ -112,8 +101,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
}
|
||||
startDate = DateUtils.afterDate(1, ChronoUnit.DAYS, startDate);
|
||||
}
|
||||
|
||||
cuMemberSettlePeriodDetailService.saveBatch(cuMemberSettlePeriodDetailList);
|
||||
iCuMemberSettlePeriodDetailService.saveBatch(cuMemberSettlePeriodDetailList);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -189,7 +177,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
}
|
||||
}
|
||||
}
|
||||
cuMemberSettlePeriodDetailService.saveBatch(cuMemberSettlePeriodDetailList);
|
||||
iCuMemberSettlePeriodDetailService.saveBatch(cuMemberSettlePeriodDetailList);
|
||||
cuMemberSettlePeriod = getCuMemberSettlePeriod(date);
|
||||
} else {
|
||||
return null;
|
||||
|
@ -205,9 +193,9 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
}
|
||||
|
||||
private void packageSettleCountry(List<Integer> weekSettleCountry, List<Integer> daySettleCountry) {
|
||||
Map<Integer, BdCountry> allCountryMap = countryServiceApi.getAllCountryMap().getData();
|
||||
Map<Integer, BdCountry> allCountryMap = iCountryServiceApi.getAllCountryMap().getData();
|
||||
for (Integer pkCountry : allCountryMap.keySet()) {
|
||||
String value = systemConfigServiceApi.getBonusSystemConfig(pkCountry, ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(pkCountry, ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
// 周结
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
weekSettleCountry.add(pkCountry);
|
||||
|
@ -223,21 +211,18 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
}
|
||||
|
||||
private CuMemberSettlePeriod getCuMemberSettlePeriod(String date) {
|
||||
QueryWrapper<CuMemberSettlePeriod> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("SETTLE_DATE", DateUtils.parseStringToDate(date));
|
||||
LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CuMemberSettlePeriod::getSettleDate, DateUtils.parseStringToDate(date));
|
||||
return baseMapper.selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 获取期间,开始时间到结束时间
|
||||
* @author: sui q
|
||||
* @date: 2023/7/29 9:43
|
||||
* @param: null null
|
||||
* 获取期间,开始时间到结束时间
|
||||
**/
|
||||
private Map<String, CuMemberSettlePeriod> queryCuMemberSettlePeriod(Date startDate, Date endDate) {
|
||||
QueryWrapper<CuMemberSettlePeriod> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.ge("SETTLE_DATE", startDate);
|
||||
queryWrapper.le("SETTLE_DATE", endDate);
|
||||
LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.ge(CuMemberSettlePeriod::getSettleDate, startDate);
|
||||
queryWrapper.le(CuMemberSettlePeriod::getSettleDate, endDate);
|
||||
List<CuMemberSettlePeriod> memberSettlePeriodList = baseMapper.selectList(queryWrapper);
|
||||
Map<String, CuMemberSettlePeriod> cuMemberSettlePeriodMap = new HashMap<>();
|
||||
memberSettlePeriodList.forEach(cuMemberSettlePeriod ->
|
||||
|
@ -247,9 +232,9 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
|
||||
@Override
|
||||
public List<CuMemberSettlePeriod> queryCuMemberSettlePeriod() {
|
||||
QueryWrapper<CuMemberSettlePeriod> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("PK_ID,SETTLE_DATE");
|
||||
queryWrapper.orderByDesc(SystemFieldConstants.PK_ID);
|
||||
LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(CuMemberSettlePeriod::getPkId, CuMemberSettlePeriod::getSettleDate);
|
||||
queryWrapper.orderByDesc(CuMemberSettlePeriod::getPkId);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
@ -260,10 +245,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
|
|||
|
||||
@Override
|
||||
public void updateCuMemberSettlePeriodByDate(CuMemberSettlePeriodExt cuMemberSettlePeriodByDate) {
|
||||
// baseMapper.updateById(cuMemberSettlePeriodByDate);
|
||||
cuMemberSettlePeriodDetailService.updateCuMemberSettlePeriodDetailByPeriod(cuMemberSettlePeriodByDate);
|
||||
// String key = CacheConstants.CU_MEMBER_SETTLE_PERIOD + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberSettlePeriodByDate.getSettleDate());
|
||||
// redisService.deleteObjectByKey(key);
|
||||
iCuMemberSettlePeriodDetailService.updateCuMemberSettlePeriodDetailByPeriod(cuMemberSettlePeriodByDate);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,6 @@ import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
|||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.bonus.achieve.mapper.CuMemberTreeMapper;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.param.MemberParentCountParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -32,32 +31,18 @@ import java.util.*;
|
|||
@Service
|
||||
public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuMemberTree> implements ICuMemberTreeService {
|
||||
|
||||
private ICuMemberAchieveService cuMemberAchieveService;
|
||||
|
||||
@Autowired
|
||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
|
||||
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
|
||||
}
|
||||
|
||||
private ICuMemberAchieveService iCuMemberAchieveService;
|
||||
@Autowired
|
||||
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
|
||||
this.cuMemberBonusSettle = cuMemberBonusSettle;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberAchieveService(ICuMemberAchieveService cuMemberAchieveService) {
|
||||
this.cuMemberAchieveService = cuMemberAchieveService;
|
||||
}
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void createCuMemberTree(String date) {
|
||||
// 创建日表记录表
|
||||
int period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||
String settleTableName = TableNameConstants.CU_MEMBER_SETTLE + period;
|
||||
Integer number = baseMapper.queryExistOracleTable(settleTableName);
|
||||
if (number == null || number <= 0) {
|
||||
|
@ -81,7 +66,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
number = baseMapper.queryExistOrderTableCount(settleTableName);
|
||||
if (number == null || number <= 0) {
|
||||
String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date);
|
||||
Integer yesterdayPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
String yesSettleTableName = TableNameConstants.CU_MEMBER_SETTLE_D + yesterdayPeriod;
|
||||
// 初始化日表数据,将cu_member数据插入到最新的日表记录表
|
||||
baseMapper.insertCuMemberSettleDetailByMember(settleTableName, yesSettleTableName);
|
||||
|
@ -96,29 +81,29 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
// 创建月表记录表
|
||||
// createMonthTreeTableName(date);
|
||||
// 创建月表业绩记录表
|
||||
// cuMemberAchieveService.createCuMemberAchieve(date);
|
||||
// iCuMemberAchieveService.createCuMemberAchieve(date);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initCuMemberTreeTable(String yesterdaySettleTableName, String currentSettleTableName, String yesterdayTableNameDetail, String currentTableNameDetail,
|
||||
Integer period, Integer endPeriod, String sourceCountryTable, String targetCountryTable) {
|
||||
// 更新所有值为0
|
||||
cuMemberAchieveService.updateCuMemberSettleInitAchieve(currentSettleTableName, currentTableNameDetail, targetCountryTable);
|
||||
iCuMemberAchieveService.updateCuMemberSettleInitAchieve(currentSettleTableName, currentTableNameDetail, targetCountryTable);
|
||||
// 初始化结算日的数据,将日期-1的数据作为当天的数据
|
||||
cuMemberAchieveService.updateCuMemberSettleAchieveByBeforeDay(yesterdaySettleTableName, currentSettleTableName, yesterdayTableNameDetail, currentTableNameDetail, endPeriod,
|
||||
iCuMemberAchieveService.updateCuMemberSettleAchieveByBeforeDay(yesterdaySettleTableName, currentSettleTableName, yesterdayTableNameDetail, currentTableNameDetail, endPeriod,
|
||||
sourceCountryTable, targetCountryTable);
|
||||
// 还原复销剩余次数 复销剩余奖金
|
||||
cuMemberAchieveService.mergeBackCuMemberReSaleDate(currentSettleTableName, period);
|
||||
iCuMemberAchieveService.mergeBackCuMemberReSaleDate(currentSettleTableName, period);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberSettle(Map<Long, MemberAchieveParam> cuMemberAchieveHashMap, String currentSettleTableName, String settleTableNameDetail) {
|
||||
cuMemberAchieveService.updateCuMemberAchieveEveryDay(cuMemberAchieveHashMap, currentSettleTableName, settleTableNameDetail);
|
||||
iCuMemberAchieveService.updateCuMemberAchieveEveryDay(cuMemberAchieveHashMap, currentSettleTableName, settleTableNameDetail);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberBackSettle(Map<Long, MemberAchieveParam> cuMemberAchieveHashMap, String currentSettleTableName, String settleTableNameDetail) {
|
||||
cuMemberAchieveService.updateCuMemberBackOldAchieveEveryDay(cuMemberAchieveHashMap, currentSettleTableName, settleTableNameDetail);
|
||||
iCuMemberAchieveService.updateCuMemberBackOldAchieveEveryDay(cuMemberAchieveHashMap, currentSettleTableName, settleTableNameDetail);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -326,11 +311,6 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MemberParentCountParam> queryByMemberParentSumPv(String settleTableName, List<Long> memberIds) {
|
||||
return baseMapper.queryByMemberParentSumPv(settleTableName, memberIds);
|
||||
}
|
||||
|
||||
private List<List<?>> setUpdCuMemberTreeLists(List<CuMemberSettleExt> cuMemberTreeList) {
|
||||
return cuMemberBonusSettle.handleCutList(cuMemberTreeList);
|
||||
}
|
||||
|
|
|
@ -14,12 +14,6 @@ import java.math.BigDecimal;
|
|||
|
||||
/**
|
||||
* 伞下奖衔VO
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/5/5 20:08
|
||||
* @Classname: CuMemberAwardsUnderVO
|
||||
* @Package_name: com.hzs.member.achieve.vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
@ -11,12 +11,6 @@ import java.math.BigDecimal;
|
|||
|
||||
/**
|
||||
* 月度新增业绩对比VO
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/5/11 16:18
|
||||
* @Classname: CuMemberMonthAchieveContrastVO
|
||||
* @Package_name: com.hzs.member.achieve.vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
@ -13,12 +13,6 @@ import java.util.Date;
|
|||
|
||||
/**
|
||||
* 会员新增业绩
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/5/5 14:12
|
||||
* @Classname: CuMemberNewAddAchieveVO
|
||||
* @Package_name: com.hzs.member.achieve.vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
@ -20,13 +20,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
*/
|
||||
List<Long> batchQueryCuMemberBonusSeq(Integer rowNum);
|
||||
|
||||
/**
|
||||
* 根据查询条件查询会员奖金
|
||||
*
|
||||
* @param bonusParam 查询条件
|
||||
*/
|
||||
List<CuMemberBonus> queryMemberBonusTotalByCondition(BonusParam bonusParam);
|
||||
|
||||
/**
|
||||
* 根据查询条件查询会员奖金
|
||||
*
|
||||
|
@ -62,13 +55,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
*/
|
||||
void batchInsertCuMemberBonus(@Param("cuMemberBonusList") List<?> cuMemberBonusList);
|
||||
|
||||
/**
|
||||
* 批量插入会员奖金主表
|
||||
*
|
||||
* @param cuMemberBonusList 会员奖金
|
||||
*/
|
||||
void insertOrUpdateCuMemberBonus(@Param("cuMemberBonusList") List<CuMemberBonus> cuMemberBonusList);
|
||||
|
||||
/**
|
||||
* 更新奖金状态
|
||||
*
|
||||
|
|
|
@ -8,28 +8,13 @@ import org.apache.ibatis.annotations.Param;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员奖金-分红奖金配置明细 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-07-03
|
||||
*/
|
||||
public interface CuMemberShareDetailMapper extends BaseMapper<CuMemberShareDetail> {
|
||||
|
||||
/*
|
||||
* @description: 更新分享明细
|
||||
* @author: sui q
|
||||
* @date: 2023/7/3 14:11
|
||||
* @param: null null
|
||||
* 更新分享明细
|
||||
**/
|
||||
void saveMemberShareBonus(@Param("cuMemberShareDetailList") List<CuMemberShareDetailExt> cuMemberShareDetailList);
|
||||
|
||||
/*
|
||||
* @description: 根据期间查询对应的奖衔 period当前月第一天
|
||||
* @author: sui q
|
||||
* @date: 2023/8/11 15:42
|
||||
* @param: null null
|
||||
**/
|
||||
List<CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period);
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import com.hzs.bonus.achieve.service.ICuMemberAchieveService;
|
|||
import com.hzs.bonus.achieve.service.ICuMemberMonthAchieveService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.bonus.service.IBonusGrantService;
|
||||
import com.hzs.bonus.bonus.service.IBonusSettleService;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
||||
import com.hzs.bonus.settle.IMemberSettleBonusApi;
|
||||
import com.hzs.common.core.domain.R;
|
||||
|
@ -30,17 +29,13 @@ import java.util.Map;
|
|||
public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberMonthAchieveService cuMemberMonthAchieveService;
|
||||
|
||||
private ICuMemberMonthAchieveService iCuMemberMonthAchieveService;
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
@Autowired
|
||||
private IBonusGrantService bonusGrantService;
|
||||
|
||||
private IBonusGrantService iBonusGrantService;
|
||||
@Autowired
|
||||
private ICuMemberAchieveService cuMemberAchieveService;
|
||||
|
||||
private ICuMemberAchieveService iCuMemberAchieveService;
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
|
||||
|
@ -68,31 +63,31 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
|||
log.info("奖金结算完成,结算时间:{}", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate));
|
||||
// 奖金结算
|
||||
try {
|
||||
cuMemberBonusService.autoCalculateBonus(settleDate, settleEndDate);
|
||||
iCuMemberBonusService.autoCalculateBonus(settleDate, settleEndDate);
|
||||
} catch (Exception e) {
|
||||
log.info("11111111", e);
|
||||
log.error("奖金结算异常,", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertCuMemberAchieveByEveryDay() {
|
||||
cuMemberMonthAchieveService.insertCuMemberAchieveByEveryDay(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||
iCuMemberMonthAchieveService.insertCuMemberAchieveByEveryDay(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autoPublishBonus() {
|
||||
bonusGrantService.publishBonusByPeriodEveryDay();
|
||||
iBonusGrantService.publishBonusByPeriodEveryDay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autoGrantBonus() {
|
||||
bonusGrantService.grantWithdrawBonusByPeriodEveryDay();
|
||||
iBonusGrantService.grantWithdrawBonusByPeriodEveryDay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean chargeBackSaOrder(SaOrder saOrder) {
|
||||
return cuMemberAchieveService.chargeBackSaOrder(saOrder);
|
||||
return iCuMemberAchieveService.chargeBackSaOrder(saOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,7 +5,6 @@ import com.hzs.common.core.web.page.TableDataInfo;
|
|||
import com.hzs.common.domain.member.bonus.CuMemberBonus;
|
||||
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
|
||||
import com.hzs.bonus.bonus.param.BonusParam;
|
||||
import com.hzs.bonus.bonus.vo.MemberBonusVO;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -24,13 +23,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
|
|||
*/
|
||||
List<Long> batchQueryCuMemberBonusSeq(Integer rowNum);
|
||||
|
||||
/**
|
||||
* 根据查询条件查询每日奖金汇总
|
||||
*
|
||||
* @param bonusParam 查询条件
|
||||
*/
|
||||
List<MemberBonusVO> queryMemberBonusTotalVoByCondition(BonusParam bonusParam);
|
||||
|
||||
/**
|
||||
* 根据查询条件查询会员奖金
|
||||
*
|
||||
|
@ -94,26 +86,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
|
|||
*/
|
||||
void batchInsertCuMemberBonus(List<CuMemberBonus> cuMemberBonusList);
|
||||
|
||||
/**
|
||||
* 批量插入会员奖金主表
|
||||
*
|
||||
* @param cuMemberBonusList 会员奖金
|
||||
*/
|
||||
void insertOrUpdateCuMemberBonus(List<CuMemberBonus> cuMemberBonusList);
|
||||
|
||||
/*
|
||||
* 查询会员奖金
|
||||
**/
|
||||
List<CuMemberBonus> queryCuMemberBonus(int period, List<CuMemberBonus> cuMemberBonusList);
|
||||
|
||||
/**
|
||||
* 根据国家、期间查询存在首购奖金的会员
|
||||
*
|
||||
* @param period 期间
|
||||
* @param pkCountryList 国家
|
||||
*/
|
||||
List<CuMemberBonus> queryExistsPurchaseBonusMember(Integer period, List<Integer> pkCountryList);
|
||||
|
||||
/**
|
||||
* 更新奖金状态
|
||||
*
|
||||
|
|
|
@ -5,32 +5,15 @@ import com.hzs.common.domain.member.bonus.CuMemberShareDetail;
|
|||
import com.hzs.common.domain.member.ext.CuMemberShareDetailExt;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员奖金-分红奖金配置明细 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-07-03
|
||||
*/
|
||||
public interface ICuMemberShareDetailService extends IService<CuMemberShareDetail> {
|
||||
|
||||
/*
|
||||
* @description: 更新分享明细
|
||||
* @author: sui q
|
||||
* @date: 2023/7/3 14:11
|
||||
* @param: null null
|
||||
* 更新分享明细
|
||||
**/
|
||||
void saveMemberShareBonus(List<CuMemberShareDetailExt> cuMemberShareDetailList);
|
||||
|
||||
/*
|
||||
* @description: 根据期间查询奖衔设置的分红配置
|
||||
* key 国家+奖衔 明细
|
||||
* @author: sui q
|
||||
* @date: 2023/8/11 15:35
|
||||
* @param: null null
|
||||
**/
|
||||
Map<String, CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period);
|
||||
}
|
||||
|
|
|
@ -4,13 +4,11 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberShareDetailService;
|
||||
import com.hzs.common.core.constant.*;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.domain.bonus.BdBonusDeduct;
|
||||
import com.hzs.common.domain.bonus.BdBonusService;
|
||||
import com.hzs.common.domain.bonus.risk.CuMemberRiskControl;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
|
||||
import com.hzs.common.domain.member.base.CuAwardsControl;
|
||||
|
@ -19,13 +17,10 @@ import com.hzs.common.domain.member.ext.CuMemberSettleCountryExt;
|
|||
import com.hzs.common.domain.member.ext.CuMemberSettleDetailExt;
|
||||
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||
import com.hzs.system.config.IGradeServiceApi;
|
||||
import com.hzs.system.config.dto.*;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -33,38 +28,27 @@ import org.springframework.stereotype.Component;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 计算首购的奖金处理类
|
||||
* @Author: sui q
|
||||
* @Time: 2022/11/15 10:08
|
||||
* @Classname: BonusSettleComponent
|
||||
* @PackageName: com.hzs.member.achieve.service.impl
|
||||
* 计算首购的奖金处理类
|
||||
*/
|
||||
@Component
|
||||
public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
||||
|
||||
@DubboReference
|
||||
private IGradeServiceApi gradeServiceApi;
|
||||
|
||||
@DubboReference
|
||||
private ISystemConfigServiceApi systemConfigServiceApi;
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
|
||||
/**
|
||||
* 计算直推奖
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @param bonusConfigDTO 参数
|
||||
* @param firPurchaseOrderList 首单
|
||||
* @Description: 计算直推奖
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 14:17
|
||||
*/
|
||||
List<CuMemberBonusPush> calculateRecommendBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleTableNameDetail, BonusConfigDTO bonusConfigDTO,
|
||||
List<SaOrderExt> firPurchaseOrderList, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, CuMemberRiskControl> riskControlMap) {
|
||||
|
@ -87,10 +71,6 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
|
||||
/**
|
||||
* 计算某条订单的推荐奖金
|
||||
*
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/4 13:57
|
||||
*/
|
||||
CuMemberBonusPush calculatePushBonusOne(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||
SaOrderExt saOrderExt, Map<Long, CuMemberRiskControl> riskControlMap) {
|
||||
|
@ -172,19 +152,17 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 计算拓展收益
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @param period 期间
|
||||
* @param bonusConfigDTO 参数
|
||||
* @param firPurchaseOrderList 首单
|
||||
* @param cuMemberBonusMap 所有计算出来的奖金汇总
|
||||
* @Description: 计算拓展收益
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 14:17
|
||||
*/
|
||||
List<CuMemberBonusExpand> calculateExpandBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleDate, String settleTableName, String settleTableNameDetail, BonusConfigDTO bonusConfigDTO,
|
||||
List<SaOrderExt> firPurchaseOrderList, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, CuMemberRiskControl> riskControlMap) {
|
||||
Map<String, String> systemConfigMap = systemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||
// 根据开始期间、结束期间查询
|
||||
List<CuMemberBonusExpand> cuMemberBonusExpandList = new ArrayList<>();
|
||||
|
@ -216,16 +194,13 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
private Map<Long, CuMemberBonus> getWeekMemberBonusMap(String settleDate, Integer period) {
|
||||
// 根据结算日期获取周期的期间,用于海外
|
||||
String recentlyMonday = DateUtils.getRecentlyTuesday(settleDate);
|
||||
CuMemberSettlePeriod startMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(recentlyMonday);
|
||||
CuMemberSettlePeriod startMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(recentlyMonday);
|
||||
// 查询封顶周期是周的国家的所有人的拓展收益、复购拓展收益
|
||||
return cuMemberBonusService.queryWeekMemberBonus(startMemberSettlePeriod.getPkId(), period);
|
||||
return iCuMemberBonusService.queryWeekMemberBonus(startMemberSettlePeriod.getPkId(), period);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: 计算量奖
|
||||
* @return: List<CuMemberBonusExpand>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/4 14:18
|
||||
* 计算量奖
|
||||
*/
|
||||
List<CuMemberBonusExpand> calculateExpandBonusOne(Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberBonus> weekMemberBonusMap, Map<String, String> systemConfigMap, int touchNum, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO,
|
||||
Integer period, String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, List<CuMemberSettleExt> cuMemberSettleExtList, SaOrderExt saOrderExt) {
|
||||
|
@ -243,11 +218,11 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
continue;
|
||||
}
|
||||
List<CuMemberSettleDetailExt> cuMemberSettleDetailExtList = targetMemberSettleExt.getCuMemberSettleDetailExtList();
|
||||
if(CollectionUtil.isNotEmpty(cuMemberSettleDetailExtList)){
|
||||
if (CollectionUtil.isNotEmpty(cuMemberSettleDetailExtList)) {
|
||||
Map<Integer, CuMemberSettleDetailExt> cuMemberSettleDetailExtMap = new HashMap<>();
|
||||
targetMemberSettleExt.getCuMemberSettleDetailExtList().forEach(cuMemberSettleDetailExt ->
|
||||
cuMemberSettleDetailExtMap.put(cuMemberSettleDetailExt.getPlaceDept(), cuMemberSettleDetailExt));
|
||||
if(cuMemberSettleDetailExtMap.containsKey(sourceMemberSettleExt.getPlaceDept())){
|
||||
if (cuMemberSettleDetailExtMap.containsKey(sourceMemberSettleExt.getPlaceDept())) {
|
||||
CuMemberSettleDetailExt cuMemberSettleDetailExt = cuMemberSettleDetailExtMap.get(sourceMemberSettleExt.getPlaceDept());
|
||||
// 计算业绩
|
||||
BdGrade bdGrade = gradeMap.get(targetMemberSettleExt.getPkSettleCountry().toString() + "_" + targetMemberSettleExt.getPkGrade());
|
||||
|
@ -259,7 +234,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
cuMemberSettleDetailExt.setNewPv(ComputeUtil.computeAdd(cuMemberSettleDetailExt.getNewPv(), ComputeUtil.computeBonusMultiply(saOrderExt.getOrderAchieve(), cuMemberRiskControl.getAchieveRatio())));
|
||||
cuMemberSettleDetailExt.setABalance(ComputeUtil.computeAdd(cuMemberSettleDetailExt.getABalance(), ComputeUtil.computeBonusMultiply(saOrderExt.getOrderAchieve(), cuMemberRiskControl.getAchieveRatio())));
|
||||
cuMemberSettleDetailExt.setBBalance(ComputeUtil.computeAdd(cuMemberSettleDetailExt.getBBalance(), ComputeUtil.computeBonusMultiply(saOrderExt.getOrderAchieve(), cuMemberRiskControl.getAchieveRatio())));
|
||||
}else{
|
||||
} else {
|
||||
cuMemberSettleDetailExt.setNewAmount(ComputeUtil.computeAdd(cuMemberSettleDetailExt.getNewAmount(), convertLocalCurrency(saOrderExt, bonusConfigDTO)));
|
||||
cuMemberSettleDetailExt.setNewPv(ComputeUtil.computeAdd(cuMemberSettleDetailExt.getNewPv(), saOrderExt.getOrderAchieve()));
|
||||
cuMemberSettleDetailExt.setABalance(ComputeUtil.computeAdd(cuMemberSettleDetailExt.getABalance(), saOrderExt.getOrderAchieve()));
|
||||
|
@ -291,26 +266,26 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
cuMemberSettleDetailExt.setBBalance(ComputeUtil.computeSubtract(cuMemberSettleDetailExt.getBBalance(), bdGrade.getTouchPv()));
|
||||
rightCuMemberSettleExt.setABalance(ComputeUtil.computeSubtract(rightCuMemberSettleExt.getABalance(), bdGrade.getTouchPv()));
|
||||
calculateExpandBonusByTouch(riskControlMap, weekMemberBonusMap, systemConfigMap, bonusConfigDTO, settleDate, saOrderExt, cuMemberBonusExpandList, sourceMemberSettleExt, bdGrade, targetMemberSettleExt, cuMemberBonus, touchNum, rightCuMemberSettleExt);
|
||||
touchNum ++;
|
||||
touchNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 处理各个国家的业绩组成
|
||||
List<CuMemberSettleCountryExt> cuMemberSettleCountryExtList = targetMemberSettleExt.getCuMemberSettleCountryExtList();
|
||||
if(CollectionUtil.isEmpty(cuMemberSettleCountryExtList)){
|
||||
if (CollectionUtil.isEmpty(cuMemberSettleCountryExtList)) {
|
||||
cuMemberSettleCountryExtList = new ArrayList<>();
|
||||
packageCuMemberSettleCountry(saOrderExt, sourceMemberSettleExt, cuMemberSettleCountryExtList, bonusConfigDTO);
|
||||
}else{
|
||||
} else {
|
||||
Map<String, CuMemberSettleCountryExt> cuMemberSettleCountryExtHashMap = new HashMap<>();
|
||||
cuMemberSettleCountryExtList.forEach(cuMemberSettleCountryExt ->
|
||||
cuMemberSettleCountryExtHashMap.put(cuMemberSettleCountryExt.getPlaceDept() + "_" + cuMemberSettleCountryExt.getPkCountry(), cuMemberSettleCountryExt));
|
||||
String key = sourceMemberSettleExt.getPlaceDept() + "_" + saOrderExt.getPkCountry();
|
||||
if(cuMemberSettleCountryExtHashMap.containsKey(key)) {
|
||||
if (cuMemberSettleCountryExtHashMap.containsKey(key)) {
|
||||
CuMemberSettleCountryExt cuMemberSettleCountryExt = cuMemberSettleCountryExtHashMap.get(key);
|
||||
cuMemberSettleCountryExt.setNewAmount(ComputeUtil.computeAdd(cuMemberSettleCountryExt.getNewAmount(), convertLocalCurrency(saOrderExt, bonusConfigDTO)));
|
||||
cuMemberSettleCountryExt.setNewPv(ComputeUtil.computeAdd(cuMemberSettleCountryExt.getNewPv(), saOrderExt.getOrderAchieve()));
|
||||
}else{
|
||||
} else {
|
||||
packageCuMemberSettleCountry(saOrderExt, sourceMemberSettleExt, cuMemberSettleCountryExtList, bonusConfigDTO);
|
||||
}
|
||||
}
|
||||
|
@ -338,8 +313,8 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
BigDecimal weekExpandIncome = BigDecimal.ZERO;
|
||||
if (systemConfigMap.containsKey(targetMemberSettleExt.getPkSettleCountry().toString() + ESystemConfig.EXPAND_CAP_METHOD.getKey())) {
|
||||
String expandCapMethod = systemConfigMap.get(targetMemberSettleExt.getPkSettleCountry() + ESystemConfig.EXPAND_CAP_METHOD.getKey());
|
||||
if(Objects.equals(expandCapMethod, Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue())) &&
|
||||
weekMemberBonusMap.containsKey(targetMemberSettleExt.getPkMember())){
|
||||
if (Objects.equals(expandCapMethod, Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue())) &&
|
||||
weekMemberBonusMap.containsKey(targetMemberSettleExt.getPkMember())) {
|
||||
weekExpandIncome = weekMemberBonusMap.get(targetMemberSettleExt.getPkMember()).getExpandIncome();
|
||||
}
|
||||
}
|
||||
|
@ -359,7 +334,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
cuMemberBonusExpand.setPretaxIncome(bdGrade.getTouchBonus());
|
||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(rightCuMemberSettleExt.getExpandCapping(), weekExpandIncome), bdGrade.getExpandCapping())) {
|
||||
cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.FIRE_BURN.getValue());
|
||||
expandIncome = ComputeUtil.computeSubtract(bdGrade.getExpandCapping(), weekExpandIncome);
|
||||
expandIncome = ComputeUtil.computeSubtract(bdGrade.getExpandCapping(), weekExpandIncome);
|
||||
touchBonus = BigDecimal.ZERO;
|
||||
} else if (ComputeUtil.compareGreaterThan(expandIncome, bdGrade.getExpandCapping())) {
|
||||
BigDecimal realIncome = ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(bdGrade.getExpandCapping(), weekExpandIncome), cuMemberBonus.getExpandIncome());
|
||||
|
@ -396,16 +371,14 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 计算见点收益
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @param period 期间
|
||||
* @param settleDate 结算日期
|
||||
* @param bonusConfigDTO 参数
|
||||
* @param firPurchaseOrderList 订单列表
|
||||
* @param cuMemberBonusMap 所有计算出来的奖金汇总
|
||||
* @Description: 计算见点收益
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 14:17
|
||||
*/
|
||||
List<CuMemberBonusCoach> calculateSeePointBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleTableNameDetail, String settleDate, BonusConfigDTO bonusConfigDTO,
|
||||
List<SaOrderExt> firPurchaseOrderList, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, CuMemberRiskControl> riskControlMap) {
|
||||
|
@ -435,10 +408,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 计算领导奖
|
||||
* @return: List<CuMemberBonusCoach>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/8 17:16
|
||||
* 计算领导奖
|
||||
*/
|
||||
private List<CuMemberBonusCoach> calculateBonusSeePoint(Map<Long, CuMemberSettleExt> totalSettleExtMap, Map<String, CuMemberSettleExt> cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO, String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||
SaOrderExt saOrderExt, Map<Long, CuMemberRiskControl> riskControlMap) {
|
||||
|
@ -446,14 +416,13 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
CuMemberSettleExt sourceMemberSettleExt = totalSettleExtMap.get(saOrderExt.getPkMember());
|
||||
String targetKey = sourceMemberSettleExt.getPkPlaceParent() + "_" + sourceMemberSettleExt.getPlaceDept();
|
||||
List<BdGrade> gradeList = bonusConfigDTO.getSeePointGradeMap().get(sourceMemberSettleExt.getPkSettleCountry());
|
||||
if(CollectionUtil.isEmpty(gradeList)){
|
||||
if (CollectionUtil.isEmpty(gradeList)) {
|
||||
return backMemberBonusCoachList;
|
||||
}
|
||||
Map<String, BdGrade> gradeMap = new LinkedHashMap<>();
|
||||
for (BdGrade bdGrade : gradeList) {
|
||||
gradeMap.put(bdGrade.getPkCountry().toString() + "_" + bdGrade.getPkId(), bdGrade);
|
||||
}
|
||||
// Long pkParent = sourceMemberSettleExt.getPkParent();
|
||||
int coachGeneration = 0;
|
||||
int beforeAlgebra = 0;
|
||||
for (String key : gradeMap.keySet()) {
|
||||
|
@ -467,10 +436,9 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
break;
|
||||
}
|
||||
targetKey = targetMemberSettleExt.getPkPlaceParent() + "_" + targetMemberSettleExt.getPlaceDept();
|
||||
// pkParent = targetMemberSettleExt.getPkParent();
|
||||
// 验证会员是否有奖金,判断有效期是否大于结算日期
|
||||
if (ECategory.NORMAL.getValue() != targetMemberSettleExt.getCategory()
|
||||
||validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.SEE_POINT_INCOME.getValue())
|
||||
|| validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.SEE_POINT_INCOME.getValue())
|
||||
|| targetMemberSettleExt.getGradeValue() < bdGrade.getGradeValue()) {
|
||||
continue;
|
||||
}
|
||||
|
@ -479,7 +447,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, saOrderExt, targetMemberSettleExt);
|
||||
// 判断会员状态
|
||||
CuMemberBonusCoach cuMemberBonusCoach = getCuMemberBonusSeePoint(bonusConfigDTO, saOrderExt, coachGeneration, targetMemberSettleExt, bdGrade.getSeePointRatio());
|
||||
if(validateExistBonus(targetMemberSettleExt, settleDate)){
|
||||
if (validateExistBonus(targetMemberSettleExt, settleDate)) {
|
||||
cuMemberBonusCoach.setIncomeStatus(EBonusIncomeStatus.FIRE_BURN.getValue());
|
||||
}
|
||||
if (riskControlMap.containsKey(cuMemberBonus.getPkMember())) {
|
||||
|
@ -500,7 +468,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
backMemberBonusCoachList.add(cuMemberBonusCoach);
|
||||
}
|
||||
if(bdGrade.getAlgebra() > beforeAlgebra) {
|
||||
if (bdGrade.getAlgebra() > beforeAlgebra) {
|
||||
beforeAlgebra = bdGrade.getAlgebra();
|
||||
}
|
||||
if (flag) {
|
||||
|
@ -511,6 +479,8 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 计算辅导收益
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @param period 期间
|
||||
* @param settleDateStr 结算日期
|
||||
|
@ -518,10 +488,6 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
* @param firPurchaseOrderList 订单列表
|
||||
* @param cuMemberBonusExpandList 量奖明细
|
||||
* @param cuMemberBonusMap 所有计算出来的奖金汇总
|
||||
* @Description: 计算辅导收益
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 14:17
|
||||
*/
|
||||
List<CuMemberBonusCoach> calculateCoachBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleTableNameDetail, String settleDateStr, BonusConfigDTO bonusConfigDTO,
|
||||
List<SaOrderExt> firPurchaseOrderList, List<CuMemberBonusExpand> cuMemberBonusExpandList, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||
|
@ -533,10 +499,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 计算领导奖
|
||||
* @return: List<CuMemberBonusCoach>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/8 17:16
|
||||
* 计算领导奖
|
||||
*/
|
||||
List<CuMemberBonusCoach> calculateCoachBonusOne(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleTableNameDetail, 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) {
|
||||
|
@ -560,10 +523,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 计算领导奖
|
||||
* @return: List<CuMemberBonusCoach>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/8 17:16
|
||||
* 计算领导奖
|
||||
*/
|
||||
private List<CuMemberBonusCoach> calculateBonusCoach(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleDate, BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, SaOrderExt> saOrderExtMap, Map<Long, CuMemberSettleExt> bonusIdSettleMap,
|
||||
CuMemberBonusExpand cuMemberBonusExpand, Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuMemberRiskControl> riskControlMap) {
|
||||
|
@ -618,7 +578,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach);
|
||||
}
|
||||
backMemberBonusCoachList.add(cuMemberBonusCoach);
|
||||
}else {
|
||||
} else {
|
||||
coachGeneration--;
|
||||
}
|
||||
}
|
||||
|
@ -626,14 +586,12 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 计算领袖收益 自己新增大区pv * 领袖奖比例 * 自己小区之和/ 其他组内所有成员小区之和
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @param period 期间
|
||||
* @param bonusConfigDTO 参数
|
||||
* @param cuMemberBonusMap 所有计算出来的奖金汇总
|
||||
* @Description: 计算领袖收益 自己新增大区pv * 领袖奖比例 * 自己小区之和/ 其他组内所有成员小区之和
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 14:17
|
||||
*/
|
||||
List<CuMemberBonusDetail> calculateLeaderBonus(String settleTableName, String settleTableNameDetail, String settleDate, BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, CuMemberRiskControl> riskControlMap) {
|
||||
List<CuMemberSettleExt> cuMemberSettleExtList = cuMemberTreeService.queryEnoughLeaderCuMemberSettle(settleTableName, settleTableNameDetail);
|
||||
|
@ -646,7 +604,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
// 获取伞下
|
||||
// Map<Long, List<CuMemberSettleExt>> placeParentMemberSettleMap = new HashMap<>();
|
||||
for (CuMemberSettleExt cuMemberSettleExt : cuMemberSettleExtList) {
|
||||
if(ComputeUtil.compareValue(cuMemberSettleExt.getAbonusRatio())){
|
||||
if (ComputeUtil.compareValue(cuMemberSettleExt.getAbonusRatio())) {
|
||||
if (memberSettleMap.containsKey(cuMemberSettleExt.getAbonusRatio())) {
|
||||
memberSettleMap.get(cuMemberSettleExt.getAbonusRatio()).add(cuMemberSettleExt);
|
||||
} else {
|
||||
|
@ -672,7 +630,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
BigDecimal bigAreaPv = BigDecimal.ZERO;
|
||||
BigDecimal smallAreaPv = BigDecimal.ZERO;
|
||||
List<CuMemberSettleDetailExt> cuMemberSettleDetailExtList = cuMemberSettleExt.getCuMemberSettleDetailExtList();
|
||||
if(CollectionUtil.isNotEmpty(cuMemberSettleDetailExtList)) {
|
||||
if (CollectionUtil.isNotEmpty(cuMemberSettleDetailExtList)) {
|
||||
for (int i = 1; i < cuMemberSettleDetailExtList.size(); i++) {
|
||||
CuMemberSettleDetailExt cuMemberSettleDetailExt = cuMemberSettleDetailExtList.get(i);
|
||||
BigDecimal addNewPv = cuMemberSettleDetailExt.getMonNewPv();
|
||||
|
@ -831,12 +789,10 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 处理拓展表备注
|
||||
*
|
||||
* @param backMemberBonusCoachList 临时记录辅导奖列表
|
||||
* @param i 第几代
|
||||
* @Description: 处理拓展表备注
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 18:02
|
||||
*/
|
||||
private List<CuMemberBonusCoach> handleCoachRemark(List<CuMemberBonusCoach> backMemberBonusCoachList, int i) {
|
||||
List<CuMemberBonusCoach> cuMemberBonusCoachList = new ArrayList<>();
|
||||
|
|
|
@ -2,10 +2,7 @@ package com.hzs.bonus.bonus.service.impl;
|
|||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAssessService;
|
||||
import com.hzs.common.core.constant.BonusFieldConstants;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.constant.msg.BonusMsgConstants;
|
||||
|
@ -21,16 +18,11 @@ import com.hzs.common.domain.member.ext.CuMemberSettleDetailExt;
|
|||
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderBonus;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.config.IBonusItemsServiceApi;
|
||||
import com.hzs.system.config.dto.BonusConfigDTO;
|
||||
import com.hzs.system.config.dto.BonusExpandDTO;
|
||||
import com.hzs.system.config.dto.RangeDTO;
|
||||
import com.hzs.system.sys.dto.BdCurrencyDTO;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
|
@ -40,88 +32,24 @@ import org.springframework.stereotype.Component;
|
|||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: sui q
|
||||
* @Time: 2022/11/16 11:24
|
||||
* @Classname: BonusSettleHandle
|
||||
* @PackageName: com.hzs.member.achieve.service.impl
|
||||
*/
|
||||
@Component
|
||||
public abstract class BonusSettleHandle {
|
||||
|
||||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
|
||||
protected ICuMemberTreeService cuMemberTreeService;
|
||||
|
||||
@DubboReference
|
||||
protected ISaOrderServiceApi saOrderServiceApi;
|
||||
|
||||
@DubboReference
|
||||
protected IBonusItemsServiceApi bonusItemsServiceApi;
|
||||
|
||||
@DubboReference
|
||||
private ICurrencyServiceApi currencyServiceApi;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) {
|
||||
this.cuMemberTreeService = cuMemberTreeService;
|
||||
}
|
||||
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
|
||||
private ICuMemberAssessService cuMemberAssessService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberService cuMemberService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberAssessService(ICuMemberAssessService cuMemberAssessService) {
|
||||
this.cuMemberAssessService = cuMemberAssessService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
|
||||
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
|
||||
}
|
||||
|
||||
public ICuMemberSettlePeriodService getCuMemberSettlePeriodService() {
|
||||
return cuMemberSettlePeriodService;
|
||||
}
|
||||
|
||||
public ICuMemberAssessService getCuMemberAssessService() {
|
||||
return cuMemberAssessService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取奖衔对应的辅导奖配置
|
||||
*
|
||||
* @param bonusConfigDTO 奖金参数汇总
|
||||
* @param memberSettleExt 会员
|
||||
* @Description: 获取等级对应的拓展奖配置
|
||||
* @return: BdGrade
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/16 11:24
|
||||
*/
|
||||
protected BdGrade getGradeExpand(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt) {
|
||||
return bonusConfigDTO.getGradeMap().get(memberSettleExt.getPkSettleCountry().toString() + "_" + memberSettleExt.getPkGrade());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bonusConfigDTO 奖金参数汇总
|
||||
* @param memberSettleExt 会员
|
||||
* @Description: 获取主任奖衔值对应的辅导奖配置
|
||||
* @return: BdAwards
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 10:13
|
||||
*/
|
||||
protected BdAwards getDirectorAwardsCouch(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt) {
|
||||
return bonusConfigDTO.getAwardsValueMap().get(memberSettleExt.getPkSettleCountry().toString() + ERangeType.AWARDS.getValue() + EAwards.HEADER.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bonusConfigDTO 奖金参数汇总
|
||||
* @param memberSettleExt 会员
|
||||
* @Description: 获取奖衔对应的辅导奖配置
|
||||
* @return: BdAwards
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 10:13
|
||||
*/
|
||||
protected BdAwards getAwardsCouch(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt, Map<Long, CuAwardsControl> cuAwardsControlMap) {
|
||||
Integer pkAwards = getPkRealAwards(memberSettleExt.getPkMember(), memberSettleExt.getPkAwards(), cuAwardsControlMap);
|
||||
|
@ -140,44 +68,6 @@ public abstract class BonusSettleHandle {
|
|||
return pkAwards;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bonusConfigDTO 奖金配置汇总
|
||||
* @param memberSettleExt 会员
|
||||
* @param endTouch 4-n的次数
|
||||
* @param bdGrade 等级
|
||||
* @Description: 获得国家对应的4-n参数比例
|
||||
* @return: BigDecimal
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/16 11:27
|
||||
*/
|
||||
protected BigDecimal getCountryExpand(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt, Integer endTouch, BdGrade bdGrade) {
|
||||
BonusExpandDTO bonusExpand = bonusConfigDTO.getBonusExpandMap().get(memberSettleExt.getPkSettleCountry());
|
||||
BigDecimal countryExpandRatio = ComputeUtil.computeDivide(bonusExpand.getExpandRatio(), BigDecimal.valueOf(endTouch));
|
||||
if (ComputeUtil.compareValue(countryExpandRatio, bdGrade.getExpandRatio())) {
|
||||
return bdGrade.getExpandRatio();
|
||||
}
|
||||
return countryExpandRatio;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bonusConfigDTO 奖金配置汇总
|
||||
* @param memberSettleExt 会员
|
||||
* @param endTouch 4-n的次数
|
||||
* @param bdGrade 等级
|
||||
* @Description: 获得国家对应的4-n参数比例
|
||||
* @return: BigDecimal
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/16 11:27
|
||||
*/
|
||||
protected BigDecimal getCountryRepurchaseExpand(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt, Integer endTouch, BdGrade bdGrade) {
|
||||
BonusExpandDTO bonusExpand = bonusConfigDTO.getBonusExpandMap().get(memberSettleExt.getPkSettleCountry());
|
||||
BigDecimal countryExpandRatio = ComputeUtil.computeDivide(bonusExpand.getExpandRatio(), BigDecimal.valueOf(endTouch));
|
||||
if (ComputeUtil.compareValue(countryExpandRatio, bdGrade.getRepurchaseRatio())) {
|
||||
return bdGrade.getRepurchaseRatio();
|
||||
}
|
||||
return countryExpandRatio;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得奖项主键,验证该国是否有该奖项
|
||||
*
|
||||
|
@ -238,12 +128,10 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 记录需要修改的会员结算表数据, 安置的
|
||||
*
|
||||
* @param cuMemberSettleExtMap 会员结算
|
||||
* @param cuMemberSettleExtList 查询出来的结算数据
|
||||
* @Description: 记录需要修改的会员结算表数据, 安置的
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/15 9:52
|
||||
*/
|
||||
protected void getMemberSettle(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, List<CuMemberSettleExt> cuMemberSettleExtList) {
|
||||
cuMemberSettleExtList.forEach(cuMemberSettleExt -> {
|
||||
|
@ -273,7 +161,7 @@ public abstract class BonusSettleHandle {
|
|||
if (memberSettleExt.getCustomerType() == null) {
|
||||
memberSettleExt.setCustomerType(cuMemberSettleExt.getCustomerType());
|
||||
}
|
||||
if(memberSettleExt.getSumPv() == null){
|
||||
if (memberSettleExt.getSumPv() == null) {
|
||||
memberSettleExt.setSumPv(cuMemberSettleExt.getSumPv());
|
||||
}
|
||||
} else {
|
||||
|
@ -282,7 +170,7 @@ public abstract class BonusSettleHandle {
|
|||
cuMemberSettleExt.setRegisterBloPv(BigDecimal.ZERO);
|
||||
cuMemberSettleExt.setRegisterBloNewPv(BigDecimal.ZERO);
|
||||
cuMemberSettleExt.setBigAreaDept(EPlaceDept.ZERO_DEPT.getValue());
|
||||
if(CollectionUtil.isNotEmpty(cuMemberSettleExt.getCuMemberSettleDetailExtList())){
|
||||
if (CollectionUtil.isNotEmpty(cuMemberSettleExt.getCuMemberSettleDetailExtList())) {
|
||||
for (CuMemberSettleDetailExt cuMemberSettleDetailExt : cuMemberSettleExt.getCuMemberSettleDetailExtList()) {
|
||||
cuMemberSettleDetailExt.setNewPv(BigDecimal.ZERO);
|
||||
cuMemberSettleDetailExt.setNewAmount(BigDecimal.ZERO);
|
||||
|
@ -295,13 +183,11 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 直推收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusPush 直推奖
|
||||
* @param cuMemberSettleExtMap 存储会员网体的map
|
||||
* @Description: 获得 直推收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void recommendRemark(SaOrderExt saOrderExt, CuMemberBonusPush cuMemberBonusPush, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap) {
|
||||
CuMemberSettleExt sourceCuMemberSettleExt = cuMemberSettleExtMap.get(saOrderExt.getPkMember());
|
||||
|
@ -314,14 +200,12 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 拓展收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusExpand 拓展奖
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 拓展收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void expandRemark(SaOrderExt saOrderExt, CuMemberBonusExpand cuMemberBonusExpand,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
|
@ -333,52 +217,12 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusPush 拓展奖
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 拓展收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void repurchasePushRemark(SaOrderExt saOrderExt, CuMemberBonusPush cuMemberBonusPush,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.REPURCHASE_PUSH, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusPush.getCalAchieve(), cuMemberBonusPush.getCalValue());
|
||||
cuMemberBonusPush.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusExpand 拓展奖
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 拓展收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void repurchaseExpandRemark(SaOrderExt saOrderExt, CuMemberBonusExpand cuMemberBonusExpand,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.REPURCHASE_EXPAND, cuMemberBonusExpand.getCurrentTouch(), cuMemberBonusExpand.getExpandTouch(), saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusExpand.getCalAchieve(), cuMemberBonusExpand.getCalValue());
|
||||
cuMemberBonusExpand.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得 辅导收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusCoach 辅导奖
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 辅导收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void coachRemark(SaOrderExt saOrderExt, CuMemberBonusCoach cuMemberBonusCoach,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
|
@ -390,17 +234,15 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 辅导收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusCoach 辅导奖
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 辅导收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void seePointRemark(SaOrderExt saOrderExt, CuMemberBonusCoach cuMemberBonusCoach,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.SEE_POINT, cuMemberBonusCoach.getCurrentGeneration(), saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
|
@ -409,106 +251,9 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusDetail 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void serviceRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.SERVICE, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusDetail.getCalAchieve(), cuMemberBonusDetail.getCalValue());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusDetail 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void makerDirectRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.MAKER_DIRECT, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusDetail.getPretaxIncome());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusDetail 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void haiFunRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.HAI_FUN, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusDetail.getPretaxIncome());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusDetail 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void makerShareRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.MAKER_DIRECT, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusDetail.getPretaxIncome());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusDetail 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 嗨粉推荐的收益
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void hiFunRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
|
||||
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.HI_FUN, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusDetail.getRealIncome());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得 分红收益的备注
|
||||
*
|
||||
* @param cuMemberBonusDetail 分红
|
||||
* @Description: 获得 分红收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void leaderShareRemark(CuMemberBonusDetail cuMemberBonusDetail, Integer period,
|
||||
BigDecimal bigAreaPv, BigDecimal smallAreaPv, BigDecimal allSmallAreaPv, BigDecimal bonusRation) {
|
||||
|
@ -518,27 +263,11 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 分红收益的备注
|
||||
*
|
||||
* @param cuMemberBonusDetail 分红
|
||||
* @param settleDate 结算日期
|
||||
* @Description: 获得 分红收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void shareCouponRemark(CuMemberBonusDetail cuMemberBonusDetail, String settleDate) {
|
||||
String remark = String.format(BonusMsgConstants.SHARE_COUPON, DateUtils.getMonth(settleDate),
|
||||
cuMemberBonusDetail.getPretaxIncome());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param cuMemberBonusDetail 分红
|
||||
* @Description: 获得 分红收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void storeRemark(CuMemberBonusDetail cuMemberBonusDetail, SaOrderExt saOrderExt, CuMemberSettleExt sourceMemberSettleExt, CuMemberSettleExt targetMemberSettleExt ) {
|
||||
protected void storeRemark(CuMemberBonusDetail cuMemberBonusDetail, SaOrderExt saOrderExt, CuMemberSettleExt sourceMemberSettleExt, CuMemberSettleExt targetMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.STORE, saOrderExt.getOrderCode(), sourceMemberSettleExt.getMemberCode() + sourceMemberSettleExt.getMemberName(),
|
||||
targetMemberSettleExt.getMemberCode() + targetMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusDetail.getCalAchieve(), cuMemberBonusDetail.getCalValue());
|
||||
|
@ -546,11 +275,9 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 分红收益的备注
|
||||
*
|
||||
* @param cuMemberBonusDetail 分红
|
||||
* @Description: 获得 分红收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void storeRangeRemark(CuMemberBonusDetail cuMemberBonusDetail, SaOrderExt saOrderExt, CuMemberSettleExt sourceMemberSettleExt,
|
||||
CuMemberSettleExt targetMemberSettleExt, String beforeLevelName, String levelName) {
|
||||
|
@ -561,44 +288,9 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param cuMemberBonusDetail 分红
|
||||
* @Description: 获得 分红收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void globalShareRemark(CuMemberBonusDetail cuMemberBonusDetail, String msg) {
|
||||
String remark = String.format(msg, cuMemberBonusDetail.getPretaxIncome());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* 获得 报单服务费收益的备注
|
||||
*
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void rangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt, Map<String, RangeDTO> rangePkDtoMap) {
|
||||
RangeDTO beforeOrderRangeDto = rangePkDtoMap.get(targetCuMemberSettleExt.getPkSettleCountry().toString() + cuMemberBonusRange.getPkBeforeRange());
|
||||
RangeDTO orderRangeDto = rangePkDtoMap.get(sourceCuMemberSettleExt.getPkSettleCountry().toString() + cuMemberBonusRange.getPkRange());
|
||||
String remark = String.format(BonusMsgConstants.SHARE_RANGE, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusRange.getCalAchieve(), beforeOrderRangeDto == null? "" : beforeOrderRangeDto.getRangeName(), orderRangeDto == null ? "" : orderRangeDto.getRangeName());
|
||||
cuMemberBonusRange.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void sharePointRemark(CuMemberSettleExt targetCuMemberSettleExt, CuMemberBonusPoint cuMemberBonusPoint, BigDecimal firePointIncome) {
|
||||
String remark = String.format(BonusMsgConstants.SHARE_PONT, targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
|
@ -607,35 +299,29 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 报单服务费收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void sameLevelRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt, RangeDTO beforeOrderRangeDto, RangeDTO orderRangeDto ) {
|
||||
// RangeDTO beforeOrderRangeDto = rangePkDtoMap.get(targetCuMemberSettleExt.getPkSettleCountry().toString() + cuMemberBonusRange.getPkBeforeRange());
|
||||
// RangeDTO orderRangeDto = rangePkDtoMap.get(sourceCuMemberSettleExt.getPkSettleCountry().toString() + cuMemberBonusRange.getPkRange());
|
||||
CuMemberSettleExt targetCuMemberSettleExt, RangeDTO beforeOrderRangeDto, RangeDTO orderRangeDto) {
|
||||
String remark = String.format(BonusMsgConstants.SAME_LEVEL_RANGE, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusRange.getCalAchieve(), beforeOrderRangeDto == null? "" : beforeOrderRangeDto.getRangeName(), orderRangeDto == null ? "" : orderRangeDto.getRangeName());
|
||||
cuMemberBonusRange.getCalAchieve(), beforeOrderRangeDto == null ? "" : beforeOrderRangeDto.getRangeName(), orderRangeDto == null ? "" : orderRangeDto.getRangeName());
|
||||
cuMemberBonusRange.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得 报单服务费收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void rangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt, RangeDTO parentRangeDto, RangeDTO beforeRangeDto) {
|
||||
|
@ -646,69 +332,12 @@ public abstract class BonusSettleHandle {
|
|||
cuMemberBonusRange.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void xueRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.LE_XUE_SHARE_RANGE, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
ComputeUtil.computeDivide(targetCuMemberSettleExt.getRetailPrice(), BigDecimal.valueOf(6.4)), targetCuMemberSettleExt.getGradeValue());
|
||||
cuMemberBonusRange.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrder 订单编号
|
||||
* @param cuMemberBonusDetail 云代首购
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void cloudAgentRemark(SaOrder saOrder, CuMemberBonusDetail cuMemberBonusDetail, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt, String msg) {
|
||||
String remark = String.format(msg, saOrder.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusDetail.getCalAchieve(), cuMemberBonusDetail.getCalValue());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saOrder 订单编号
|
||||
* @param cuMemberBonusDetail 云代首购
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void repurchaseCouponsRemark(SaOrder saOrder, CuMemberBonusDetail cuMemberBonusDetail, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.REPURCHASE_COUPON_RANGE, saOrder.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusDetail.getCalAchieve(), cuMemberBonusDetail.getCalValue(), cuMemberBonusDetail.getRealIncome());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员奖金汇总表
|
||||
*
|
||||
* @param period 期间
|
||||
* @param cuMemberBonusMap 奖金汇总map
|
||||
* @param saOrder 汇率
|
||||
* @param saOrder 汇率
|
||||
* @param cuMemberSettleExt 获取奖金的会员
|
||||
* @return CuMemberBonus
|
||||
*/
|
||||
|
@ -787,36 +416,17 @@ public abstract class BonusSettleHandle {
|
|||
cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.STOP_INCOME.getValue());
|
||||
}
|
||||
// 验证会员是否有奖金,判断有效期是否大于结算日期
|
||||
if(validateExistBonus(targetMemberSettleExt, settleDate)){
|
||||
if (validateExistBonus(targetMemberSettleExt, settleDate)) {
|
||||
cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.FIRE_BURN.getValue());
|
||||
}
|
||||
return cuMemberBonusExpand;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param cuMemberSettleExtMap 树关系
|
||||
* @param settleTableName 结算表
|
||||
* @param saOrderList 订单
|
||||
* @Description: 根据订单获取会员的血缘父级,用于嗨粉推荐、复购极差
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/4 14:10
|
||||
*/
|
||||
protected List<CuMemberSettleExt> getMemberParentBySaOrder(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleTableNameDetail, List<SaOrderExt> saOrderList) {
|
||||
Set<Long> memberSet = new HashSet<>();
|
||||
saOrderList.forEach(saOrderExt -> memberSet.add(saOrderExt.getPkMember()));
|
||||
List<CuMemberSettleExt> cuMemberSettleExtList = cuMemberTreeService.batchQueryCuMemberSettleParent(settleTableName, settleTableNameDetail, memberSet);
|
||||
getMemberSettle(cuMemberSettleExtMap, cuMemberSettleExtList);
|
||||
return cuMemberSettleExtList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员的极差等级,验证会员是否有奖衔
|
||||
*
|
||||
* @param awardsMap 奖衔
|
||||
* @param parentMemberTree 会员树历史记录
|
||||
* @Description: 获取会员的极差等级,验证会员是否有奖衔
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/4 14:22
|
||||
*/
|
||||
protected String getMemberCountryKey(Map<String, BdAwards> awardsMap, CuMemberTree parentMemberTree, Map<Long, CuAwardsControl> cuAwardsControlMap) {
|
||||
Integer pkAwards = getPkRealAwards(parentMemberTree.getPkMember(), parentMemberTree.getPkAwards(), cuAwardsControlMap);
|
||||
|
@ -834,30 +444,11 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param awardsMap 奖衔
|
||||
* @param parentMemberTree 会员树历史记录
|
||||
* @Description: 获取会员的极差等级,验证会员是否有奖衔
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/4 14:22
|
||||
*/
|
||||
protected String getMemberKey(Map<String, BdAwards> awardsMap, CuMemberTree parentMemberTree) {
|
||||
String key = Integer.toString(ERangeType.AWARDS.getValue()) + parentMemberTree.getPkAwards();
|
||||
String awardKey = parentMemberTree.getPkSettleCountry().toString() + parentMemberTree.getPkAwards().toString();
|
||||
if (EAwards.MEMBER.getValue() == awardsMap.get(awardKey).getAwardsValue()) {
|
||||
key = Integer.toString(ERangeType.GRADE.getValue()) + parentMemberTree.getPkGrade();
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
/**
|
||||
* 奖金明细 报单服务费、分红、云代首购、云代复购、海豆收益
|
||||
*
|
||||
* @param saOrderExt 订单
|
||||
* @param targetMemberSettleExt 奖金网体
|
||||
* @param cuMemberBonus 奖金主表
|
||||
* @Description: 奖金明细 报单服务费、分红、云代首购、云代复购、海豆收益
|
||||
* @return: CuMemberBonusDetail
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/5 16:31
|
||||
*/
|
||||
protected CuMemberBonusDetail getCuMemberBonusDetail(SaOrder saOrderExt, CuMemberSettleExt targetMemberSettleExt, CuMemberBonus cuMemberBonus) {
|
||||
CuMemberBonusDetail cuMemberBonusDetail = CuMemberBonusDetail.builder()
|
||||
|
@ -879,12 +470,10 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 设置奖金扣项,计算税前收益,扣税,实际收益, 设置主表
|
||||
*
|
||||
* @param cuMemberBonus 奖金明细
|
||||
* @param bonusDetail 奖金明细表
|
||||
* @Description: 设置奖金扣项,计算税前收益,扣税,实际收益, 设置主表
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 11:17
|
||||
*/
|
||||
protected void setBonusDeduct(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
BigDecimal pretaxIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.PRETAX_INCOME);
|
||||
|
@ -899,10 +488,7 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 首购计算 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
* 首购计算 扣项,小计,总计
|
||||
*/
|
||||
protected void setFirstPurchaseTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||
|
@ -912,10 +498,7 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 复购计算 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
* 复购计算 扣项,小计,总计
|
||||
*/
|
||||
protected void setPurchaseTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||
|
@ -925,13 +508,11 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 设置奖金扣项,计算税前收益,扣税,实际收益, 设置明细表
|
||||
*
|
||||
* @param cuMemberDetail 奖金明细
|
||||
* @param orderAmount 订单金额
|
||||
* @param exchangeRate 入汇率
|
||||
* @Description: 设置奖金扣项,计算税前收益,扣税,实际收益, 设置明细表
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 11:17
|
||||
*/
|
||||
protected BdBonusDeduct setBonusDetailDeduct(BonusConfigDTO bonusConfigDTO, Object cuMemberDetail, BigDecimal orderAmount, BigDecimal exchangeRate) {
|
||||
Integer pkBonusItems = ReflectUtils.invokeGetter(cuMemberDetail, BonusFieldConstants.PK_BONUS_ITEMS);
|
||||
|
@ -958,11 +539,9 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 根据订单分类,分为首购、复购、真实,获取新增业绩
|
||||
* 根据订单分类,分为首购、复购、真实,获取新增业绩
|
||||
*
|
||||
* @param orderExtList 订单列表
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/2 11:24
|
||||
*/
|
||||
public void assortSaOrder(Map<Long, MemberAchieveParam> cuMemberAchieveHashMap, List<SaOrderExt> orderExtList, Boolean isFirst, BonusConfigDTO bonusConfigDTO) {
|
||||
// 注册+升级+云代注册+云代升级 首购 除(注册+升级)其他 复购 首购+复购 = 真实
|
||||
|
@ -971,7 +550,7 @@ public abstract class BonusSettleHandle {
|
|||
if (cuMemberAchieveHashMap.containsKey(saOrderExt.getPkMember())) {
|
||||
cuMemberAchieve = cuMemberAchieveHashMap.get(saOrderExt.getPkMember());
|
||||
// 所有的都算真实业绩
|
||||
}else{
|
||||
} else {
|
||||
cuMemberAchieve = MemberAchieveParam.builder()
|
||||
.pkRate(saOrderExt.getPkRate())
|
||||
.pkMember(saOrderExt.getPkMember())
|
||||
|
@ -982,14 +561,13 @@ public abstract class BonusSettleHandle {
|
|||
.build();
|
||||
cuMemberAchieveHashMap.put(saOrderExt.getPkMember(), cuMemberAchieve);
|
||||
}
|
||||
if(isFirst) {
|
||||
if (isFirst) {
|
||||
cuMemberAchieve.setNewAmount(ComputeUtil.computeAdd(cuMemberAchieve.getNewAmount(), saOrderExt.getOrderAmount()));
|
||||
cuMemberAchieve.setNewPv(ComputeUtil.computeAdd(cuMemberAchieve.getNewPv(), saOrderExt.getOrderAchieve()));
|
||||
cuMemberAchieve.setRegisterBloNewPv(ComputeUtil.computeAdd(cuMemberAchieve.getRegisterBloNewPv(), saOrderExt.getOrderAchieve()));
|
||||
}else{
|
||||
} else {
|
||||
cuMemberAchieve.setRepurchaseBloNewAmount(ComputeUtil.computeAdd(cuMemberAchieve.getRepurchaseBloNewAmount(), convertLocalCurrency(saOrderExt, bonusConfigDTO)));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1003,7 +581,8 @@ public abstract class BonusSettleHandle {
|
|||
return orderAmount;
|
||||
}
|
||||
|
||||
protected boolean validateExistBonus(CuMemberSettleExt targetMemberSettleExt, String settleDate){
|
||||
protected boolean validateExistBonus(CuMemberSettleExt targetMemberSettleExt, String settleDate) {
|
||||
return targetMemberSettleExt.getExpireDate() == null || DateUtils.compareDateBefore(targetMemberSettleExt.getExpireDate(), DateUtils.parseStringToDate(settleDate));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -332,14 +332,12 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 计算加权积分奖励 自己购买数量每1个100 1分,推荐数量每1个100 1分,血缘网体10代内新增每1个100 1分,安置网体小区每1个100 1分
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @param period 期间
|
||||
* @param bonusConfigDTO 参数
|
||||
* @param cuMemberBonusMap 所有计算出来的奖金汇总
|
||||
* @Description: 计算加权积分奖励 自己购买数量每1个100 1分,推荐数量每1个100 1分,血缘网体10代内新增每1个100 1分,安置网体小区每1个100 1分
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 14:17
|
||||
*/
|
||||
List<CuMemberBonusPoint> calculatePointShareBonus(String settleTableName, String settleTableNameDetail, String currentTableNameDetail, BonusConfigDTO bonusConfigDTO,
|
||||
Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, List<SaOrderExt> resaleOrderList, List<SaOrderExt> buySaOrderExtList) {
|
||||
|
|
|
@ -54,50 +54,44 @@ import java.util.*;
|
|||
@Slf4j
|
||||
public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberTreeService cuMemberTreeService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberMonthPeriodService cuMemberMonthPeriodService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberAwardsService cuMemberAwardsService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberService cuMemberService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberAchieveLogService cuMemberAchieveLogService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberAchieveService cuMemberAchieveService;
|
||||
|
||||
@Autowired
|
||||
private ICuAwardsControlService cuAwardsControlService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberMonthPeriodService(ICuMemberMonthPeriodService cuMemberMonthPeriodService) {
|
||||
this.cuMemberMonthPeriodService = cuMemberMonthPeriodService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuAwardsControlService(ICuAwardsControlService cuAwardsControlService) {
|
||||
this.cuAwardsControlService = cuAwardsControlService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberAchieveService(ICuMemberAchieveService cuMemberAchieveService) {
|
||||
this.cuMemberAchieveService = cuMemberAchieveService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberAchieveLogService(ICuMemberAchieveLogService cuMemberAchieveLogService) {
|
||||
this.cuMemberAchieveLogService = cuMemberAchieveLogService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private BonusSettleFirstPurchaseHandle bonusSettleFirstPurchaseHandle;
|
||||
|
||||
@Autowired
|
||||
private BonusSettlePurchaseHandle bonusSettlePurchaseHandle;
|
||||
|
||||
@Autowired
|
||||
private BonusSettleStoreHandle bonusSettleStoreHandle;
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
@Autowired
|
||||
private ICuMemberBonusPushService cuMemberBonusPushService;
|
||||
@Autowired
|
||||
private ICuMemberBonusExpandService cuMemberBonusExpandService;
|
||||
@Autowired
|
||||
private ICuMemberBonusCoachService cuMemberBonusCoachService;
|
||||
@Autowired
|
||||
private ICuMemberBonusDetailService cuMemberBonusDetailService;
|
||||
@Autowired
|
||||
private ICuMemberBonusRangeService cuMemberBonusRangeService;
|
||||
@Autowired
|
||||
private ICuMemberBonusPointService cuMemberBonusPointService;
|
||||
@Autowired
|
||||
private ICuMemberRiskControlService cuMemberRiskControlService;
|
||||
|
||||
@DubboReference
|
||||
IRangeServiceApi rangeServiceApi;
|
||||
|
@ -108,77 +102,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
@DubboReference
|
||||
ICuStoreServiceApi cuStoreServiceApi;
|
||||
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
|
||||
private ICuMemberBonusPushService cuMemberBonusPushService;
|
||||
|
||||
private ICuMemberBonusExpandService cuMemberBonusExpandService;
|
||||
|
||||
private ICuMemberBonusCoachService cuMemberBonusCoachService;
|
||||
|
||||
private ICuMemberBonusDetailService cuMemberBonusDetailService;
|
||||
|
||||
private ICuMemberBonusRangeService cuMemberBonusRangeService;
|
||||
|
||||
private ICuMemberBonusPointService cuMemberBonusPointService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberRiskControlService cuMemberRiskControlService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusPointService(ICuMemberBonusPointService cuMemberBonusPointService) {
|
||||
this.cuMemberBonusPointService = cuMemberBonusPointService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusPushService(ICuMemberBonusPushService cuMemberBonusPushService) {
|
||||
this.cuMemberBonusPushService = cuMemberBonusPushService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusExpandService(ICuMemberBonusExpandService cuMemberBonusExpandService) {
|
||||
this.cuMemberBonusExpandService = cuMemberBonusExpandService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusCoachService(ICuMemberBonusCoachService cuMemberBonusCoachService) {
|
||||
this.cuMemberBonusCoachService = cuMemberBonusCoachService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusDetailService(ICuMemberBonusDetailService cuMemberBonusDetailService) {
|
||||
this.cuMemberBonusDetailService = cuMemberBonusDetailService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusRangeService(ICuMemberBonusRangeService cuMemberBonusRangeService) {
|
||||
this.cuMemberBonusRangeService = cuMemberBonusRangeService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) {
|
||||
this.cuMemberBonusService = cuMemberBonusService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberService(ICuMemberService cuMemberService) {
|
||||
this.cuMemberService = cuMemberService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberAwardsService(ICuMemberAwardsService cuMemberAwardsService) {
|
||||
this.cuMemberAwardsService = cuMemberAwardsService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) {
|
||||
this.cuMemberTreeService = cuMemberTreeService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
|
||||
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 每日计算会员奖金,最终的奖金
|
||||
|
@ -298,7 +221,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
areaStoreMap.put(key, storeDto);
|
||||
}
|
||||
}
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusSettleStoreHandle.calculateStoreBonus(areaStoreMap, cuntryStoreMap, storeSaOrderExtList, currentSettleTableName, currentTableNameDetail, bonusConfigDTO, period, cuMemberBonusMap, riskControlMap);
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusSettleStoreHandle.calculateStoreBonus(areaStoreMap, cuntryStoreMap, storeSaOrderExtList,
|
||||
currentSettleTableName, currentTableNameDetail, bonusConfigDTO, period, cuMemberBonusMap, riskControlMap);
|
||||
if (cuMemberBonusDetailList.size() > 0) {
|
||||
recordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList);
|
||||
}
|
||||
|
@ -311,7 +235,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
//*****************************计算领袖奖********************************/
|
||||
// 领袖奖是基于计算结束的大小区业绩,需要先把数据放入数据库, 结算日期=领袖奖结算期间,进行结算领袖奖
|
||||
if (period.equals(currentMemberMonthPeriod.getEndPeriod())) {
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusSettleFirstPurchaseHandle.calculateLeaderBonus(currentSettleTableName, currentTableNameDetail, settleDate, bonusConfigDTO, period, cuMemberBonusMap, riskControlMap);
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusSettleFirstPurchaseHandle.calculateLeaderBonus(currentSettleTableName, currentTableNameDetail, settleDate,
|
||||
bonusConfigDTO, period, cuMemberBonusMap, riskControlMap);
|
||||
if (cuMemberBonusDetailList.size() > 0) {
|
||||
if (recordDetailVO.getCuMemberBonusDetailList() == null) {
|
||||
recordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList);
|
||||
|
@ -321,7 +246,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
}
|
||||
}
|
||||
// 加权积分是基于计算结束的大小区业绩,血缘业绩等,需要先把数据放入数据库
|
||||
List<CuMemberBonusPoint> cuMemberBonusPointList = bonusSettlePurchaseHandle.calculatePointShareBonus(currentSettleTableName, currentTableNameDetail, currentTableNameDetail, bonusConfigDTO, period, cuMemberBonusMap, resaleOrderList, buySaOrderExtList);
|
||||
List<CuMemberBonusPoint> cuMemberBonusPointList = bonusSettlePurchaseHandle.calculatePointShareBonus(currentSettleTableName, currentTableNameDetail, currentTableNameDetail, bonusConfigDTO, period,
|
||||
cuMemberBonusMap, resaleOrderList, buySaOrderExtList);
|
||||
if (cuMemberBonusPointList.size() > 0) {
|
||||
recordDetailVO.setCuMemberBonusPointList(cuMemberBonusPointList);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
@ -25,7 +26,6 @@ import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
|||
import com.hzs.bonus.bonus.param.BonusParam;
|
||||
import com.hzs.bonus.bonus.vo.MemberBonusDetailSerVO;
|
||||
import com.hzs.bonus.bonus.vo.MemberBonusDetailVO;
|
||||
import com.hzs.bonus.bonus.vo.MemberBonusVO;
|
||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||
|
@ -36,6 +36,7 @@ import org.apache.dubbo.config.annotation.DubboReference;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
|
@ -49,101 +50,42 @@ import java.util.stream.Collectors;
|
|||
public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, CuMemberBonus> implements ICuMemberBonusService {
|
||||
|
||||
@DubboReference
|
||||
ISystemConfigServiceApi systemConfigServiceApi;
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
@DubboReference
|
||||
ISaOrderServiceApi saOrderServiceApi;
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
ICurrencyServiceApi iCurrencyServiceApi;
|
||||
@DubboReference
|
||||
IBonusItemsServiceApi bonusItemsServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||
|
||||
@Resource
|
||||
private CuMemberBonusDetailMapper cuMemberBonusDetailMapper;
|
||||
|
||||
@Resource
|
||||
private CuMemberBonusPushMapper cuMemberBonusPushMapper;
|
||||
|
||||
@Resource
|
||||
private CuMemberBonusExpandMapper cuMemberBonusExpandMapper;
|
||||
|
||||
@Resource
|
||||
private CuMemberBonusCoachMapper cuMemberBonusCoachMapper;
|
||||
|
||||
@Resource
|
||||
private CuMemberBonusRangeMapper cuMemberBonusRangeMapper;
|
||||
|
||||
@Resource
|
||||
private CuMemberBonusPointMapper cuMemberBonusPointMapper;
|
||||
|
||||
@Autowired
|
||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||
|
||||
private ICuMemberTreeService cuMemberTreeService;
|
||||
|
||||
private IBonusSettleService bonusSettleService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusPointMapper(CuMemberBonusPointMapper cuMemberBonusPointMapper) {
|
||||
this.cuMemberBonusPointMapper = cuMemberBonusPointMapper;
|
||||
}
|
||||
|
||||
private ICuMemberTreeService iCuMemberTreeService;
|
||||
@Autowired
|
||||
public void setBonusSettleService(IBonusSettleService bonusSettleService) {
|
||||
this.bonusSettleService = bonusSettleService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) {
|
||||
this.cuMemberTreeService = cuMemberTreeService;
|
||||
}
|
||||
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
|
||||
this.cuMemberBonusSettle = cuMemberBonusSettle;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusPushMapper(CuMemberBonusPushMapper cuMemberBonusPushMapper) {
|
||||
this.cuMemberBonusPushMapper = cuMemberBonusPushMapper;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusExpandMapper(CuMemberBonusExpandMapper cuMemberBonusExpandMapper) {
|
||||
this.cuMemberBonusExpandMapper = cuMemberBonusExpandMapper;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusCoachMapper(CuMemberBonusCoachMapper cuMemberBonusCoachMapper) {
|
||||
this.cuMemberBonusCoachMapper = cuMemberBonusCoachMapper;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusRangeMapper(CuMemberBonusRangeMapper cuMemberBonusRangeMapper) {
|
||||
this.cuMemberBonusRangeMapper = cuMemberBonusRangeMapper;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusDetailMapper(CuMemberBonusDetailMapper cuMemberBonusDetailMapper) {
|
||||
this.cuMemberBonusDetailMapper = cuMemberBonusDetailMapper;
|
||||
}
|
||||
private IBonusSettleService iBonusSettleService;
|
||||
|
||||
@Override
|
||||
public List<Long> batchQueryCuMemberBonusSeq(Integer rowNum) {
|
||||
return baseMapper.batchQueryCuMemberBonusSeq(rowNum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MemberBonusVO> queryMemberBonusTotalVoByCondition(BonusParam bonusParam) {
|
||||
List<MemberBonusVO> memberBonusVoList = new ArrayList<>();
|
||||
List<CuMemberBonus> cuMemberBonusList = baseMapper.queryMemberBonusTotalByCondition(bonusParam);
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class);
|
||||
memberBonusVoList.add(memberBonusVO);
|
||||
});
|
||||
return memberBonusVoList;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberBonusVoByCondition(BonusParam bonusParam) {
|
||||
String value = systemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// 周结的话不能查询当前周的数据,只能查询上周的数据
|
||||
bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate())));
|
||||
|
@ -205,7 +147,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberSecondBonusVoByCondition(BonusParam bonusParam) {
|
||||
String value = systemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
// if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// // 周结的话不能查询当前周的数据,只能查询上周的数据
|
||||
// bonusParam.setStartDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getStartDate())));
|
||||
|
@ -219,7 +161,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
bonusParam.setGrantStatus(EGrantStatus.PUBLISHED.getValue());
|
||||
}
|
||||
List<CuMemberBonusExt> cuMemberBonusExtList = baseMapper.queryMemberBonusByCondition(bonusParam);
|
||||
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(bonusParam.getPkCountry());
|
||||
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(bonusParam.getPkCountry());
|
||||
// 汇率比例
|
||||
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
|
||||
for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
|
||||
|
@ -292,7 +234,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberBonusTotalByCondition(BonusParam bonusParam) {
|
||||
String value = systemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// 周结的话不能查询当前周
|
||||
bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate())));
|
||||
|
@ -353,7 +295,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
TableDataInfo dataTable;
|
||||
Integer bonusItemsValue = 0;
|
||||
if (bonusParam.getPkBonusItems() != null) {
|
||||
BdBonusItems bonusItems = bonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry(), bonusParam.getPkBonusItems()).getData();
|
||||
BdBonusItems bonusItems = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry(), bonusParam.getPkBonusItems()).getData();
|
||||
bonusItemsValue = bonusItems.getBonusValue();
|
||||
}
|
||||
if (null == bonusParam.getPkBonusItems()) {
|
||||
|
@ -416,7 +358,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
});
|
||||
}
|
||||
Map<Integer, BdBonusItemsExt> bonusItemsMap = convertBonusItems(bonusParam);
|
||||
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(bonusParam.getPkCountry()).getData();
|
||||
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(bonusParam.getPkCountry()).getData();
|
||||
memberBonusDetailVOList.forEach(memberBonusDetailVO -> {
|
||||
if (bonusItemsMap.containsKey(memberBonusDetailVO.getPkBonusItems())) {
|
||||
memberBonusDetailVO.setBonusName(bonusItemsMap.get(memberBonusDetailVO.getPkBonusItems()).getBonusName());
|
||||
|
@ -433,7 +375,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
}
|
||||
|
||||
private Map<Integer, BdBonusItemsExt> convertBonusItems(BonusParam bonusParam) {
|
||||
List<BdBonusItemsExt> bonusItemsExtList = bonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry()).getData();
|
||||
List<BdBonusItemsExt> bonusItemsExtList = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry()).getData();
|
||||
Map<Integer, BdBonusItemsExt> bonusItemsMap = new HashMap<>(ComputeUtil.mapInitCapacity(bonusItemsExtList.size()));
|
||||
bonusItemsExtList.forEach(bonusItems ->
|
||||
bonusItemsMap.put(bonusItems.getPkId(), bonusItems));
|
||||
|
@ -446,7 +388,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
List<MemberBonusDetailSerVO> memberBonusDetailSerVoS = new ArrayList<>();
|
||||
Integer bonusItemsValue = 0;
|
||||
if (bonusParam.getPkBonusItems() != null) {
|
||||
BdBonusItems bonusItems = bonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry(), bonusParam.getPkBonusItems()).getData();
|
||||
BdBonusItems bonusItems = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry(), bonusParam.getPkBonusItems()).getData();
|
||||
bonusItemsValue = bonusItems.getBonusValue();
|
||||
bonusParam.setBonusValue(bonusItemsValue);
|
||||
}
|
||||
|
@ -570,30 +512,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
baseMapper.batchInsertCuMemberBonus(list));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertOrUpdateCuMemberBonus(List<CuMemberBonus> cuMemberBonusList) {
|
||||
baseMapper.insertOrUpdateCuMemberBonus(cuMemberBonusList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CuMemberBonus> queryCuMemberBonus(int period, List<CuMemberBonus> cuMemberBonusList) {
|
||||
QueryWrapper<CuMemberBonus> queryWrapper = new QueryWrapper<>();
|
||||
List<Long> memberList = cuMemberBonusList.stream().map(CuMemberBonus::getPkMember).collect(Collectors.toList());
|
||||
queryWrapper.eq(MemberFieldConstants.PERIOD, period);
|
||||
queryWrapper.in(MemberFieldConstants.PK_MEMBER, memberList);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CuMemberBonus> queryExistsPurchaseBonusMember(Integer period, List<Integer> pkCountryList) {
|
||||
QueryWrapper<CuMemberBonus> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("pk_member,pk_country,direct_income,expand_income,coach_income,share_income,pur_real_subtotal");
|
||||
queryWrapper.eq(MemberFieldConstants.PERIOD, period);
|
||||
queryWrapper.in(SystemFieldConstants.PK_COUNTRY, pkCountryList);
|
||||
queryWrapper.gt("PUR_REAL_SUBTOTAL", 0);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateCuMemberBonusStatus(Integer pkCountry, Integer grantStatus, Integer oldGrantStatus, Integer startPeriod, Integer endPeriod) {
|
||||
return baseMapper.updateCuMemberBonusStatus(pkCountry, grantStatus, oldGrantStatus, startPeriod, endPeriod) > 0 ? Boolean.TRUE : Boolean.FALSE;
|
||||
|
@ -625,34 +543,28 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
if (DateUtils.compareDateBefore(startDate, DateUtils.parseStringToDate("2023-12-04"))) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
// CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate);
|
||||
// CuMemberSettlePeriodExt cuMemberSettlePeriodExt = cuMemberSettlePeriodService.getCuMemberSettlePeriod(CountryConstants.TOGO_COUNTRY, DateUtils.parseStringToDate(settleDate));
|
||||
// if(!cuMemberSettlePeriod.getPkId().equals(cuMemberSettlePeriodExt.getEndPeriod())){
|
||||
// return Boolean.TRUE;
|
||||
// }
|
||||
// startDate = DateUtils.beforeDate(6, ChronoUnit.DAYS, startDate);
|
||||
// 自动初始化表
|
||||
cuMemberTreeService.createCuMemberTree(settleDate);
|
||||
iCuMemberTreeService.createCuMemberTree(settleDate);
|
||||
log.info("初始化表完成");
|
||||
// 奖金结算
|
||||
List<SaOrderExt> saOrderExtList = saOrderServiceApi.querySaOrderByDay(startDate, settleEndDate).getData();
|
||||
List<SaOrderExt> saOrderExtList = iSaOrderServiceApi.querySaOrderByDay(startDate, settleEndDate).getData();
|
||||
// 60天前买的订单,用于积分加权
|
||||
List<SaOrderExt> buySaOrderExtList = saOrderServiceApi.querySaOrderByEffectiveDay(startDate, settleEndDate).getData();
|
||||
List<SaOrderExt> buySaOrderExtList = iSaOrderServiceApi.querySaOrderByEffectiveDay(startDate, settleEndDate).getData();
|
||||
// 确认收获的订单,用于店铺收益
|
||||
List<SaOrderExt> storeSaOrderExtList = null;
|
||||
if (settleDate.endsWith("10")) {
|
||||
settleEndDate = DateUtils.currentMonthFirstDate(startDate);
|
||||
storeSaOrderExtList = saOrderServiceApi.queryDeliverySaOrderByDay(DateUtils.beforeMonthFirstDate(startDate), settleEndDate).getData();
|
||||
storeSaOrderExtList = iSaOrderServiceApi.queryDeliverySaOrderByDay(DateUtils.beforeMonthFirstDate(startDate), settleEndDate).getData();
|
||||
}
|
||||
bonusSettleService.calculateCuMemberBonus(settleDate, saOrderExtList, buySaOrderExtList, storeSaOrderExtList);
|
||||
iBonusSettleService.calculateCuMemberBonus(settleDate, saOrderExtList, buySaOrderExtList, storeSaOrderExtList);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Long> queryMemberBonusByPeriod(Integer period) {
|
||||
QueryWrapper<CuMemberBonus> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(MemberFieldConstants.PERIOD, period);
|
||||
queryWrapper.le(MemberBonusFieldConstants.GRANT_STATUS, EGrantStatus.PUBLISHED.getValue());
|
||||
LambdaQueryWrapper<CuMemberBonus> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CuMemberBonus::getPeriod, period);
|
||||
queryWrapper.le(CuMemberBonus::getGrantStatus, EGrantStatus.PUBLISHED.getValue());
|
||||
List<CuMemberBonus> cuMemberBonusList = baseMapper.selectList(queryWrapper);
|
||||
return cuMemberBonusList.stream().distinct().map(CuMemberBonus::getPkId).collect(Collectors.toSet());
|
||||
}
|
||||
|
|
|
@ -1,25 +1,16 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberShareDetailService;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.domain.member.bonus.CuMemberShareDetail;
|
||||
import com.hzs.common.domain.member.ext.CuMemberShareDetailExt;
|
||||
import com.hzs.bonus.bonus.mapper.CuMemberShareDetailMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员奖金-分红奖金配置明细 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-07-03
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberShareDetailServiceImpl extends ServiceImpl<CuMemberShareDetailMapper, CuMemberShareDetail> implements ICuMemberShareDetailService {
|
||||
|
@ -29,23 +20,4 @@ public class CuMemberShareDetailServiceImpl extends ServiceImpl<CuMemberShareDet
|
|||
baseMapper.saveMemberShareBonus(cuMemberShareDetailList);
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 根据期间查询奖衔设置的分红配置
|
||||
* @author: sui q
|
||||
* @date: 2023/8/11 15:35
|
||||
* @param: null null
|
||||
**/
|
||||
@Override
|
||||
public Map<String, CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period){
|
||||
List<CuMemberShareDetail> cuMemberShareDetailList = baseMapper.queryCuMemberShareBonusByPeriod(period);
|
||||
Map<String, CuMemberShareDetail> cuMemberShareDetailMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberShareDetailList.size()));
|
||||
if(CollectionUtil.isNotEmpty(cuMemberShareDetailList)){
|
||||
for (CuMemberShareDetail cuMemberShareDetail : cuMemberShareDetailList) {
|
||||
String key =cuMemberShareDetail.getPkCountry().toString() + cuMemberShareDetail.getPkAwards();
|
||||
cuMemberShareDetailMap.put(key, cuMemberShareDetail);
|
||||
}
|
||||
}
|
||||
return cuMemberShareDetailMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -17,11 +17,7 @@ import java.math.BigDecimal;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 返回后端用户端查询奖金明细vo
|
||||
* @Author: sui q
|
||||
* @Time: 2022/12/20 9:56
|
||||
* @Classname: MemberBonusDetailVO
|
||||
* @PackageName: com.hzs.member.bonus.vo
|
||||
* 返回后端用户端查询奖金明细vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
@ -18,11 +18,7 @@ import java.math.BigDecimal;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 返回会员端查询奖金明细vo
|
||||
* @Author: sui q
|
||||
* @Time: 2022/12/20 9:56
|
||||
* @Classname: MemberBonusDetailVO
|
||||
* @PackageName: com.hzs.member.bonus.vo
|
||||
* 返回会员端查询奖金明细vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
@ -11,11 +11,7 @@ import java.math.BigDecimal;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 用于查询会员奖金
|
||||
* @Author: sui q
|
||||
* @Time: 2023/1/13 10:38
|
||||
* @Classname: MemberBonusVO
|
||||
* @PackageName: com.hzs.member.bonus.vo
|
||||
* 用于查询会员奖金
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
|
||||
<!-- 会员网体月表数据,用于查询 网体跟业绩分开 横向分表-->
|
||||
<sql id="CuMemberTreeColumn">
|
||||
period NUMBER(6) default 0 not null,
|
||||
period NUMBER(6) default 0 not null,
|
||||
pk_member NUMBER(20) not null,
|
||||
pk_parent NUMBER(20) not null,
|
||||
pk_place_parent NUMBER(20),
|
||||
|
@ -110,6 +110,7 @@
|
|||
repurchase_blo_amount NUMBER(17,6) default 0 not null,
|
||||
repurchase_blo_new_amount NUMBER(17,6) default 0 not null
|
||||
</sql>
|
||||
|
||||
<sql id="CuMemberSettleDetailColumn">
|
||||
pk_member NUMBER(20) not null,
|
||||
place_dept NUMBER(4),
|
||||
|
@ -172,31 +173,61 @@
|
|||
</sql>
|
||||
|
||||
<insert id="insertCuMemberSettleByMember">
|
||||
insert into ${settleTableName}(pk_member,pk_parent,pk_place_parent,place_dept,member_code,member_name,
|
||||
customer_type,phone,pk_grade,pk_awards,account_status,pay_status,register_authority,category,
|
||||
purchase_type,purchase_status,share_status,income_status,pk_team_code,
|
||||
pk_center_code,pk_vertex,pk_settle_country,is_real_name,pk_country,pk_rate,expire_date,
|
||||
resale_income_number,resale_income_bonus)
|
||||
select cm.pk_id,pk_parent,pk_place_parent,place_dept,member_code,member_name,
|
||||
customer_type,phone,pk_settle_grade,pk_awards,account_status,pay_status,register_authority,category,
|
||||
(case when purchase_status = 0 then 1 else 0 end) purchase_type,
|
||||
purchase_status,share_status,income_status,pk_team_code,pk_center_code,
|
||||
pk_vertex,pk_settle_country,is_real_name,cm.pk_country,nvl(bc.pk_id,-1) pk_rate,cm.expire_date,
|
||||
cm.resale_income_number,(cm.resale_income_bonus-cm.resale_income_number*150) cm from cu_member cm
|
||||
left join (
|
||||
select pk_country,max(pk_id) pk_id from bd_currency
|
||||
where del_flag=0 and pk_country=1 and enable_state=0 and effective_date <=sysdate
|
||||
group by pk_country) bc
|
||||
on cm.pk_settle_country = bc.pk_country
|
||||
where cm.del_flag=0
|
||||
insert into ${settleTableName}(pk_member, pk_parent, pk_place_parent, place_dept, member_code, member_name,
|
||||
customer_type, phone, pk_grade, pk_awards, account_status, pay_status, register_authority, category,
|
||||
purchase_type, purchase_status, share_status, income_status, pk_team_code,
|
||||
pk_center_code, pk_vertex, pk_settle_country, is_real_name, pk_country, pk_rate, expire_date,
|
||||
resale_income_number, resale_income_bonus)
|
||||
select cm.pk_id,
|
||||
pk_parent,
|
||||
pk_place_parent,
|
||||
place_dept,
|
||||
member_code,
|
||||
member_name,
|
||||
customer_type,
|
||||
phone,
|
||||
pk_settle_grade,
|
||||
pk_awards,
|
||||
account_status,
|
||||
pay_status,
|
||||
register_authority,
|
||||
category,
|
||||
(case when purchase_status = 0 then 1 else 0 end) purchase_type,
|
||||
purchase_status,
|
||||
share_status,
|
||||
income_status,
|
||||
pk_team_code,
|
||||
pk_center_code,
|
||||
pk_vertex,
|
||||
pk_settle_country,
|
||||
is_real_name,
|
||||
cm.pk_country,
|
||||
nvl(bc.pk_id, -1) pk_rate,
|
||||
cm.expire_date,
|
||||
cm.resale_income_number,
|
||||
(cm.resale_income_bonus - cm.resale_income_number * 150) cm
|
||||
from cu_member cm
|
||||
left join (
|
||||
select pk_country, max(pk_id) pk_id
|
||||
from bd_currency
|
||||
where del_flag = 0
|
||||
and pk_country = 1
|
||||
and enable_state = 0
|
||||
and effective_date <= sysdate
|
||||
group by pk_country) bc
|
||||
on cm.pk_settle_country = bc.pk_country
|
||||
where cm.del_flag = 0
|
||||
</insert>
|
||||
|
||||
<insert id="insertCuMemberSettleDetailByMember">
|
||||
insert into ${settleTableName}(pk_member,place_dept)
|
||||
select pk_place_parent pk_member,place_dept from cu_member
|
||||
where del_flag=0 and pk_place_parent is not null
|
||||
insert into ${settleTableName}(pk_member, place_dept)
|
||||
select pk_place_parent pk_member, place_dept
|
||||
from cu_member
|
||||
where del_flag = 0
|
||||
and pk_place_parent is not null
|
||||
union
|
||||
select pk_member,place_dept from ${yesSettleTableName}
|
||||
select pk_member, place_dept
|
||||
from ${yesSettleTableName}
|
||||
</insert>
|
||||
|
||||
<update id="createCuMemberSettleTable">
|
||||
|
@ -346,6 +377,7 @@
|
|||
<delete id="truncateCuMemberTreeTable">
|
||||
truncate table ${tableName}
|
||||
</delete>
|
||||
|
||||
<select id="queryExistOracleTable" resultType="java.lang.Integer">
|
||||
select 1
|
||||
from user_tables
|
||||
|
@ -530,16 +562,6 @@
|
|||
on bc.pk_country=a.pk_settle_country and bc.del_flag=0
|
||||
</select>
|
||||
|
||||
<select id="queryByMemberParentSumPv" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam">
|
||||
select sum(cr.REGISTER_PV) parentMemberSumPv,cm.PK_PARENT pkMember from ${tableName} cr
|
||||
left join CU_MEMBER cm on cm.PK_ID = cr.PK_MEMBER
|
||||
where cm.del_flag = 0 and cm.PK_PARENT in
|
||||
<foreach collection="memberIds" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
group by cm.PK_PARENT
|
||||
</select>
|
||||
|
||||
<select id="queryCuMemberSettlePlaceDeptUnderUmbrella" resultType="java.lang.Integer">
|
||||
select place_dept from settleTableName where pk_place_parent=#{pkMember}
|
||||
</select>
|
||||
|
|
|
@ -4,60 +4,64 @@
|
|||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="CuMemberBonus" type="com.hzs.common.domain.member.ext.CuMemberBonusExt">
|
||||
<id column="PK_ID" property="pkId" />
|
||||
<result column="DEL_FLAG" property="delFlag" />
|
||||
<result column="PK_COUNTRY" property="pkCountry" />
|
||||
<result column="PK_CREATOR" property="pkCreator" />
|
||||
<result column="CREATION_TIME" property="creationTime" />
|
||||
<result column="PK_MODIFIED" property="pkModified" />
|
||||
<result column="MODIFIED_TIME" property="modifiedTime" />
|
||||
<result column="PK_MEMBER" property="pkMember" />
|
||||
<result column="PERIOD" property="period" />
|
||||
<result column="PK_RATE" property="pkRate" />
|
||||
<result column="out_exchange_rate" property="outExchangeRate" />
|
||||
<result column="DIRECT_INCOME" property="directIncome" />
|
||||
<result column="SEE_POINT_INCOME" property="seePointIncome" />
|
||||
<result column="EXPAND_INCOME" property="expandIncome" />
|
||||
<result column="EXPAND_NO_CAPPING" property="expandNoCapping" />
|
||||
<result column="COACH_INCOME" property="coachIncome" />
|
||||
<result column="SHARE_INCOME" property="shareIncome" />
|
||||
<result column="SERVICE_INCOME" property="serviceIncome" />
|
||||
<result column="BACK_POINTS" property="backPoints" />
|
||||
<result column="SERVICE_SPEND" property="serviceSpend" />
|
||||
<result column="PUR_REAL_SUBTOTAL" property="purRealSubtotal" />
|
||||
<result column="REPUR_RANGE_INCOME" property="repurRangeIncome" />
|
||||
<result column="SAME_LEVEL_INCOME" property="sameLevelIncome" />
|
||||
<result column="POINT_SHARE_INCOME" property="pointShareIncome" />
|
||||
<result column="FIRE_SHARE_INCOME" property="fireShareIncome" />
|
||||
<result column="REPUR_REAL_SUBTOTAL" property="repurRealSubtotal" />
|
||||
<result column="GLOBAL_POINTS" property="globalPoints" />
|
||||
<result column="REAL_INCOME_TOTAL" property="realIncomeTotal" />
|
||||
<result column="INCOME_STATUS" property="incomeStatus" />
|
||||
<result column="GRANT_STATUS" property="grantStatus" />
|
||||
<result column="SETTLE_DATE" property="settleDate" />
|
||||
<id column="PK_ID" property="pkId"/>
|
||||
<result column="DEL_FLAG" property="delFlag"/>
|
||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||
<result column="PK_CREATOR" property="pkCreator"/>
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
<result column="PK_MODIFIED" property="pkModified"/>
|
||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||
<result column="PK_MEMBER" property="pkMember"/>
|
||||
<result column="PERIOD" property="period"/>
|
||||
<result column="PK_RATE" property="pkRate"/>
|
||||
<result column="out_exchange_rate" property="outExchangeRate"/>
|
||||
<result column="DIRECT_INCOME" property="directIncome"/>
|
||||
<result column="SEE_POINT_INCOME" property="seePointIncome"/>
|
||||
<result column="EXPAND_INCOME" property="expandIncome"/>
|
||||
<result column="EXPAND_NO_CAPPING" property="expandNoCapping"/>
|
||||
<result column="COACH_INCOME" property="coachIncome"/>
|
||||
<result column="SHARE_INCOME" property="shareIncome"/>
|
||||
<result column="SERVICE_INCOME" property="serviceIncome"/>
|
||||
<result column="BACK_POINTS" property="backPoints"/>
|
||||
<result column="SERVICE_SPEND" property="serviceSpend"/>
|
||||
<result column="PUR_REAL_SUBTOTAL" property="purRealSubtotal"/>
|
||||
<result column="REPUR_RANGE_INCOME" property="repurRangeIncome"/>
|
||||
<result column="SAME_LEVEL_INCOME" property="sameLevelIncome"/>
|
||||
<result column="POINT_SHARE_INCOME" property="pointShareIncome"/>
|
||||
<result column="FIRE_SHARE_INCOME" property="fireShareIncome"/>
|
||||
<result column="REPUR_REAL_SUBTOTAL" property="repurRealSubtotal"/>
|
||||
<result column="GLOBAL_POINTS" property="globalPoints"/>
|
||||
<result column="REAL_INCOME_TOTAL" property="realIncomeTotal"/>
|
||||
<result column="INCOME_STATUS" property="incomeStatus"/>
|
||||
<result column="GRANT_STATUS" property="grantStatus"/>
|
||||
<result column="SETTLE_DATE" property="settleDate"/>
|
||||
<result column="MEMBER_CODE" property="memberCode"/>
|
||||
<result column="MEMBER_NAME" property="memberName"/>
|
||||
<result column="PK_SETTLE_GRADE" property="pkSettleGrade"/>
|
||||
<result column="PK_AWARDS" property="pkAwards"/>
|
||||
<result column="VERTEX_NAME" property="vertexName" />
|
||||
<result column="TEAM_NAME" property="teamName" />
|
||||
<result column="STORE_INCOME" property="storeIncome" />
|
||||
<result column="STORE_RANGE_INCOME" property="storeRangeIncome" />
|
||||
<result column="PUR_REAL_SUBTOTAL" property="purRealSubtotal" />
|
||||
<result column="REPUR_REAL_SUBTOTAL" property="repurRealSubtotal" />
|
||||
|
||||
<result column="VERTEX_NAME" property="vertexName"/>
|
||||
<result column="TEAM_NAME" property="teamName"/>
|
||||
<result column="STORE_INCOME" property="storeIncome"/>
|
||||
<result column="STORE_RANGE_INCOME" property="storeRangeIncome"/>
|
||||
<result column="PUR_REAL_SUBTOTAL" property="purRealSubtotal"/>
|
||||
<result column="REPUR_REAL_SUBTOTAL" property="repurRealSubtotal"/>
|
||||
</resultMap>
|
||||
|
||||
<update id="updateCuMemberBonusStatus">
|
||||
update cu_member_bonus set grant_status = #{grantStatus}, pk_modified=100000000, modified_time=sysdate
|
||||
where del_flag= 0
|
||||
and grant_status = #{oldGrantStatus}
|
||||
and grant_status = #{oldGrantStatus}
|
||||
and period between #{startPeriod} and #{endPeriod}
|
||||
<if test="pkCountry != null">
|
||||
and pk_country = #{pkCountry}
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<delete id="deleteCuMemberBonus">
|
||||
delete from cu_member_bonus where period= #{period} and grant_status <= 2
|
||||
delete
|
||||
from cu_member_bonus
|
||||
where period = #{period}
|
||||
and grant_status <= 2
|
||||
</delete>
|
||||
|
||||
<insert id="batchInsertCuMemberBonus">
|
||||
|
@ -71,7 +75,8 @@
|
|||
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.seePointIncome} see_point_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping,
|
||||
#{item.directIncome} direct_income,#{item.seePointIncome} see_point_income,#{item.expandIncome} expand_income,#{item.expandNoCapping}
|
||||
expand_no_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.repurRangeIncome} repur_range_income,
|
||||
|
@ -82,89 +87,19 @@
|
|||
</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,see_point_income,expand_income,expand_no_capping,
|
||||
insert(pk_id,pk_member,period,pk_rate,direct_income,see_point_income,expand_income,expand_no_capping,
|
||||
coach_income,share_income,service_income,back_points,service_spend,
|
||||
pur_real_subtotal,repur_range_income,same_level_income,
|
||||
point_share_income,fire_share_income,repur_real_subtotal,
|
||||
global_points,store_income,store_range_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.see_point_income,b.expand_income,b.expand_no_capping,
|
||||
values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.see_point_income,b.expand_income,b.expand_no_capping,
|
||||
b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
|
||||
b.pur_real_subtotal,b.repur_range_income,b.same_level_income,
|
||||
b.point_share_income,b.fire_share_income,b.repur_real_subtotal,
|
||||
b.global_points,b.store_income,b.store_range_income,b.real_income_total,
|
||||
b.pk_country,b.pk_creator,b.grant_status,b.income_status)
|
||||
</insert>
|
||||
<insert id="insertOrUpdateCuMemberBonus">
|
||||
merge into cu_member_bonus a
|
||||
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,
|
||||
global_points,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} 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.globalPoints} global_points,
|
||||
#{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 (a.pk_member = b.pk_member and a.period = b.period)
|
||||
when matched then
|
||||
update set
|
||||
a.direct_income = a.direct_income + b.direct_income,a.expand_income=a.expand_income+b.expand_income,
|
||||
a.expand_no_capping=a.expand_no_capping+b.expand_no_capping,a.expand_capping=a.expand_capping+b.expand_capping,
|
||||
a.coach_income=a.coach_income+b.coach_income,a.share_income=a.share_income+b.share_income,
|
||||
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_range_income=a.repur_range_income+b.repur_range_income,
|
||||
a.repur_real_subtotal=a.repur_real_subtotal+b.repur_real_subtotal,
|
||||
a.global_points=a.global_points+b.global_points,a.real_income_total=a.real_income_total+b.real_income_total
|
||||
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,
|
||||
global_points,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.global_points,b.pk_country,b.pk_creator,b.grant_status,b.income_status)
|
||||
</insert>
|
||||
|
||||
<select id="queryMemberBonusTotalByCondition" resultMap="CuMemberBonus">
|
||||
select cb.period,sum(direct_income) direct_income,sum(expand_income) expand_income,sum(expand_no_capping) expand_no_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(real_income_total) real_income_total,cp.settle_date from cu_member_bonus cb
|
||||
inner join cu_member cm
|
||||
on cb.pk_member = cm.pk_id
|
||||
inner join cu_member_settle_period cp
|
||||
on cb.period = cp.pk_id
|
||||
where cb.del_flag=0 and cm.del_flag=0
|
||||
and cp.del_flag=0 and cb.income_status=0
|
||||
<if test="pkVertex != null and pkVertex != ''">
|
||||
and cm.pk_vertex = #{pkVertex}
|
||||
</if>
|
||||
<if test="pkTeamCode != null and pkTeamCode != ''">
|
||||
and cm.pk_team_code = #{pkTeamCode}
|
||||
</if>
|
||||
<if test="startDate != null">
|
||||
and cp.settle_date >=#{startDate, jdbcType=DATE}
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
and cp.settle_date < #{endDate, jdbcType=DATE}
|
||||
</if>
|
||||
group by cb.period,cp.settle_date
|
||||
</select>
|
||||
|
||||
<select id="queryMemberBonusByCondition" resultMap="CuMemberBonus">
|
||||
select cp.settle_date,cb.direct_income,cb.see_point_income,cb.expand_income,cb.expand_no_capping,
|
||||
|
@ -174,7 +109,7 @@
|
|||
inner join cu_member_settle_period cp
|
||||
on cb.period = cp.pk_id
|
||||
where cb.del_flag=0 and cp.del_flag=0
|
||||
and cb.pk_member=#{pkMember}
|
||||
and cb.pk_member=#{pkMember}
|
||||
<if test="grantStatus != null">
|
||||
and cb.grant_status >= #{grantStatus}
|
||||
</if>
|
||||
|
@ -186,6 +121,7 @@
|
|||
</if>
|
||||
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.see_point_income,cb.expand_income,cb.expand_no_capping,
|
||||
|
@ -233,10 +169,10 @@
|
|||
and exists(
|
||||
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
|
||||
start with pk_id = #{item}
|
||||
connect by pk_parent = prior pk_id
|
||||
select pk_id from cu_member
|
||||
where del_flag=0 and PAY_STATUS=1
|
||||
start with pk_id = #{item}
|
||||
connect by pk_parent = prior pk_id
|
||||
</foreach>
|
||||
<if test="bonusParam.teamList != null and bonusParam.teamList.size >0">
|
||||
union
|
||||
|
@ -253,8 +189,10 @@
|
|||
</if>
|
||||
order by cb.period desc
|
||||
</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,
|
||||
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.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,
|
||||
|
@ -265,7 +203,7 @@
|
|||
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 and bc.del_flag=0
|
||||
on bc.pk_id = cb.pk_rate and bc.del_flag=0
|
||||
where cb.del_flag=0 and cp.del_flag=0
|
||||
<if test="bonusParam.pkCountry != null">
|
||||
and cb.pk_country = #{bonusParam.pkCountry}
|
||||
|
@ -304,16 +242,21 @@
|
|||
group by cb.period,cp.settle_date
|
||||
order by cb.period desc
|
||||
</select>
|
||||
|
||||
<select id="batchQueryCuMemberBonusSeq" resultType="java.lang.Long">
|
||||
select cu_member_bonus_seq.nextval from dual connect by rownum <= #{rowNum}
|
||||
select cu_member_bonus_seq.nextval
|
||||
from dual connect by rownum <= #{rowNum}
|
||||
</select>
|
||||
|
||||
<select id="queryWeekMemberBonus" resultMap="CuMemberBonus">
|
||||
select cb.pk_member,sum(expand_income) expand_income from cu_member_bonus cb
|
||||
inner join BD_SYSTEM_CONFIG sy
|
||||
on cb.pk_country = sy.pk_country
|
||||
where sy.key = 'EXPAND_CAP_METHOD1' and sy.value='2'
|
||||
and cb.period>= #{startPeriod} and cb.period < #{endPeriod}
|
||||
select cb.pk_member, sum(expand_income) expand_income
|
||||
from cu_member_bonus cb
|
||||
inner join BD_SYSTEM_CONFIG sy
|
||||
on cb.pk_country = sy.pk_country
|
||||
where sy.key = 'EXPAND_CAP_METHOD1'
|
||||
and sy.value = '2'
|
||||
and cb.period >= #{startPeriod}
|
||||
and cb.period < #{endPeriod}
|
||||
group by cb.pk_member
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
@ -4,62 +4,45 @@
|
|||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="CuMemberShareDetail" type="com.hzs.common.domain.member.bonus.CuMemberShareDetail">
|
||||
<id column="PK_ID" property="pkId" />
|
||||
<result column="PK_SHARE_BONUS" property="pkShareBonus" />
|
||||
<result column="DEL_FLAG" property="delFlag" />
|
||||
<result column="CREATION_TIME" property="creationTime" />
|
||||
<result column="MODIFIED_TIME" property="modifiedTime" />
|
||||
<result column="PK_COUNTRY" property="pkCountry" />
|
||||
<result column="PK_CREATOR" property="pkCreator" />
|
||||
<result column="PK_MODIFIED" property="pkModified" />
|
||||
<result column="PK_AWARDS" property="pkAwards" />
|
||||
<result column="PROMOTE_TOTAL" property="promoteTotal" />
|
||||
<result column="REACH_TOTAL" property="reachTotal" />
|
||||
<result column="EXPECT_SHARE_INCOME" property="expectShareIncome" />
|
||||
<result column="EXPECT_SHARE_SUBTOTAL" property="expectShareSubtotal" />
|
||||
<result column="REAL_SHARE_INCOME" property="realShareIncome" />
|
||||
<result column="REAL_SHARE_SUBTOTAL" property="realShareSubtotal" />
|
||||
<id column="PK_ID" property="pkId"/>
|
||||
<result column="PK_SHARE_BONUS" property="pkShareBonus"/>
|
||||
<result column="DEL_FLAG" property="delFlag"/>
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||
<result column="PK_CREATOR" property="pkCreator"/>
|
||||
<result column="PK_MODIFIED" property="pkModified"/>
|
||||
<result column="PK_AWARDS" property="pkAwards"/>
|
||||
<result column="PROMOTE_TOTAL" property="promoteTotal"/>
|
||||
<result column="REACH_TOTAL" property="reachTotal"/>
|
||||
<result column="EXPECT_SHARE_INCOME" property="expectShareIncome"/>
|
||||
<result column="EXPECT_SHARE_SUBTOTAL" property="expectShareSubtotal"/>
|
||||
<result column="REAL_SHARE_INCOME" property="realShareIncome"/>
|
||||
<result column="REAL_SHARE_SUBTOTAL" property="realShareSubtotal"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
DEL_FLAG,
|
||||
CREATION_TIME,
|
||||
MODIFIED_TIME,
|
||||
PK_COUNTRY,
|
||||
PK_CREATOR,
|
||||
PK_MODIFIED,
|
||||
PK_ID, PK_AWARDS,PK_SHARE_BONUS, PROMOTE_TOTAL, REACH_TOTAL, EXPECT_SHARE_INCOME, EXPECT_SHARE_SUBTOTAL, REAL_SHARE_INCOME, REAL_SHARE_SUBTOTAL
|
||||
</sql>
|
||||
<update id="saveMemberShareBonus">
|
||||
merge into cu_member_share_detail a
|
||||
using(
|
||||
<foreach collection="cuMemberShareDetailList" item="item" separator=" union ">
|
||||
select #{item.pkAwards} pk_awards,#{item.pkShareBonus} pk_share_bonus,#{item.promoteTotal} promote_total,#{item.reachTotal} reach_total,
|
||||
#{item.expectShareIncome} expect_share_income,#{item.expectShareSubtotal} expect_share_subtotal,
|
||||
#{item.realShareIncome} real_share_income,#{item.realShareSubtotal} real_share_subtotal,
|
||||
#{item.creationTime, jdbcType=TIMESTAMP} creation_time,#{item.pkCountry} pk_country,#{item.pkCreator,jdbcType=BIGINT} pk_creator,
|
||||
#{item.modifiedTime, jdbcType=TIMESTAMP} modified_time,#{item.pkModified,jdbcType=BIGINT} pk_modified from dual
|
||||
</foreach>
|
||||
) b
|
||||
<foreach collection="cuMemberShareDetailList" item="item" separator=" union ">
|
||||
select #{item.pkAwards} pk_awards,#{item.pkShareBonus} pk_share_bonus,#{item.promoteTotal} promote_total,#{item.reachTotal} reach_total,
|
||||
#{item.expectShareIncome} expect_share_income,#{item.expectShareSubtotal} expect_share_subtotal,
|
||||
#{item.realShareIncome} real_share_income,#{item.realShareSubtotal} real_share_subtotal,
|
||||
#{item.creationTime, jdbcType=TIMESTAMP} creation_time,#{item.pkCountry} pk_country,#{item.pkCreator,jdbcType=BIGINT} pk_creator,
|
||||
#{item.modifiedTime, jdbcType=TIMESTAMP} modified_time,#{item.pkModified,jdbcType=BIGINT} pk_modified from dual
|
||||
</foreach>
|
||||
) b
|
||||
on (a.pk_share_bonus=b.pk_share_bonus and a.pk_awards=b.pk_awards)
|
||||
WHEN NOT MATCHED THEN
|
||||
insert(pk_awards,pk_share_bonus, promote_total, reach_total, expect_share_income, expect_share_subtotal, real_share_income,
|
||||
real_share_subtotal,creation_time,pk_country,pk_creator)
|
||||
real_share_subtotal,creation_time,pk_country,pk_creator)
|
||||
values
|
||||
(b.pk_awards,b.pk_share_bonus,b.promote_total,b.reach_total, b.expect_share_income, b.expect_share_subtotal, b.real_share_income,
|
||||
b.real_share_subtotal,b.creation_time,b.pk_country,b.pk_creator)
|
||||
when matched then
|
||||
update set a.promote_total=b.promote_total,a.reach_total=b.reach_total,a.expect_share_income=b.expect_share_income,
|
||||
a.expect_share_subtotal=b.expect_share_subtotal,a.real_share_income=b.real_share_income,
|
||||
a.real_share_subtotal=b.real_share_subtotal,a.modified_time=b.modified_time,a.pk_modified=b.pk_modified
|
||||
a.expect_share_subtotal=b.expect_share_subtotal,a.real_share_income=b.real_share_income,
|
||||
a.real_share_subtotal=b.real_share_subtotal,a.modified_time=b.modified_time,a.pk_modified=b.pk_modified
|
||||
</update>
|
||||
<select id="queryCuMemberShareBonusByPeriod" resultMap="CuMemberShareDetail">
|
||||
select cd.* from CU_MEMBER_SHARE_BONUS ch
|
||||
inner join CU_MEMBER_SHARE_DETAIL cd
|
||||
on ch.pk_id =cd.pk_share_bonus
|
||||
where ch.del_flag=0 and cd.del_flag=0
|
||||
and ch.period=#{period}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -10,8 +10,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 订单类型枚举类
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
|
|
|
@ -14,12 +14,7 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务补贴
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-11-01
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
@ -61,5 +56,4 @@ public class BdBonusService extends BaseEntity {
|
|||
private String assessmentTypeVal;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -8,12 +8,7 @@ import java.math.BigDecimal;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 会员业绩扩展表
|
||||
* @author: sui q
|
||||
* @time: 2023/8/26 10:45
|
||||
* @classname: CuMemberAchieveVO
|
||||
* @package_name: com.hzs.common.domain.member.achieve.ext
|
||||
* version 1.0.0
|
||||
* 会员业绩扩展表
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
|
|
|
@ -13,12 +13,7 @@ import lombok.*;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员奖金-分红奖金配置明细
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-07-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
@ -11,9 +11,6 @@ import lombok.experimental.Accessors;
|
|||
|
||||
/**
|
||||
* 订单奖项表
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-05-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
|
|
|
@ -15,12 +15,7 @@ import lombok.experimental.Accessors;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 等级配置表
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2022-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
@ -36,7 +31,7 @@ public class BdGrade extends BaseEntity {
|
|||
/**
|
||||
* 等级名称
|
||||
*/
|
||||
@Excel(name = "注册等级",sort = 1)
|
||||
@Excel(name = "注册等级", sort = 1)
|
||||
@TableField("GRADE_NAME")
|
||||
private String gradeName;
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ import java.util.Date;
|
|||
public class BonusSettleJob {
|
||||
|
||||
@DubboReference
|
||||
private IMemberSettleBonusApi iMemberSettleBonusApi;
|
||||
IMemberSettleBonusApi iMemberSettleBonusApi;
|
||||
|
||||
/**
|
||||
* 奖金每天自动结算,计算前一天奖金
|
||||
|
|
|
@ -10,7 +10,7 @@ logging.config=classpath:logback.xml
|
|||
### 执行器通讯TOKEN [选填]:非空时启用;
|
||||
xxl.job.accessToken=africa_token
|
||||
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
|
||||
xxl.job.executor.appname=xxl-job-africa-test
|
||||
xxl.job.executor.appname=xxl-job-africa
|
||||
### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
|
||||
xxl.job.executor.address=
|
||||
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
|
||||
|
|
Loading…
Reference in New Issue