Compare commits

...

8 Commits

351 changed files with 666 additions and 20389 deletions

View File

@ -1,29 +0,0 @@
package com.hzs.bonus.detail;
import com.hzs.common.core.domain.R;
import java.util.Date;
import java.util.List;
/**
* @description: 新零售会员区域考核dubbo服务
* @author: zhang jing
* @date: 2025/3/7 10:36
* @param:
* @return:
**/
public interface ICuRegionAssessApi {
/**
* @description: 定时处理会员收益区域处理前三天
* @author: zhang jing
* @date: 2025/3/7 10:45
* @param: [startDate]
* @return: com.hzs.common.core.domain.R<?>
**/
R<?> validateHandAreaAssess(Date startDate,Date endDate);
}

View File

@ -1,20 +1,12 @@
package com.hzs.member.account;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.account.CuMemberRecharge;
import java.util.Date;
/**
* 会员模块定时任务
*
* @Description:
* @Author: ljc
* @Time: 2023/4/12 10:38
* @Classname: IMemberJobServiceApi
* @Package_name: com.hzs.member.account
*/
public interface IMemberJobServiceApi {
/**
* 定时插入账户详情数据
*
@ -22,30 +14,14 @@ public interface IMemberJobServiceApi {
*/
R insertAccountDetail();
/**
* 自动提现
*
* @return
*/
R automaticWithdrawal();
/**
* 查询充值金额总和
*
* @param startDate 开始时暗
* @param endDate 结速时间
* @return R<CuMemberRecharge>
*/
R<CuMemberRecharge> selectRechargeTotalAmount(Date startDate, Date endDate);
/**
* 自动清理垃圾数据
* CU_MEMBER_AWARDS
* CU_MEMBER_LEVEL
* CU_MEMBER_GRADE
*
* @return
*/
R autoDeleteGarbageData();
}

View File

@ -1,29 +0,0 @@
package com.hzs.member.achieve;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.base.CuMember;
import java.util.Date;
/**
* @Description: 提供查询实时会员业绩的api接口
* @Author: sui q
* @Time: 2022/10/26 15:12
* @Classname: IMemberAchieveServiceAPI
* @PackageName: com.hzs.member.achieve
*/
public interface IMemberAchieveServiceApi {
/**
* 查询会员的安置部门
*
* @param cuMember 推荐会员主键 公司 会员名称 手机号
* @param isFirst 是否首单
* @param isFirstAchieve 是否首购业绩
* @return: CuMemberAchieve
* @Author: sui q
* @Date: 2022/10/26 15:04
*/
R<CuMember> queryCuMemberAchieveByPkMember(CuMember cuMember, Boolean isFirst, Boolean isFirstAchieve);
}

View File

@ -2,7 +2,6 @@ package com.hzs.member.base;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.base.CuMemberRegister;
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
@ -89,27 +88,6 @@ public interface IMemberServiceApi {
**/
R<Boolean> cancelMemberAccount(Long pkMember, SaOrder saOrder);
/**
* 查找安置人伞上会员信息
*
* @param memberId 编号安置人
*/
R<List<CuMemberExt>> querySponsorOnUmbrella(Long memberId, String memberCode, String phone);
/**
* 查找安置人伞上会员信息
*
* @param memberId 编号安置人
*/
R<List<CuMemberExt>> querySponsorOnUmbrella(Long memberId, List<String> memberCodeList);
/**
* 查找安置人伞下
*
* @param memberId 会员编号
*/
R<List<CuMemberExt>> selectPlaceSponsorUnderUmbrellaByCondition(Long memberId, List<CuMemberExt> cuMemberExtList);
/**
* 查找安置人伞下
*
@ -117,14 +95,6 @@ public interface IMemberServiceApi {
*/
R<List<CuMemberExt>> queryPlaceSponsorUnderUmbrella(Long memberId, String... placeParent);
/**
* 根据会员编号查找该会员编号极左极下的那个人
*
* @param memberId 会员编号
* @param placeDept 1代表左区极左极下2代表右区极左极下
*/
R<CuMemberExt> queryPlaceSponsorLastLeft(Long memberId, Integer placeDept);
/**
* 获取会员缓存
*
@ -193,13 +163,6 @@ public interface IMemberServiceApi {
*/
R<Boolean> saveMember(CuMember cuMember, SaOrderExt saOrder, Boolean isPay, CuMemberAccountExt cuMemberAccountExt);
/**
* 处理新会员生成主键跟会员编号
*
* @param cuMember 会员
*/
R<CuMember> createMemberIdAndCode(CuMember cuMember);
/**
* 创建注册会员编号放入会员编号批次占用
*
@ -241,13 +204,6 @@ public interface IMemberServiceApi {
*/
R<List<CuMemberExt>> findMemberByMemberId(List<Long> pkMemberList, Integer pkCountry);
/**
* 根据会员主键查询会员注册信息
*
* @param pkMember 会员主键
*/
R<CuMemberRegister> queryCuMemberRegister(Long pkMember);
/*
* 会员编号账户类型抽奖金额
**/

View File

@ -25,11 +25,6 @@ public interface IMemberTeamServiceApi {
*/
R<Boolean> checkVertex(Integer pkVertex);
/*
* 根据主键获得所属团队
**/
R<CuMemberTeamExt> getCuMemberTeamById(Long pkMember);
/**
* 查询体系团队map
*

View File

@ -1,48 +0,0 @@
package com.hzs.member.detail;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.base.CuMemberRegister;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
import java.util.List;
/**
* 会员升级记录dubbo服务
*/
public interface ICuMemberDetailServiceApi {
/**
* 查询升级的最新一条
*
* @param pkMember 会员ID
* @param pkOrder 订单ID可为null
* @return
*/
R<CuMemberLevel> getLastUpgrade(Long pkMember, Long pkOrder);
/**
* 查询所有升级记录
*
* @param pkMember 会员ID
* @return
*/
R<List<CuMemberLevel>> getUpgradeList(Long pkMember);
/**
* 查询手动开通奖衔的最新一条
*
* @param pkMember 会员ID
* @return
*/
R<CuMemberAwardsExt> queryLastManualAwards(Long pkMember);
/**
* 查询会员注册信息
*
* @param pkMember 会员ID
* @return
*/
R<CuMemberRegister> getMemberRegister(Long pkMember);
}

View File

@ -2,10 +2,7 @@ package com.hzs.member.detail;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
import com.hzs.common.domain.member.detail.CuMemberServiceLogExt;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface ICuMemberServiceLogServiceApi {
@ -50,43 +47,4 @@ public interface ICuMemberServiceLogServiceApi {
*/
R<Boolean> updateByBusinessNo(CuMemberServiceLog memberLog);
/**
* 根据业务单号查询业务日志
**/
R<List<CuMemberServiceLog>> selectCuMemberServiceLog(String businessNo);
/**
* 查询指定会员政策币信息
*
* @param pkMember 会员ID
* @return
*/
R<CuMemberServiceLogExt> queryPolicy(Long pkMember);
/**
* @param pkMember 会员主键 pkMember
* @param approvalBusiness 类型 EApprovalBusiness
* @param approveStatus 提交签呈状态 EApproveStatus
* @return
*/
R<Integer> queryCount(Long pkMember, Integer approvalBusiness, Integer approveStatus);
/**
* 查询最新一条变动记录
*
* @param pkMember 会员ID
* @param editType 业务类型
* @param approveStatus 审核状态
* @return
*/
R<CuMemberServiceLog> selectTopData(Long pkMember, int editType, int approveStatus);
/**
* 查询激活操作数据
*
* @param queryDate
* @return
*/
R<List<CuMemberServiceLog>> listActivateLog(@Param("queryDate") Date queryDate);
}

View File

@ -1,26 +0,0 @@
package com.hzs.retail.member;
import com.hzs.common.core.domain.R;
import java.util.List;
/**
* 新零售会员dubbo服务
*/
public interface IMemberRetailApi {
/**
* 定时处理收益区域
*
* @return
*/
R<?> checkRegion();
/**
* 取消收益区域
*
* @param pkIdList 收益区域ID列表
*/
R<?> cancelRegion(List<Long> pkIdList);
}

View File

@ -1,20 +0,0 @@
package com.hzs.report.stat;
import com.hzs.common.core.domain.R;
/**
* 统计分析
**/
public interface IMemberReportServiceApi {
/**
* 定时任务批量处理统计会员以及伞下金额业绩盒数
**/
R<?> pushAmountBoxmethod();
/**
* 定时任务7天重算直推会员金额业绩盒数
**/
R<?> repeatPushAmountBoxmethod(String startDateStr, String endDateStr);
}

View File

@ -1,67 +0,0 @@
package com.hzs.report.stat.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 修改政策币表DTO
*
* @author hzs
* @since 2022-08-22
*/
@Data
public class StatisticalLogDTO implements Serializable {
private static final long serialVersionUID = 1L;
private Long pkMember;
/**
* 会员编号
*/
private String memberCode;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* 国家
*/
private Integer pkCountry;
/**
* 创建人
*/
private Long pkCreate;
/**
* 会员ID
*/
private List<Long> pkMemberList;
/**
* 业务单号
*/
private String businessNo;
/**
* 审核状态 2 待审核 4 已驳回 5 已完成(审核成功) 枚举 EApproveStatus
*/
private Integer approveStatus;
/**
* 错误信息
*/
private String errorMsg;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date creationTime;
}

View File

@ -2,9 +2,7 @@ package com.hzs.sale.order;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
import com.hzs.common.domain.sale.ext.SaDeliverItemsExt;
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.sale.order.dto.*;
@ -27,25 +25,6 @@ public interface ISaOrderServiceApi {
*/
R<List<SaOrderExt>> queryRetailSaOrderByDay(Date startDate, Date endDate, String orderCode);
/*
* 根据主键查询订单,需要查询del_flag=1的存在先撤单在退货
**/
R<SaOrder> querySaOrderExtByPkId(Long pkId);
/*
* 根据发货单查询销售订单
**/
R<List<SaOrderExt>> querySaOrderByDeliverList(List<SaDeliverItemsExt> deliverItemExtList);
/**
* 根据订单ID查询订单详细列表
*
* @param pkOrderList 订单ID列表 -- 必传
* @param pkCountry 国家ID -- 非必传
* @return
*/
R<List<SaOrderItemsExt>> queryOrderItemsListByOrderId(List<Long> pkOrderList, Integer pkCountry);
/**
* 空单注册审核通过
*
@ -81,11 +60,6 @@ public interface ISaOrderServiceApi {
*/
void closeOrder();
/*
* 查询订单某段时间累计金额累计业绩
**/
R<SaOrder> queryOrderTotalAchieveByTime(Date startDate, Date endDate);
/**
* 查询指定数量会员SEQ
*

View File

@ -2,8 +2,6 @@ package com.hzs.system.base;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.base.BdArea;
import com.hzs.common.domain.system.base.BdProductStorehouse;
import com.hzs.common.domain.system.base.ext.BdProductStorehouseExt;
import com.hzs.system.base.dto.AreaDTO;
import java.util.List;
@ -46,9 +44,4 @@ public interface IAreaServiceApi {
*/
R<?> updateArea(List<AreaDTO> provinceDTOList);
/*
* 查询省绑定的产品仓库
**/
R<List<BdProductStorehouseExt>> queryBdProductStorehouseByCondition(List<Integer> productId, Integer province);
}

View File

@ -1,10 +1,7 @@
package com.hzs.system.base;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.base.BdCubasdoc;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.base.ext.BdCubasdocExt;
import com.hzs.common.domain.system.sys.SysCorp;
import com.hzs.system.base.dto.CurrencyDTO;
import java.util.Collection;
@ -46,11 +43,6 @@ public interface ICurrencyServiceApi {
*/
R<BdStorehouse> queryBdStorehouseByProvince(Integer province, Integer... type);
/**
* 根据省查询对应的发货仓库
*/
R<BdStorehouse> queryBdStorehouseById(Integer pkId);
/**
* 根据省查询对应的发货仓库
*
@ -71,23 +63,4 @@ public interface ICurrencyServiceApi {
*/
R<List<CurrencyDTO>> findAll();
/**
* 提供查询供应商的dubbo调用
*/
R<BdCubasdocExt> queryBdCubasdocById(Integer pkId, Integer pkCountry);
/**
* 提供查询供应商的dubbo调用
*/
R<BdCubasdocExt> queryBdCustomerById(Integer pkId, Integer pkCountry);
/**
* 提供查询采购组织的dubbo调用
*/
R<SysCorp> querySysCorp(Integer pkId, Integer pkCountry);
/**
* 根据仓库主键查询仓库
*/
R<List<BdStorehouse>> queryStorehouseByIds(Set<Integer> storehouseIdSet, Integer pkCountry, Integer pkCorp);
}

View File

@ -18,18 +18,6 @@ public interface ISystemConfigServiceApi {
*/
R<String> getBonusSystemConfig(Integer pkCountry, String key);
/**
* 批量查询系统参数
*
* @param pkCountry 国家
*/
R<Map<String, String>> getBonusSystemConfig(Integer pkCountry);
/**
* 批量查询所有国家的系统参数
*/
R<Map<String, String>> getBonusSystemConfig();
/**
* 批量查询所有国家的订单参数
*/

View File

@ -3,7 +3,6 @@ package com.hzs.system.base;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.ETransactionKey;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.system.base.dto.TransactionDTO;
import java.util.Collection;
import java.util.List;
@ -15,27 +14,6 @@ import java.util.Set;
*/
public interface ITransactionServiceApi {
/**
* 根据key读取数据库翻译
*
* @param fromCountry 来源国家数据结算国
* @param content 翻译内容
* @param toLocal 返回语言
* @return
*/
R<String> readTransactionByDataBase(Integer fromCountry, String content, String toLocal);
/**
* 根据key列表读取数据库翻译
*
* @param fromCountry 来源国家数据结算国
* @param contentList 翻译内容列表
* @param toLocal 返回语言
* @return
*/
R<Map<String, String>> readTransactionListByDataBase(Integer fromCountry, Set<String> contentList, String toLocal);
/**
* 根据key读取缓存翻译
*
@ -72,7 +50,6 @@ public interface ITransactionServiceApi {
*/
R<Map<Integer, String>> readTransactionListDataBase(Collection<Integer> pkIdList, String toLocal);
/**
* 数据库+缓存同时查询
*
@ -83,17 +60,6 @@ public interface ITransactionServiceApi {
*/
R<Map<String, String>> readTransactionAll(Integer fromCountry, Set<String> contentList, Set<String> keyList, String toLocal);
/**
* 创建国际化翻译只写入缓存
*
* @param pkCountry 结算国
* @param key 翻译key规则
* @param content 翻译内容
* @return
*/
R<Integer> createTransactionCacheOnly(Integer pkCountry, ETransactionKey key, String content);
/**
* 创建国际化翻译写入缓存上传OSS
*
@ -116,7 +82,6 @@ public interface ITransactionServiceApi {
*/
R<Integer> createTransaction(Integer pkCountry, ETransactionKey key, String content, EYesNo cacheFlag, EYesNo uploadFlag);
/**
* 移除国际化翻译根据ID
*
@ -125,15 +90,6 @@ public interface ITransactionServiceApi {
*/
R<Boolean> removeTransactionByPkId(List<Long> pkIdList);
/**
* 移除国际化翻译根据KEY
*
* @param keyList 翻译key列表
* @return
*/
R<Boolean> removeTransactionByKey(List<String> keyList);
/**
* 更新国际化翻译
*
@ -145,13 +101,4 @@ public interface ITransactionServiceApi {
*/
R<Boolean> updateTransaction(Integer pkCountry, String content, Integer pkId, Boolean updateOther);
/**
* 更新国际化翻译异步翻译回调更新
*
* @param transactionDTO 更新实体
* @return
*/
R<Boolean> updateTransactionSync(TransactionDTO transactionDTO);
}

View File

@ -9,11 +9,7 @@ import java.io.Serializable;
import java.util.Date;
/**
* Description: 翻译操作DTO
* Author: jiang chao
* Time: 2022/9/13 9:33
* Classname: TransactionDTO
* PackageName: com.hzs.system.base.dto
* 翻译操作DTO
*/
@AllArgsConstructor
@NoArgsConstructor

View File

@ -25,12 +25,4 @@ public interface IAwardsServiceApi {
* 根据国家获取该国家的奖衔
*/
R<Map<String, BdAwards>> getAwards();
/**
* 根据所属国家查询奖衔
*
* @param pkCountry
* @return
*/
R<List<BdAwards>> queryByPkCountryAwards(Integer pkCountry);
}

View File

@ -33,13 +33,6 @@ public interface IGradeServiceApi {
*/
R<List<GradeDTO>> queryGradeConfigByCondition(Integer pkCountry);
/**
* 根据国家查询等级配置列表
*
* @param pkCountry 国家
*/
R<List<GradeDTO>> queryHaiFunGradeConfigByCondition(Integer pkCountry);
/*
* 查询不同国家的等级参数
**/
@ -68,13 +61,6 @@ public interface IGradeServiceApi {
*/
R<List<GradeDTO>> selectGradeAll(Integer dataCountry);
/**
* 根据国家查询等级配置列表
*
* @param pkCountry 国家
*/
R<List<BdGrade>> queryGrowUpFootmarkGrade(Integer pkCountry);
/**
* 查询全部的等级
*

View File

@ -1,25 +0,0 @@
package com.hzs.system.config;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.config.BdWithdrawalAuto;
import java.util.List;
/**
* @description: 根据国家查询自动提现明细api
* @author: zhang jing
* @date: 2022/9/27 15:15
* @param:
* @return:
**/
public interface IWithdrawalAutoServiceApi {
/**
* @description:根据国家查询自动提现明细列表
* @author: zhang jing
* @date: 2022/9/27 15:20
* @param: [pkCountry]
* @return: com.hzs.common.core.domain.R<java.util.List<com.hzs.common.domain.system.config.BdWithdrawalAuto>>
**/
R<List<BdWithdrawalAuto>> queryWithdrawalAuto(Integer pkCountry);
}

View File

@ -3,32 +3,14 @@ package com.hzs.system.config;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.config.BdWithdrawal;
import java.util.List;
/**
* @description: 根据国家查询提现配置明细列表api
* @author: zhang jing
* @date: 2022/9/27 15:14
* @param:
* @return:
* 根据国家查询提现配置明细列表api
**/
public interface IWithdrawalServiceApi {
/**
* @description: 根据国家查询提现配置明细列表
* @author: zhang jing
* @date: 2022/9/27 15:14
* @param: [pkCountry]
* @return: com.hzs.common.core.domain.R<java.util.List < com.hzs.common.domain.system.config.BdWithdrawal>>
* 根据国家查询提现配置明细列表
**/
R<BdWithdrawal> queryWithdrawal(Integer pkCountry, Integer pkAccount);
/**
* @description: 查询所有自动提现的配置
* @author: zhang jing
* @date: 2022/11/1 19:44
* @param: []
* @return: com.hzs.common.core.domain.R<java.util.List < com.hzs.common.domain.system.config.BdWithdrawal>>
**/
R<List<BdWithdrawal>> queryWithdrawalByIsAuto();
}

View File

@ -52,11 +52,6 @@ public class BonusConfigDTO implements Serializable {
*/
private Map<String, BdGrade> gradeMap;
/**
* 新零售团队等级
*/
private List<BdGrade> retaiGradeList;
/**
* 主任每个国家值对应的配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + 奖衔值 为了解决服务中心算主任
*/

View File

@ -11,11 +11,7 @@ import java.math.BigDecimal;
import java.util.List;
/**
* @Description: 等级的dto
* @Author: sui q
* @Time: 2022/9/24 15:06
* @Classname: GradeDTO
* @PackageName: com.hzs.system.config.dto
* 等级的dto
*/
@Data
@Builder

View File

@ -3,21 +3,12 @@ package com.hzs.third.mq;
import com.hzs.common.core.domain.R;
import com.hzs.third.mq.dto.DelayedMessageDTO;
/**
* @Description:
* @Author: sui q
* @Time: 2023/3/9 15:21
* @Classname: IDelayedMessage
* @PackageName: com.hzs.third.mq
*/
public interface IDelayedMessageApi {
/**
* 发送延时队列消息
*
* @param delayedMessageDTO 内容
* @return: void
* @Author: sui q
* @Date: 2023/3/9 15:18
*/
R<Boolean> sendDelayedMessage(DelayedMessageDTO delayedMessageDTO);
}

View File

@ -10,11 +10,7 @@ import java.util.Date;
import java.util.List;
/**
* @Description: 用于延时队列删除redis缓存
* @Author: sui q
* @Time: 2023/3/9 15:49
* @Classname: DelayedMessageDTO
* @PackageName: com.hzs.third.mq.dto
* 用于延时队列删除redis缓存
*/
@Data
@Builder

View File

@ -26,43 +26,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
@Param("yesterdayRangeTableName") String yesterdayRangeTableName,
@Param("isSameMonth") Integer isSameMonth);
/**
* 更新区域
*/
void mergeMemberRetailRegion(@Param("rangeTableName") String rangeTableName, @Param("settleDate") Date settleDate);
/**
* 根据订单查询出网体中记录的会员数据推荐人安置人
*
* @param rangeTableName 结算表
* @param memberPkList 需要查询的会员列表
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByMemberPk(@Param("rangeTableName") String rangeTableName,
@Param("memberPkList") List<?> memberPkList);
/**
* 查询出有奖衔的会员
*
* @param rangeTableName 结算表
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByAwards(@Param("rangeTableName") String rangeTableName);
/**
* 查询伞下会员用于计算小区
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByParent(@Param("rangeTableName") String rangeTableName,
@Param("memberRetailRangeExtList") List<CuMemberRetailRangeExt> memberRetailRangeExtList);
/**
* 查询有区域的会员
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByCounty(@Param("rangeTableName") String rangeTableName);
/**
* 查询有区域的会员
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailSecondRangeByCounty(@Param("rangeTableName") String rangeTableName, @Param("secondRangeTableName") String secondRangeTableName, @Param("county") Integer county);
/**
* 当前网体更新极差秒结表
*/
@ -118,18 +81,5 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/
void mergeCuMemberRetailRangeExt(@Param("rangeTableName") String rangeTableName, @Param("cuMemberRangeExtList") List<?> cuMemberRangeExtList);
/**
* 更新会员树的累计业绩
*
* @param settleTableName 结算日期
* @param period
*/
void mergeCuMemberRetailRangeBySpecial(@Param("rangeTableName") String settleTableName, @Param("period") Integer period);
/**
* 之前有过注水回退
*/
void mergeCuMemberRetailBackBoxBySpecial(@Param("rangeTableName") String rangeTableName,
@Param("beforeTableName") String beforeTableName,
@Param("period") Integer period);
}

View File

@ -9,7 +9,6 @@ import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 服务类
@ -54,49 +53,6 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang
*/
void updateCuMemberRetailRange(String settleTableName, Map<Long, CuMemberRetailRangeExt> cuMemberTreeMap);
/**
* 更新会员树的累计业绩
*
* @param settleTableName 结算日期
* @param period
*/
void mergeCuMemberRetailRangeBySpecial(String settleTableName, Integer period);
/**
* 之前有过注水回退
*/
void mergeCuMemberRetailBackBoxBySpecial(String rangeTableName, String beforeTableName, Integer period);
/**
* 根据订单查询出网体中记录的会员数据推荐人安置人
*
* @param settleTableName 结算表
* @param serviceMemberSet 会员编号
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByMemberPk(String settleTableName, Set<Long> serviceMemberSet);
/**
* 查询出有奖衔的会员
*
* @param settleTableName 结算表
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByAwards(String settleTableName);
/**
* 查询伞下会员用于计算小区
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByParent(String rangeTableName, List<CuMemberRetailRangeExt> memberRetailRangeExtList);
/**
* 查询有区域的会员
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByCounty(String rangeTableName);
/**
* 查询有区域的会员
*/
List<CuMemberRetailRangeExt> batchQueryMemberRetailSecondRangeByCounty(String rangeTableName, String secondRangeTableName, Integer county);
/**
* 更新极差秒接表用昨天的结算表
*/

View File

@ -92,7 +92,6 @@ public class CuMemberAchieveServiceImpl extends ServiceImpl<CuMemberAchieveMappe
.newRealPv(BigDecimal.ZERO)
.build();
if (Objects.equals(EOrderType.REGISTER_ORDER.getValue(), saOrder.getOrderType()) ||
Objects.equals(EOrderType.UPGRADE_ORDER.getValue(), saOrder.getOrderType()) ||
Objects.equals(EOrderType.FICTITIOUS_ORDER.getValue(), saOrder.getOrderType())) {
cuMemberAchieve.setNewAmount(saOrder.getOrderAmount());
cuMemberAchieve.setNewPv(saOrder.getOrderAchieve());

View File

@ -3,7 +3,6 @@ package com.hzs.bonus.achieve.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
import com.hzs.bonus.base.service.ICuMemberService;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
@ -33,8 +32,6 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
} else {
baseMapper.mergeMemberRetailRangeByYesterday(rangeTableName, yesterdayRangeTableName, 1);
}
// 更新区域
baseMapper.mergeMemberRetailRegion(rangeTableName, settleEndDate);
}
@Override
@ -81,50 +78,6 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
treeList.forEach(list -> baseMapper.mergeCuMemberRetailRangeExt(settleTableName, list));
}
@Override
public void mergeCuMemberRetailRangeBySpecial(String settleTableName, Integer period) {
baseMapper.mergeCuMemberRetailRangeBySpecial(settleTableName, period);
}
@Override
public void mergeCuMemberRetailBackBoxBySpecial(String rangeTableName, String beforeTableName, Integer period) {
baseMapper.mergeCuMemberRetailBackBoxBySpecial(rangeTableName, beforeTableName, period);
}
@Override
public List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByMemberPk(String settleTableName, Set<Long> serviceMemberSet) {
List<CuMemberRetailRangeExt> cuMemberSettleExtList = new ArrayList<>();
if (serviceMemberSet.size() > 0) {
// 做一下排序
List<Long> memberPkList = Arrays.asList(serviceMemberSet.toArray(new Long[]{}));
Collections.sort(memberPkList);
List<List<?>> listList = cuMemberBonusSettle.handleCutList(memberPkList, MagicNumberConstants.BATCH_QUERY_NUM);
listList.forEach(list ->
cuMemberSettleExtList.addAll(baseMapper.batchQueryMemberRetailRangeByMemberPk(settleTableName, list)));
}
return cuMemberSettleExtList;
}
@Override
public List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByAwards(String rangeTableName) {
return baseMapper.batchQueryMemberRetailRangeByAwards(rangeTableName);
}
@Override
public List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByParent(String rangeTableName, List<CuMemberRetailRangeExt> memberRetailRangeExtList) {
return baseMapper.batchQueryMemberRetailRangeByParent(rangeTableName, memberRetailRangeExtList);
}
@Override
public List<CuMemberRetailRangeExt> batchQueryMemberRetailRangeByCounty(String rangeTableName) {
return baseMapper.batchQueryMemberRetailRangeByCounty(rangeTableName);
}
@Override
public List<CuMemberRetailRangeExt> batchQueryMemberRetailSecondRangeByCounty(String rangeTableName, String secondRangeTableName, Integer county) {
return baseMapper.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, county);
}
@Override
public void mergeMemberSecondRetailRangeByRange(String rangeTableName, String secondRangeTableName, Long pkMember) {
// 当前网体更新极差秒接表血缘伞上

View File

@ -7,11 +7,9 @@ import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodDetailService;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.common.core.constant.*;
import com.hzs.common.core.enums.EExpandCapMethod;
import com.hzs.common.core.enums.ESystemConfig;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.service.RedisService;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriodDetail;
import com.hzs.common.domain.member.achieve.ext.CuMemberSettlePeriodExt;
@ -19,7 +17,6 @@ import com.hzs.common.domain.system.base.BdCountry;
import com.hzs.bonus.achieve.mapper.CuMemberSettlePeriodMapper;
import com.hzs.bonus.achieve.param.MemberPeriodParam;
import com.hzs.system.base.ICountryServiceApi;
import com.hzs.system.base.ISystemConfigServiceApi;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -41,8 +38,6 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
@DubboReference
ICountryServiceApi iCountryServiceApi;
@DubboReference
ISystemConfigServiceApi iSystemConfigServiceApi;
@Override
public void initCuMemberPeriod(String settleDate) {
@ -188,15 +183,7 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
private void packageSettleCountry(List<Integer> weekSettleCountry, List<Integer> daySettleCountry) {
Map<Integer, BdCountry> allCountryMap = iCountryServiceApi.getAllCountryMap().getData();
for (Integer pkCountry : allCountryMap.keySet()) {
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);
} else {
daySettleCountry.add(pkCountry);
}
}
daySettleCountry.addAll(allCountryMap.keySet());
}
@Override

View File

@ -3,9 +3,6 @@ package com.hzs.bonus.base.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.vertex.BdVertexBonus;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
@ -16,15 +13,6 @@ import java.util.List;
*/
public interface CuMemberMapper extends BaseMapper<CuMember> {
/**
* 查询登录会员以及状态
*
* @param memberCode 会员编号
* @param pkMember 会员主键
* @return
*/
CuMemberExt queryLoginMember(@Param("memberCode") String memberCode, @Param("pkMember") Long pkMember);
/**
* 更新会员奖衔根据临时表
*/
@ -48,28 +36,6 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
@Param("period") Integer period,
@Param("awardType") Integer awardType);
/**
* 更新会员奖衔根据临时表
*
* @param cuMemberGradeList 修改奖衔的会员
*/
int updateCuMemberMinGradeByList(@Param("cuMemberGradeList") List<CuMemberGrade> cuMemberGradeList, @Param("period") Integer period);
/**
* 更新会员的等级
*/
Integer updateCuMemberGrade(@Param("period") Integer period);
/**
* 查询会员等级
*/
void updateCuMemberLevel(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* 更新会员的等级会员表
*/
Integer updateCuMemberGradeByList(@Param("cuMemberGradeList") List<CuMemberGrade> cuMemberGradeList, @Param("period") Integer period);
/**
* 更新会员奖衔根据临时表
*/
@ -90,17 +56,4 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
*/
void updateCuMemberRetailRangeInitV5Award();
/**
* 查询可以分享的会员人数
*/
List<CuMember> queryCuMemberShareTotal(Integer pkCountry);
/**
* 查询体系奖项列表
*
* @param pkMember
* @return
*/
List<BdVertexBonus> listVertexBonus(@Param("pkMember") Long pkMember);
}

View File

@ -3,19 +3,9 @@ package com.hzs.bonus.base.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.vertex.BdVertexBonus;
import java.util.List;
import java.util.Map;
/**
* 体系奖金配置记录哪个体系走特殊奖金 服务类
*/
public interface IBdVertexBonusService extends IService<BdVertexBonus> {
/**
* 查询体系奖金map
*
* @return
*/
Map<Long, List<Integer>> queryVertexBonus();
}

View File

@ -3,9 +3,6 @@ package com.hzs.bonus.base.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.vertex.BdVertexBonus;
import java.util.Date;
import java.util.List;
@ -15,14 +12,6 @@ import java.util.List;
*/
public interface ICuMemberService extends IService<CuMember> {
/**
* 根据会员编号获取会员信息查库
*
* @param memberCode
* @return
*/
CuMemberExt getMemberByCode(String memberCode);
/**
* 更新会员奖衔根据临时表 -- 日结
*/
@ -35,13 +24,6 @@ public interface ICuMemberService extends IService<CuMember> {
*/
void updateCuMemberRetailRangeByList(List<CuMemberAwards> cuMemberAwardsList, Integer period);
/**
* 更新会员奖衔根据临时表
*
* @param cuMemberGradeList 修改奖衔的会员
*/
void updateCuMemberMinGradeByList(List<CuMemberGrade> cuMemberGradeList, Integer period);
/**
* 更新会员奖衔根据临时表
*
@ -49,21 +31,6 @@ public interface ICuMemberService extends IService<CuMember> {
*/
void updateCuMemberMinAwardsByList(List<CuMemberAwards> cuMemberAwardsList, Integer period);
/**
* 根据等级更新会员等级
*/
void updateCuMemberGradeByPeriod(Integer period);
/**
* 查询会员等级
*/
void updateCuMemberLevel(Date startDate, Date endDate);
/**
* 更新会员的等级会员表
*/
void updateCuMemberGradeByList(List<CuMemberGrade> cuMemberGradeList, Integer period);
/**
* 更新会员奖衔根据临时表
*/
@ -79,17 +46,4 @@ public interface ICuMemberService extends IService<CuMember> {
*/
void updateCuMemberRetailRangeInitAward();
/**
* 查询可以获得分红的会员人数
*/
List<CuMember> queryCuMemberShareTotal(Integer pkCountry);
/**
* 查询体系奖项列表
*
* @param pkMember
* @return
*/
List<BdVertexBonus> listVertexBonus(Long pkMember);
}

View File

@ -1,41 +1,15 @@
package com.hzs.bonus.base.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.bonus.base.mapper.BdVertexBonusMapper;
import com.hzs.bonus.base.service.IBdVertexBonusService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.base.service.IBdVertexBonusService;
import com.hzs.common.domain.vertex.BdVertexBonus;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 体系奖金配置记录哪个体系走特殊奖金 服务实现类
*/
@Service
public class BdVertexBonusServiceImpl extends ServiceImpl<BdVertexBonusMapper, BdVertexBonus> implements IBdVertexBonusService {
@Override
public Map<Long, List<Integer>> queryVertexBonus() {
HashMap<Long, List<Integer>> resultMap = new HashMap<>();
List<BdVertexBonus> vertexBonusList = this.list();
if (CollectionUtil.isNotEmpty(vertexBonusList)) {
for (BdVertexBonus bdVertexBonus : vertexBonusList) {
if (resultMap.containsKey(bdVertexBonus.getPkVertex())) {
resultMap.get(bdVertexBonus.getPkVertex()).add(bdVertexBonus.getBonusItems());
} else {
List<Integer> tmpList = new ArrayList<>();
tmpList.add(bdVertexBonus.getBonusItems());
resultMap.put(bdVertexBonus.getPkVertex(), tmpList);
}
}
}
return resultMap;
}
}

View File

@ -3,13 +3,9 @@ package com.hzs.bonus.base.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.base.service.*;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.*;
import com.hzs.common.domain.member.base.*;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.bonus.base.mapper.CuMemberMapper;
import com.hzs.common.domain.vertex.BdVertexBonus;
import org.springframework.stereotype.Service;
import java.util.*;
@ -20,11 +16,6 @@ import java.util.*;
@Service
public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> implements ICuMemberService {
@Override
public CuMemberExt getMemberByCode(String memberCode) {
return baseMapper.queryLoginMember(memberCode, null);
}
@Override
public void updateCuMemberRetailRangeByPeriod(Integer period) {
baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
@ -39,32 +30,12 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue());
}
@Override
public void updateCuMemberMinGradeByList(List<CuMemberGrade> cuMemberGradeList, Integer period) {
baseMapper.updateCuMemberMinGradeByList(cuMemberGradeList, period);
}
@Override
public void updateCuMemberMinAwardsByList(List<CuMemberAwards> cuMemberAwardsList, Integer period) {
baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue());
baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue());
}
@Override
public void updateCuMemberGradeByPeriod(Integer period) {
baseMapper.updateCuMemberGrade(period);
}
@Override
public void updateCuMemberLevel(Date startDate, Date endDate) {
baseMapper.updateCuMemberLevel(startDate, endDate);
}
@Override
public void updateCuMemberGradeByList(List<CuMemberGrade> cuMemberGradeList, Integer period) {
baseMapper.updateCuMemberGradeByList(cuMemberGradeList, period);
}
@Override
public void updateBackCuMemberRetailRangeAward(Integer period) {
baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.RANGE_TYPE.getValue());
@ -83,13 +54,4 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
baseMapper.updateCuMemberRetailRangeInitV5Award();
}
@Override
public List<CuMember> queryCuMemberShareTotal(Integer pkCountry) {
return baseMapper.queryCuMemberShareTotal(pkCountry);
}
@Override
public List<BdVertexBonus> listVertexBonus(Long pkMember) {
return baseMapper.listVertexBonus(pkMember);
}
}

View File

@ -6,14 +6,12 @@ import com.hzs.bonus.base.service.ICuMemberService;
import com.hzs.bonus.bonus.param.BonusParam;
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
import com.hzs.bonus.bonus.vo.*;
import com.hzs.common.core.enums.EBonusItems;
import com.hzs.common.core.enums.EGrantStatus;
import com.hzs.common.core.utils.ComputeUtil;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
import com.hzs.common.domain.vertex.BdVertexBonus;
import com.hzs.common.security.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -33,8 +31,6 @@ public class ApiCuMemberBonusController extends BaseController {
@Autowired
private ICuMemberBonusService iCuMemberBonusService;
@Autowired
private ICuMemberService iCuMemberService;
/**
* 新零售实时奖金查询会员实时奖金当日的奖金
@ -47,9 +43,6 @@ public class ApiCuMemberBonusController extends BaseController {
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
// 控制复购级差收益的返回
final boolean rangeIncomeFlag = this.checkRangeIncome();
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
List<MemberBonusVO> memberBonusVOList = new ArrayList<>();
cuMemberBonusList.forEach(cuMemberBonus -> {
@ -62,12 +55,6 @@ public class ApiCuMemberBonusController extends BaseController {
cuMemberBonus.getRetailRealSubtotal()
);
memberBonusVO.setBackPoints(serviceSpend);
if (!rangeIncomeFlag) {
// 没有复购级差
memberBonusVO.setRepurRangeIncome(null);
}
memberBonusVOList.add(memberBonusVO);
}
});
@ -83,17 +70,10 @@ public class ApiCuMemberBonusController extends BaseController {
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
// 控制复购级差收益的返回
final boolean rangeIncomeFlag = this.checkRangeIncome();
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
cuMemberBonusList.forEach(cuMemberBonus -> {
MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate");
packageSettleDate(cuMemberBonus, memberBonusFirstPurchaseVO);
if (!rangeIncomeFlag) {
// 没有复购级差
memberBonusFirstPurchaseVO.setRepurRangeIncome(null);
}
firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
});
return getDataTable(firstPurchaseVOList);
@ -180,23 +160,4 @@ public class ApiCuMemberBonusController extends BaseController {
return iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
}
/**
* 校验是否有复购级差
*
* @return
*/
private boolean checkRangeIncome() {
List<BdVertexBonus> vertexBonusList = iCuMemberService.listVertexBonus(SecurityUtils.getUserId());
if (CollectionUtil.isNotEmpty(vertexBonusList)) {
for (BdVertexBonus bdVertexBonus : vertexBonusList) {
if (null != bdVertexBonus
&& null != bdVertexBonus.getBonusItems()
&& EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bdVertexBonus.getBonusItems()) {
return true;
}
}
}
return false;
}
}

View File

@ -220,7 +220,7 @@ public class CuMemberBonusController extends BaseController {
// 获取需要翻译的枚举翻译
Map<Integer, String> transactionLongMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) {
memberBonusDetailSerVO.setOrderTypeVal(EOrderType.getEnumLabelByValue(memberBonusDetailSerVO.getOrderType()));
memberBonusDetailSerVO.setOrderTypeVal(EOrderType.getLabelByValue(memberBonusDetailSerVO.getOrderType()));
memberBonusDetailSerVO.setIncomeStatusVal(EBonusIncomeStatus.getEnumLabelByValue(memberBonusDetailSerVO.getIncomeStatus()));
if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())) {

View File

@ -1,64 +0,0 @@
package com.hzs.bonus.bonus.controller.manage;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.bonus.bonus.param.CuMemberShareBonusParam;
import com.hzs.bonus.bonus.service.ICuMemberShareBonusService;
import com.hzs.common.core.annotation.AccessPermissions;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 会员奖金-分红奖金配置 前端控制器
*
* @author hzs
* @since 2023-07-03
*/
@RestController
@RequestMapping("/manage/bonus")
public class CuMemberShareBonusController extends BaseController {
private ICuMemberShareBonusService cuMemberShareBonusService;
@Autowired
public void setCuMemberShareBonusService(ICuMemberShareBonusService cuMemberShareBonusService) {
this.cuMemberShareBonusService = cuMemberShareBonusService;
}
/**
* 查询某个月的分红配置
*
* @return AjaxResult
*/
@AccessPermissions("BonusConfig")
@PostMapping("/query-share-bonus")
// @Log(module = EOperationModule.SPECIAL_BUSINESS, method = EOperationMethod.UPDATE)
public AjaxResult queryShareBonus(@RequestBody CuMemberShareBonusParam cuMemberShareBonusParam) {
if (cuMemberShareBonusParam.getSettleMonth() == null) {
return AjaxResult.error("结算月份不能为空");
}
return AjaxResult.success(cuMemberShareBonusService.queryCuMemberShareBonus(SecurityUtils.getPkCountry(), cuMemberShareBonusParam.getSettleMonth()));
}
/**
* 查询某个月的分红配置
*
* @return AjaxResult
*/
@PostMapping("/save-share-bonus")
// @Log(module = EOperationModule.SPECIAL_BUSINESS, method = EOperationMethod.UPDATE)
public AjaxResult saveShareBonus(@RequestBody CuMemberShareBonusParam cuMemberShareBonusParam) {
if (cuMemberShareBonusParam.getSettleMonth() == null || CollectionUtil.isEmpty(cuMemberShareBonusParam.getCuMemberShareDetailList())) {
return AjaxResult.error("结算月份不能为空");
}
cuMemberShareBonusParam.setPkCountry(SecurityUtils.getPkCountry());
cuMemberShareBonusParam.setPkCreator(SecurityUtils.getUserId());
cuMemberShareBonusService.saveMemberShareBonus(cuMemberShareBonusParam);
return AjaxResult.success();
}
}

View File

@ -1,314 +0,0 @@
package com.hzs.bonus.bonus.controller.manage;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.base.service.ICuMemberService;
import com.hzs.bonus.bonus.param.RetailAreaParam;
import com.hzs.bonus.bonus.service.ICuMemberSpeRetailService;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.annotation.RepeatSubmitSimple;
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.utils.poi.ExcelUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.bonus.CuMemberSpeRetail;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.util.TransactionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
/**
* 注水盒数 前端控制器
*/
@RestController
@RequestMapping("/manage/special")
public class CuMemberSpeRetailController extends BaseController {
@Autowired
private ICuMemberService iCuMemberService;
@Autowired
private ICuMemberSpeRetailService iCuMemberSpeRetailService;
@Autowired
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
/**
* 注水列表
**/
@Log(module = EOperationModule.SPECIAL_BUSINESS, business = EOperationBusiness.INJECT_RETAIL_ACHIEVEMENT, method = EOperationMethod.SELECT)
@GetMapping("/list")
public TableDataInfo list(RetailAreaParam retailAreaParam) {
startPage();
retailAreaParam.setSystemType(SecurityUtils.getSystemType());
retailAreaParam.setPkCountry(SecurityUtils.getPkCountry());
List<RetailAreaParam> list = iCuMemberSpeRetailService.getCuMemberSpeRetail(retailAreaParam);
return getDataTable(list);
}
/**
* 新增注水
**/
@PostMapping("/save")
@RepeatSubmitSimple
@Log(module = EOperationModule.SPECIAL_BUSINESS, business = EOperationBusiness.INJECT_RETAIL_ACHIEVEMENT, method = EOperationMethod.INSERT)
public AjaxResult saveCuBonusExpand(@RequestBody RetailAreaParam retailAreaParam) {
if (StringUtils.isEmpty(retailAreaParam.getMemberCode())) {
return AjaxResult.error("会员信息不存在");
}
//校验团队总盒数大于小区盒数
// if (retailAreaParam.getTeamBoxNum() < retailAreaParam.getSmallBoxNum()) {
if (retailAreaParam.getTeamBoxNum().compareTo(retailAreaParam.getSmallBoxNum()) < 0) {
return AjaxResult.error("团队盒数需大于小区盒数");
}
//校验结算日期是否为空
if (StringUtils.isNull(retailAreaParam.getSettleDate())) {
return AjaxResult.error("结算日期不能为空");
}
if (iCuMemberSpeRetailService.checkCuMemberActivate(retailAreaParam.getMemberCode()) == 0) {
return AjaxResult.error("会员未激活,不可注水");
}
Integer systemType = SecurityUtils.getSystemType();
CuMemberExt me = iCuMemberService.getMemberByCode(retailAreaParam.getMemberCode());
if (null == me || me.getCategory() != ECategory.NORMAL.getValue()) {
return AjaxResult.error("会员信息不存在或已撤单");
}
if (DateUtils.compareDateBefore(retailAreaParam.getSettleDate(), me.getCreationTime())) {
return AjaxResult.error("注水日期不能在会员创建之前");
}
if (!DateUtils.isLatestWeek(retailAreaParam.getSettleDate(), new Date())) {
return AjaxResult.error("只能注水7天以内");
}
//查询最新期数
String datestr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, retailAreaParam.getSettleDate());
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
DateUtils.parseDateToStr(datestr)).getPkId();
retailAreaParam.setPeriod(period);
//校验是否已经注水
LambdaUpdateWrapper<CuMemberSpeRetail> cmsrQw = new LambdaUpdateWrapper<>();
cmsrQw.eq(CuMemberSpeRetail::getMemberCode, retailAreaParam.getMemberCode());
cmsrQw.eq(CuMemberSpeRetail::getPeriod, period);
cmsrQw.eq(CuMemberSpeRetail::getSystemType, systemType);
int check = iCuMemberSpeRetailService.count(cmsrQw);
if (check > 0) {
return AjaxResult.error("会员已注水");
}
CuMemberSpeRetail cmsr = BeanUtil.copyProperties(retailAreaParam, CuMemberSpeRetail.class);
cmsr.setCreationTime(new Date());
cmsr.setPkCreator(SecurityUtils.getUserId());
cmsr.setPkCountry(SecurityUtils.getPkCountry());
cmsr.setPeriodDate(DateUtils.getStartTime(retailAreaParam.getSettleDate()));
cmsr.setSystemType(systemType);
return AjaxResult.success(iCuMemberSpeRetailService.save(cmsr));
}
/**
* 批量添加秒接日志记录表
**/
@Log(module = EOperationModule.SPECIAL_BUSINESS, business = EOperationBusiness.INJECT_RETAIL_ACHIEVEMENT, method = EOperationMethod.IMPORT)
@PostMapping("/importData")
@RepeatSubmitSimple
public AjaxResult importData(MultipartFile file) throws Exception {
ExcelUtil<RetailAreaParam> util = new ExcelUtil<>(RetailAreaParam.class);
Integer pkCountry = SecurityUtils.getPkCountry();
Integer systemType = SecurityUtils.getSystemType();
Long pkCreator = SecurityUtils.getUserId();
List<RetailAreaParam> list = util.importExcel(file.getInputStream());
List<RetailAreaParam> memberList = new ArrayList<>();
List<RetailAreaParam> errorlist = new ArrayList<>();
//去重
Set<String> seenMemberCodesRepeat = new HashSet<>();
List<RetailAreaParam> uniqueList = list.stream()
.filter(p -> seenMemberCodesRepeat.add(p.getMemberCode())) // 如果Set中不存在则保留
.collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(list)) {
Set<String> seenMemberCodes = new HashSet<>();
for (RetailAreaParam cma : uniqueList) {
cma.setSystemType(systemType);
if (StringUtils.isNotEmpty(cma.getMemberCode())) {
//校验结算日期是否为空
if (StringUtils.isNull(cma.getSettleDate())) {
cma.setMsg("结算日期不能为空");
errorlist.add(cma);
continue;
}
//校验团队总盒数大于小区盒数
// if (cma.getTeamBoxNum() < cma.getSmallBoxNum()) {
if (cma.getTeamBoxNum().compareTo(cma.getSmallBoxNum()) < 0) {
cma.setMsg("团队盒数需大于小区盒数");
errorlist.add(cma);
continue;
}
if (!DateUtils.isLatestWeek(cma.getSettleDate(), new Date())) {
return AjaxResult.error("只能注水7天以内");
}
if (iCuMemberSpeRetailService.checkCuMemberActivate(cma.getMemberCode()) == 0) {
cma.setMsg("会员未激活,不可注水");
errorlist.add(cma);
continue;
}
//查询最新期数
String datestr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cma.getSettleDate());
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
DateUtils.parseDateToStr(datestr)).getPkId();
cma.setPeriod(period);
cma.setPeriodDate(DateUtils.getStartTime(cma.getSettleDate()));
// 遍历传入的RetailAreaParam列表
if (!seenMemberCodes.add(cma.getMemberCode())) {
// 如果memberCode已经在映射中存在则表示这是一个重复项
// 将之前存储的对象加入错误列表
cma.setMsg("会员编号重复");
// 并且也将当前对象加入错误列表
errorlist.add(cma);
continue;
}
CuMemberExt me = iCuMemberService.getMemberByCode(cma.getMemberCode());
if (null == me || me.getCategory() != ECategory.NORMAL.getValue()) {
cma.setMsg("会员信息不存在或已撤单");
errorlist.add(cma);
continue;
}
if (DateUtils.compareDateBefore(cma.getSettleDate(), me.getCreationTime())) {
cma.setMsg("注水日期不能在会员创建之前");
errorlist.add(cma);
continue;
}
//校验是否已经注水
LambdaUpdateWrapper<CuMemberSpeRetail> cmsr = new LambdaUpdateWrapper<>();
cmsr.eq(CuMemberSpeRetail::getMemberCode, cma.getMemberCode());
cmsr.eq(CuMemberSpeRetail::getPeriod, period);
cmsr.eq(CuMemberSpeRetail::getSystemType, systemType);
int check = iCuMemberSpeRetailService.count(cmsr);
if (check > 0) {
cma.setMsg("会员已注水");
errorlist.add(cma);
continue;
}
memberList.add(cma);
}
}
}
if (CollectionUtil.isNotEmpty(memberList)) {
iCuMemberSpeRetailService.batchSpeRetail(memberList, pkCountry, pkCreator);
}
if (CollectionUtil.isNotEmpty(errorlist)) {
return AjaxResult.error(504, TransactionUtils.getContent(ConfigMsgConstants.MEMBER_DATA_ERROR), errorlist);
}
return AjaxResult.success();
}
/**
* 下载模板
**/
@Log(module = EOperationModule.SPECIAL_BUSINESS, business = EOperationBusiness.INJECT_RETAIL_ACHIEVEMENT, method = EOperationMethod.EXPORT)
@PostMapping("/download")
public void download(HttpServletResponse response) {
List<RetailAreaParam> list = new ArrayList<>();
ExcelUtil<RetailAreaParam> util = new ExcelUtil<>(RetailAreaParam.class);
util.exportExcel(response, list, "新零售注水");
}
/**
* 查询单条新零售注水信息
**/
@GetMapping("/getOne/{pkId}")
public AjaxResult getOne(@PathVariable Long pkId) {
RetailAreaParam param = new RetailAreaParam();
param.setPkId(pkId);
List<RetailAreaParam> retailAreaParam = iCuMemberSpeRetailService.getCuMemberSpeRetail(param);
if (!DateUtils.isLatestWeek(retailAreaParam.get(0).getSettleDate(), new Date())) {
return AjaxResult.error("只能修改7天以内注水");
}
if (CollectionUtil.isNotEmpty(retailAreaParam)) {
return AjaxResult.success(retailAreaParam.get(0));
} else {
return AjaxResult.success();
}
}
/**
* 修改注水
**/
@Log(module = EOperationModule.SPECIAL_BUSINESS, business = EOperationBusiness.INJECT_RETAIL_ACHIEVEMENT, method = EOperationMethod.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody RetailAreaParam retailAreaParam) {
if (StringUtils.isEmpty(retailAreaParam.getMemberCode())) {
return AjaxResult.error("会员信息不存在");
}
//校验团队总盒数大于小区盒数
// if (retailAreaParam.getTeamBoxNum() < retailAreaParam.getSmallBoxNum()) {
if (retailAreaParam.getTeamBoxNum().compareTo(retailAreaParam.getSmallBoxNum()) < 0) {
return AjaxResult.error("团队盒数需大于小区盒数");
}
//校验结算日期是否为空
if (StringUtils.isNull(retailAreaParam.getSettleDate())) {
return AjaxResult.error("结算日期不能为空");
}
if (!DateUtils.isLatestWeek(retailAreaParam.getSettleDate(), new Date())) {
return AjaxResult.error("只能注水7天以内");
}
CuMemberExt me = iCuMemberService.getMemberByCode(retailAreaParam.getMemberCode());
if (null == me || me.getCategory() != ECategory.NORMAL.getValue()) {
return AjaxResult.error("会员信息不存在或已撤单");
}
if (DateUtils.compareDateBefore(retailAreaParam.getSettleDate(), me.getCreationTime())) {
return AjaxResult.error("注水日期不能在会员创建之前");
}
//查询最新期数
String datestr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, retailAreaParam.getSettleDate());
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
DateUtils.parseDateToStr(datestr)).getPkId();
retailAreaParam.setPeriod(period);
//校验是否已经注水
LambdaUpdateWrapper<CuMemberSpeRetail> cmsrQw = new LambdaUpdateWrapper<>();
cmsrQw.eq(CuMemberSpeRetail::getMemberCode, retailAreaParam.getMemberCode());
cmsrQw.eq(CuMemberSpeRetail::getPeriod, period);
cmsrQw.ne(CuMemberSpeRetail::getPkId, retailAreaParam.getPkId());
int check = iCuMemberSpeRetailService.count(cmsrQw);
if (check > 0) {
return AjaxResult.error("会员已注水");
}
CuMemberSpeRetail cmsr = BeanUtil.copyProperties(retailAreaParam, CuMemberSpeRetail.class);
cmsr.setPeriodDate(DateUtils.getStartTime(retailAreaParam.getSettleDate()));
cmsr.setPkModified(SecurityUtils.getUserId());
cmsr.setModifiedTime(new Date());
return AjaxResult.success(iCuMemberSpeRetailService.updateById(cmsr));
}
/**
* 删除注水
**/
@Log(module = EOperationModule.SPECIAL_BUSINESS, business = EOperationBusiness.INJECT_RETAIL_ACHIEVEMENT, method = EOperationMethod.DELETE)
@DeleteMapping("/{pkId}")
public AjaxResult delete(@PathVariable Long pkId) {
RetailAreaParam param = new RetailAreaParam();
param.setPkId(pkId);
List<RetailAreaParam> retailAreaParam = iCuMemberSpeRetailService.getCuMemberSpeRetail(param);
if (!DateUtils.isLatestWeek(retailAreaParam.get(0).getSettleDate(), new Date())) {
return AjaxResult.error("只能删除7天以内注水");
}
LambdaUpdateWrapper<CuMemberSpeRetail> cmsrQw = new LambdaUpdateWrapper<>();
cmsrQw.eq(CuMemberSpeRetail::getPkId, pkId);
cmsrQw.set(CuMemberSpeRetail::getDelFlag, EDelFlag.DELETE.getValue());
cmsrQw.set(CuMemberSpeRetail::getPkModified, SecurityUtils.getUserId());
cmsrQw.set(CuMemberSpeRetail::getModifiedTime, new Date());
return AjaxResult.success(iCuMemberSpeRetailService.update(cmsrQw));
}
}

View File

@ -2,42 +2,10 @@ package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.CuMemberBonusCoach;
import com.hzs.common.domain.member.ext.CuMemberBonusCoachExt;
import com.hzs.bonus.bonus.param.BonusParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 会员奖金-辅导收益明细表 Mapper 接口
*/
public interface CuMemberBonusCoachMapper extends BaseMapper<CuMemberBonusCoach> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
*/
void deleteCuMemberBonusCoach(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusCoachList 会员奖金
*/
void batchInsertCuMemberBonusCoach(@Param("cuMemberBonusCoachList") List<?> cuMemberBonusCoachList);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusCoachExt> queryMemberBonusCoachByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusCoachExt> queryMemberBonusCoachByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -2,42 +2,10 @@ package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.CuMemberBonusExpand;
import com.hzs.common.domain.member.ext.CuMemberBonusExpandExt;
import com.hzs.bonus.bonus.param.BonusParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 会员奖金-拓展收益明细表 Mapper 接口
*/
public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpand> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
*/
void deleteCuMemberBonusExpand(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
*/
void batchInsertCuMemberBonusExpand(@Param("cuMemberBonusExpandList") List<?> cuMemberBonusExpandList);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusExpandExt> queryMemberBonusExpandByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusExpandExt> queryMemberBonusExpandByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -20,13 +20,6 @@ public interface CuMemberBonusPushMapper extends BaseMapper<CuMemberBonusPush> {
*/
List<CuMemberBonusPushExt> queryMemberBonusPushByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
*/
List<CuMemberBonusPushExt> queryMemberBonusPushByBonusItemsFoServer(@Param("bonusParam") BonusParam bonusParam);
/**
* 删除会员奖金汇总表
*

View File

@ -2,16 +2,10 @@ package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.CuMemberShareBonus;
import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import org.apache.ibatis.annotations.Param;
/**
* 会员奖金-分红奖金配置 Mapper 接口
*/
public interface CuMemberShareBonusMapper extends BaseMapper<CuMemberShareBonus> {
/*
* 查询会员分享奖金
**/
CuMemberShareBonusExt queryCuMemberShareBonus(@Param("pkCountry") Integer pkCountry, @Param("settleMonth") String settleMonth);
}

View File

@ -2,19 +2,10 @@ package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.CuMemberShareDetail;
import com.hzs.common.domain.member.ext.CuMemberShareDetailExt;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 会员奖金-分红奖金配置明细 Mapper 接口
*/
public interface CuMemberShareDetailMapper extends BaseMapper<CuMemberShareDetail> {
/*
* 更新分享明细
**/
void saveMemberShareBonus(@Param("cuMemberShareDetailList") List<CuMemberShareDetailExt> cuMemberShareDetailList);
}

View File

@ -1,22 +0,0 @@
package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.bonus.bonus.param.RetailAreaParam;
import com.hzs.common.domain.member.bonus.CuMemberSpeRetail;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 注水盒数 Mapper 接口
*/
public interface CuMemberSpeRetailMapper extends BaseMapper<CuMemberSpeRetail> {
/**
* 获取注水列表
**/
List<RetailAreaParam> getCuMemberSpeRetail(RetailAreaParam param);
int checkCuMemberActivate(@Param("memberCode") String memberCode);
}

View File

@ -1,38 +0,0 @@
package com.hzs.bonus.bonus.param;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @description: 分红配置查询参数
* @author: sui q
* @time: 2023/7/3 15:52
* @classname: CuMemberShareBonusParam
* @package_name: com.hzs.member.bonus.param
* version 1.0.0
*/
@Data
public class CuMemberShareBonusParam implements Serializable {
/**
* 国家
*/
private Integer pkCountry;
/**
* 创建人
*/
private Long pkCreator;
/**
* 结算月
*/
private String settleMonth;
/**
* 明细
*/
private List<CuMemberShareDetailParam> cuMemberShareDetailList;
}

View File

@ -1,28 +0,0 @@
package com.hzs.bonus.bonus.param;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description: 分红配置明细
* @author: sui q
* @time: 2023/7/3 15:53
* @classname: CuMemberShareDetailParam
* @package_name: com.hzs.member.bonus.param
* version 1.0.0
*/
@Data
public class CuMemberShareDetailParam implements Serializable {
/**
* 奖衔
*/
private Integer pkAwards;
/**
* 实发金额
*/
private BigDecimal realShareIncome;
}

View File

@ -1,69 +0,0 @@
package com.hzs.bonus.bonus.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class RetailAreaParam implements Serializable {
private Long pkId;
/**
* 会员编号
*/
@Excel(name = "会员编号")
private String memberCode;
/**
* 团队总盒数
*/
@Excel(name = "团队总盒数")
private BigDecimal teamBoxNum = BigDecimal.ZERO;
/**
* 小区盒数
*/
@Excel(name = "小区盒数")
private BigDecimal smallBoxNum = BigDecimal.ZERO;
/**
* 结算日期
*/
@Excel(name = "结算日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date settleDate;
private Integer systemType;
private Integer pkCountry;
/**
* 错误提示
*/
private String msg;
/**
* 结算期间
*/
private Integer period;
/**
* 结算期间时间
*/
private Date periodDate;
/**
* 个人消费盒数
*/
private BigDecimal consumeBoxNum;
/**
* 结算开始日期
*/
private String startDate;
/**
* 结算结束日期
*/
private String endtDate;
}

View File

@ -3,25 +3,9 @@ package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberBonusCoach;
import java.util.List;
import java.util.Set;
/**
* 会员奖金-辅导收益明细表 服务类
*/
public interface ICuMemberBonusCoachService extends IService<CuMemberBonusCoach> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
*/
void deleteCuMemberBonusCoach(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusCoachList 会员奖金
*/
void batchInsertCuMemberBonusCoach(List<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet);
}

View File

@ -3,26 +3,9 @@ package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberBonusExpand;
import java.util.List;
import java.util.Set;
/**
* 会员奖金-拓展收益明细表 服务类
*/
public interface ICuMemberBonusExpandService extends IService<CuMemberBonusExpand> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
*/
void deleteCuMemberBonusExpand(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
*/
void batchInsertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList, Set<Long> memberIdSet);
}

View File

@ -2,22 +2,10 @@ package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberShareBonus;
import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import com.hzs.bonus.bonus.param.CuMemberShareBonusParam;
/**
* 会员奖金-分红奖金配置 服务类
*/
public interface ICuMemberShareBonusService extends IService<CuMemberShareBonus> {
/*
* 保存会员分红奖金及明细
**/
void saveMemberShareBonus(CuMemberShareBonusParam cuMemberShareBonusParam);
/*
* 查询分红配置的参数
**/
CuMemberShareBonusExt queryCuMemberShareBonus(Integer pkCountry, String settleMonth);
}

View File

@ -2,19 +2,10 @@ package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberShareDetail;
import com.hzs.common.domain.member.ext.CuMemberShareDetailExt;
import java.util.List;
import java.util.Map;
/**
* 会员奖金-分红奖金配置明细 服务类
*/
public interface ICuMemberShareDetailService extends IService<CuMemberShareDetail> {
/*
* 更新分享明细
**/
void saveMemberShareBonus(List<CuMemberShareDetailExt> cuMemberShareDetailList);
}

View File

@ -1,27 +0,0 @@
package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.bonus.bonus.param.RetailAreaParam;
import com.hzs.common.domain.member.bonus.CuMemberSpeRetail;
import java.util.List;
/**
* 注水盒数 服务类
*/
public interface ICuMemberSpeRetailService extends IService<CuMemberSpeRetail> {
/**
* 批量添加注水记录表
**/
void batchSpeRetail(List<RetailAreaParam> list, Integer pkCountry, Long pkCreator);
/**
* 获取注水列表
**/
List<RetailAreaParam> getCuMemberSpeRetail(RetailAreaParam param);
int checkCuMemberActivate(String memberCode);
}

View File

@ -26,12 +26,6 @@ public abstract class BonusSettleHandle {
@Autowired
protected ICuMemberTreeService cuMemberTreeService;
@Autowired
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
public ICuMemberSettlePeriodService getCuMemberSettlePeriodService() {
return cuMemberSettlePeriodService;
}
/**
* 获得奖项主键验证该国是否有该奖项
@ -58,23 +52,6 @@ public abstract class BonusSettleHandle {
return bonusConfigDTO.getBonusItemsExtMap().get(pkCountry.toString() + bonusItems).getPkId();
}
/**
* 获得 辅导收益的备注
*
* @param saOrder 订单编号
* @param cuMemberBonusCoach 培育津贴
* @param sourceCuMemberRetailExt 提供奖金的人
* @param targetCuMemberRetailExt 获得奖金的人
*/
protected void retailCoachRemark(SaOrder saOrder, CuMemberBonusCoach cuMemberBonusCoach,
CuMemberRetailRangeExt sourceCuMemberRetailExt, CuMemberRetailRangeExt targetCuMemberRetailExt) {
String remark = String.format(BonusMsgConstants.RETAIL_COACH, cuMemberBonusCoach.getCurrentGeneration(), saOrder.getOrderCode(),
sourceCuMemberRetailExt.getMemberCode() + sourceCuMemberRetailExt.getMemberName(),
targetCuMemberRetailExt.getMemberCode() + targetCuMemberRetailExt.getMemberName(),
cuMemberBonusCoach.getCalAchieve(), cuMemberBonusCoach.getCalValue());
cuMemberBonusCoach.setRemark(remark);
}
/**
* 获得 直推级差收益的备注
*
@ -92,40 +69,6 @@ public abstract class BonusSettleHandle {
cuMemberBonusRange.setRemark(remark);
}
/**
* 获得 福利极差收益 备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusRange 报单服务费
* @param sourceMemberRangeExt 提供奖金的人
* @param targetMemberRangeExt 获得奖金的人
*/
protected void rangeBenefitRetailRemark(SaOrder saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
CuMemberRetailRangeExt targetMemberRangeExt) {
String remark = String.format(BonusMsgConstants.RETAIL_RANGE, saOrderExt.getOrderCode(),
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
cuMemberBonusRange.getCalAchieve(), sourceMemberRangeExt.getAwardsName(), targetMemberRangeExt.getAwardsName());
cuMemberBonusRange.setRemark(remark);
}
/**
* 获得 复购极差收益 备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusRange 报单服务费
* @param sourceMemberRangeExt 提供奖金的人
* @param targetMemberRangeExt 获得奖金的人
*/
protected void rangeMonthRepurchaseRetailRemark(SaOrder saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
CuMemberRetailRangeExt targetMemberRangeExt) {
String remark = String.format(BonusMsgConstants.RETAIL_MONTH_REPURCHASE_INCOME, saOrderExt.getOrderCode(),
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
cuMemberBonusRange.getCalAchieve(), sourceMemberRangeExt.getAwardsName(), targetMemberRangeExt.getAwardsName());
cuMemberBonusRange.setRemark(remark);
}
/**
* 获得 平级收益的备注
*

View File

@ -2,12 +2,9 @@ package com.hzs.bonus.bonus.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.base.service.IBdVertexBonusService;
import com.hzs.bonus.bonus.service.*;
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.bonus.order.service.IBonusOrderService;
import com.hzs.common.core.config.BdConfig;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.enums.*;
@ -38,8 +35,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
@Autowired
private IBonusOrderService iBonusOrderService;
@Autowired
private ICuRegionAssessService cuRegionAssessService;
@Autowired
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
@Autowired
private BonusSettleRangeHandle bonusSettleRangeHandle;
@ -48,15 +43,9 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
@Autowired
private ICuMemberBonusPushService cuMemberBonusPushService;
@Autowired
private ICuMemberBonusExpandService cuMemberBonusExpandService;
@Autowired
private ICuMemberBonusCoachService cuMemberBonusCoachService;
@Autowired
private ICuMemberBonusDetailService cuMemberBonusDetailService;
@Autowired
private ICuMemberBonusRangeService cuMemberBonusRangeService;
@Autowired
private IBdVertexBonusService iBdVertexBonusService;
private ICuMemberBonusDetailService cuMemberBonusDetailService;
/**
@ -95,34 +84,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
// 今天和昨天是否同月
Boolean isSameMonth = DateUtils.getMonth(settleDate).equals(DateUtils.getMonth(yesterday));
// 查询体系奖项配置
Map<Long, List<Integer>> vertexBonusMap = iBdVertexBonusService.queryVertexBonus();
// 计算新零售团队奖金
bonusSettleRangeHandle.calculateRetailBonusByDay(settleDate, cuMemberBonusMap, bonusConfigDTO, recordDetailVO,
period, yesterdayPeriod, isSameMonth, vertexBonusMap);
period, yesterdayPeriod, isSameMonth);
// new 每月1号需要计算4个月奖
if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
// 测试环境每天都执行
// 计算新零售团队福利福利分红等奖金
bonusSettleRangeHandle.calculateRetailShareBonus(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
} else {
// 非测试环境
if (settleDate.endsWith("01")) {
// 计算新零售团队福利福利分红等奖金
log.info("正式处理:{}", settleDate);
bonusSettleRangeHandle.calculateRetailShareBonus(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
}
}
Date currentDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.parseStringToDate(settleDate));
String afterDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, currentDate);
if (afterDate.endsWith("01")) {
// 计算完月奖计算考核区域6个月要达到蓝宝以上
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
cuRegionAssessService.assessRegionByEveryMonth(settleDate, rangeTableName);
}
// 保存当日计算的奖金
insertCuMemberBonus(settleDate, period, cuMemberBonusMap, recordDetailVO);
} catch (Exception e) {
@ -158,7 +124,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
// 订单下单处理正向
// 会员奖金明细
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
// 实时计算秒结数据业绩盒数等级奖衔日奖
// 实时计算秒结数据业绩等级奖衔日奖
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusSettleRangeHandle.calculateCuMemberRetailRangeBonusBySecond(settleDate, saOrderExt, bonusConfigDTO,
secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList);
saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap);
@ -180,7 +146,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
}
// 实时计算撤单数据业绩盒数等级奖衔日奖
// 实时计算撤单数据业绩等级奖衔日奖
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
secondRangeTableName, beforePeriod, currentPeriod);
// 处理收益
@ -197,8 +163,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
*/
void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
cuMemberBonusPushService.deleteCuMemberBonusPush(period);
cuMemberBonusExpandService.deleteCuMemberBonusExpand(period);
cuMemberBonusCoachService.deleteCuMemberBonusCoach(period);
cuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
cuMemberBonusRangeService.deleteCuMemberBonusRange(period);
cuMemberBonusService.deleteCuMemberBonus(period);
@ -206,14 +170,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
return;
}
List<CuMemberBonusPush> batchMemberBonusPushList = new ArrayList<>();
List<CuMemberBonusExpand> batchMemberBonusExpandList = new ArrayList<>();
List<CuMemberBonusCoach> batchMemberBonusCoachList = new ArrayList<>();
List<CuMemberBonusDetail> batchMemberBonusDetailList = new ArrayList<>();
List<CuMemberBonusRange> batchMemberBonusRangeList = new ArrayList<>();
List<CuMemberBonus> cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap);
List<CuMemberBonusPush> cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList();
List<CuMemberBonusExpand> cuMemberBonusExpandList = bonusRecordDetailVO.getCuMemberBonusExpandList();
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusRecordDetailVO.getCuMemberBonusCoachList();
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList();
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList();
if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) {
@ -221,16 +181,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId()));
batchMemberBonusPushList.addAll(cuMemberBonusPushList);
}
if (cuMemberBonusExpandList != null && cuMemberBonusExpandList.size() > 0) {
cuMemberBonusExpandList.forEach(cuMemberBonusExpand ->
cuMemberBonusExpand.setPkBonus(cuMemberBonusMap.get(cuMemberBonusExpand.getPkBonus()).getPkId()));
batchMemberBonusExpandList.addAll(cuMemberBonusExpandList);
}
if (cuMemberBonusCoachList != null && cuMemberBonusCoachList.size() > 0) {
cuMemberBonusCoachList.forEach(cuMemberBonusCoach ->
cuMemberBonusCoach.setPkBonus(cuMemberBonusMap.get(cuMemberBonusCoach.getPkBonus()).getPkId()));
batchMemberBonusCoachList.addAll(cuMemberBonusCoachList);
}
if (cuMemberBonusDetailList != null && cuMemberBonusDetailList.size() > 0) {
cuMemberBonusDetailList.forEach(cuMemberBonusDetail ->
cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId()));
@ -245,8 +195,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
cuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(period);
cuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
cuMemberBonusExpandService.batchInsertCuMemberBonusExpand(batchMemberBonusExpandList, memberIdSet);
cuMemberBonusCoachService.batchInsertCuMemberBonusCoach(batchMemberBonusCoachList, memberIdSet);
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
}

View File

@ -1,47 +1,15 @@
package com.hzs.bonus.bonus.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.bonus.service.ICuMemberBonusCoachService;
import com.hzs.common.domain.member.bonus.CuMemberBonusCoach;
import com.hzs.bonus.bonus.mapper.CuMemberBonusCoachMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* 会员奖金-辅导收益明细表 服务实现类
*/
@Service
public class CuMemberBonusCoachServiceImpl extends ServiceImpl<CuMemberBonusCoachMapper, CuMemberBonusCoach> implements ICuMemberBonusCoachService {
@Autowired
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void deleteCuMemberBonusCoach(Integer period) {
baseMapper.deleteCuMemberBonusCoach(period);
}
@Override
public void batchInsertCuMemberBonusCoach(List<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet) {
if (cuMemberBonusCoachList.size() == 0) {
return;
}
List<CuMemberBonusCoach> cuMemberBonusCoaches = new ArrayList<>();
for (CuMemberBonusCoach cuMemberBonusCoach : cuMemberBonusCoachList) {
if (memberIdSet.contains(cuMemberBonusCoach.getPkBonus())) {
cuMemberBonusCoaches.add(cuMemberBonusCoach);
}
}
if (cuMemberBonusCoaches.size() == 0) {
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusCoaches);
lists.forEach(list ->
baseMapper.batchInsertCuMemberBonusCoach(list));
}
}

View File

@ -1,53 +1,17 @@
package com.hzs.bonus.bonus.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.bonus.service.ICuMemberBonusExpandService;
import com.hzs.common.domain.member.bonus.CuMemberBonusExpand;
import com.hzs.bonus.bonus.mapper.CuMemberBonusExpandMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* 会员奖金-拓展收益明细表 服务实现类
*/
@Service
public class CuMemberBonusExpandServiceImpl extends ServiceImpl<CuMemberBonusExpandMapper, CuMemberBonusExpand> implements ICuMemberBonusExpandService {
private CuMemberBonusSettle cuMemberBonusSettle;
@Autowired
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
this.cuMemberBonusSettle = cuMemberBonusSettle;
}
@Override
public void deleteCuMemberBonusExpand(Integer period) {
baseMapper.deleteCuMemberBonusExpand(period);
}
@Override
public void batchInsertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList, Set<Long> memberIdSet) {
if (cuMemberBonusExpandList.size() == 0) {
return;
}
List<CuMemberBonusExpand> memberBonusExpands = new ArrayList<>();
for (CuMemberBonusExpand cuMemberBonusExpand : cuMemberBonusExpandList) {
if (memberIdSet.contains(cuMemberBonusExpand.getPkBonus())) {
memberBonusExpands.add(cuMemberBonusExpand);
}
}
if (memberBonusExpands.size() == 0) {
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(memberBonusExpands);
lists.forEach(list ->
baseMapper.batchInsertCuMemberBonusExpand(list));
}
}

View File

@ -34,6 +34,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.LocalDate;
import java.time.format.DateTimeFormatter;
@ -48,8 +49,6 @@ import java.util.stream.Collectors;
@Slf4j
public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, CuMemberBonus> implements ICuMemberBonusService {
@DubboReference
ISystemConfigServiceApi iSystemConfigServiceApi;
@DubboReference
ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference
@ -58,14 +57,11 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
@Autowired
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Resource
private CuMemberBonusDetailMapper cuMemberBonusDetailMapper;
@Resource
private CuMemberBonusPushMapper cuMemberBonusPushMapper;
private CuMemberBonusExpandMapper cuMemberBonusExpandMapper;
private CuMemberBonusCoachMapper cuMemberBonusCoachMapper;
@Resource
private CuMemberBonusRangeMapper cuMemberBonusRangeMapper;
private CuMemberBonusSettle cuMemberBonusSettle;
@ -89,31 +85,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
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;
}
@Override
public List<Long> batchQueryCuMemberBonusSeq(Integer rowNum) {
return baseMapper.batchQueryCuMemberBonusSeq(rowNum);
@ -121,20 +92,10 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
@Override
public List<CuMemberBonusExt> queryMemberBonusVoByCondition(BonusParam bonusParam) {
// 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())));
// }
return handleMemberBonusPurchase(getCuMemberBonusExtList(bonusParam), bonusParam);
}
private List<CuMemberBonusExt> handleMemberBonusPurchase(List<CuMemberBonusExt> cuMemberBonusExtList, BonusParam bonusParam) {
// if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
// Collections.reverse(cuMemberBonusExtList);
// return cuMemberBonusExtList;
// }
List<CuMemberBonusExt> memberBonusExtList = new ArrayList<>();
Map<String, CuMemberBonusExt> cuMemberBonusExtMap = new HashMap<>();
cuMemberBonusExtList.forEach(cuMemberBonusExt -> cuMemberBonusExtMap.put(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonusExt.getSettleDate()), cuMemberBonusExt));
@ -357,29 +318,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
memberBonusDetailVO.setSourceMemberName(cuMemberBonusPush.getSourceMemberName());
memberBonusDetailVOList.add(memberBonusDetailVO);
});
} else if (EBonusItems.EXPANSION_INCOME.getValue() == bonusItemsValue ||
EBonusItems.CONSUMPTION_EXPANSION_INCOME.getValue() == bonusItemsValue) {
// 拓展收益复购拓展收益
List<CuMemberBonusExpandExt> cuMemberBonusExpandList = cuMemberBonusExpandMapper.queryMemberBonusExpandByBonusItems(bonusParam);
dataTable = getDataTable(cuMemberBonusExpandList);
cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> {
MemberBonusDetailVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusExpand, MemberBonusDetailVO.class);
memberBonusDetailVO.setSourceMemberCode(cuMemberBonusExpand.getSourceMemberCode());
memberBonusDetailVO.setSourceMemberName(cuMemberBonusExpand.getSourceMemberName());
memberBonusDetailVOList.add(memberBonusDetailVO);
});
} else if (EBonusItems.COACHING_INCOME.getValue() == bonusItemsValue) {
// 辅导收益
// 拓展收益复购拓展收益
List<CuMemberBonusCoachExt> cuMemberBonusCoachList = cuMemberBonusCoachMapper.queryMemberBonusCoachByBonusItems(bonusParam);
dataTable = getDataTable(cuMemberBonusCoachList);
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusCoach, MemberBonusDetailVO.class);
memberBonusDetailVO.setSourceMemberCode(cuMemberBonusCoach.getSourceMemberCode());
memberBonusDetailVO.setSourceMemberName(cuMemberBonusCoach.getSourceMemberName());
memberBonusDetailVOList.add(memberBonusDetailVO);
});
} else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue) {
} else if (EBonusItems.RANGE_INCOME.getValue() == bonusItemsValue) {
// 复购极差
List<CuMemberBonusRangeExt> cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItems(bonusParam);
dataTable = getDataTable(cuMemberBonusRangeList);
@ -445,36 +384,9 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusDetail, MemberBonusDetailSerVO.class);
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else if (EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue) {
// 启动卡直推 推荐收益
List<CuMemberBonusPushExt> cuMemberBonusPushList = cuMemberBonusPushMapper.queryMemberBonusPushByBonusItemsFoServer(bonusParam);
dataTable = getDataTable(cuMemberBonusPushList);
cuMemberBonusPushList.forEach(cuMemberBonusPush -> {
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusPush, MemberBonusDetailSerVO.class);
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else if (EBonusItems.EXPANSION_INCOME.getValue() == bonusItemsValue
|| EBonusItems.CONSUMPTION_EXPANSION_INCOME.getValue() == bonusItemsValue) {
// 拓展收益复购拓展收益
List<CuMemberBonusExpandExt> cuMemberBonusExpandList = cuMemberBonusExpandMapper.queryMemberBonusExpandByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusExpandList);
cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> {
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusExpand, MemberBonusDetailSerVO.class);
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else if (EBonusItems.RETAIL_COACHING_INCOME.getValue() == bonusItemsValue) {
// 培育津贴
List<CuMemberBonusCoachExt> cuMemberBonusCoachList = cuMemberBonusCoachMapper.queryMemberBonusCoachByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusCoachList);
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusCoach, MemberBonusDetailSerVO.class);
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue
|| EBonusItems.RETAIL_RANGE_INCOME.getValue() == bonusItemsValue
|| EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue() == bonusItemsValue
|| EBonusItems.RETAIL_BENEFIT_RANGE_INCOME.getValue() == bonusItemsValue
|| EBonusItems.RETAIL_MONTH_REPURCHASE_INCOME.getValue() == bonusItemsValue) {
} else if (EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue
|| EBonusItems.RANGE_INCOME.getValue() == bonusItemsValue
|| EBonusItems.SAME_LEVEL_INCOME.getValue() == bonusItemsValue) {
// 直推收益平级收益福利级差复购级差
List<CuMemberBonusRangeExt> cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusRangeList);
@ -515,7 +427,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
memberBonusDetailSerVO.setCoachNormalHalfOri(ComputeUtil.computeMultiply(memberBonusDetailSerVO.getCoachNormalHalf(), memberBonusDetailSerVO.getOutExchangeRate()));
memberBonusDetailSerVO.setCoachNormalRealOri(ComputeUtil.computeMultiply(memberBonusDetailSerVO.getCoachNormalReal(), memberBonusDetailSerVO.getOutExchangeRate()));
}
memberBonusDetailSerVO.setOrderTypeVal(EOrderType.getEnumLabelByValue(memberBonusDetailSerVO.getOrderType()));
memberBonusDetailSerVO.setOrderTypeVal(EOrderType.getLabelByValue(memberBonusDetailSerVO.getOrderType()));
memberBonusDetailSerVO.setIncomeStatusVal(EBonusIncomeStatus.getEnumLabelByValue(memberBonusDetailSerVO.getIncomeStatus()));
});
dataTable.setRows(memberBonusDetailSerVoS);
@ -613,10 +525,9 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
@Override
public void mergeBackMemberBonusIncome(Long pkOrder) {
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.REPURCHASE_RANGE_INCOME.getValue());
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.DIRECT_INCOME.getValue());
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.SAME_LEVEL_INCOME.getValue());
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RANGE_INCOME.getValue());
}
@Override

View File

@ -1,39 +1,10 @@
package com.hzs.bonus.bonus.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.bonus.service.ICuMemberShareBonusService;
import com.hzs.bonus.bonus.service.ICuMemberShareDetailService;
import com.hzs.bonus.detail.service.ICuMemberAssessService;
import com.hzs.common.core.enums.EAwards;
import com.hzs.common.core.utils.ComputeUtil;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.bonus.CuMemberShareBonus;
import com.hzs.common.domain.member.bonus.CuMemberShareDetail;
import com.hzs.common.domain.member.detail.CuMemberAssess;
import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import com.hzs.common.domain.member.ext.CuMemberShareDetailExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.bonus.base.service.ICuMemberService;
import com.hzs.bonus.bonus.mapper.CuMemberShareBonusMapper;
import com.hzs.bonus.bonus.param.CuMemberShareBonusParam;
import com.hzs.bonus.bonus.param.CuMemberShareDetailParam;
import com.hzs.sale.order.ISaOrderServiceApi;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAwardsServiceApi;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
/**
* 会员奖金-分红奖金配置 服务实现类
@ -41,143 +12,4 @@ import java.util.*;
@Service
public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonusMapper, CuMemberShareBonus> implements ICuMemberShareBonusService {
@DubboReference
ISaOrderServiceApi saOrderServiceApi;
@DubboReference
IAwardsServiceApi awardsServiceApi;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
private ICuMemberShareDetailService cuMemberShareDetailService;
private ICuMemberService cuMemberService;
private ICuMemberAssessService cuMemberAssessService;
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
@Autowired
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
}
@Autowired
public void setCuMemberAssessService(ICuMemberAssessService cuMemberAssessService) {
this.cuMemberAssessService = cuMemberAssessService;
}
@Autowired
public void setCuMemberService(ICuMemberService cuMemberService) {
this.cuMemberService = cuMemberService;
}
@Autowired
public void setCuMemberShareDetailService(ICuMemberShareDetailService cuMemberShareDetailService) {
this.cuMemberShareDetailService = cuMemberShareDetailService;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveMemberShareBonus(CuMemberShareBonusParam cuMemberShareBonusParam) {
CuMemberShareBonusExt cuMemberShareBonusExt = queryCuMemberShareBonus(cuMemberShareBonusParam.getPkCountry(), cuMemberShareBonusParam.getSettleMonth());
CuMemberShareBonus cuMemberShareBonus = BeanUtil.copyProperties(cuMemberShareBonusExt, CuMemberShareBonus.class);
if (cuMemberShareBonus.getPkId() == null) {
cuMemberShareBonus.setPkCountry(cuMemberShareBonusParam.getPkCountry());
cuMemberShareBonus.setPkCreator(cuMemberShareBonusParam.getPkCreator());
CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(cuMemberShareBonusExt.getSettleMonth() + "-01");
cuMemberShareBonus.setPeriod(cuMemberSettlePeriod.getPkId());
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(cuMemberShareBonusParam.getPkCountry()).getData();
cuMemberShareBonus.setPkRate(currencyDTO.getPkId());
baseMapper.insert(cuMemberShareBonus);
} else {
cuMemberShareBonus.setPkModified(cuMemberShareBonusParam.getPkCreator());
cuMemberShareBonus.setModifiedTime(DateUtils.currentDateTime());
baseMapper.updateById(cuMemberShareBonus);
}
if (CollectionUtil.isNotEmpty(cuMemberShareBonusExt.getCuMemberShareDetailList())) {
Map<Integer, CuMemberShareDetailParam> cuMemberShareDetailParamMap = new HashMap<>();
cuMemberShareBonusParam.getCuMemberShareDetailList().forEach(cuMemberShareDetailParam ->
cuMemberShareDetailParamMap.put(cuMemberShareDetailParam.getPkAwards(), cuMemberShareDetailParam));
Date currentDateTime = DateUtils.currentDateTime();
for (CuMemberShareDetailExt cuMemberShareDetail : cuMemberShareBonusExt.getCuMemberShareDetailList()) {
if (cuMemberShareDetailParamMap.containsKey(cuMemberShareDetail.getPkAwards())) {
CuMemberShareDetailParam cuMemberShareDetailParam = cuMemberShareDetailParamMap.get(cuMemberShareDetail.getPkAwards());
cuMemberShareDetail.setRealShareIncome(cuMemberShareDetailParam.getRealShareIncome());
cuMemberShareDetail.setRealShareSubtotal(ComputeUtil.computeMultiply(cuMemberShareDetailParam.getRealShareIncome(), cuMemberShareDetail.getReachTotal()));
}
if (cuMemberShareDetail.getPkId() == null) {
cuMemberShareDetail.setPkCountry(cuMemberShareBonusParam.getPkCountry());
cuMemberShareDetail.setPkShareBonus(cuMemberShareBonus.getPkId());
cuMemberShareDetail.setCreationTime(currentDateTime);
cuMemberShareDetail.setPkCreator(cuMemberShareBonusParam.getPkCreator());
} else {
cuMemberShareDetail.setPkModified(cuMemberShareBonusParam.getPkCreator());
cuMemberShareDetail.setModifiedTime(DateUtils.currentDateTime());
}
}
cuMemberShareDetailService.saveMemberShareBonus(cuMemberShareBonusExt.getCuMemberShareDetailList());
}
}
@Override
public CuMemberShareBonusExt queryCuMemberShareBonus(Integer pkCountry, String settleMonth) {
CuMemberShareBonusExt cuMemberShareBonusExt = baseMapper.queryCuMemberShareBonus(pkCountry, settleMonth);
if (cuMemberShareBonusExt == null) {
cuMemberShareBonusExt = new CuMemberShareBonusExt();
cuMemberShareBonusExt.setSettleMonth(settleMonth);
Date endDate = DateUtils.parseDate(settleMonth + "-01");
Date startDate = DateUtils.beforeMonthFirstDate(endDate);
SaOrder saOrder = saOrderServiceApi.queryOrderTotalAchieveByTime(startDate, endDate).getData();
BigDecimal shareRatio = BigDecimal.ZERO;
List<BdAwards> bdAwardsList = awardsServiceApi.queryAwards(pkCountry).getData();
List<CuMemberShareDetailExt> cuMemberShareDetailList = new ArrayList<>();
// 查询奖衔 晋升人数
List<CuMember> cuMemberList = cuMemberService.queryCuMemberShareTotal(pkCountry);
Map<Integer, Integer> cuMemberMap = new HashMap<>();
cuMemberList.forEach(cuMember ->
cuMemberMap.put(cuMember.getPkAwards(), cuMember.getShareStatus()));
List<CuMemberAssess> cuMemberAssessList = cuMemberAssessService.queryCuMemberAssTotal(settleMonth + "-01", pkCountry);
Map<Integer, Integer> cuMemberAssMap = new HashMap<>();
cuMemberAssessList.forEach(cuMemberAssess ->
cuMemberAssMap.put(cuMemberAssess.getPkAwards(), cuMemberAssess.getAssessStatus()));
// 查询奖衔 达标人数
for (BdAwards bdAwards : bdAwardsList) {
if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) {
continue;
}
shareRatio = ComputeUtil.computeAdd(shareRatio, bdAwards.getAbonusRatio());
CuMemberShareDetailExt cuMemberShareDetail = new CuMemberShareDetailExt();
cuMemberShareDetail.setPkAwards(bdAwards.getPkId());
cuMemberShareDetail.setPkAwardsVal(bdAwards.getAwardsName());
cuMemberShareDetail.setPromoteTotal(0);
cuMemberShareDetail.setReachTotal(0);
cuMemberShareDetail.setExpectShareIncome(BigDecimal.ZERO);
cuMemberShareDetail.setExpectShareSubtotal(BigDecimal.ZERO);
cuMemberShareDetail.setRealShareIncome(BigDecimal.ZERO);
cuMemberShareDetail.setRealShareSubtotal(BigDecimal.ZERO);
if (cuMemberMap.containsKey(bdAwards.getPkId())) {
cuMemberShareDetail.setPromoteTotal(cuMemberMap.get(bdAwards.getPkId()));
}
if (cuMemberAssMap.containsKey(bdAwards.getPkId())) {
cuMemberShareDetail.setReachTotal(cuMemberAssMap.get(bdAwards.getPkId()));
}
cuMemberShareDetailList.add(cuMemberShareDetail);
}
cuMemberShareBonusExt.setExpectShareTotal(saOrder == null ? BigDecimal.ZERO : ComputeUtil.computeMultiply(saOrder.getOrderAchieve(), shareRatio));
cuMemberShareBonusExt.setRealShareTotal(saOrder == null ? BigDecimal.ZERO : ComputeUtil.computeMultiply(saOrder.getOrderAchieve(), shareRatio));
// 处理预发金额 预发合计
for (CuMemberShareDetail cuMemberShareDetail : cuMemberShareDetailList) {
int count = bdAwardsList.size();
if (count > 0) {
cuMemberShareDetail.setExpectShareSubtotal(ComputeUtil.computeDivide(cuMemberShareBonusExt.getExpectShareTotal(), BigDecimal.valueOf(count)));
cuMemberShareDetail.setExpectShareIncome(ComputeUtil.computeDivide(cuMemberShareDetail.getExpectShareSubtotal(), BigDecimal.valueOf(cuMemberShareDetail.getPromoteTotal())));
} else {
cuMemberShareDetail.setExpectShareSubtotal(BigDecimal.ZERO);
cuMemberShareDetail.setExpectShareIncome(BigDecimal.ZERO);
}
}
cuMemberShareBonusExt.setCuMemberShareDetailList(cuMemberShareDetailList);
}
return cuMemberShareBonusExt;
}
}

View File

@ -3,21 +3,13 @@ package com.hzs.bonus.bonus.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.bonus.service.ICuMemberShareDetailService;
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.List;
/**
* 会员奖金-分红奖金配置明细 服务实现类
*/
@Service
public class CuMemberShareDetailServiceImpl extends ServiceImpl<CuMemberShareDetailMapper, CuMemberShareDetail> implements ICuMemberShareDetailService {
@Override
public void saveMemberShareBonus(List<CuMemberShareDetailExt> cuMemberShareDetailList) {
baseMapper.saveMemberShareBonus(cuMemberShareDetailList);
}
}

View File

@ -1,49 +0,0 @@
package com.hzs.bonus.bonus.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.bonus.mapper.CuMemberSpeRetailMapper;
import com.hzs.bonus.bonus.param.RetailAreaParam;
import com.hzs.bonus.bonus.service.ICuMemberSpeRetailService;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.bonus.CuMemberSpeRetail;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 注水盒数 服务实现类
*/
@Service
public class CuMemberSpeRetailServiceImpl extends ServiceImpl<CuMemberSpeRetailMapper, CuMemberSpeRetail> implements ICuMemberSpeRetailService {
@Transactional(rollbackFor = Exception.class)
@Override
public void batchSpeRetail(List<RetailAreaParam> list, Integer pkCountry, Long pkCreator) {
List<CuMemberSpeRetail> cmsrList = new ArrayList<>();
Date date = new Date();
list.forEach(item -> {
CuMemberSpeRetail cmsr = BeanUtil.copyProperties(item, CuMemberSpeRetail.class);
cmsr.setPeriodDate(DateUtils.getStartTime(item.getSettleDate()));
cmsr.setPkCountry(pkCountry);
cmsr.setPkCreator(pkCreator);
cmsr.setCreationTime(date);
cmsrList.add(cmsr);
});
this.saveBatch(cmsrList);
}
@Override
public List<RetailAreaParam> getCuMemberSpeRetail(RetailAreaParam param) {
return baseMapper.getCuMemberSpeRetail(param);
}
@Override
public int checkCuMemberActivate(String memberCode) {
return baseMapper.checkCuMemberActivate(memberCode);
}
}

View File

@ -22,16 +22,6 @@ public class BonusRecordDetailVO implements Serializable {
*/
private List<CuMemberBonusPush> cuMemberBonusPushList;
/**
*
*/
private List<CuMemberBonusExpand> cuMemberBonusExpandList;
/**
* 新零售 - 培育津贴
*/
private List<CuMemberBonusCoach> cuMemberBonusCoachList;
/**
* 新零售 - 区域分红月度分红
*/

View File

@ -1,46 +0,0 @@
package com.hzs.bonus.detail.controller.api;
import cn.hutool.core.bean.BeanUtil;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.bonus.detail.vo.CuRegionAssessDetailVO;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* @description: 考核会员端
* @author: sui q
* @time: 2025/1/16 11:12
* @classname: ApiCuRegionAssessController
* @package_name: com.hzs.bonus.detail.controller.api
* version 1.0.0
*/
@RestController
@RequestMapping("/api/region")
public class ApiCuRegionAssessController extends BaseController {
@Autowired
private ICuRegionAssessService regionAssessService;
/**
* 查询会员昨天奖金的值
*/
@GetMapping("/query")
public TableDataInfo listRegionAssess(){
CuRegionAssessParam cuRegionAssessParam = new CuRegionAssessParam();
cuRegionAssessParam.setPkCountry(SecurityUtils.getPkCountry());
cuRegionAssessParam.setPkMember(SecurityUtils.getUserId());
List<CuRegionAssessExt> cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam);
return getDataTable(regionAssessService.getCuRegionAssessVoS(cuRegionAssessExtList));
}
}

View File

@ -1,56 +0,0 @@
package com.hzs.bonus.detail.controller.manage;
import com.hzs.bonus.detail.service.ICuMemberAssessService;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.enums.EOperationMethod;
import com.hzs.common.core.enums.EOperationModule;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description:
* @Author: sui q
* @Time: 2022/11/8 13:50
* @Classname: CuMemberAssessController
* @PackageName: com.hzs.member.detail.controller.manage
*/
@RestController
@RequestMapping("/manage/assess")
public class CuMemberAssessController extends BaseController {
private ICuMemberAssessService cuMemberAssessService;
@Autowired
public void setCuMemberAssessService(ICuMemberAssessService cuMemberAssessService) {
this.cuMemberAssessService = cuMemberAssessService;
}
/**
* 考核复购考核分红考核
* 考核默认考核当月
* @return AjaxResult
*/
@GetMapping("/examine")
@Log(module = EOperationModule.CU_MEMBER_ASSESSMENT, method = EOperationMethod.UPDATE)
public AjaxResult calculationCuMemberAssess(String settleDate) {
cuMemberAssessService.calculationCuMemberAssess(DateUtils.parseStringToDate(settleDate));
return AjaxResult.success();
}
/**
* 重算考核复购考核分红考核
* 考核默认考核当月
* @return AjaxResult
*/
@GetMapping("/retry-examine")
@Log(module = EOperationModule.CU_MEMBER_ASSESSMENT, method = EOperationMethod.UPDATE)
public AjaxResult retryCalculationCuMemberAssess(String settleDate) {
cuMemberAssessService.retryCalculationAssess(DateUtils.currentMonthFirstDate(DateUtils.parseStringToDate(settleDate)), Boolean.FALSE);
return AjaxResult.success();
}
}

View File

@ -1,88 +0,0 @@
package com.hzs.bonus.detail.controller.manage;
import cn.hutool.core.bean.BeanUtil;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.bonus.detail.vo.CuRegionAssessExcelVO;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.utils.poi.ExcelUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
* 新零售会员区域考核 前端控制器
*/
@RestController
@RequestMapping("/manage/region")
public class CuRegionAssessController extends BaseController {
@Autowired
private ICuRegionAssessService cuRegionAssessService;
@Autowired
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
@Autowired
private ICuRegionAssessService regionAssessService;
/**
* 考核
* 考核默认考核当月
*
* @return AjaxResult
*/
@GetMapping("/examine")
public AjaxResult calculationCuRegionAssess(String settleDate) {
Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
cuRegionAssessService.assessRegionByEveryMonth(settleDate, rangeTableName);
return AjaxResult.success();
}
/**
* 查询会员昨天奖金的值
*/
@PostMapping("/query")
public TableDataInfo listRegionAssess(@RequestBody CuRegionAssessParam cuRegionAssessParam) {
startPage();
cuRegionAssessParam.setPkCountry(SecurityUtils.getPkCountry());
List<CuRegionAssessExt> cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam);
List<CuRegionAssessVO> cuRegionAssessVoList = regionAssessService.getCuRegionAssessVoS(cuRegionAssessExtList);
TableDataInfo dataTable = getDataTable(cuRegionAssessExtList);
dataTable.setRows(cuRegionAssessVoList);
return dataTable;
}
/**
* 分页查询会员某个时间段内的奖金汇总
*/
@PostMapping("/export")
public void exportRegionAssess(HttpServletResponse response, CuRegionAssessParam cuRegionAssessParam) {
List<CuRegionAssessExt> cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam);
List<CuRegionAssessExcelVO> cuRegionAssessVoList = new ArrayList<>();
for (CuRegionAssessExt cuRegionAssessExt : cuRegionAssessExtList) {
for (CuRegionAssessDetail cuRegionAssessDetail : cuRegionAssessExt.getCuRegionAssessDetailList()) {
CuRegionAssessExcelVO regionAssessExcelVO = BeanUtil.copyProperties(cuRegionAssessExt, CuRegionAssessExcelVO.class);
regionAssessExcelVO.setAssessDate(cuRegionAssessDetail.getAssessDate());
regionAssessExcelVO.setTeamMonthPv(cuRegionAssessDetail.getTeamMonthPv());
regionAssessExcelVO.setSmallAreaPv(cuRegionAssessDetail.getSmallAreaPv());
regionAssessExcelVO.setAssessStatus(cuRegionAssessDetail.getAssessStatus());
cuRegionAssessVoList.add(regionAssessExcelVO);
}
}
ExcelUtil<CuRegionAssessExcelVO> util = new ExcelUtil<>(CuRegionAssessExcelVO.class);
util.exportExcel(response, cuRegionAssessVoList, "区域考核导出");
}
}

View File

@ -2,68 +2,9 @@ package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.detail.CuMemberAssessDetail;
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* <p>
* 考核业绩变化明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-10-28
*/
public interface CuMemberAssessDetailMapper extends BaseMapper<CuMemberAssessDetail> {
/*
* @description: 根据期间删除会员考核记录
* @author: sui q
* @date: 2023/5/25 10:52
* @param: null null
**/
void deleteCuMemberAssessDetailByPeriod(@Param("tableName") String tableName, @Param("period") Integer period);
/*
* @description: 每月考试将订单插入会员考核明细
* @author: sui q
* @date: 2023/5/25 11:36
* @param: null null
**/
void insertCuMemberAssesDetailByOrder(@Param("tableName") String tableName, @Param("period") Integer period,
@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* 插入考核记录
* @param tableName 表名
* @param period 期间
* @param cuMemberList 需要重新考核的会员
* @param assessType 类型
* @return: void
* @Author: sui q
* @Date: 2022/11/9 15:56
*/
void insertCuMemberAssessDetailByPeriod(@Param("tableName") String tableName, @Param("period") Integer period,
@Param("cuMemberList") List<?> cuMemberList, @Param("assessType") Integer assessType);
/**
* 新增或修改会员考核明细表根据期间重算就是修改
* @param tableName 来源表
* @param period 期间
* @return: Integer
* @Author: sui q
* @Date: 2022/11/8 11:21
*/
Integer updateCuMemberAssessDetailByPeriod(@Param("tableName") String tableName, @Param("period") Integer period);
/**
* 批量删除会员考核明细
* @param revokeDetailList 退单的明细数据
* @return: Integer
* @Author: sui q
* @Date: 2022/11/9 15:37
*/
Integer updateCuMemberAssessDetailByRevoke(@Param("revokeDetailList") List<?> revokeDetailList);
}

View File

@ -1,16 +0,0 @@
package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.detail.CuMemberAssessExempt;
/**
* <p>
* 考核业绩免考记录表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-10-28
*/
public interface CuMemberAssessExemptMapper extends BaseMapper<CuMemberAssessExempt> {
}

View File

@ -2,125 +2,9 @@ package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.detail.CuMemberAssess;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 会员信息-会员考核记录 Mapper 接口
*/
public interface CuMemberAssessMapper extends BaseMapper<CuMemberAssess> {
/*
* 清空表数据
**/
void deleteCuMemberAssessByPeriod(@Param("tableName") String tableName, @Param("period") Integer period);
/**
* 初始化复购考核表数据将结算表数据插入到考核表中
*
* @param tableName 更新表名
* @param sourceTableName 来源表用哪个表进行更新
* @param period 期间
* @param month 考核月份
*/
Integer insertRepCuMemberAssess(@Param("tableName") String tableName, @Param("sourceTableName") String sourceTableName,
@Param("period") Integer period, @Param("month") String month);
/**
* 初始化复购考核表数据将结算表数据插入到考核表中
*
* @param tableName 更新表名
* @param sourceTableName 来源表用哪个表进行更新
* @param period 期间
* @param month 考核月份
*/
Integer insertRepCuMemberRangeAssess(@Param("tableName") String tableName, @Param("sourceTableName") String sourceTableName,
@Param("period") Integer period, @Param("month") String month);
/**
* 更新会员复购考核业绩
*
* @param tableName 结算表
* @param beforeTableName 上个月的表
* @param sourcePeriod 来源结算期
* @param period 结算结算期间
* @param assessType 考核类型 0=复购考核 1=分红考核
*/
Integer updateAssessPeriodBeginByBeforeMonth(@Param("beforeTableName") String beforeTableName, @Param("tableName") String tableName,
@Param("sourcePeriod") Integer sourcePeriod,
@Param("period") Integer period, @Param("assessType") Integer assessType);
/**
* 更新会员复购考核分红考核 当月结余根据上月复购订单
*
* @param tableName 表名
* @param period 期间
* @param assessType 考核类型
* @param startDate 开始时间
* @param endDate 结束时间
* @param orderTypeList 订单类型
*/
Integer updateAssessPeriodAddBySaOrder(@Param("tableName") String tableName, @Param("period") Integer period,
@Param("assessType") Integer assessType, @Param("startDate") Date startDate,
@Param("endDate") Date endDate, @Param("orderTypeList") List<Integer> orderTypeList);
/**
* 更新免考通过的考核表
* 更新会员考核表根据免考的更新期末结余更新结余跟其他的不一样
* 只更新一张表复购跟分红可以一起更新复购或分红只需要更新一次
*
* @param tableName 表名
* @param period 期间
*/
Integer updateAssessPeriodExemptBalanceByUsed(@Param("tableName") String tableName, @Param("period") Integer period);
/**
* 更新考核表更新复购考核状态为免考首次注册首次晋升的会员
*
* @param tableName 需要更新的会员考核表名
* @param settleTableName 每日结算表
* @param period 期间
* @param startDate 开始日期
* @param endDate 结束日期
*/
Integer updateAssessCuMemberToRepExempt(@Param("tableName") String tableName, @Param("settleTableName") String settleTableName,
@Param("period") Integer period, @Param("startDate") Date startDate, @Param("endDate") Date endDate,
@Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod);
/**
* 更新考核表更新复购考核状态为免考首次注册首次晋升的会员更新结算网体
*
* @param settleTableName 每日结算表
* @param startDate 开始日期
* @param endDate 结束日期
*/
Integer updateCuMemberSettleToRepExempt(@Param("settleTableName") String settleTableName, @Param("startDate") Date startDate,
@Param("endDate") Date endDate, @Param("startPeriod") Integer startPeriod,
@Param("endPeriod") Integer endPeriod);
/**
* 更新考核表更新复购考核状态为免考首次注册首次晋升的会员更新结算网体
*
* @param settleTableName 每日结算表
*/
Integer updateAllCuMemberSettleToRepExempt(@Param("settleTableName") String settleTableName);
/**
* 更新考核通过的考核表
* 更新会员考核表根据使用值的更新期末结余更新结余跟其他的不一样
* 只更新一张表复购跟分红可以一起更新复购或分红只需要更新一次
*
* @param tableName 表名
* @param period 期间
*/
Integer updateAssessPeriodCheckBalanceByUsed(@Param("tableName") String tableName, @Param("period") Integer period);
/*
* 查询满足分红考核的人数达标人数
**/
List<CuMemberAssess> queryCuMemberAssTotal(@Param("settleTable") String settleTable, @Param("period") Integer period,
@Param("pkCountry") Integer pkCountry);
}

View File

@ -1,67 +0,0 @@
package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 会员信息-等级升级记录 Mapper 接口
*/
public interface CuMemberGradeMapper extends BaseMapper<CuMemberGrade> {
/**
* 回退会员等级
*/
void updateCuMemberGrade(@Param("rangeTableName") String rangeTableName, @Param("period") Integer period);
/**
* 查询会员最新手动升级记录更新秒结表会员等级小于手动升级的会员等级
*/
void updateCuMemberGradeSecond(@Param("secondRangeTableName") String secondRangeTableName, @Param("period") Integer period);
/**
* 查询手动升级的等级
*/
List<CuMemberGrade> queryCuMemberGradeByList(@Param("period") Integer period, @Param("memberRetailRangeExtList") List<CuMemberRetailRangeExt> memberRetailRangeExtList);
/**
* 查询会员等级
*/
List<CuMemberLevel> queryCuMemberLevel(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* 回退会员等级
*/
void updateCuMemberGradeLevel(@Param("rangeTableName") String rangeTableName, @Param("pkOrder") Long pkOrder);
/**
* 查询订单升级记录
*
* @param pkMember
* @param pkOrder
* @return
*/
CuMemberRetailRangeExt getMemberLevel(@Param("pkMember") Long pkMember, @Param("pkOrder") Long pkOrder);
/**
* 删除等级
*/
void deleteCuMemberGrade(@Param("period") Integer period);
/**
* 删除等级升级记录
*/
void deleteCuMemberGradeByList(@Param("cuMemberGradeList") List<CuMemberGrade> cuMemberGradeList, @Param("period") Integer period);
/**
* 查询自动升级的等级
*/
List<CuMemberGrade> queryCuMemberGrade(@Param("cuMemberRetailRangeExtList") List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList,
@Param("period") Integer period);
}

View File

@ -1,58 +0,0 @@
package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 新零售会员区域考核明细表 Mapper 接口
*/
public interface CuRegionAssessDetailMapper extends BaseMapper<CuRegionAssessDetail> {
/*
* 考核开始日期
**/
void deleteAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/*
* 删除重复的数据
**/
void updateAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
/**
* 批量生成考核明细seq
*
* @param rowNum
* @return
*/
List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/*
* 批量插入区域考核数据
**/
void batchInsertCuRegionAssessDetail(@Param("cuRegionAssessDetailList") List<?> cuRegionAssessDetailList);
/*
* 根据上月数据更新考核明细数据
**/
void mergeCuRegionAssessDetailTeamPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/*
* 根据上月数据更新考核明细数据
**/
void mergeCuRegionAssessDetailSmallAreaPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/*
* 初始化考核先置为考核失败
**/
void updateCuRegionAssessDetailInit(@Param("assessDate") Date assessDate);
/*
* 根据月后业绩考核汇总满足30w小区10w
**/
void updateCuRegionAssessDetailByPv(@Param("assessDate") Date assessDate);
}

View File

@ -1,64 +0,0 @@
package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 新零售会员区域考核 Mapper 接口
*/
public interface CuRegionAssessMapper extends BaseMapper<CuRegionAssess> {
/*
* 查询考核结果
**/
List<CuRegionAssessExt> queryRegionAssessByCondition(@Param("regionAssessParam") CuRegionAssessParam regionAssessParam);
/*
* 考核开始日期
**/
void deleteAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/*
* 考核开始日期
**/
void updateAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
/**
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
*/
List<Long> batchQueryCuRegionAssessSeq(Integer rowNum);
/*
* 批量插入区域考核数据
**/
void batchInsertCuRegionAssess(@Param("cuRegionAssessList") List<?> cuRegionAssessList);
/*
* 更新达标次数
**/
void mergeCuRegionAssess(@Param("assessDate") Date assessDate);
/*
* 查询待考核的区域
**/
List<CuMemberRetailRegion> queryCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/*
* 查询到期日期是上个月的区域
**/
List<CuMemberRetailRegion> queryDueCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/*
* 查询手动设置考核的近6个月考核记录
**/
List<CuRegionAssessExt> queryRegionAssessByDate(@Param("memberRetailRegionList") List<CuMemberRetailRegion> memberRetailRegionList, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}

View File

@ -1,46 +0,0 @@
package com.hzs.bonus.detail.provider;
import com.hzs.bonus.detail.ICuRegionAssessApi;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
/**
* @Description: 新零售会员dubbo服务
* @Author: jiang chao
* @Time: 2024/12/31 13:40
* @Classname: MemberRetailProvider
* @PackageName: com.hzs.retail.member.provider
*/
@Slf4j
@DubboService
public class CuRegionAssessProvider implements ICuRegionAssessApi {
@Autowired
private ICuRegionAssessService iCuRegionAssessService;
/**
* @description: 定时处理会员收益区域处理前三天
* @author: zhang jing
* @date: 2025/3/7 10:45
* @param: [startDate]
* @return: com.hzs.common.core.domain.R<?>
**/
@Override
public R<?> validateHandAreaAssess(Date startDate,Date endDate) {
try {
iCuRegionAssessService.validateHandAreaAssess(startDate,endDate);
return R.ok();
} catch (Exception e) {
log.error("定时任务处理前3天收益区域异常", e);
return R.fail(e.getMessage());
}
}
}

View File

@ -2,63 +2,10 @@ package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuMemberAssessDetail;
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* <p>
* 考核业绩变化明细表 服务类
* </p>
*
* @author hzs
* @since 2022-10-28
*/
public interface ICuMemberAssessDetailService extends IService<CuMemberAssessDetail> {
/*
* @description: 根据期间删除会员考核记录
* @author: sui q
* @date: 2023/5/25 10:52
* @param: null null
**/
void deleteCuMemberAssessDetailByPeriod(String tableName, Integer period);
/*
* @description: 每月考试将订单插入会员考核明细
* @author: sui q
* @date: 2023/5/25 11:36
* @param: null null
**/
void insertCuMemberAssesDetailByOrder(String tableName, Integer period, Date startDate, Date endDate);
/**
* 插入考核记录
* @param tableName 表名
* @param period 期间
* @param newCuMemberSettleExtList 会员列表
* @return: void
* @Author: sui q
* @Date: 2022/11/9 15:56
*/
void insertCuMemberAssessDetailByPeriod(String tableName, Integer period, List<CuMemberSettleExt> newCuMemberSettleExtList);
/**
* 新增或修改会员考核明细表根据期间重算就是修改
* @param tableName 来源表
* @param period 期间
* @Author: sui q
* @Date: 2022/11/8 11:21
*/
void updateCuMemberAssessDetailByPeriod(String tableName, Integer period);
/**
* 删除可能会发生变动的会员的考核明细
* @param revokeDetailList 变动的记录
* @Author: sui q
* @Date: 2022/11/9 15:31
*/
void deleteCuMemberAssessDetailByList(List<CuMemberAssessDetail> revokeDetailList);
}

View File

@ -1,16 +0,0 @@
package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuMemberAssessExempt;
/**
* <p>
* 考核业绩免考记录表 服务类
* </p>
*
* @author hzs
* @since 2022-10-28
*/
public interface ICuMemberAssessExemptService extends IService<CuMemberAssessExempt> {
}

View File

@ -3,28 +3,9 @@ package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuMemberAssess;
import java.util.Date;
import java.util.List;
/**
* 会员信息-会员考核记录 服务类
*/
public interface ICuMemberAssessService extends IService<CuMemberAssess> {
/**
* 复购考核每月第一考核调用此方法
*/
void calculationCuMemberAssess(Date currentDate);
/**
* 重算考核 奖金用每天的重算复购考核用复购考核分红考核,只重算免考的
*
* @param currentDate 哪一天进行重新复购考核拿昨天的值跟现在的值对比
*/
void retryCalculationAssess(Date currentDate, Boolean flag);
/*
* 查询满足分红考核的人数达标人数
**/
List<CuMemberAssess> queryCuMemberAssTotal(String startDate, Integer pkCountry);
}

View File

@ -1,63 +0,0 @@
package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import java.util.Date;
import java.util.List;
/**
* 会员信息-等级升级记录 服务类
*/
public interface ICuMemberGradeService extends IService<CuMemberGrade> {
/**
* 回退极差奖衔每日重新结算先把奖衔回退到前一天
*
* @param period 结算期间
* @param rangeTableName 结算表
*/
List<CuMemberLevel> calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName);
/**
* 查询会员最新手动升级记录更新秒结表会员等级小于手动升级的会员等级
*/
void updateCuMemberGradeSecond(String secondRangeTableName, Integer period);
/**
* 查询手动升级的等级
*/
List<CuMemberGrade> queryCuMemberGradeByList(Integer period, List<CuMemberRetailRangeExt> memberRetailRangeExtList);
/**
* 回退会员等级
*/
void updateCuMemberGrade(String rangeTableName, Long pkOrder);
/**
* 查询订单升级记录
*
* @param pkMember
* @param pkOrder
* @return
*/
CuMemberRetailRangeExt getMemberLevel(Long pkMember, Long pkOrder);
/**
* 插入会员等级升级记录
*/
void insertCuMemberGrade(List<CuMemberGrade> cuMemberGradeList);
/**
* 删除等级升级记录
*/
void deleteCuMemberGrade(List<CuMemberGrade> cuMemberGradeList, Integer period);
/**
* 查询自动升级的等级
*/
List<CuMemberGrade> queryCuMemberGrade(List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList, Integer period);
}

View File

@ -1,35 +0,0 @@
package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import java.util.Date;
import java.util.List;
/**
* 新零售会员区域考核明细表 服务类
*/
public interface ICuRegionAssessDetailService extends IService<CuRegionAssessDetail> {
/*
* 考核开始日期
**/
void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod);
/*
* 删除重复的数据
**/
void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate);
List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/*
* 批量插入区域考核数据
**/
void batchInsertCuRegionAssessDetail(List<?> cuRegionAssessDetailList);
/*
* 根据上月数据考核区域
**/
void assessCuRegionAssessDetail(String rangeTableName, Date assessDate);
}

View File

@ -1,40 +0,0 @@
package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import java.util.Date;
import java.util.List;
/**
* 新零售会员区域考核 服务类
*/
public interface ICuRegionAssessService extends IService<CuRegionAssess> {
/*
* 每月考核区域是否达标
**/
void assessRegionByEveryMonth(String settleDate, String rangeTableName);
/**
* 定时处理会员收益区域处理前三天
*
* @return: void
**/
void validateHandAreaAssess(Date startDate, Date endDate);
/*
* 考核开始日期
**/
void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod);
/*
* 查询考核结果
**/
List<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam);
List<CuRegionAssessVO> getCuRegionAssessVoS(List<CuRegionAssessExt> cuRegionAssessExtList);
}

View File

@ -1,79 +1,14 @@
package com.hzs.bonus.detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.detail.service.ICuMemberAssessDetailService;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.enums.EAssessmentType;
import com.hzs.common.domain.member.detail.CuMemberAssessDetail;
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
import com.hzs.bonus.detail.mapper.CuMemberAssessDetailMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* 考核业绩变化明细表 服务实现类
* </p>
*
* @author hzs
* @since 2022-10-28
*/
@Service
public class CuMemberAssessDetailServiceImpl extends ServiceImpl<CuMemberAssessDetailMapper, CuMemberAssessDetail> implements ICuMemberAssessDetailService {
@Autowired
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void deleteCuMemberAssessDetailByPeriod(String tableName, Integer period) {
baseMapper.deleteCuMemberAssessDetailByPeriod(tableName, period);
}
@Override
public void insertCuMemberAssesDetailByOrder(String tableName, Integer period, Date startDate, Date endDate) {
baseMapper.insertCuMemberAssesDetailByOrder(tableName, period, startDate, endDate);
}
@Override
public void insertCuMemberAssessDetailByPeriod(String tableName, Integer period, List<CuMemberSettleExt> newCuMemberSettleExtList) {
List<CuMemberSettleExt> purchaseMemberList = new ArrayList<>();
List<CuMemberSettleExt> shareMemberList = new ArrayList<>();
newCuMemberSettleExtList.forEach(cuMemberSettleExt -> {
if (EAssessmentType.REPURCHASE_ASSESS.getValue() == cuMemberSettleExt.getAssessType()) {
purchaseMemberList.add(cuMemberSettleExt);
} else {
shareMemberList.add(cuMemberSettleExt);
}
});
if (purchaseMemberList.size() > 0) {
List<List<?>> purchaseHandleCutList = cuMemberBonusSettle.handleCutList(purchaseMemberList);
purchaseHandleCutList.forEach(cuMemberBonusSettleList ->
baseMapper.insertCuMemberAssessDetailByPeriod(tableName, period, cuMemberBonusSettleList, EAssessmentType.REPURCHASE_ASSESS.getValue()) );
}
if (shareMemberList.size() > 0) {
List<List<?>> shareHandleCutList = cuMemberBonusSettle.handleCutList(shareMemberList);
shareHandleCutList.forEach(cuMemberBonusSettleList ->
baseMapper.insertCuMemberAssessDetailByPeriod(tableName, period, cuMemberBonusSettleList, EAssessmentType.SHARE_ASSESS.getValue()));
}
}
@Override
public void updateCuMemberAssessDetailByPeriod(String tableName, Integer period) {
baseMapper.updateCuMemberAssessDetailByPeriod(tableName, period);
}
@Override
public void deleteCuMemberAssessDetailByList(List<CuMemberAssessDetail> revokeDetailList) {
List<List<?>> handleCutList = cuMemberBonusSettle.handleCutList(revokeDetailList,
MagicNumberConstants.BATCH_UPDATE_NUM);
handleCutList.forEach(list -> {
baseMapper.updateCuMemberAssessDetailByRevoke(list);
});
}
}

View File

@ -1,20 +0,0 @@
package com.hzs.bonus.detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.detail.service.ICuMemberAssessExemptService;
import com.hzs.common.domain.member.detail.CuMemberAssessExempt;
import com.hzs.bonus.detail.mapper.CuMemberAssessExemptMapper;
import org.springframework.stereotype.Service;
/**
* <p>
* 考核业绩免考记录表 服务实现类
* </p>
*
* @author hzs
* @since 2022-10-28
*/
@Service
public class CuMemberAssessExemptServiceImpl extends ServiceImpl<CuMemberAssessExemptMapper, CuMemberAssessExempt> implements ICuMemberAssessExemptService {
}

View File

@ -1,21 +1,10 @@
package com.hzs.bonus.detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.detail.service.ICuMemberAssessDetailService;
import com.hzs.bonus.detail.service.ICuMemberAssessService;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.member.detail.CuMemberAssess;
import com.hzs.bonus.detail.mapper.CuMemberAssessMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.temporal.ChronoUnit;
import java.util.*;
/**
* 会员信息-会员考核记录 服务实现类
@ -23,164 +12,4 @@ import java.util.*;
@Service
public class CuMemberAssessServiceImpl extends ServiceImpl<CuMemberAssessMapper, CuMemberAssess> implements ICuMemberAssessService {
@Autowired
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Autowired
private ICuMemberAssessDetailService iCuMemberAssessDetailService;
/**
* 复购考核每月第一次考核调用此方法
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void calculationCuMemberAssess(Date currentDate) {
// 查询当前时间的第一天跟最后一天
// 需要验证考核国家是否有复购考核 分红考核
// 考核日期不能跨越考核只能当月考核当月考核上月
if (DateUtils.currentDay(currentDate) == 1) {
String currentMonthFirstDate = DateUtils.currentMonthFirstDateStr(currentDate);
Integer currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthFirstDate).getPkId();
String currentTableName = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.getYear(currentMonthFirstDate);
// 清空数据 根据期数清空cu_member_assess cu_member_assess_detail表数据
initCurrentAssess(currentDate, currentTableName, currentPeriod);
// 初始化复购考核的上月结余
initCurrentAssessByBeforeMonth(currentDate, currentTableName, currentPeriod, EAssessmentType.REPURCHASE_ASSESS.getValue());
// 初始化分红考核的上月结余
// initCurrentAssessByBeforeMonth(currentDate, currentTableName, currentPeriod, EAssessmentType.SHARE_ASSESS.getValue());
// 更新当月结余 结余会同时更新复购跟分红只需要更新一次
// 1 有免考状态的 本月使用是 0考核状态是免考通过免考将所有的值更改一下期末 期末= 期初+本月
// 注意 不修改考核状态为通过的值可能存在之前考核通过又手动免考的人
baseMapper.updateAssessPeriodExemptBalanceByUsed(currentTableName, currentPeriod);
// 2 需要扣除通过的需要记录流水
// 记录流水新增或修改
iCuMemberAssessDetailService.updateCuMemberAssessDetailByPeriod(currentTableName, currentPeriod);
baseMapper.updateAssessPeriodCheckBalanceByUsed(currentTableName, currentPeriod);
}
}
/**
* 奖金计算时重算考核 复购考核分红考核,只重算免考的撤单的
*
* @param currentDate 考核时间
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void retryCalculationAssess(Date currentDate, Boolean flag) {
// String beforeDateStr = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, currentDate);
// Integer beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDateStr).getPkId();
Integer currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, currentDate)).getPkId();
// String beforeTableName = TableNameConstants.CU_MEMBER_SETTLE + beforePeriod;
//// a)更新结算表会员前2部分会员免考状态 满足首次注册的会员 满足满足首次升级的会员
// String tableName = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.currentYear(currentDate);
// String currentMonthFirstDateStr = DateUtils.currentMonthFirstDateStr(currentDate);
// Integer monthFirstPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthFirstDateStr).getPkId();
// // 结算日期月份的第一天
Date startDate = DateUtils.beforeMonthFirstDate(currentDate);
// // 结算日期后一天
Date endDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentMonthLastDate(currentDate));
String settleTableName = TableNameConstants.CU_MEMBER_SETTLE + currentPeriod;
// // 首次晋升首次升级都是当月加下月考核查询出上月1号到考核日期的值
// // 等级看会员表支付时间奖衔看奖衔变更表是否免考分组取,手动免考查看 最新的结算表手动考核
//// d)前一天不免考后一天免考需要做重新考核直接变考核通过原来考核通过的不回退考核金额且考核状态为考核通过不是免考通过
// // 所有的海粉会员设置复购考核失败存在任意订单的海粉会员复购考核成功
// // 复购免考通过
Integer startPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, startDate)).getPkId();
Integer endPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, endDate)).getPkId();
// baseMapper.updateAssessCuMemberToRepExempt(tableName, settleTableName, monthFirstPeriod, startDate, endDate, startPeriod, endPeriod);
// // 奖金重算时更新结算表,flag=true代表奖金重算时重算考核需要更新网体 flag=false 代表重算考核
if (flag) {
// 2024-09-09 所有人全部免考通过,之后的当月免考通过
if (DateUtils.compareDateBefore(currentDate, DateUtils.parseStringToDate("2024-10-01"))) {
baseMapper.updateAllCuMemberSettleToRepExempt(settleTableName);
} else {
baseMapper.updateCuMemberSettleToRepExempt(settleTableName, startDate, endDate, startPeriod, endPeriod);
}
}
}
private void initCurrentAssess(Date currentDate, String currentTableName, Integer currentPeriod) {
// 获取上月最后一天
String beforeLastDate = DateUtils.beforeMonthLastDateStr(currentDate);
CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeLastDate);
int period = cuMemberSettlePeriod.getPkId();
String sourceTable = TableNameConstants.CU_MEMBER_SETTLE + period;
String rangeSourceTable = TableNameConstants.CU_MEMBER_RANGE + period;
// 清空子表主表数据
iCuMemberAssessDetailService.deleteCuMemberAssessDetailByPeriod(currentTableName, currentPeriod);
baseMapper.deleteCuMemberAssessByPeriod(currentTableName, currentPeriod);
// 初始化复购考核
String month = DateUtils.getMonth(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, currentDate));
// 结算日期后一天
baseMapper.insertRepCuMemberAssess(currentTableName, sourceTable, currentPeriod, month);
baseMapper.insertRepCuMemberRangeAssess(currentTableName, rangeSourceTable, currentPeriod, month);
// 初始化分红考核
// baseMapper.insertShareCuMemberAssess(currentTableName, sourceTable, currentPeriod, month);
// a)更新结算表会员前2部分会员免考状态 满足首次注册的会员 满足满足首次升级的会员
String tableName = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.currentYear(currentDate);
String currentMonthFirstDateStr = DateUtils.currentMonthFirstDateStr(currentDate);
Integer monthFirstPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthFirstDateStr).getPkId();
// 结算日期月份的第一天
Date startDate = DateUtils.beforeMonthFirstDate(currentDate);
// 结算日期后一天
Date endDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentMonthLastDate(currentDate));
String settleTableName = TableNameConstants.CU_MEMBER_SETTLE + currentPeriod;
if (DateUtils.currentDay(DateUtils.currentDate()) == 1) {
String currentMonthFirstDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, currentDate));
Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthFirstDate).getPkId();
settleTableName = TableNameConstants.CU_MEMBER_SETTLE + yesterdayPeriod;
}
// 首次晋升首次升级都是当月加下月考核查询出上月1号到考核日期的值
// 等级看会员表支付时间奖衔看奖衔变更表是否免考分组取,手动免考查看 最新的结算表手动考核
// d)前一天不免考后一天免考需要做重新考核直接变考核通过原来考核通过的不回退考核金额且考核状态为考核通过不是免考通过
// 复购免考通过
Integer startPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, startDate)).getPkId();
Integer endPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, endDate)).getPkId();
baseMapper.updateAssessCuMemberToRepExempt(tableName, settleTableName, monthFirstPeriod, startDate, endDate, startPeriod, endPeriod);
// 初始化订单数据将当月新增加入数据库
// 上月第一天上月最后一天
Date beforeFirstDate = DateUtils.beforeMonthFirstDate(currentDate);
Date currentFirstDate = DateUtils.currentMonthFirstDate(currentDate);
iCuMemberAssessDetailService.insertCuMemberAssesDetailByOrder(currentTableName, currentPeriod, beforeFirstDate, currentFirstDate);
}
/**
* 初始化期初数据将上月结余作为本月期初更新当月新增
*
* @param currentDate 结算日期
* @param currentTableName 当前月结算表
* @param currentPeriod 当前结算期间
* @param assessmentType 考核类型 0=复购考核 1=分红考核
*/
private void initCurrentAssessByBeforeMonth(Date currentDate, String currentTableName, Integer currentPeriod, Integer assessmentType) {
List<Integer> orderTypeList = new ArrayList<>();
if (EAssessmentType.REPURCHASE_ASSESS.getValue() == assessmentType) {
orderTypeList.add(EOrderType.REPURCHASE_ORDER.getValue());
orderTypeList.add(EOrderType.MALL_ORDER.getValue());
orderTypeList.add(EOrderType.COOPERATE_ORDER.getValue());
} else {
orderTypeList.add(EOrderType.WELFARE_ORDER.getValue());
}
// 更新考核值期初是上月考核表的当月剩余业绩
// 获取结算日月初第一天获取期间
// 获取结算日上月最后一天获取期间
Date beforeMonthFirstDate = DateUtils.beforeMonthFirstDate(currentDate);
String beforeMonthFirstDateStr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, beforeMonthFirstDate);
Integer beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeMonthFirstDateStr).getPkId();
String beforeTableName = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.getYear(beforeMonthFirstDateStr);
Date currentMonthFirstDate = DateUtils.currentMonthFirstDate(currentDate);
// 初始化复购考核的上月结余 // 更新当月结余
baseMapper.updateAssessPeriodBeginByBeforeMonth(beforeTableName, currentTableName, beforePeriod, currentPeriod, assessmentType);
// 更新当月新增
baseMapper.updateAssessPeriodAddBySaOrder(currentTableName, currentPeriod, assessmentType,
beforeMonthFirstDate, currentMonthFirstDate, orderTypeList);
}
@Override
public List<CuMemberAssess> queryCuMemberAssTotal(String startDate, Integer pkCountry) {
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(startDate).getPkId();
String tableTable = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.getYear(startDate);
return baseMapper.queryCuMemberAssTotal(tableTable, period, pkCountry);
}
}

View File

@ -1,62 +0,0 @@
package com.hzs.bonus.detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.detail.mapper.CuMemberGradeMapper;
import com.hzs.bonus.detail.service.ICuMemberGradeService;
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 会员信息-等级升级记录 服务实现类
*/
@Service
public class CuMemberGradeServiceImpl extends ServiceImpl<CuMemberGradeMapper, CuMemberGrade> implements ICuMemberGradeService {
@Override
public List<CuMemberLevel> calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName) {
// 更新奖衔回退等级
baseMapper.deleteCuMemberGrade(period);
baseMapper.updateCuMemberGrade(rangeTableName, period);
return baseMapper.queryCuMemberLevel(startDate, endDate);
}
@Override
public void updateCuMemberGradeSecond(String secondRangeTableName, Integer period) {
baseMapper.updateCuMemberGradeSecond(secondRangeTableName, period);
}
@Override
public List<CuMemberGrade> queryCuMemberGradeByList(Integer period, List<CuMemberRetailRangeExt> memberRetailRangeExtList) {
return baseMapper.queryCuMemberGradeByList(period, memberRetailRangeExtList);
}
@Override
public void updateCuMemberGrade(String rangeTableName, Long pkOrder) {
baseMapper.updateCuMemberGradeLevel(rangeTableName, pkOrder);
}
@Override
public CuMemberRetailRangeExt getMemberLevel(Long pkMember, Long pkOrder) {
return baseMapper.getMemberLevel(pkMember, pkOrder);
}
@Override
public void insertCuMemberGrade(List<CuMemberGrade> cuMemberGradeList) {
saveBatch(cuMemberGradeList);
}
@Override
public void deleteCuMemberGrade(List<CuMemberGrade> cuMemberGradeList, Integer period) {
baseMapper.deleteCuMemberGradeByList(cuMemberGradeList, period);
}
@Override
public List<CuMemberGrade> queryCuMemberGrade(List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList, Integer period) {
return baseMapper.queryCuMemberGrade(cuMemberRetailRangeExtList, period);
}
}

View File

@ -1,49 +0,0 @@
package com.hzs.bonus.detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.detail.mapper.CuRegionAssessDetailMapper;
import com.hzs.bonus.detail.service.ICuRegionAssessDetailService;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 新零售会员区域考核明细表 服务实现类
*/
@Service
public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessDetailMapper, CuRegionAssessDetail> implements ICuRegionAssessDetailService {
@Override
public void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod) {
baseMapper.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
}
@Override
public void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate) {
baseMapper.updateAssessRegionDetailByDate(assessStartDate, assessEndDate);
}
@Override
public List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum) {
return baseMapper.batchQueryCuRegionAssessDetailSeq(rowNum);
}
@Override
public void batchInsertCuRegionAssessDetail(List<?> cuRegionAssessDetailList) {
baseMapper.batchInsertCuRegionAssessDetail(cuRegionAssessDetailList);
}
@Override
public void assessCuRegionAssessDetail(String rangeTableName, Date assessDate) {
// 处理考核明细的汇总值
baseMapper.mergeCuRegionAssessDetailTeamPv(rangeTableName, assessDate);
// 处理考核明细的小区
baseMapper.mergeCuRegionAssessDetailSmallAreaPv(rangeTableName, assessDate);
// 所有考核先变为考核失败
baseMapper.updateCuRegionAssessDetailInit(assessDate);
// 验证汇总业绩和小区业绩是否满足条件汇总业绩满足30000小区满足100000变更为考核通过
baseMapper.updateCuRegionAssessDetailByPv(assessDate);
}
}

View File

@ -1,274 +0,0 @@
package com.hzs.bonus.detail.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.detail.mapper.CuRegionAssessMapper;
import com.hzs.bonus.detail.service.ICuRegionAssessDetailService;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.bonus.detail.vo.CuRegionAssessDetailVO;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.retail.member.IMemberRetailApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.temporal.ChronoUnit;
import java.util.*;
/**
* 新零售会员区域考核 服务实现类
*/
@Slf4j
@Service
public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper, CuRegionAssess> implements ICuRegionAssessService {
@DubboReference
IMemberRetailApi iMemberRetailApi;
@Autowired
private ICuRegionAssessDetailService iCuRegionAssessDetailService;
@Autowired
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
@Transactional(rollbackFor = Exception.class)
public void assessRegionByEveryMonth(String settleDate, String rangeTableName) {
// 每月1号进行考核结算上月最后一期的时候进行区域达标考核
Date assDate = DateUtils.parseStringToDate(settleDate);
Date assessDate = DateUtils.afterDate(1, ChronoUnit.DAYS, assDate);
log.info("assDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, assDate));
log.info("assessDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, assessDate));
if (DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, assessDate).endsWith("01")) {
// 当月第一天
Date startDate = DateUtils.currentMonthFirstDate(assDate);
log.info("startDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, startDate));
// 清空 1 号到 今天 的考核数据
iCuRegionAssessDetailService.updateAssessRegionDetailByDate(startDate, assessDate);
baseMapper.updateAssessRegionByDate(startDate, assessDate);
deleteAssessRegionByDate(assessDate, 1);
// 生成6期待考核数据查询上月的区域第一次考核的时候明细生成6期
// 查询目前有效的区域配置
List<CuMemberRetailRegion> memberRetailRegionList = baseMapper.queryCuMemberRetailRegion(startDate, assessDate);
if (memberRetailRegionList.size() > 0) {
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
List<CuRegionAssessDetail> regionAssessDetailList = new ArrayList<>();
for (CuMemberRetailRegion cuMemberRetailRegion : memberRetailRegionList) {
if (null != cuMemberRetailRegion.getEffectiveEndDate()) {
// 设置过生效结束时间
CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
.pkMember(cuMemberRetailRegion.getPkMember())
.pkRegion(cuMemberRetailRegion.getPkId())
.assessPeriod(1)
.assessStartDate(assessDate)
// 考核结束期
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(1, cuMemberRetailRegion.getEffectiveEndDate())))
.source(cuMemberRetailRegion.getSource())
.build();
cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
while (assessDate.compareTo(cuRegionAssess.getAssessEndDate()) <= 0) {
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
.pkRegionAssess(cuRegionAssess.getPkMember())
.assessDate(assessDate)
.pkMember(cuRegionAssess.getPkMember())
.build();
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessDetailList.add(cuRegionAssessDetail);
assessDate = DateUtils.afterMonthDate(1, assessDate);
}
} else {
CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
.pkMember(cuMemberRetailRegion.getPkMember())
.pkRegion(cuMemberRetailRegion.getPkId())
.assessPeriod(1)
.assessStartDate(assessDate)
// 考核结束期
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(5, assessDate)))
.source(cuMemberRetailRegion.getSource())
.build();
cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
// 保存明细
for (int i = 0; i < 6; i++) {
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
.pkRegionAssess(cuRegionAssess.getPkMember())
.assessDate(DateUtils.afterMonthDate(i, assessDate))
.pkMember(cuRegionAssess.getPkMember())
.build();
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessDetailList.add(cuRegionAssessDetail);
}
}
}
saveCuRegionAssess(regionAssessMap, regionAssessDetailList);
}
iCuRegionAssessDetailService.assessCuRegionAssessDetail(rangeTableName, assessDate);
baseMapper.mergeCuRegionAssess(assessDate);
// 取消区域列表
List<Long> cancelRegionList = new ArrayList<>();
// 开始考核 上月最后一天奖衔业绩同步到考核表中
// 查询主表考核结束日期=考核日期的这部分需要生成下6期,最后一期结算完验证是否达标达标后继续生成下一期不达标取消区域
// 查询考核结束日期次数不达标的区域进行区域取消处理
List<CuRegionAssess> cuRegionAssessList = queryCuRegionAssessByEndDate(assessDate);
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
List<CuRegionAssessDetail> regionAssessDetailList = new ArrayList<>();
for (CuRegionAssess cuRegionAssess : cuRegionAssessList) {
if (cuRegionAssess.getReachNum() < 3) {
cancelRegionList.add(cuRegionAssess.getPkRegion());
continue;
}
Date nextAssessDate = DateUtils.afterMonthDate(1, assessDate);
deleteAssessRegionByDate(nextAssessDate, 2);
CuRegionAssess cuRegionAssess1 = CuRegionAssess.builder()
.pkMember(cuRegionAssess.getPkMember())
.pkRegion(cuRegionAssess.getPkRegion())
.assessPeriod(cuRegionAssess.getAssessPeriod() + 1)
.assessStartDate(DateUtils.currentMonthFirstDate(nextAssessDate))
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(5, nextAssessDate)))
.source(cuRegionAssess.getSource())
.build();
cuRegionAssess1.setPkCountry(cuRegionAssess.getPkCountry());
cuRegionAssess1.setPkCreator(MagicNumberConstants.PK_ADMIN);
regionAssessMap.put(cuRegionAssess1.getPkMember(), cuRegionAssess1);
// 保存明细
for (int i = 0; i < 6; i++) {
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
.pkRegionAssess(cuRegionAssess.getPkMember())
.assessDate(DateUtils.afterMonthDate(i, cuRegionAssess1.getAssessStartDate()))
.pkMember(cuRegionAssess.getPkMember())
.build();
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssessDetail.setPkCountry(cuRegionAssess.getPkCountry());
regionAssessDetailList.add(cuRegionAssessDetail);
}
saveCuRegionAssess(regionAssessMap, regionAssessDetailList);
}
// 查询到期日期的区域验证近6个月的达标次数不达标取消
// validateHandAreaAssess(assessDate, startDate, cancelRegionList);
if (cancelRegionList.size() > 0) {
if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
}
}
@Override
public void validateHandAreaAssess(Date startDate, Date endDate) {
List<Long> cancelRegionList = new ArrayList<>();
List<CuMemberRetailRegion> dueRetailRegionList = baseMapper.queryDueCuMemberRetailRegion(startDate, endDate);
if (dueRetailRegionList.size() > 0) {
Date assessDate = DateUtils.currentMonthFirstDate(startDate);
// 查询期初日期 beforeMonthFirstDate startDate 考核期间结束日期
Date assMonthStartDate = DateUtils.beforeMonthFirstDate(5, assessDate);
// assessDate assessDate 查询考核记录
Map<Long, CuRegionAssessExt> regionAssessExtMap = new HashMap<>();
List<CuRegionAssessExt> cuRegionAssessExtList = baseMapper.queryRegionAssessByDate(dueRetailRegionList, assMonthStartDate, assessDate);
cuRegionAssessExtList.forEach(cuRegionAssessExt -> regionAssessExtMap.put(cuRegionAssessExt.getPkMember(), cuRegionAssessExt));
for (CuMemberRetailRegion cuMemberRetailRegion : dueRetailRegionList) {
if (regionAssessExtMap.containsKey(cuMemberRetailRegion.getPkMember())) {
CuRegionAssessExt cuRegionAssessExt = regionAssessExtMap.get(cuMemberRetailRegion.getPkMember());
if (cuRegionAssessExt.getPkId() >= 3) {
continue;
}
}
cancelRegionList.add(cuMemberRetailRegion.getPkId());
}
}
if (cancelRegionList.size() > 0) {
if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
}
private void saveCuRegionAssess(Map<Long, CuRegionAssess> regionAssessMap, List<CuRegionAssessDetail> regionAssessDetailList) {
List<Long> longs = baseMapper.batchQueryCuRegionAssessSeq(regionAssessMap.size());
int i = 0;
List<CuRegionAssess> cuRegionAssessList = new ArrayList<>();
for (Long pkMember : regionAssessMap.keySet()) {
CuRegionAssess cuRegionAssess = regionAssessMap.get(pkMember);
cuRegionAssess.setPkId(longs.get(i));
cuRegionAssessList.add(cuRegionAssess);
i++;
}
for (CuRegionAssessDetail cuRegionAssessDetail : regionAssessDetailList) {
if (regionAssessMap.containsKey(cuRegionAssessDetail.getPkRegionAssess())) {
CuRegionAssess cuRegionAssess = regionAssessMap.get(cuRegionAssessDetail.getPkRegionAssess());
cuRegionAssessDetail.setPkRegionAssess(cuRegionAssess.getPkId());
}
}
// 主表
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList);
lists.forEach(list -> baseMapper.batchInsertCuRegionAssess(list));
List<Long> idList = iCuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size());
for (int j = 0; j < regionAssessDetailList.size(); j++) {
regionAssessDetailList.get(j).setPkId(idList.get(j));
}
// 明细表
List<List<?>> detailList = cuMemberBonusSettle.handleCutList(regionAssessDetailList);
detailList.forEach(detail -> iCuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
}
List<CuRegionAssess> queryCuRegionAssessByEndDate(Date settleDate) {
LambdaQueryWrapper<CuRegionAssess> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuRegionAssess::getAssessEndDate, settleDate);
return baseMapper.selectList(queryWrapper);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod) {
// 7天内重算
iCuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
baseMapper.deleteAssessRegionByDate(assessStartDate, assessPeriod);
}
@Override
public List<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam) {
regionAssessParam.setAssessDate(DateUtils.currentMonthFirstDate());
return baseMapper.queryRegionAssessByCondition(regionAssessParam);
}
@Override
public List<CuRegionAssessVO> getCuRegionAssessVoS(List<CuRegionAssessExt> cuRegionAssessExtList) {
List<CuRegionAssessVO> cuRegionAssessVoList = new ArrayList<>();
for (CuRegionAssessExt cuRegionAssessExt : cuRegionAssessExtList) {
CuRegionAssessVO cuRegionAssessVO = BeanUtil.copyProperties(cuRegionAssessExt, CuRegionAssessVO.class);
List<CuRegionAssessDetailVO> regionAssessDetailVoList = new ArrayList<>();
for (CuRegionAssessDetail cuRegionAssessDetail : cuRegionAssessExt.getCuRegionAssessDetailList()) {
CuRegionAssessDetailVO cuRegionAssessDetailVO = BeanUtil.copyProperties(cuRegionAssessDetail, CuRegionAssessDetailVO.class);
regionAssessDetailVoList.add(cuRegionAssessDetailVO);
}
cuRegionAssessVO.setRegionAssessDetailVoList(regionAssessDetailVoList);
cuRegionAssessVoList.add(cuRegionAssessVO);
}
return cuRegionAssessVoList;
}
}

View File

@ -1,56 +0,0 @@
package com.hzs.bonus.detail.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description: 考核区域明细
* @author: sui q
* @time: 2025/1/16 11:32
* @classname: CuRegionAssessDetailVO
* @package_name: com.hzs.bonus.detail.vo
* version 1.0.0
*/
@Data
public class CuRegionAssessDetailVO implements Serializable {
/**
* 会员主键
*/
private Long pkMember;
/**
* 考核日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date assessDate;
/**
* 会员等级
*/
private Integer pkAwards;
/**
* 团队月消费pv
*/
private BigDecimal teamMonthPv;
/**
* 团队月消费pv
*/
private BigDecimal smallAreaPv;
/**
* 考核状态 (0=考核通过,1=免考通过,2=考核不通过,3=不考核)
*/
@Transaction(transactionKey = EnumsPrefixConstants.ASSESS_STATUS)
private Integer assessStatus;
private String assessStatusVal;
}

View File

@ -1,87 +0,0 @@
package com.hzs.bonus.detail.vo;
import com.hzs.common.core.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description: 导出excel
* @author: sui q
* @time: 2025/1/16 16:27
* @classname: CuRegionAssessExcelVO
* @package_name: com.hzs.bonus.detail.vo
* version 1.0.0
*/
@Data
public class CuRegionAssessExcelVO implements Serializable {
/**
* 会员编号
*/
@Excel(name = "会员编号")
private String memberCode;
/**
* 会员姓名
*/
@Excel(name = "会员姓名")
private String memberName;
/**
* 考核区域 ++
*/
@Excel(name = "考核区域")
private String assessAddress;
/**
* 考核期
*/
@Excel(name = "考核期间")
private Integer assessPeriod;
/**
* 考核开始日期
*/
@Excel(name = "开始日期", dateFormat = "yyyy-MM-dd")
private Date assessStartDate;
/**
* 考核期结束日期
*/
@Excel(name = "结束日期", dateFormat = "yyyy-MM-dd")
private Date assessEndDate;
/**
* 达标次数
*/
@Excel(name = "达标次数")
private Integer reachNum;
/**
* 考核日期
*/
@Excel(name = "考核日期", dateFormat = "yyyy-MM-dd")
private Date assessDate;
/**
* 团队月消费pv
*/
@Excel(name = "团队业绩")
private BigDecimal teamMonthPv;
/**
* 团队月消费pv
*/
@Excel(name = "小区业绩")
private BigDecimal smallAreaPv;
/**
* 考核状态 (0=考核通过,1=免考通过,2=考核不通过,3=不考核)
*/
@Excel(name = "考核状态", readConverterExp = "0=考核通过,1=免考通过,2=考核不通过,3=不考核")
private Integer assessStatus;
}

View File

@ -1,62 +0,0 @@
package com.hzs.bonus.detail.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Transaction;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @description: 区域考核结果
* @author: sui q
* @time: 2025/1/16 11:13
* @classname: CuRegionAssessVO
* @package_name: com.hzs.bonus.detail.vo
* version 1.0.0
*/
@Data
public class CuRegionAssessVO implements Serializable {
/**
* 会员编号
*/
private String memberCode;
/**
* 会员姓名
*/
private String memberName;
/**
* 考核区域 ++
*/
private String assessAddress;
/**
* 考核期
*/
private Integer assessPeriod;
/**
* 考核开始日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date assessStartDate;
/**
* 考核期结束日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date assessEndDate;
/**
* 达标次数
*/
private Integer reachNum;
@Transaction
private List<CuRegionAssessDetailVO> regionAssessDetailVoList;
}

View File

@ -1,23 +0,0 @@
package com.hzs.bonus.param;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 查询参数
*/
@Data
public class CuRegionAssessParam implements Serializable {
private Date assessDate;
private Long pkMember;
private Integer pkCountry;
private String memberCode;
private String memberName;
}

View File

@ -1,32 +1,15 @@
package com.hzs.bonus.risk.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2024/4/9 17:01
* @Classname: MemberRiskControlVo
* @PackageName: com.hzs.bonus.risk.vo
*/
package com.hzs.bonus.risk.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.bonus.risk.vo
*@Author: yh
*@CreateTime: 2024-04-09 17:01
*@Description: TODO
*@Version: 1.0
*/
@Data
public class MemberRiskControlVo {
/**
* 会员名称
*/

View File

@ -27,15 +27,9 @@
<result column="IS_REAL_NAME" property="isRealName"/>
<result column="PK_RATE" property="pkRate"/>
<result column="SYSTEM_TYPE" property="systemType"/>
<result column="NEW_BOX_NUM" property="newBoxNum"/>
<result column="CONSUME_BOX_NUM" property="consumeBoxNum"/>
<result column="MONTH_BOX_NUM" property="monthBoxNum"/>
<result column="NEW_CONSUME_PV" property="newConsumePv"/>
<result column="CONSUME_PV" property="consumePv"/>
<result column="MONTH_CONSUME_PV" property="monthConsumePv"/>
<result column="TEAM_NEW_BOX_NUM" property="teamNewBoxNum"/>
<result column="TEAM_BOX_NUM" property="teamBoxNum"/>
<result column="TEAM_MONTH_BOX_NUM" property="teamMonthBoxNum"/>
<result column="TEAM_NEW_PV" property="teamNewPv"/>
<result column="TEAM_CONSUME_PV" property="teamConsumePv"/>
<result column="TEAM_MONTH_PV" property="teamMonthPv"/>
@ -57,34 +51,21 @@
<result column="coach_algebra" property="coachAlgebra"/>
<result column="coach_ratio" property="coachRatio"/>
<result column="COUNTRY_NAME" property="countryName"/>
<result column="big_box_num" property="bigBoxNum"/>
<result column="small_box_num" property="smallBoxNum"/>
<result column="big_team_pv" property="bigTeamPv"/>
<result column="small_team_pv" property="smallTeamPv"/>
<result column="region_vertex_pk_id" property="regionVertexPkId"/>
<result column="all_new_box_num" property="allNewBoxNum"/>
<result column="all_new_consume_pv" property="allNewConsumePv"/>
<result column="all_team_new_box_num" property="allTeamNewBoxNum"/>
<result column="all_team_new_pv" property="allTeamNewPv"/>
<result column="all_team_box_num" property="allTeamBoxNum"/>
<result column="all_team_month_box_num" property="allTeamMonthBoxNum"/>
<result column="all_team_consume_pv" property="allTeamConsumePv"/>
<result column="all_team_month_pv" property="allTeamMonthPv"/>
</resultMap>
<update id="mergeMemberRetailRangeInit">
update ${rangeTableName}
set new_box_num = 0,
consume_box_num = 0,
month_box_num = 0,
new_consume_pv = 0,
set new_consume_pv = 0,
consume_pv = 0,
month_consume_pv = 0,
team_new_box_num = 0,
team_box_num = 0,
team_month_box_num = 0,
team_new_pv = 0,
team_consume_pv = 0,
team_month_pv = 0,
@ -96,13 +77,8 @@
enable_status = 1,
pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20),
region_address = 0,
big_box_num = 0,
small_box_num = 0,
big_team_pv = 0,
small_team_pv = 0,
all_team_new_box_num = 0,
all_team_box_num = 0,
all_team_month_box_num = 0,
all_team_new_pv = 0,
all_team_consume_pv = 0,
all_team_month_pv = 0
@ -112,41 +88,30 @@
merge into ${rangeTableName} a
using(
select pk_member, pk_grade, pk_awards, pk_share_awards, enable_status,
new_box_num, consume_box_num, month_box_num,
new_consume_pv, consume_pv, month_consume_pv,
team_new_box_num, team_box_num, team_month_box_num,
team_new_pv, team_consume_pv, team_month_pv,
team_new_amount, team_consume_amount, team_month_amount,
recommend_num, team_num,
big_box_num, small_box_num, big_team_pv, small_team_pv,
all_team_new_box_num, all_team_box_num, all_team_month_box_num,
big_team_pv, small_team_pv,
all_team_new_pv, all_team_consume_pv, all_team_month_pv
from ${yesterdayRangeTableName}
) b
on (a.pk_member = b.pk_member)
when matched then
update set
a.consume_box_num = b.consume_box_num,
a.consume_pv = b.consume_pv,
a.team_box_num = b.team_box_num,
a.team_consume_pv = b.team_consume_pv,
a.team_consume_amount = b.team_consume_amount,
a.recommend_num = b.recommend_num, a.team_num = b.team_num,
a.pk_grade = b.pk_grade,
a.enable_status = b.enable_status,
a.big_box_num = b.big_box_num, a.small_box_num = b.small_box_num,
a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv,
a.all_team_new_box_num = b.all_team_new_box_num,
a.all_team_box_num = b.all_team_box_num,
a.all_team_new_pv = b.all_team_new_pv,
a.all_team_consume_pv = b.all_team_consume_pv
<if test="isSameMonth == 0">
,a.month_box_num = b.month_box_num
,a.month_consume_pv = b.month_consume_pv
,a.team_month_box_num = b.team_month_box_num
,a.team_month_pv = b.team_month_pv
,a.team_month_amount = b.team_month_amount
,a.all_team_month_box_num = b.all_team_month_box_num
,a.all_team_month_pv = b.all_team_month_pv
</if>
</update>
@ -156,30 +121,26 @@
using (
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
select #{item.pkMember} pk_member, #{item.pkAwards} pk_awards, #{item.pkGrade} pk_grade, #{item.pkShareAwards} pk_share_awards,
#{item.newBoxNum} new_box_num, #{item.consumeBoxNum} consume_box_num, #{item.monthBoxNum} month_box_num,
#{item.newConsumePv} new_consume_pv, #{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv,
#{item.teamNewBoxNum} team_new_box_num, #{item.teamBoxNum} team_box_num, #{item.teamMonthBoxNum} team_month_box_num,
#{item.teamNewPv} team_new_pv, #{item.teamConsumePv} team_consume_pv, #{item.teamMonthPv} team_month_pv,
#{item.teamNewAmount} team_new_amount, #{item.teamConsumeAmount} team_consume_amount, #{item.teamMonthAmount} team_month_amount,
#{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status,
#{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv,
#{item.allTeamBoxNum} all_team_box_num, #{item.allTeamConsumePv} all_team_consume_pv,
#{item.allTeamMonthBoxNum} all_team_month_box_num, #{item.allTeamMonthPv} all_team_month_pv
#{item.allTeamNewPv} all_team_new_pv,
#{item.allTeamConsumePv} all_team_consume_pv,
#{item.allTeamMonthPv} all_team_month_pv
from dual
</foreach>
) b
on (a.pk_member = b.pk_member)
when matched then
update set a.pk_awards = b.pk_awards, a.pk_grade = b.pk_grade, a.pk_share_awards = b.pk_share_awards,
a.new_box_num = b.new_box_num, a.consume_box_num = b.consume_box_num, a.month_box_num = b.month_box_num,
a.new_consume_pv = b.new_consume_pv, a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv,
a.team_new_box_num = b.team_new_box_num, a.team_box_num = b.team_box_num, a.team_month_box_num = b.team_month_box_num,
a.team_new_pv = b.team_new_pv, a.team_consume_pv = b.team_consume_pv, a.team_month_pv = b.team_month_pv,
a.team_new_amount = b.team_new_amount, a.team_consume_amount = b.team_consume_amount, a.team_month_amount = b.team_month_amount,
a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status,
a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv,
a.all_team_box_num = b.all_team_box_num, a.all_team_consume_pv = b.all_team_consume_pv,
a.all_team_month_box_num = b.all_team_month_box_num, a.all_team_month_pv = b.all_team_month_pv
a.all_team_new_pv = b.all_team_new_pv,
a.all_team_consume_pv = b.all_team_consume_pv,
a.all_team_month_pv = b.all_team_month_pv
</update>
<!-- 当前网体更新极差秒接表 -->
@ -241,11 +202,11 @@
select
#{item.pkMember} pk_member, #{item.pkGrade} pk_grade,
#{item.pkAwards} pk_awards, #{item.pkShareAwards} pk_share_awards,
#{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
#{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
#{item.newConsumePv} new_consume_pv,
#{item.teamNewPv} team_new_pv,
#{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status,
#{item.allNewBoxNum} all_new_box_num, #{item.allNewConsumePv} all_new_consume_pv,
#{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv
#{item.allNewConsumePv} all_new_consume_pv,
#{item.allTeamNewPv} all_team_new_pv
from dual
</foreach>
) b
@ -253,11 +214,11 @@
when matched then
update set
a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, a.pk_share_awards = b.pk_share_awards,
a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
a.team_new_box_num = b.team_new_box_num, a.team_new_pv = b.team_new_pv,
a.new_consume_pv = b.new_consume_pv,
a.team_new_pv = b.team_new_pv,
a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status,
a.all_new_box_num = b.all_new_box_num, a.all_new_consume_pv = b.all_new_consume_pv,
a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv
a.all_new_consume_pv = b.all_new_consume_pv,
a.all_team_new_pv = b.all_team_new_pv
</update>
<update id="mergeMemberRetailGradeByMember">
@ -276,69 +237,6 @@
</if>
</update>
<update id="mergeMemberRetailRegion">
merge into ${rangeTableName} a
using (
select cm.pk_member, cr.county region_address
from ${rangeTableName} cm
inner join cu_member_retail_region cr
on cr.pk_member = cm.pk_member
and cr.effective = 0
and cr.del_flag = 0
where cr.creation_time &lt; #{settleDate, jdbcType=DATE}
) b
on (a.pk_member = b.pk_member)
when matched then
update set a.region_address = b.region_address
</update>
<update id="mergeCuMemberRetailRangeBySpecial">
merge into ${rangeTableName} a
using (
select a.*
from cu_member_spe_retail a
inner join(
select member_code, max(nvl(modified_time, creation_time)) creation_time
from cu_member_spe_retail
where del_flag = 0
and period = #{period}
group by member_code
) b on a.member_code = b.member_code and nvl(a.modified_time, a.creation_time) = b.creation_time
) b
on (a.member_code = b.member_code)
when matched then
update set
a.big_box_num = b.team_box_num - b.small_box_num,
a.small_box_num = b.small_box_num
</update>
<update id="mergeCuMemberRetailBackBoxBySpecial">
merge into ${rangeTableName} a
using (
select *
from ${beforeTableName} a
inner join (
select cr.*
from cu_member_spe_retail cr
inner join (
select member_code, max(pk_id) pk_id
from cu_member_spe_retail
where period &lt; #{period}
and del_flag = 0
group by member_code
) b on cr.member_code = b.member_code
where cr.period = #{period}
and cr.del_flag = 0
) b on a.member_code = b.member_code
) b
on (a.pk_member = b.pk_member)
when matched then
update set
a.big_box_num = 0,
a.small_box_num = 0,
a.team_box_num = a.team_box_num
</update>
<select id="queryCuMemberRetailRangeParent" resultMap="CuMemberRetailRangeExt">
<foreach collection="saOrderExtList" item="item" close=" " open=" " separator="union">
select
@ -361,15 +259,9 @@
a.pk_country,
a.pk_settle_country,
a.enable_status,
new_box_num,
consume_box_num,
month_box_num,
new_consume_pv,
consume_pv,
month_consume_pv,
team_new_box_num,
team_box_num,
team_month_box_num,
team_new_pv,
team_consume_pv,
team_month_pv,
@ -383,13 +275,8 @@
bw.awards_value,
bw.awards_name,
bwa.awards_value share_awards_value,
a.big_box_num,
a.small_box_num,
a.big_team_pv,
a.small_team_pv,
a.all_team_new_box_num,
a.all_team_box_num,
a.all_team_month_box_num,
a.all_team_new_pv,
a.all_team_consume_pv,
a.all_team_month_pv,
@ -437,24 +324,14 @@
a.income_status,
a.pk_country,
a.pk_settle_country,
a.big_box_num,
a.small_box_num,
a.big_team_pv,
a.small_team_pv,
a.system_type,
a.all_team_box_num,
a.all_team_month_box_num,
a.all_team_consume_pv,
a.all_team_month_pv,
new_box_num,
consume_box_num,
month_box_num,
new_consume_pv,
consume_pv,
month_consume_pv,
team_new_box_num,
team_box_num,
team_month_box_num,
team_new_pv,
team_consume_pv,
team_month_pv,
@ -486,202 +363,6 @@
and a.pk_parent = #{pkParent}
</select>
<select id="batchQueryMemberRetailRangeByMemberPk" resultMap="CuMemberRetailRangeExt">
<foreach collection="memberPkList" item="item" close=" " open=" " separator="union">
select pk_member, member_code, member_name, c.pk_parent,
c.pk_awards, c.pk_grade, c.pk_rate,
c.enable_status, c.income_status,
c.pk_country, c.pk_settle_country,
c.account_status, c.category, c.system_type,
bg.grade_value, bg.grade_name,
bw.awards_value, bw.awards_name,
c.pk_share_awards, bwa.awards_value share_awards_value,
bw.range_ratio, bw.month_repurchase_ratio, bw.benefit_avg_ratio, bw.benefit_share_ratio,
bw.coach_algebra, bw.coach_ratio
from (
select *
from ${rangeTableName}
start with pk_member = #{item}
connect by pk_member = prior pk_parent
) c
inner join bd_grade bg
on c.pk_grade = bg.pk_id
left join bd_awards bw
on bw.pk_id = c.pk_awards
left join bd_awards bwa
on bwa.pk_id = c.pk_share_awards
and bwa.del_flag = 0
where bg.del_flag = 0
and bw.del_flag = 0
</foreach>
</select>
<select id="batchQueryMemberRetailRangeByAwards" resultMap="CuMemberRetailRangeExt">
select pk_member,
member_code,
member_name,
a.pk_awards,
a.pk_grade,
a.pk_rate,
a.income_status,
a.pk_country,
a.pk_settle_country,
a.account_status,
a.category,
bg.grade_value,
bg.grade_name,
bw.awards_value share_awards_value,
bw.awards_name,
a.month_consume_pv,
a.team_month_pv,
bw.range_ratio,
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio
from ${rangeTableName} a
inner join bd_awards bw
on bw.pk_id = a.pk_share_awards
inner join bd_grade bg
on bg.pk_id = a.pk_grade
where bw.del_flag = 0
and bg.del_flag = 0
and bg.grade_value >= 70
and bw.awards_value >= 20
and a.enable_status = 0
</select>
<select id="batchQueryMemberRetailRangeByParent" resultMap="CuMemberRetailRangeExt">
select pk_member, pk_parent, member_code, member_name,
a.pk_awards, a.pk_grade, a.pk_rate,
a.income_status, a.pk_country, a.pk_settle_country,
a.account_status, a.category,
bg.grade_value, bg.grade_name,
bw.awards_value, bw.awards_name,
a.month_consume_pv, a.team_month_pv,
bw.range_ratio, bw.month_repurchase_ratio,
bw.benefit_avg_ratio, bw.benefit_share_ratio
from ${rangeTableName} a
inner join bd_awards bw
on bw.pk_id = a.pk_awards
and bw.del_flag = 0
inner join bd_grade bg
on bg.pk_id = a.pk_grade
and bg.del_flag = 0
where a.pk_parent in
<foreach collection="memberRetailRangeExtList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
</select>
<select id="batchQueryMemberRetailRangeByCounty" resultMap="CuMemberRetailRangeExt">
select a.pk_member,
a.pk_parent,
a.member_code,
a.member_name,
a.pk_vertex,
a.pk_rate,
a.pk_grade,
a.pk_awards,
a.pk_share_awards,
a.enable_status,
a.income_status,
a.pk_country,
a.pk_settle_country,
a.region_address,
ba.name country_name,
bg.grade_value,
bg.grade_name,
bw.awards_value,
bw.awards_name,
bwa.awards_value share_awards_value,
a.big_box_num,
a.small_box_num,
a.big_team_pv,
a.small_team_pv,
a.all_team_new_box_num,
a.all_team_box_num,
a.all_team_month_box_num,
a.all_team_new_pv,
a.all_team_consume_pv,
a.all_team_month_pv,
a.account_status,
a.category,
bw.range_ratio,
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
a.system_type,
bv.region_vertex_pk_id
from ${rangeTableName} a
inner join bd_awards bw
on bw.pk_id = a.pk_awards
inner join bd_awards bwa
on bwa.pk_id = a.pk_share_awards
inner join bd_grade bg
on bg.pk_id = a.pk_grade
inner join bd_area ba
on ba.pk_id = a.region_address
left join bd_vertex bv
on bv.pk_id = a.pk_vertex
where bw.del_flag = 0
and bg.del_flag = 0
and ba.del_flag = 0
and a.region_address > 0
</select>
<select id="batchQueryMemberRetailSecondRangeByCounty" resultMap="CuMemberRetailRangeExt">
select cm.pk_id pk_member,
cm.pk_parent,
cm.member_code,
cm.member_name,
cm.pk_awards,
cm.pk_settle_grade pk_grade,
bt.pk_id pk_rate,
cm.income_status,
cm.pk_country,
cm.pk_settle_country,
cr.county region_address,
ba.name country_name,
bg.grade_value,
bg.grade_name,
bw.awards_value,
bw.awards_name,
cm.account_status,
cm.category,
cm.system_type,
bw.range_ratio,
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
nvl(nvl(sc.enable_status, r.enable_status), 1) enable_status,
bt.pk_id pk_rate,
bv.region_vertex_pk_id
from cu_member cm
inner join bd_awards bw
on bw.pk_id = cm.pk_awards
inner join bd_grade bg
on bg.pk_id = cm.pk_settle_grade
inner join cu_member_retail_region cr
on cr.pk_member = cm.pk_id
inner join bd_area ba
on ba.pk_id = cr.county
inner join bd_currency bt
on bt.pk_country = cm.pk_settle_country
left join ${rangeTableName} r
on r.pk_member = cm.pk_id
left join ${secondRangeTableName} sc
on sc.pk_member = cm.pk_id
left join bd_vertex bv
on bv.pk_id = cm.pk_vertex
where bw.del_flag = 0
and bg.del_flag = 0
and ba.del_flag = 0
and cr.effective = 0
and cr.del_flag = 0
and cm.del_flag = 0
and cr.county = #{county}
</select>
<select id="queryCuMemberSecondRangeParent" resultMap="CuMemberRetailRangeExt">
select a.pk_member,
cm.member_code,
@ -698,33 +379,21 @@
cm.pk_vertex,
nvl(b.pk_rate, bt.pk_id) pk_rate,
nvl(cm.is_activate, a.enable_status) enable_status,
a.new_box_num,
nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num,
nvl(b.month_box_num, 0) + nvl(a.new_box_num, 0) month_box_num,
a.new_consume_pv,
nvl(b.consume_pv, 0) + nvl(a.new_consume_pv, 0) consume_pv,
nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv,
a.team_new_box_num,
nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.team_month_box_num, 0) + nvl(a.team_new_box_num, 0) team_month_box_num,
a.team_new_pv,
nvl(b.team_consume_pv, 0) + nvl(a.team_new_pv, 0) team_consume_pv,
nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv,
a.team_new_amount,
nvl(b.team_consume_amount, 0) + nvl(a.team_new_amount, 0) team_consume_amount,
nvl(b.team_month_amount, 0) + nvl(a.team_new_amount, 0) team_month_amount,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.big_team_pv, 0) big_team_pv,
nvl(b.small_team_pv, 0) small_team_pv,
a.system_type,
a.all_new_box_num,
a.all_new_consume_pv,
a.all_team_new_box_num,
a.all_team_new_pv,
nvl(b.all_team_box_num, 0) + nvl(a.all_team_new_box_num, 0) all_team_box_num,
nvl(b.all_team_month_box_num, 0) + nvl(a.all_team_new_pv, 0) all_team_month_box_num,
nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_box_num, 0) all_team_consume_pv,
nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_consume_pv,
nvl(b.all_team_month_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_month_pv,
bg.grade_value,
bg.grade_name,
@ -769,13 +438,7 @@
cm.pk_parent,
nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv,
nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv,
nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num,
nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.all_team_box_num, 0) + nvl(a.all_team_new_box_num, 0) all_team_box_num,
nvl(b.all_team_month_box_num, 0) + nvl(a.all_team_new_pv, 0) all_team_month_box_num,
nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_box_num, 0) all_team_consume_pv,
nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_consume_pv,
nvl(b.all_team_month_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_month_pv
from cu_member cm
left join ${secondTableName} a
@ -789,27 +452,17 @@
<select id="queryCuMemberRetailRangeEnoughAchieve" resultType="com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt">
select pk_member,
pk_parent,
new_box_num,
consume_box_num,
month_box_num,
new_consume_pv,
consume_pv,
month_consume_pv,
team_new_box_num,
team_box_num,
team_month_box_num,
team_new_pv,
team_consume_pv,
team_month_pv,
team_new_amount,
team_consume_amount,
team_month_amount,
big_box_num,
small_box_num,
big_team_pv,
small_team_pv,
all_team_box_num,
all_team_month_box_num,
all_team_consume_pv,
all_team_month_pv
from ${tableName}

View File

@ -470,14 +470,10 @@
pk_share_awards number(4) default 10 not null,
enable_status number(2) default 1 not null,
system_type NUMBER(2) default 2 not null,
new_box_num number(10,2) default 0 not null,
new_consume_pv number(17,6) default 0 not null,
team_new_box_num number(10,2) default 0 not null,
team_new_pv number(17,6) default 0 not null,
team_new_amount number(17,6) default 0 not null,
all_new_box_num number(10,2) default 0 not null,
all_new_consume_pv number(17,6) default 0 not null,
all_team_new_box_num number(10,2) default 0 not null,
all_team_new_pv number(17,6) default 0 not null
)
</update>
@ -509,15 +505,9 @@
pk_country number(4) default 1 not null,
system_type NUMBER(2) default 2 not null,
pk_rate NUMBER(6),
new_box_num number(10,2) default 0 not null,
consume_box_num number(10,2) default 0 not null,
month_box_num number(10,2) default 0 not null,
new_consume_pv number(17,6) default 0 not null,
consume_pv number(17,6) default 0 not null,
month_consume_pv number(17,6) default 0 not null,
team_new_box_num number(10,2) default 0 not null,
team_box_num number(10,2) default 0 not null,
team_month_box_num number(10,2) default 0 not null,
team_new_pv number(17,6) default 0 not null,
team_consume_pv number(17,6) default 0 not null,
team_month_pv number(17,6) default 0 not null,
@ -527,13 +517,8 @@
recommend_num number(8) default 0 not null,
team_num number(8) default 0 not null,
region_address number(8) default 0 not null,
big_box_num number(10,2) default 0 not null,
small_box_num number(10,2) default 0 not null,
big_team_pv number(17,6) default 0 not null,
small_team_pv number(17,6) default 0 not null,
all_team_new_box_num number(12,2) default 0 not null,
all_team_box_num number(12,2) default 0 not null,
all_team_month_box_num number(12,2) default 0 not null,
all_team_new_pv number(17,6) default 0 not null,
all_team_consume_pv number(17,6) default 0 not null,
all_team_month_pv number(17,6) default 0 not null

View File

@ -123,52 +123,6 @@
update set a.pk_max_awards = b.pk_awards, a.modified_time = sysdate
</update>
<update id="updateCuMemberGrade">
merge into cu_member a
using (
select a.pk_member, max(a.new_level) pk_grade
from cu_member_grade a
inner join(
select pk_member, max(nvl(modified_time, creation_time)) creation_time
from cu_member_grade
where period = #{period}
and del_flag = 0
group by pk_member) b
on a.pk_member = b.pk_member and nvl(a.modified_time, a.creation_time) = b.creation_time
group by a.pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_settle_grade = b.pk_grade,
a.modified_time = sysdate
</update>
<!-- 通用查询映射结果 -->
<select id="queryLoginMember" resultMap="MemberResultMap">
select cm.*
from cu_member cm
where cm.del_flag = 0
<if test="memberCode != null and memberCode != ''">
and cm.member_code = #{memberCode}
</if>
<if test="pkMember != null">
and cm.pk_id = #{pkMember}
</if>
</select>
<select id="queryCuMemberShareTotal" resultType="com.hzs.common.domain.member.base.CuMember">
select cm.pk_awards pkAwards, count(cm.pk_id) shareStatus
from cu_member cm
inner join bd_awards ba
on cm.pk_awards = ba.pk_id
where cm.del_flag = 0
and cm.pay_status = 1
and pk_settle_country = #{pkCountry}
and ba.awards_value > 0
group by cm.pk_awards
order by pk_awards
</select>
<update id="updateBackCuMemberRetailRangeAward">
merge into cu_member a
@ -259,24 +213,6 @@
)
</update>
<!-- 更新会员的等级(会员表) -->
<update id="updateCuMemberGradeByList">
merge into cu_member a
using (
select pk_member, max(pk_grade) pk_grade from (
<foreach item="item" index="index" collection="cuMemberGradeList" separator=" union ">
select #{item.pkMember} pk_member,
#{item.newLevel} pk_grade
from dual
</foreach>
)
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
</update>
<update id="updateCuMemberRetailRangeByList">
merge into cu_member a
using (
@ -304,53 +240,4 @@
a.modified_time = sysdate
</update>
<update id="updateCuMemberMinGradeByList">
merge into cu_member a
using (
select pk_member, min(pk_grade) pk_grade from (
<foreach item="item" index="index" collection="cuMemberGradeList" separator=" union ">
select #{item.pkMember} pk_member, #{item.newLevel} pk_grade from dual
</foreach>
)
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
</update>
<update id="updateCuMemberLevel">
merge into cu_member a
using (
select cm.pk_id, m.new_level pk_grade
from cu_member cm
inner join(
select a.*
from cu_member_level a
inner join (
select pk_member, max(pk_id) pk_id
from cu_member_level
where del_flag = 0
and up_type = 4
and upgrade_time >= #{startDate,jdbcType=DATE}
and upgrade_time &lt; #{endDate,jdbcType=DATE}
group by pk_member) b
on a.pk_id = b.pk_id) m
on cm.pk_id = m.pk_member
where cm.pk_settle_grade &lt; m.new_level
) b
on (a.pk_id = b.pk_id)
when matched then
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
</update>
<!-- 查询体系奖项列表 -->
<select id="listVertexBonus" resultType="com.hzs.common.domain.vertex.BdVertexBonus">
select * from cu_member cm
left join bd_vertex_bonus bvb
on bvb.pk_vertex = cm.pk_vertex
where cm.pk_id = #{pkMember}
order by cm.pk_id desc
</select>
</mapper>

View File

@ -2,270 +2,5 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusCoachMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberBonusCoach" type="com.hzs.common.domain.member.ext.CuMemberBonusCoachExt">
<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_BONUS" property="pkBonus"/>
<result column="PK_ORDER" property="pkOrder"/>
<result column="PK_BONUS_ITEMS" property="pkBonusItems"/>
<result column="INCOME_STATUS" property="incomeStatus"/>
<result column="CAL_TYPE" property="calType"/>
<result column="CAL_ACHIEVE" property="calAchieve"/>
<result column="CAL_VALUE" property="calValue"/>
<result column="PRETAX_INCOME" property="pretaxIncome"/>
<result column="INCOME_TAX" property="incomeTax"/>
<result column="REAL_INCOME" property="realIncome"/>
<result column="CURRENT_GENERATION" property="currentGeneration"/>
<result column="COACH_GENERATION" property="coachGeneration"/>
<result column="COACH_NO_CAPPING" property="coachNoCapping"/>
<result column="COACH_CAPPING" property="coachCapping"/>
<result column="COACH_NORMAL_HALF" property="coachNormalHalf"/>
<result column="COACH_NORMAL_REAL" property="coachNormalReal"/>
<result column="REMARK" property="remark"/>
<result column="INCOME_RATIO" property="incomeRatio"/>
<result column="INCOME_DIAL_RATIO" property="incomeDialRatio"/>
<result column="ORDER_DIAL_RATIO" property="orderDialRatio"/>
<result column="ORDER_CODE" property="orderCode"/>
<result column="ORDER_TYPE" property="orderType"/>
<result column="PK_SOURCE_COUNTRY" property="pkSourceCountry"/>
<result column="SOURCE_COUNTRY_NAME" property="sourceCountryName"/>
<result column="SOURCE_MEMBER_CODE" property="sourceMemberCode"/>
<result column="SOURCE_MEMBER_NAME" property="sourceMemberName"/>
<result column="PK_RATE" property="pkRate"/>
<result column="ORDER_AMOUNT" property="orderAmount"/>
<result column="ORDER_ACHIEVE" property="orderAchieve"/>
<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="TEAM_CODE" property="teamCode"/>
<result column="SETTLE_DATE" property="settleDate"/>
<result column="SETTLE_COUNTRY" property="settleCountry"/>
<result column="PERIOD" property="period"/>
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
<result column="service_code" property="serviceCode"/>
<result column="pk_vertex" property="pkVertex"/>
<result column="nick_name" property="nickName"/>
</resultMap>
<insert id="batchInsertCuMemberBonusCoach">
insert ALL
<foreach item="item" index="index" collection="cuMemberBonusCoachList" separator=" ">
into cu_member_bonus_coach(pk_bonus,pk_order,pk_bonus_items,income_status,
cal_type,cal_achieve,cal_value,pretax_income,
income_tax,real_income,current_generation,coach_generation,coach_no_capping,
coach_capping,coach_normal_half,coach_normal_real,remark,
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
values
(
#{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus},
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pretaxIncome},
#{item.incomeTax},#{item.realIncome},#{item.currentGeneration},#{item.coachGeneration},
#{item.coachNoCapping},#{item.coachCapping},#{item.coachNormalHalf},#{item.coachNormalReal},
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
#{item.pkCountry},#{item.pkCreator}
)
</foreach>
SELECT 1 FROM dual
</insert>
<delete id="deleteCuMemberBonusCoach">
delete
from CU_MEMBER_BONUS_COACH
where PK_BONUS in (
select pk_id
from cu_member_bonus
where period = #{period}
and grant_status &lt;= 2)
</delete>
<select id="queryMemberBonusCoachByBonusItems" resultMap="CuMemberBonusCoach">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
b.coach_no_capping,b.coach_capping,b.coach_normal_half,b.coach_normal_real,
cu.service_code,
cu.pk_vertex,
cu.nick_name
from sa_order so
inner join (
select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,cc.coach_no_capping,
cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from
cu_member_bonus cb
inner join cu_member_bonus_coach cc
on cb.pk_id = cc.pk_bonus
where cb.income_status=0 and cc.income_status = 0
and cc.pk_bonus_items = #{pkBonusItems}
<if test="pkBonus != null">
and cc.pk_bonus = #{pkBonus}
</if>
<if test="period != null">
and cb.period =#{period}
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
<where>
1=1 and b.pk_member=#{pkMember}
<if test="orderCode != null and orderCode != ''">
and so.order_code like #{orderCode}|| '%'
</if>
<if test="sourceMemberCode != null and sourceMemberCode != ''">
and (cu.member_code = #{sourceMemberCode} or cu.service_code = #{sourceMemberCode})
</if>
<if test="sourceMemberName != null and sourceMemberName != ''">
and (cu.member_name = #{sourceMemberName} or cu.nick_name = #{sourceMemberName})
</if>
<if test="startDate != null">
and cp.settle_date >= #{startDate, jdbcType=DATE}
</if>
<if test="endDate != null">
and cp.settle_date &lt; #{endDate, jdbcType=DATE}
</if>
</where>
order by b.period,b.pk_bonus_items,b.real_income desc
</select>
<select id="queryMemberBonusCoachByBonusItemsForServer" resultMap="CuMemberBonusCoach">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
b.coach_no_capping,b.coach_capping,b.coach_normal_half,b.coach_normal_real,bct.short_name settle_country
from sa_order so
inner join (
select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,
cc.coach_no_capping,cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from cu_member_bonus cb
inner join cu_member_bonus_coach cc
on cb.pk_id = cc.pk_bonus
where 1 = 1
<if test="bonusParam.period != null">
and cb.period =#{bonusParam.period}
</if>
<if test="bonusParam.vertexList != null and bonusParam.vertexList.size >0">
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
</foreach>
<if test="bonusParam.teamList != null and bonusParam.teamList.size >0">
union
<foreach collection="bonusParam.teamList" 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
</foreach>
</if>
) a
where a.pk_id = cb.pk_member
)
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id = so.pk_rate
left join bd_grade bg
on bg.pk_id = tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id = tar.pk_awards
left join bd_country bt
on bt.pk_id = so.pk_country
left join bd_country bct
on bct.pk_id = tar.pk_settle_country
<where>
1=1
<if test="bonusParam.pkCountry != null">
and tar.pk_settle_country = #{bonusParam.pkCountry}
</if>
<if test="bonusParam.orderType != null">
and so.order_type = #{bonusParam.orderType}
</if>
<if test="bonusParam.pkVertex != null">
and bv.pk_id = #{bonusParam.pkVertex}
</if>
<if test="bonusParam.pkTeamCode != null">
and ct.pk_id =#{bonusParam.pkTeamCode}
</if>
<if test="bonusParam.sourceCountry != null">
and bt.pk_id = #{bonusParam.sourceCountry}
</if>
<if test="bonusParam.incomeStatus != null">
and b.income_status = #{bonusParam.incomeStatus}
</if>
<if test="bonusParam.orderCode != null and bonusParam.orderCode != ''">
and so.order_code like #{bonusParam.orderCode}|| '%'
</if>
<if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''">
and cu.member_code = #{bonusParam.sourceMemberCode}
</if>
<if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''">
and cu.member_name = #{bonusParam.sourceMemberName}
</if>
<if test="bonusParam.memberCode != null and bonusParam.memberCode != ''">
and tar.member_code = #{bonusParam.memberCode}
</if>
<if test="bonusParam.memberName != null and bonusParam.memberName != ''">
and tar.member_name = #{bonusParam.memberName}
</if>
<if test="bonusParam.settleCountry != null">
and tar.pk_settle_country = #{bonusParam.settleCountry}
</if>
<if test="bonusParam.startDate != null">
and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE}
</if>
<if test="bonusParam.endDate != null">
and cp.settle_date &lt;#{bonusParam.endDate, jdbcType=DATE}
</if>
</where>
<choose>
<when test="bonusParam.sort == null or bonusParam.sort ==1">order by cp.settle_date desc, so.order_code,b.current_generation</when>
<when test="bonusParam.sort ==2">order by tar.pk_vertex, b.real_income desc</when>
<otherwise>order by tar.pk_teamcode</otherwise>
</choose>
</select>
</mapper>

View File

@ -2,278 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusExpandMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberBonusExpand" type="com.hzs.common.domain.member.ext.CuMemberBonusExpandExt">
<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_BONUS" property="pkBonus"/>
<result column="PK_ORDER" property="pkOrder"/>
<result column="PK_BONUS_ITEMS" property="pkBonusItems"/>
<result column="INCOME_STATUS" property="incomeStatus"/>
<result column="CAL_TYPE" property="calType"/>
<result column="CAL_ACHIEVE" property="calAchieve"/>
<result column="CAL_VALUE" property="calValue"/>
<result column="PRETAX_INCOME" property="pretaxIncome"/>
<result column="INCOME_TAX" property="incomeTax"/>
<result column="REAL_INCOME" property="realIncome"/>
<result column="CURRENT_TOUCH" property="currentTouch"/>
<result column="EXPAND_TOUCH" property="expandTouch"/>
<result column="EXPAND_NO_CAPPING" property="expandNoCapping"/>
<result column="EXPAND_CAPPING" property="expandCapping"/>
<result column="EXPAND_NORMAL_HALF" property="expandNormalHalf"/>
<result column="EXPAND_NORMAL_REAL" property="expandNormalReal"/>
<result column="REMARK" property="remark"/>
<result column="INCOME_RATIO" property="incomeRatio"/>
<result column="INCOME_DIAL_RATIO" property="incomeDialRatio"/>
<result column="ORDER_DIAL_RATIO" property="orderDialRatio"/>
<result column="ORDER_CODE" property="orderCode"/>
<result column="ORDER_TYPE" property="orderType"/>
<result column="PK_SOURCE_COUNTRY" property="pkSourceCountry"/>
<result column="SOURCE_COUNTRY_NAME" property="sourceCountryName"/>
<result column="SOURCE_MEMBER_CODE" property="sourceMemberCode"/>
<result column="SOURCE_MEMBER_NAME" property="sourceMemberName"/>
<result column="PK_RATE" property="pkRate"/>
<result column="ORDER_AMOUNT" property="orderAmount"/>
<result column="ORDER_ACHIEVE" property="orderAchieve"/>
<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="TEAM_CODE" property="teamCode"/>
<result column="SETTLE_DATE" property="settleDate"/>
<result column="SETTLE_COUNTRY" property="settleCountry"/>
<result column="PERIOD" property="period"/>
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
<result column="add_touch" property="addTouch" />
<result column="service_code" property="serviceCode"/>
<result column="pk_vertex" property="pkVertex"/>
<result column="nick_name" property="nickName"/>
</resultMap>
<insert id="batchInsertCuMemberBonusExpand">
insert ALL
<foreach item="item" index="index" collection="cuMemberBonusExpandList" separator=" ">
into cu_member_bonus_expand(pk_bonus,pk_order,pk_bonus_items,income_status,
cal_type,cal_achieve,cal_value,pretax_income,
income_tax,real_income,current_touch,expand_touch,add_touch,expand_no_capping,
expand_capping,expand_normal_half,expand_normal_real,remark,
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
values
(
#{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus},
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pretaxIncome},
#{item.incomeTax},#{item.realIncome},#{item.currentTouch},#{item.expandTouch},#{item.addTouch,jdbcType=NUMERIC},
#{item.expandNoCapping},#{item.expandCapping},#{item.expandNormalHalf},#{item.expandNormalReal},
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
#{item.pkCountry},#{item.pkCreator}
)
</foreach>
SELECT 1 FROM dual
</insert>
<delete id="deleteCuMemberBonusExpand">
delete
from CU_MEMBER_BONUS_EXPAND
where PK_BONUS in (
select pk_id
from cu_member_bonus
where period = #{period} and grant_status &lt;= 2)
</delete>
<select id="queryMemberBonusExpandByBonusItems" resultMap="CuMemberBonusExpand">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.current_touch,b.expand_touch,b.expand_no_capping,b.expand_capping,b.expand_normal_half,b.expand_normal_real,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,
cu.service_code,
cu.pk_vertex,
cu.nick_name
from sa_order so
inner join (
select cb.pk_member,ce.pk_order,cb.period,cb.pk_country,ce.pk_bonus_items,ce.income_status,ce.cal_achieve,ce.pretax_income,ce.income_tax,ce.real_income,
ce.current_touch,ce.expand_touch,ce.expand_no_capping,ce.expand_capping,ce.expand_normal_half,ce.expand_normal_real,
ce.remark,ce.income_ratio,ce.income_dial_ratio,ce.order_dial_ratio from cu_member_bonus cb
inner join cu_member_bonus_expand ce
on cb.pk_id = ce.pk_bonus
where cb.income_status=0 and ce.income_status = 0
and ce.pk_bonus_items = #{pkBonusItems}
<if test="pkBonus != null">
and ce.pk_bonus = #{pkBonus}
</if>
<if test="period != null">
and cb.period =#{period}
</if>
<if test="pkBonusItems != null">
and ce.pk_bonus_items = #{pkBonusItems}
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
<where>
1=1 and b.pk_member=#{pkMember}
<if test="orderCode != null and orderCode != ''">
and so.order_code like #{orderCode}|| '%'
</if>
<if test="sourceMemberCode != null and sourceMemberCode != ''">
and (cu.member_code = #{sourceMemberCode} or cu.service_code = #{sourceMemberCode})
</if>
<if test="sourceMemberName != null and sourceMemberName != ''">
and (cu.member_name = #{sourceMemberName} or cu.nick_name = #{sourceMemberName})
</if>
<if test="startDate != null">
and cp.settle_date >= #{startDate, jdbcType=DATE}
</if>
<if test="endDate != null">
and cp.settle_date &lt; #{endDate, jdbcType=DATE}
</if>
</where>
order by b.period,b.pk_bonus_items,b.real_income desc
</select>
<select id="queryMemberBonusExpandByBonusItemsForServer" resultMap="CuMemberBonusExpand">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_touch,b.expand_touch,
b.expand_no_capping,b.expand_capping,b.expand_normal_half,b.expand_normal_real,bct.short_name settle_country
from (
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order
) so
inner join (
select cb.pk_member,ce.pk_order,cb.period,cb.pk_country,ce.pk_bonus_items,ce.income_status,ce.CAL_ACHIEVE,ce.pretax_income,ce.income_tax,ce.real_income,
ce.remark,ce.income_ratio,ce.income_dial_ratio,ce.order_dial_ratio,ce.current_touch,ce.expand_touch,
ce.expand_no_capping,ce.expand_capping,ce.expand_normal_half,ce.expand_normal_real from
cu_member_bonus cb
inner join cu_member_bonus_expand ce
on cb.pk_id = ce.pk_bonus
where 1=1
<if test="bonusParam.period != null">
and cb.period =#{bonusParam.period}
</if>
<if test="bonusParam.pkBonusItems != null">
and ce.pk_bonus_items = #{bonusParam.pkBonusItems}
</if>
<if test="bonusParam.vertexList != null and bonusParam.vertexList.size >0">
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
</foreach>
<if test="bonusParam.teamList != null and bonusParam.teamList.size >0">
union
<foreach collection="bonusParam.teamList" 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
</foreach>
</if>
) a
where a.pk_id = cb.pk_member
)
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
left join bd_country bct
on bct.pk_id=tar.pk_settle_country
<where>
1=1
<if test="bonusParam.pkCountry != null">
and tar.pk_settle_country = #{bonusParam.pkCountry}
</if>
<if test="bonusParam.orderType != null">
and so.order_type = #{bonusParam.orderType}
</if>
<if test="bonusParam.pkVertex != null">
and bv.pk_id = #{bonusParam.pkVertex}
</if>
<if test="bonusParam.pkTeamCode != null">
and ct.pk_id =#{bonusParam.pkTeamCode}
</if>
<if test="bonusParam.sourceCountry != null">
and bt.pk_id = #{bonusParam.sourceCountry}
</if>
<if test="bonusParam.incomeStatus != null">
and b.income_status = #{bonusParam.incomeStatus}
</if>
<if test="bonusParam.orderCode != null and bonusParam.orderCode != ''">
and so.order_code like #{bonusParam.orderCode}|| '%'
</if>
<if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''">
and cu.member_code = #{bonusParam.sourceMemberCode}
</if>
<if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''">
and cu.member_name = #{bonusParam.sourceMemberName}
</if>
<if test="bonusParam.memberCode != null and bonusParam.memberCode != ''">
and tar.member_code = #{bonusParam.memberCode}
</if>
<if test="bonusParam.memberName != null and bonusParam.memberName != ''">
and tar.member_name = #{bonusParam.memberName}
</if>
<if test="bonusParam.settleCountry != null">
and tar.pk_settle_country = #{bonusParam.settleCountry}
</if>
<if test="bonusParam.startDate != null">
and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE}
</if>
<if test="bonusParam.endDate != null">
and cp.settle_date &lt;#{bonusParam.endDate, jdbcType=DATE}
</if>
</where>
<choose>
<when test="bonusParam.sort == null or bonusParam.sort ==1">order by cp.settle_date desc, so.order_code,b.current_touch</when>
<when test="bonusParam.sort ==2">order by tar.pk_vertex, b.real_income desc</when>
<otherwise>order by tar.pk_teamcode</otherwise>
</choose>
</select>
</mapper>

View File

@ -594,7 +594,6 @@
SELECT SUM(boxNum) AS boxNum, SUM(pv) AS pv, pk_id
FROM (
SELECT b.PK_ID,
NVL(s.NEW_BOX_NUM, 0) AS boxNum,
NVL(s.NEW_CONSUME_PV, 0) AS pv
FROM ${retailsTableName} s
RIGHT JOIN (
@ -612,7 +611,6 @@
WHEN MATCHED THEN
UPDATE SET
s.ENABLE_STATUS = 0,
s.TEAM_NEW_BOX_NUM = result.boxNum,
s.TEAM_NEW_PV = result.pv
WHERE s.PK_MEMBER = #{pkId}
</update>

View File

@ -159,133 +159,4 @@
order by b.period,b.pk_bonus_items,b.real_income desc
</select>
<select id="queryMemberBonusPushByBonusItemsFoServer" resultMap="CuMemberBonusPush">
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,(b.round+1) round,b.second,bct.short_name settle_country
from (
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order
) so
inner join (
select cb.pk_member,cp.pk_order,cb.period,cb.pk_country,cp.pk_bonus_items,cp.income_status,cp.CAL_ACHIEVE,cp.pretax_income,cp.income_tax,cp.real_income,
cp.remark,cp.income_ratio,cp.income_dial_ratio,cp.order_dial_ratio,cp.round,cp.second from
cu_member_bonus cb
inner join cu_member_bonus_push cp
on cb.pk_id = cp.pk_bonus
where 1=1
<if test="bonusParam.period != null">
and cb.period = #{bonusParam.period}
</if>
<if test="bonusParam.pkBonusItems != null">
and cp.pk_bonus_items = #{bonusParam.pkBonusItems}
</if>
<if test="bonusParam.vertexList != null and bonusParam.vertexList.size >0">
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
</foreach>
<if test="bonusParam.teamList != null and bonusParam.teamList.size >0">
union
<foreach collection="bonusParam.teamList" 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
</foreach>
</if>
) a
where a.pk_id = cb.pk_member
)
</if>
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
left join bd_country bct
on bct.pk_id=tar.pk_settle_country
<where>
1=1
<if test="bonusParam.pkCountry != null">
and tar.pk_settle_country = #{bonusParam.pkCountry}
</if>
<if test="bonusParam.orderType != null">
and so.order_type = #{bonusParam.orderType}
</if>
<if test="bonusParam.pkVertex != null">
and bv.pk_id = #{bonusParam.pkVertex}
</if>
<if test="bonusParam.pkTeamCode != null">
and ct.pk_id =#{bonusParam.pkTeamCode}
</if>
<if test="bonusParam.sourceCountry != null">
and bt.pk_id = #{bonusParam.sourceCountry}
</if>
<if test="bonusParam.incomeStatus != null">
and b.income_status = #{bonusParam.incomeStatus}
</if>
<if test="bonusParam.orderCode != null and bonusParam.orderCode != ''">
and so.order_code like #{bonusParam.orderCode}|| '%'
</if>
<if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''">
and cu.member_code = #{bonusParam.sourceMemberCode}
</if>
<if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''">
and cu.member_name = #{bonusParam.sourceMemberName}
</if>
<if test="bonusParam.memberCode != null and bonusParam.memberCode != ''">
and tar.member_code = #{bonusParam.memberCode}
</if>
<if test="bonusParam.memberName != null and bonusParam.memberName != ''">
and tar.member_name = #{bonusParam.memberName}
</if>
<if test="bonusParam.settleCountry != null">
and tar.pk_settle_country = #{bonusParam.settleCountry}
</if>
<if test="bonusParam.startDate != null">
and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE}
</if>
<if test="bonusParam.endDate != null">
and cp.settle_date &lt;#{bonusParam.endDate, jdbcType=DATE}
</if>
</where>
<choose>
<when test="bonusParam.sort == null or bonusParam.sort ==1">order by cp.settle_date desc, b.round desc,b.second desc</when>
<when test="bonusParam.sort ==2">order by tar.pk_vertex, b.real_income desc</when>
<otherwise>order by tar.pk_teamcode</otherwise>
</choose>
</select>
<select id="nextRound" resultMap="CuMemberBonusPush">
select bb.ROUND, bb.SECOND
from (
select bp.*
from CU_MEMBER_BONUS_PUSH bp
left join CU_MEMBER_BONUS mb on mb.PK_ID = bp.PK_BONUS
where PK_MEMBER = #{pkMember}
order by bp.ROUND desc, bp.SECOND desc) bb
where rownum = 1
</select>
</mapper>

View File

@ -2,56 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberShareBonusMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberShareBonusExt" type="com.hzs.common.domain.member.ext.CuMemberShareBonusExt">
<id column="PK_ID" property="pkId"/>
<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="PERIOD" property="period"/>
<result column="PK_RATE" property="pkRate"/>
<result column="SETTLE_MONTH" property="settleMonth"/>
<result column="EXPECT_SHARE_TOTAL" property="expectShareTotal"/>
<result column="REAL_SHARE_TOTAL" property="realShareTotal"/>
<collection property="cuMemberShareDetailList" ofType="com.hzs.common.domain.member.ext.CuMemberShareDetailExt">
<result column="PK_DETAIL_ID" property="pkId"/>
<result column="PK_SHARE_BONUS" property="pkShareBonus"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="pk_awards_val" property="pkAwardsVal"/>
<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"/>
</collection>
</resultMap>
<select id="queryCuMemberShareBonus" resultMap="CuMemberShareBonusExt">
select cb.*,
cb.pk_id pk_detail_id,
cd.pk_awards,
pk_share_bonus,
promote_total,
reach_total,
expect_share_income,
expect_share_subtotal,
real_share_income,
real_share_subtotal,
ba.awards_name pk_awards_val
from cu_member_share_bonus cb
inner join cu_member_share_detail cd
on cb.pk_id = cd.pk_share_bonus
left join bd_awards ba
on cd.pk_awards = ba.pk_id
where cb.del_flag = 0
and cd.del_flag = 0
and cb.settle_month = #{settleMonth}
and cb.pk_country = #{pkCountry}
order by pk_awards
</select>
</mapper>

View File

@ -2,47 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberShareDetailMapper">
<!-- 通用查询映射结果 -->
<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"/>
</resultMap>
<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
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)
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
</update>
</mapper>

View File

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberSpeRetailMapper">
<!-- 查询单条新零售注水信息-->
<select id="getCuMemberSpeRetail" resultType="com.hzs.bonus.bonus.param.RetailAreaParam">
SELECT cmsr.pk_id pkId,
cmsr.member_code memberCode,
cmsr.team_box_num teamBoxNum,
cmsr.small_box_num smallBoxNum,
cmsr.total_team_pv totalTeamPv,
cmsr.small_area_pv smallAreaPv,
cmsp.SETTLE_DATE settleDate
FROM CU_MEMBER_SPE_RETAIL cmsr
INNER JOIN CU_MEMBER_SETTLE_PERIOD cmsp ON cmsp.pk_id = cmsr.period
where cmsr.DEL_FLAG = 0
<if test="pkId!=null">
and cmsr.pk_id=#{pkId}
</if>
<if test="systemType!=null">
and cmsr.SYSTEM_TYPE=#{systemType}
</if>
<if test="pkCountry!=null">
and cmsr.pk_Country=#{pkCountry}
</if>
<if test="memberCode != null and memberCode != '' ">
and cmsr.member_code like #{memberCode} || '%'
</if>
<if test="startDate != null and startDate != '' ">
and cmsp.SETTLE_DATE >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endtDate != null and endtDate != '' ">
and cmsp.SETTLE_DATE &lt;= to_date(#{endtDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
order by cmsr.CREATION_TIME desc
</select>
<!-- 校验会员是否激活-->
<select id="checkCuMemberActivate" resultType="java.lang.Integer">
SELECT count(1)
FROM CU_MEMBER cm
where cm.DEL_FLAG = 0
AND cm.IS_ACTIVATE = 0
<if test="memberCode != null and memberCode != '' ">
and cm.member_code = #{memberCode}
</if>
</select>
</mapper>

View File

@ -2,114 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.detail.mapper.CuMemberAssessDetailMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.detail.CuMemberAssessDetail">
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_ASSESS" property="pkAssess"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="PK_ORDER" property="pkOrder"/>
<result column="CHANGE_TYPE" property="changeType"/>
<result column="TRADE_TIME" property="tradeTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
</resultMap>
<insert id="insertCuMemberAssessDetailByPeriod">
merge into cu_member_assess_detail a
using (select ca.pk_id,ca.pk_member,(case when ca.assess_type=0 then 1 else 3 end) change_type,
ca.assess_target trade_achieve,ca.pk_creator,ca.pk_country from ${tableName} ca
where ca.assess_status=2 and ca.period = #{period} and pk_member in
<foreach collection="cuMemberList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
and assess_type = #{assessType}
and ca.assess_target &lt;= ca.month_balance+ca.month_add) b
on (a.pk_assess = b.pk_id and a.pk_member = b.pk_member and a.change_type=b.change_type)
when not matched then
insert (pk_assess,pk_member,change_type,trade_achieve, pk_creator,pk_country)
values(b.pk_id,b.pk_member,b.change_type,b.trade_achieve, b.pk_creator,b.pk_country)
</insert>
<insert id="insertCuMemberAssesDetailByOrder">
insert into cu_member_assess_detail (pk_assess, pk_member, PK_ORDER, change_type, trade_achieve, TRADE_TIME, pk_creator, pk_country)
select nvl(ca.pk_id, 0) PK_ASSESS,
so.PK_MEMBER,
so.pk_id pk_order,
0 CHANGE_TYPE,
order_achieve TRADE_ACHIEVE,
pay_time TRADE_TIME,
so.PK_MEMBER,
so.pk_country
from sa_order so
left join (select * from ${tableName} where period = #{period} and ASSESS_TYPE = 0) ca
on so.pk_member = ca.pk_member
where so.del_flag = 0
and so.order_status = 1
and order_type in (3, 12, 14, 22, 26, 31)
and so.order_achieve > 0
and pay_time >= #{startDate, jdbcType=DATE}
and pay_time &lt; #{endDate, jdbcType=DATE}
union
select nvl(ca.pk_id, 0) PK_ASSESS,
so.PK_MEMBER,
so.pk_id pk_order,
2 CHANGE_TYPE,
order_ass_achieve TRADE_ACHIEVE,
pay_time TRADE_TIME,
so.PK_MEMBER,
so.pk_country
from sa_order so
left join (select * from ${tableName} where period = #{period} and ASSESS_TYPE = 1) ca
on so.pk_member = ca.pk_member
where so.del_flag = 0
and so.order_status = 1
and order_type = 13
and pay_time >= #{startDate, jdbcType=DATE}
and pay_time &lt; #{endDate, jdbcType=DATE}
</insert>
<update id="updateCuMemberAssessDetailByPeriod">
merge into cu_member_assess_detail a
using (select pk_id,
pk_member,
(case when assess_type = 0 then 1 else 3 end) change_type,
assess_target trade_achieve,
pk_creator,
pk_country
from ${tableName}
where assess_status = 2
and period = #{period}
and assess_target &lt;= month_balance + month_add) b
on (a.pk_assess = b.pk_id and a.pk_member = b.pk_member and a.change_type = b.change_type)
when matched then
update set a.trade_achieve = b.trade_achieve
when not matched then
insert (pk_assess, pk_member, change_type, trade_achieve, pk_creator, pk_country)
values (b.pk_id, b.pk_member, b.change_type, b.trade_achieve, b.pk_creator, b.pk_country)
</update>
<update id="updateCuMemberAssessDetailByRevoke">
merge into cu_member_assess_detail a
using(
<foreach collection="revokeDetailList" item="item" open=" " separator=" union " close=" ">
select #{item.changeType} change_type,#{item.pkMember} pk_member,#{item.pkAssess} pk_assess from dual
</foreach>
)b on (a.pk_assess=b.pk_assess and a.pk_member=b.pk_member and a.change_type=b.change_type)
when matched then
update set a.del_flag=1
</update>
<delete id="deleteCuMemberAssessDetailByPeriod">
DELETE
FROM cu_member_assess_detail
WHERE pk_assess IN (
SELECT pk_id
FROM ${tableName}
WHERE period = #{period})
</delete>
</mapper>

Some files were not shown because too many files have changed in this diff Show More