Compare commits

...

4 Commits

57 changed files with 459 additions and 1060 deletions

View File

@ -5,11 +5,7 @@ import com.hzs.common.core.domain.R;
import java.util.List;
/**
* @Description: 新零售会员dubbo服务
* @Author: jiang chao
* @Time: 2024/12/31 13:40
* @Classname: IMemberRetailApi
* @PackageName: com.hzs.retail.member
* 新零售会员dubbo服务
*/
public interface IMemberRetailApi {
@ -20,7 +16,6 @@ public interface IMemberRetailApi {
*/
R<?> checkRegion();
/**
* 取消收益区域
*

View File

@ -4,12 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
/**
* <p>
* 特殊商品分配ev奖金明细 Mapper 接口
* </p>
*
* @author hzs
* @since 2024-10-30
*/
public interface BdWaresBonusItemsMapper extends BaseMapper<BdWaresBonusItems> {

View File

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

View File

@ -9,76 +9,49 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-奖金收益明细表(报单费) Mapper 接口
* </p>
*
* @author hzs
* @since 2022-11-17
*/
public interface CuMemberBonusDetailMapper extends BaseMapper<CuMemberBonusDetail> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusDetail(Integer period);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusDetailList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusDetail(@Param("cuMemberBonusDetailList") List<?> cuMemberBonusDetailList);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusDetail 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertCuMemberBonusDetail(@Param("item") CuMemberBonusDetail cuMemberBonusDetail);
/**
* 根据查询条件查询会员奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 9:18
*/
List<CuMemberBonusDetailExt> queryMemberBonusDetailByCondition(BonusParam bonusParam);
/**
* 会员端根据查询条件查询会员奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 9:18
*/
List<CuMemberBonusDetailExt> queryMemberBonusDetailByConditionForServer(@Param("bonusParam") BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
*/
List<CuMemberBonusDetailExt> queryMemberBonusDetailByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusDetailExt> queryMemberBonusDetailByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -9,12 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-拓展收益明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-11-15
*/
public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpand> {
@ -22,9 +17,6 @@ public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpan
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusExpand(Integer period);
@ -32,30 +24,13 @@ public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpan
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusExpand(@Param("cuMemberBonusExpandList") List<?> cuMemberBonusExpandList);
/**
* 批量插入会员奖金,拓展
*
* @param cuMemberBonusExpandList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusExpandExt> queryMemberBonusExpandByBonusItems(BonusParam bonusParam);
@ -63,9 +38,6 @@ public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpan
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusExpandExt> queryMemberBonusExpandByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -20,13 +20,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
*/
List<Long> batchQueryCuMemberBonusSeq(Integer rowNum);
/**
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
*/
List<CuMemberBonus> queryMemberBonusTotalByCondition(BonusParam bonusParam);
/**
* 根据查询条件查询会员奖金
*
@ -46,7 +39,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
**/
CuMemberBonusExt queryMemberBonusByConditionForServerSum(@Param("bonusParam") BonusParam bonusParam);
/**
* 根据查询条件查询会员奖金
*
@ -90,10 +82,5 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
*/
void mergeBackRangeBonusIncome(@Param("pkOrder") Long pkOrder, @Param("bonusValue") Integer bonusValue);
/**
* 查询会员一周周期的拓展累计复购拓展累计
*/
List<CuMemberBonus> queryWeekMemberBonus(@Param("startPeriod") int startPeriod, @Param("endPeriod") int endPeriod);
void recalculateTeamNewBoxNum(@Param("pkId") Long pkId, @Param("retailsTableName") String retailsTableName);
}

View File

@ -1,16 +0,0 @@
package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.CuMemberBonusPushHis;
/**
* <p>
* 会员奖金-直推历史轮次记录 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-09-10
*/
public interface CuMemberBonusPushHisMapper extends BaseMapper<CuMemberBonusPushHis> {
}

View File

@ -6,20 +6,12 @@ import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 会员奖金-分红奖金配置 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-07-03
*/
public interface CuMemberShareBonusMapper extends BaseMapper<CuMemberShareBonus> {
/*
* @description: 查询会员分享奖金
* @author: sui q
* @date: 2023/7/3 15:28
* @param: null null
* 查询会员分享奖金
**/
CuMemberShareBonusExt queryCuMemberShareBonus(@Param("pkCountry") Integer pkCountry, @Param("settleMonth") String settleMonth);
}

View File

@ -8,28 +8,13 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-分红奖金配置明细 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-07-03
*/
public interface CuMemberShareDetailMapper extends BaseMapper<CuMemberShareDetail> {
/*
* @description: 更新分享明细
* @author: sui q
* @date: 2023/7/3 14:11
* @param: null null
* 更新分享明细
**/
void saveMemberShareBonus(@Param("cuMemberShareDetailList") List<CuMemberShareDetailExt> cuMemberShareDetailList);
/*
* @description: 根据期间查询对应的奖衔 period当前月第一天
* @author: sui q
* @date: 2023/8/11 15:42
* @param: null null
**/
List<CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period);
}

View File

@ -1,24 +0,0 @@
package com.hzs.bonus.bonus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.CuMemberShareMax;
/**
* <p>
* 会员奖金-最大分红奖金 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-01-06
*/
public interface CuMemberShareMaxMapper extends BaseMapper<CuMemberShareMax> {
/**
* 物理删除理论最大分红金额
* @param period 期间
* @return: void
* @Author: sui q
* @Date: 2023/1/7 10:31
*/
void deleteCuMemberShareMax(Integer period);
}

View File

@ -6,36 +6,22 @@ import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
import java.util.List;
/**
* <p>
* 特殊商品分配ev奖金明细 服务类
* </p>
*
* @author hzs
* @since 2024-10-30
*/
public interface IBdWaresBonusItemsService extends IService<BdWaresBonusItems> {
/*
* @description: 插入奖金特殊项奖金
* @author: sui q
* @date: 2024/11/7 15:04
* @param: null null
* 插入奖金特殊项奖金
**/
void insetWaresBonusItems(List<BdWaresBonusItems> waresBonusItemsList);
/*
* @description: 插入奖金特殊项奖金
* @author: sui q
* @date: 2024/11/7 15:04
* @param: null null
* 插入奖金特殊项奖金
**/
void updateWaresBonusItems(List<BdWaresBonusItems> waresBonusItemsList);
/*
* @description: 插入奖金特殊项奖金
* @author: sui q
* @date: 2024/11/7 15:04
* @param: null null
* 插入奖金特殊项奖金
**/
void deleteWaresBonusItems(List<BdWaresBonusItems> waresBonusItemsList, Long pkWaresBonus, Long userId);

View File

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

View File

@ -7,12 +7,7 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-奖金收益明细表(报单费) 服务类
* </p>
*
* @author hzs
* @since 2022-11-17
*/
public interface ICuMemberBonusDetailService extends IService<CuMemberBonusDetail> {
@ -20,9 +15,6 @@ public interface ICuMemberBonusDetailService extends IService<CuMemberBonusDetai
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusDetail(Integer period);
@ -30,19 +22,7 @@ public interface ICuMemberBonusDetailService extends IService<CuMemberBonusDetai
* 批量插入会员奖金主表
*
* @param cuMemberBonusDetailList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusDetail(List<CuMemberBonusDetail> cuMemberBonusDetailList, Set<Long> memberIdSet);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusDetail 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertCuMemberBonusDetail(CuMemberBonusDetail cuMemberBonusDetail);
}

View File

@ -7,12 +7,7 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-拓展收益明细表 服务类
* </p>
*
* @author hzs
* @since 2022-11-15
*/
public interface ICuMemberBonusExpandService extends IService<CuMemberBonusExpand> {
@ -20,9 +15,6 @@ public interface ICuMemberBonusExpandService extends IService<CuMemberBonusExpan
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusExpand(Integer period);
@ -30,19 +22,7 @@ public interface ICuMemberBonusExpandService extends IService<CuMemberBonusExpan
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList, Set<Long> memberIdSet);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList);
}

View File

@ -1,25 +0,0 @@
package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberBonusPushHis;
import java.util.List;
/**
* <p>
* 会员奖金-直推历史轮次记录 服务类
* </p>
*
* @author hzs
* @since 2023-09-10
*/
public interface ICuMemberBonusPushHisService extends IService<CuMemberBonusPushHis> {
/*
* @description: 查询会员历史推荐
* @author: sui q
* @date: 2023/9/10 14:23
* @param: null null
**/
List<CuMemberBonusPushHis> queryCuMemberBonusPushHis(Long pkMember);
}

View File

@ -8,7 +8,6 @@ import com.hzs.common.domain.member.ext.CuMemberBonusExt;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@ -141,11 +140,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
*/
void mergeBackMemberBonusIncome(Long pkOrder);
/**
* 查询会员一周周期的拓展累计复购拓展累计
*/
Map<Long, CuMemberBonus> queryWeekMemberBonus(int startPeriod, int endPeriod);
void calculateBonusTotal(CuMemberBonusExt cuMemberBonusExt, CuMemberBonusExt memberBonusExt);
CuMemberBonusExt initCuMemberBonus();

View File

@ -6,28 +6,17 @@ import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import com.hzs.bonus.bonus.param.CuMemberShareBonusParam;
/**
* <p>
* 会员奖金-分红奖金配置 服务类
* </p>
*
* @author hzs
* @since 2023-07-03
*/
public interface ICuMemberShareBonusService extends IService<CuMemberShareBonus> {
/*
* @description: 保存会员分红奖金及明细
* @author: sui q
* @date: 2023/7/3 14:04
* @param: null null
* 保存会员分红奖金及明细
**/
void saveMemberShareBonus(CuMemberShareBonusParam cuMemberShareBonusParam);
/*
* @description: 查询分红配置的参数
* @author: sui q
* @date: 2023/7/3 15:24
* @param: null null
* 查询分红配置的参数
**/
CuMemberShareBonusExt queryCuMemberShareBonus(Integer pkCountry, String settleMonth);

View File

@ -8,29 +8,13 @@ import java.util.List;
import java.util.Map;
/**
* <p>
* 会员奖金-分红奖金配置明细 服务类
* </p>
*
* @author hzs
* @since 2023-07-03
*/
public interface ICuMemberShareDetailService extends IService<CuMemberShareDetail> {
/*
* @description: 更新分享明细
* @author: sui q
* @date: 2023/7/3 14:11
* @param: null null
* 更新分享明细
**/
void saveMemberShareBonus(List<CuMemberShareDetailExt> cuMemberShareDetailList);
/*
* @description: 根据期间查询奖衔设置的分红配置
* key 国家+奖衔 明细
* @author: sui q
* @date: 2023/8/11 15:35
* @param: null null
**/
Map<String, CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period);
}

View File

@ -1,24 +0,0 @@
package com.hzs.bonus.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberShareMax;
/**
* <p>
* 会员奖金-最大分红奖金 服务类
* </p>
*
* @author hzs
* @since 2023-01-06
*/
public interface ICuMemberShareMaxService extends IService<CuMemberShareMax> {
/**
* 插入理论最大的可以进行分红的奖金
* @param cuMemberShareMax 最大分红的奖金
* @return: void
* @Author: sui q
* @Date: 2023/1/6 17:23
*/
void insertMaxShareBonus(CuMemberShareMax cuMemberShareMax);
}

View File

@ -11,18 +11,13 @@ import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* <p>
* 特殊商品分配ev奖金明细 服务实现类
* </p>
*
* @author hzs
* @since 2024-10-30
*/
@Service
public class BdWaresBonusItemsServiceImpl extends ServiceImpl<BdWaresBonusItemsMapper, BdWaresBonusItems> implements IBdWaresBonusItemsService {

View File

@ -159,11 +159,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
// 查询区域配置
Map<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
// 区域处理
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
// 区域会员mapkey:区域分组ID + 区ID ,value: 区域会员结算数据
Map<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
countyRangeExtMap.put(cuMemberRetailRangeExt.getRegionVertexPkId() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
// 计算区域奖
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap, saOrderExt);
if (cuMemberBonusDetail != null) {
@ -264,9 +265,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 订单业绩
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 复购重消盒数业绩算个人累计数据盒数业绩
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().add(boxNum));
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().add(boxNum));
sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().add(boxNum));
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().subtract(boxNum));
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().subtract(boxNum));
sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().subtract(boxNum));
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
@ -481,10 +482,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 区域处理
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByCounty(rangeTableName);
// 区域会员mapkey:系统+区ID ,value: 区域会员结算数据
// 区域会员mapkey:区域分组ID + 区ID ,value: 区域会员结算数据
Map<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
countyRangeExtMap.put(cuMemberRetailRangeExt.getRegionVertexPkId() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
// 会员等级升级记录
List<CuMemberGrade> cuMemberGradeList = new ArrayList<>();
@ -836,9 +837,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
// 累计盒数
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum().add(boxNum));
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum().add(boxNum));
targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum().add(boxNum));
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum().subtract(boxNum));
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum().subtract(boxNum));
targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum().subtract(boxNum));
// 计算等级
calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName,
cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, targetMemberRangeExt);
@ -1317,7 +1318,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt sourceRetailRangeExt = memberRangeExtMap.get(saOrder.getPkMember());
// 获取对应区域会员
CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getSystemType() + "_" + saOrder.getRecCounty());
CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getRegionVertexPkId() + "_" + saOrder.getRecCounty());
if (null == cuMemberRetailRangeExt) {
return null;
}

View File

@ -13,22 +13,13 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-辅导收益明细表 服务实现类
* </p>
*
* @author hzs
* @since 2022-11-15
*/
@Service
public class CuMemberBonusCoachServiceImpl extends ServiceImpl<CuMemberBonusCoachMapper, CuMemberBonusCoach> implements ICuMemberBonusCoachService {
private CuMemberBonusSettle cuMemberBonusSettle;
@Autowired
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
this.cuMemberBonusSettle = cuMemberBonusSettle;
}
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void deleteCuMemberBonusCoach(Integer period) {
@ -37,16 +28,16 @@ public class CuMemberBonusCoachServiceImpl extends ServiceImpl<CuMemberBonusCoac
@Override
public void batchInsertCuMemberBonusCoach(List<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet) {
if(cuMemberBonusCoachList.size() == 0){
if (cuMemberBonusCoachList.size() == 0) {
return;
}
List<CuMemberBonusCoach> cuMemberBonusCoaches = new ArrayList<>();
for (CuMemberBonusCoach cuMemberBonusCoach : cuMemberBonusCoachList) {
if(memberIdSet.contains(cuMemberBonusCoach.getPkBonus())){
if (memberIdSet.contains(cuMemberBonusCoach.getPkBonus())) {
cuMemberBonusCoaches.add(cuMemberBonusCoach);
}
}
if(cuMemberBonusCoaches.size()==0){
if (cuMemberBonusCoaches.size() == 0) {
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusCoaches);

View File

@ -13,22 +13,13 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-奖金收益明细表(报单费) 服务实现类
* </p>
*
* @author hzs
* @since 2022-11-17
*/
@Service
public class CuMemberBonusDetailServiceImpl extends ServiceImpl<CuMemberBonusDetailMapper, CuMemberBonusDetail> implements ICuMemberBonusDetailService {
private CuMemberBonusSettle cuMemberBonusSettle;
@Autowired
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
this.cuMemberBonusSettle = cuMemberBonusSettle;
}
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void deleteCuMemberBonusDetail(Integer period) {
@ -37,16 +28,16 @@ public class CuMemberBonusDetailServiceImpl extends ServiceImpl<CuMemberBonusDet
@Override
public void batchInsertCuMemberBonusDetail(List<CuMemberBonusDetail> cuMemberBonusDetailList, Set<Long> memberIdSet) {
if(cuMemberBonusDetailList.size() == 0){
if (cuMemberBonusDetailList.size() == 0) {
return;
}
List<CuMemberBonusDetail> cuMemberBonusDetails = new ArrayList<>();
for (CuMemberBonusDetail cuMemberBonusDetail : cuMemberBonusDetailList) {
if(memberIdSet.contains(cuMemberBonusDetail.getPkBonus())){
if (memberIdSet.contains(cuMemberBonusDetail.getPkBonus())) {
cuMemberBonusDetails.add(cuMemberBonusDetail);
}
}
if(cuMemberBonusDetails.size()==0){
if (cuMemberBonusDetails.size() == 0) {
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusDetails);
@ -54,8 +45,4 @@ public class CuMemberBonusDetailServiceImpl extends ServiceImpl<CuMemberBonusDet
baseMapper.batchInsertCuMemberBonusDetail(list));
}
@Override
public void insertCuMemberBonusDetail(CuMemberBonusDetail cuMemberBonusDetail) {
baseMapper.insertCuMemberBonusDetail(cuMemberBonusDetail);
}
}

View File

@ -13,12 +13,7 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-拓展收益明细表 服务实现类
* </p>
*
* @author hzs
* @since 2022-11-15
*/
@Service
public class CuMemberBonusExpandServiceImpl extends ServiceImpl<CuMemberBonusExpandMapper, CuMemberBonusExpand> implements ICuMemberBonusExpandService {
@ -37,16 +32,16 @@ public class CuMemberBonusExpandServiceImpl extends ServiceImpl<CuMemberBonusExp
@Override
public void batchInsertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList, Set<Long> memberIdSet) {
if(cuMemberBonusExpandList.size() == 0){
if (cuMemberBonusExpandList.size() == 0) {
return;
}
List<CuMemberBonusExpand> memberBonusExpands = new ArrayList<>();
for (CuMemberBonusExpand cuMemberBonusExpand : cuMemberBonusExpandList) {
if(memberIdSet.contains(cuMemberBonusExpand.getPkBonus())){
if (memberIdSet.contains(cuMemberBonusExpand.getPkBonus())) {
memberBonusExpands.add(cuMemberBonusExpand);
}
}
if(memberBonusExpands.size()==0){
if (memberBonusExpands.size() == 0) {
return;
}
List<List<?>> lists = cuMemberBonusSettle.handleCutList(memberBonusExpands);
@ -54,9 +49,5 @@ public class CuMemberBonusExpandServiceImpl extends ServiceImpl<CuMemberBonusExp
baseMapper.batchInsertCuMemberBonusExpand(list));
}
@Override
public void insertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList) {
baseMapper.insertCuMemberBonusExpand(cuMemberBonusExpandList);
}
}

View File

@ -1,32 +0,0 @@
package com.hzs.bonus.bonus.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.bonus.service.ICuMemberBonusPushHisService;
import com.hzs.common.core.constant.MemberFieldConstants;
import com.hzs.common.domain.member.bonus.CuMemberBonusPushHis;
import com.hzs.bonus.bonus.mapper.CuMemberBonusPushHisMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 会员奖金-直推历史轮次记录 服务实现类
* </p>
*
* @author hzs
* @since 2023-09-10
*/
@Service
public class CuMemberBonusPushHisServiceImpl extends ServiceImpl<CuMemberBonusPushHisMapper, CuMemberBonusPushHis> implements ICuMemberBonusPushHisService {
@Override
public List<CuMemberBonusPushHis> queryCuMemberBonusPushHis(Long pkMember) {
QueryWrapper<CuMemberBonusPushHis> queryWrapper = new QueryWrapper<>();
queryWrapper.select("(round+1) round,second,cal_achieve");
queryWrapper.eq(MemberFieldConstants.PK_MEMBER, pkMember);
queryWrapper.orderByDesc("round,second");
return baseMapper.selectList(queryWrapper);
}
}

View File

@ -621,14 +621,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
}
@Override
public Map<Long, CuMemberBonus> queryWeekMemberBonus(int startPeriod, int endPeriod) {
List<CuMemberBonus> cuMemberBonusList = baseMapper.queryWeekMemberBonus(startPeriod, endPeriod);
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberBonusList.size()));
cuMemberBonusList.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
return cuMemberBonusMap;
}
@Override
public void recalculateTeamNewBoxNum(List<Long> pkIdList) {
String retailsTableName = getDayTableName();

View File

@ -36,21 +36,17 @@ import java.math.BigDecimal;
import java.util.*;
/**
* <p>
* 会员奖金-分红奖金配置 服务实现类
* </p>
*
* @author hzs
* @since 2023-07-03
*/
@Service
public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonusMapper, CuMemberShareBonus> implements ICuMemberShareBonusService {
@DubboReference
private ISaOrderServiceApi saOrderServiceApi;
ISaOrderServiceApi saOrderServiceApi;
@DubboReference
private IAwardsServiceApi awardsServiceApi;
IAwardsServiceApi awardsServiceApi;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
private ICuMemberShareDetailService cuMemberShareDetailService;
@ -60,9 +56,6 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
@DubboReference
private ICurrencyServiceApi currencyServiceApi;
@Autowired
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
@ -88,7 +81,7 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
public void saveMemberShareBonus(CuMemberShareBonusParam cuMemberShareBonusParam) {
CuMemberShareBonusExt cuMemberShareBonusExt = queryCuMemberShareBonus(cuMemberShareBonusParam.getPkCountry(), cuMemberShareBonusParam.getSettleMonth());
CuMemberShareBonus cuMemberShareBonus = BeanUtil.copyProperties(cuMemberShareBonusExt, CuMemberShareBonus.class);
if(cuMemberShareBonus.getPkId() == null){
if (cuMemberShareBonus.getPkId() == null) {
cuMemberShareBonus.setPkCountry(cuMemberShareBonusParam.getPkCountry());
cuMemberShareBonus.setPkCreator(cuMemberShareBonusParam.getPkCreator());
CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(cuMemberShareBonusExt.getSettleMonth() + "-01");
@ -96,28 +89,28 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(cuMemberShareBonusParam.getPkCountry()).getData();
cuMemberShareBonus.setPkRate(currencyDTO.getPkId());
baseMapper.insert(cuMemberShareBonus);
}else{
} else {
cuMemberShareBonus.setPkModified(cuMemberShareBonusParam.getPkCreator());
cuMemberShareBonus.setModifiedTime(DateUtils.currentDateTime());
baseMapper.updateById(cuMemberShareBonus);
}
if(CollectionUtil.isNotEmpty(cuMemberShareBonusExt.getCuMemberShareDetailList())){
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())){
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){
if (cuMemberShareDetail.getPkId() == null) {
cuMemberShareDetail.setPkCountry(cuMemberShareBonusParam.getPkCountry());
cuMemberShareDetail.setPkShareBonus(cuMemberShareBonus.getPkId());
cuMemberShareDetail.setCreationTime(currentDateTime);
cuMemberShareDetail.setPkCreator(cuMemberShareBonusParam.getPkCreator());
}else{
} else {
cuMemberShareDetail.setPkModified(cuMemberShareBonusParam.getPkCreator());
cuMemberShareDetail.setModifiedTime(DateUtils.currentDateTime());
}
@ -129,7 +122,7 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
@Override
public CuMemberShareBonusExt queryCuMemberShareBonus(Integer pkCountry, String settleMonth) {
CuMemberShareBonusExt cuMemberShareBonusExt = baseMapper.queryCuMemberShareBonus(pkCountry, settleMonth);
if(cuMemberShareBonusExt == null){
if (cuMemberShareBonusExt == null) {
cuMemberShareBonusExt = new CuMemberShareBonusExt();
cuMemberShareBonusExt.setSettleMonth(settleMonth);
Date endDate = DateUtils.parseDate(settleMonth + "-01");
@ -149,7 +142,7 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
cuMemberAssMap.put(cuMemberAssess.getPkAwards(), cuMemberAssess.getAssessStatus()));
// 查询奖衔 达标人数
for (BdAwards bdAwards : bdAwardsList) {
if(EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()){
if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) {
continue;
}
shareRatio = ComputeUtil.computeAdd(shareRatio, bdAwards.getAbonusRatio());
@ -162,10 +155,10 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
cuMemberShareDetail.setExpectShareSubtotal(BigDecimal.ZERO);
cuMemberShareDetail.setRealShareIncome(BigDecimal.ZERO);
cuMemberShareDetail.setRealShareSubtotal(BigDecimal.ZERO);
if(cuMemberMap.containsKey(bdAwards.getPkId())){
if (cuMemberMap.containsKey(bdAwards.getPkId())) {
cuMemberShareDetail.setPromoteTotal(cuMemberMap.get(bdAwards.getPkId()));
}
if(cuMemberAssMap.containsKey(bdAwards.getPkId())){
if (cuMemberAssMap.containsKey(bdAwards.getPkId())) {
cuMemberShareDetail.setReachTotal(cuMemberAssMap.get(bdAwards.getPkId()));
}
cuMemberShareDetailList.add(cuMemberShareDetail);
@ -175,10 +168,10 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
// 处理预发金额 预发合计
for (CuMemberShareDetail cuMemberShareDetail : cuMemberShareDetailList) {
int count = bdAwardsList.size();
if(count > 0) {
if (count > 0) {
cuMemberShareDetail.setExpectShareSubtotal(ComputeUtil.computeDivide(cuMemberShareBonusExt.getExpectShareTotal(), BigDecimal.valueOf(count)));
cuMemberShareDetail.setExpectShareIncome(ComputeUtil.computeDivide(cuMemberShareDetail.getExpectShareSubtotal(), BigDecimal.valueOf(cuMemberShareDetail.getPromoteTotal())));
}else{
} else {
cuMemberShareDetail.setExpectShareSubtotal(BigDecimal.ZERO);
cuMemberShareDetail.setExpectShareIncome(BigDecimal.ZERO);
}

View File

@ -1,25 +1,16 @@
package com.hzs.bonus.bonus.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.bonus.service.ICuMemberShareDetailService;
import com.hzs.common.core.utils.ComputeUtil;
import com.hzs.common.domain.member.bonus.CuMemberShareDetail;
import com.hzs.common.domain.member.ext.CuMemberShareDetailExt;
import com.hzs.bonus.bonus.mapper.CuMemberShareDetailMapper;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>
* 会员奖金-分红奖金配置明细 服务实现类
* </p>
*
* @author hzs
* @since 2023-07-03
*/
@Service
public class CuMemberShareDetailServiceImpl extends ServiceImpl<CuMemberShareDetailMapper, CuMemberShareDetail> implements ICuMemberShareDetailService {
@ -29,23 +20,4 @@ public class CuMemberShareDetailServiceImpl extends ServiceImpl<CuMemberShareDet
baseMapper.saveMemberShareBonus(cuMemberShareDetailList);
}
/*
* @description: 根据期间查询奖衔设置的分红配置
* @author: sui q
* @date: 2023/8/11 15:35
* @param: null null
**/
@Override
public Map<String, CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period){
List<CuMemberShareDetail> cuMemberShareDetailList = baseMapper.queryCuMemberShareBonusByPeriod(period);
Map<String, CuMemberShareDetail> cuMemberShareDetailMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberShareDetailList.size()));
if(CollectionUtil.isNotEmpty(cuMemberShareDetailList)){
for (CuMemberShareDetail cuMemberShareDetail : cuMemberShareDetailList) {
String key =cuMemberShareDetail.getPkCountry().toString() + cuMemberShareDetail.getPkAwards();
cuMemberShareDetailMap.put(key, cuMemberShareDetail);
}
}
return cuMemberShareDetailMap;
}
}

View File

@ -1,29 +0,0 @@
package com.hzs.bonus.bonus.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.bonus.service.ICuMemberShareMaxService;
import com.hzs.common.domain.member.bonus.CuMemberShareMax;
import com.hzs.bonus.bonus.mapper.CuMemberShareMaxMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* <p>
* 会员奖金-最大分红奖金 服务实现类
* </p>
*
* @author hzs
* @since 2023-01-06
*/
@Service
public class CuMemberShareMaxServiceImpl extends ServiceImpl<CuMemberShareMaxMapper, CuMemberShareMax> implements ICuMemberShareMaxService {
@Override
@Transactional(rollbackFor = Exception.class)
public void insertMaxShareBonus(CuMemberShareMax cuMemberShareMax) {
// 删除
baseMapper.deleteCuMemberShareMax(cuMemberShareMax.getPeriod());
baseMapper.insert(cuMemberShareMax);
}
}

View File

@ -8,78 +8,51 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface CuRegionAssessDetailMapper extends BaseMapper<CuRegionAssessDetail> {
/*
* @description: 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
* 考核开始日期
**/
void deleteAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/*
* @description: 删除重复的数据
* @author: sui q
* @date: 2025/1/15 16:11
* @param: null null
* 删除重复的数据
**/
void updateAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
/**
* 批量生成考核明细seq
*
* @param rowNum
* @return
*/
List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/*
* @description: 批量插入区域考核数据
* @author: sui q
* @date: 2025/1/14 14:31
* @param: null null
* 批量插入区域考核数据
**/
void batchInsertCuRegionAssessDetail(@Param("cuRegionAssessDetailList") List<?> cuRegionAssessDetailList);
/*
* @description: 根据上月数据更新考核明细数据
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
* 根据上月数据更新考核明细数据
**/
void mergeCuRegionAssessDetailTeamPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/*
* @description: 根据上月数据更新考核明细数据
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
* 根据上月数据更新考核明细数据
**/
void mergeCuRegionAssessDetailSmallAreaPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/*
* @description: 初始化考核先置为考核失败
* @author: sui q
* @date: 2025/1/14 17:30
* @param: null null
* 初始化考核先置为考核失败
**/
void updateCuRegionAssessDetailInit(@Param("assessDate") Date assessDate);
/*
* @description: 根据月后业绩考核汇总满足30w小区10w
* @author: sui q
* @date: 2025/1/14 17:36
* @param: null null
* 根据月后业绩考核汇总满足30w小区10w
**/
void updateCuRegionAssessDetailByPv(@Param("assessDate") Date assessDate);
/*
* @description: 根据月后业绩考核汇总满足30w小区10w
* @author: sui q
* @date: 2025/1/14 17:36
* @param: null null
**/
void updateCuRegionAssessDetailByHand(@Param("assessDate") Date assessDate);
}

View File

@ -11,36 +11,22 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核 Mapper 接口
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface CuRegionAssessMapper extends BaseMapper<CuRegionAssess> {
/*
* @description: 查询考核结果
* @author: sui q
* @date: 2025/1/15 17:22
* @param: null null
* 查询考核结果
**/
List<CuRegionAssessExt> queryRegionAssessByCondition(@Param("regionAssessParam") CuRegionAssessParam regionAssessParam);
/*
* @description: 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
* 考核开始日期
**/
void deleteAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/*
* @description: 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
* 考核开始日期
**/
void updateAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
@ -48,49 +34,31 @@ public interface CuRegionAssessMapper extends BaseMapper<CuRegionAssess> {
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
* @return: List<Integer>
* @Author: sui q
* @Date: 2022/12/13 13:47
*/
List<Long> batchQueryCuRegionAssessSeq(Integer rowNum);
/*
* @description: 批量插入区域考核数据
* @author: sui q
* @date: 2025/1/14 14:31
* @param: null null
* 批量插入区域考核数据
**/
void batchInsertCuRegionAssess(@Param("cuRegionAssessList") List<?> cuRegionAssessList);
/*
* @description: 更新达标次数
* @author: sui q
* @date: 2025/1/15 10:44
* @param: null null
* 更新达标次数
**/
void mergeCuRegionAssess(@Param("assessDate") Date assessDate);
/*
* @description: 查询待考核的区域
* @author: sui q
* @date: 2025/1/13 17:31
* @param: null null
* 查询待考核的区域
**/
List<CuMemberRetailRegion> queryCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/*
* @description: 查询到期日期是上个月的区域
* @author: sui q
* @date: 2025/2/25 15:45
* @param: null null
* 查询到期日期是上个月的区域
**/
List<CuMemberRetailRegion> queryDueCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/*
* @description: 查询手动设置考核的近6个月考核记录
* @author: sui q
* @date: 2025/2/26 9:21
* @param: null null
* 查询手动设置考核的近6个月考核记录
**/
List<CuRegionAssessExt> queryRegionAssessByDate(@Param("memberRetailRegionList") List<CuMemberRetailRegion> memberRetailRegionList, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}

View File

@ -7,46 +7,29 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 服务类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface ICuRegionAssessDetailService extends IService<CuRegionAssessDetail> {
/*
* @description: 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
* 考核开始日期
**/
void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod);
/*
* @description: 删除重复的数据
* @author: sui q
* @date: 2025/1/15 16:11
* @param: null null
* 删除重复的数据
**/
void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate);
List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/*
* @description: 批量插入区域考核数据
* @author: sui q
* @date: 2025/1/14 14:31
* @param: null null
* 批量插入区域考核数据
**/
void batchInsertCuRegionAssessDetail(List<?> cuRegionAssessDetailList);
/*
* @description: 根据上月数据考核区域
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
* 根据上月数据考核区域
**/
void assessCuRegionAssessDetail(String rangeTableName, Date assessDate);
}

View File

@ -5,51 +5,34 @@ 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 org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核 服务类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface ICuRegionAssessService extends IService<CuRegionAssess> {
/*
* @description: 每月考核区域是否达标
* @author: sui q
* @date: 2025/1/13 16:46
* @param: null null
* 每月考核区域是否达标
**/
void assessRegionByEveryMonth(String settleDate, String rangeTableName);
/**
* @description: 定时处理会员收益区域处理前三天
* @author: zhang jing
* @date: 2025/3/7 10:08
* @param: [startDate]
* 定时处理会员收益区域处理前三天
*
* @return: void
**/
void validateHandAreaAssess(Date startDate,Date endDate);
void validateHandAreaAssess(Date startDate, Date endDate);
/*
* @description: 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
* 考核开始日期
**/
void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod);
/*
* @description: 查询考核结果
* @author: sui q
* @date: 2025/1/15 17:22
* @param: null null
* 查询考核结果
**/
List<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam);

View File

@ -10,12 +10,7 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 服务实现类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
@Service
public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessDetailMapper, CuRegionAssessDetail> implements ICuRegionAssessDetailService {
@ -50,8 +45,5 @@ public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessD
baseMapper.updateCuRegionAssessDetailInit(assessDate);
// 验证汇总业绩和小区业绩是否满足条件汇总业绩满足30000小区满足100000变更为考核通过
baseMapper.updateCuRegionAssessDetailByPv(assessDate);
// 手动开区域由免考修改为正常考核到期后验证近6个月的考核结果达标3次继续有奖衔否则没有
// baseMapper.updateCuRegionAssessDetailByHand(assessDate);
// 更新主表更新达标次数
}
}

View File

@ -1,9 +1,8 @@
package com.hzs.bonus.detail.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.detail.mapper.CuRegionAssessMapper;
import com.hzs.bonus.detail.service.ICuRegionAssessDetailService;
@ -12,14 +11,13 @@ 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.constant.TableNameConstants;
import com.hzs.common.core.enums.EDataSource;
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;
@ -29,21 +27,17 @@ import java.time.temporal.ChronoUnit;
import java.util.*;
/**
* <p>
* 新零售会员区域考核 服务实现类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
@Slf4j
@Service
public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper, CuRegionAssess> implements ICuRegionAssessService {
@DubboReference
private IMemberRetailApi memberRetailApi;
IMemberRetailApi iMemberRetailApi;
@Autowired
private ICuRegionAssessDetailService cuRegionAssessDetailService;
private ICuRegionAssessDetailService iCuRegionAssessDetailService;
@Autowired
private CuMemberBonusSettle cuMemberBonusSettle;
@ -54,14 +48,23 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
// 每月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);
// 清空数据7天内重算查找结算开始日期相同的是第一次考核,清空明细表主表
// 清空数据之前有区域然后掉区域了新的月份又有了 update
cuRegionAssessDetailService.updateAssessRegionDetailByDate(startDate, assessDate);
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<>();
@ -92,18 +95,19 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
}
saveCuRegionAssess(regionAssessMap, regionAssessDetailList);
}
cuRegionAssessDetailService.assessCuRegionAssessDetail(rangeTableName, assessDate);
iCuRegionAssessDetailService.assessCuRegionAssessDetail(rangeTableName, assessDate);
baseMapper.mergeCuRegionAssess(assessDate);
// 取消区域列表
List<Long> cancelRegionList = new ArrayList<>();
// 开始考核 上月最后一天奖衔业绩同步到考核表中
// 查询主表考核结束日期=考核日期的这部分需要生成下6期,最后一期结算完验证是否达标达标后继续生成下一期不达标取消区域
// 查询考核结束日期次数不达标的区域进行区域取消处理
List<CuRegionAssess> cuRegionAssessList = queryCuRegionAssessByEndDate(assessDate);
List<Long> cancelRegionList = new ArrayList<>();
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
List<CuRegionAssessDetail> regionAssessDetailList = new ArrayList<>();
for (CuRegionAssess cuRegionAssess : cuRegionAssessList) {
// 手动开区域的不参与考核,只有会员端选区域的参与考核
if (cuRegionAssess.getReachNum() < 3 && cuRegionAssess.getSource() == 1) {
if (cuRegionAssess.getReachNum() < 3) {
cancelRegionList.add(cuRegionAssess.getPkRegion());
continue;
}
@ -136,16 +140,13 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
// 查询到期日期的区域验证近6个月的达标次数不达标取消
// validateHandAreaAssess(assessDate, startDate, cancelRegionList);
if (cancelRegionList.size() > 0) {
if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
}
}
/**
* 定时处理会员收益区域处理前三天
**/
@Override
public void validateHandAreaAssess(Date startDate, Date endDate) {
List<Long> cancelRegionList = new ArrayList<>();
@ -169,7 +170,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
}
}
if (cancelRegionList.size() > 0) {
if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
@ -193,21 +194,20 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
}
// 主表
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList);
lists.forEach(list ->
baseMapper.batchInsertCuRegionAssess(list));
List<Long> idList = cuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size());
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 ->
cuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
detailList.forEach(detail -> iCuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
}
List<CuRegionAssess> queryCuRegionAssessByEndDate(Date settleDate) {
QueryWrapper<CuRegionAssess> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ASSESS_END_DATE", settleDate);
LambdaQueryWrapper<CuRegionAssess> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuRegionAssess::getAssessEndDate, settleDate);
return baseMapper.selectList(queryWrapper);
}
@ -215,7 +215,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
@Transactional(rollbackFor = Exception.class)
public void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod) {
// 7天内重算
cuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
iCuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
baseMapper.deleteAssessRegionByDate(assessStartDate, assessPeriod);
}

View File

@ -63,6 +63,7 @@
<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="smallTeamPv"/>
</resultMap>
<update id="mergeMemberRetailRangeInit">
@ -357,7 +358,8 @@
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
br.name country_name
br.name country_name,
bv.region_vertex_pk_id
from (
select * from ${tableName}
start with pk_member = #{item}
@ -371,6 +373,8 @@
on bwa.pk_id = a.pk_share_awards and bwa.del_flag = 0
left join bd_area br
on br.pk_id = a.region_address and br.del_flag = 0
left join bd_vertex bv
on bv.pk_id = a.pk_vertex
where ba.del_flag = 0 and bw.del_flag = 0
</foreach>
</select>
@ -526,10 +530,11 @@
</select>
<select id="batchQueryMemberRetailRangeByCounty" resultMap="CuMemberRetailRangeExt">
select pk_member,
pk_parent,
member_code,
member_name,
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,
@ -539,7 +544,7 @@
a.pk_country,
a.pk_settle_country,
a.region_address,
ba.name country_name,
ba.name country_name,
bg.grade_value,
bg.grade_name,
bw.awards_value,
@ -551,7 +556,8 @@
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
a.system_type
a.system_type,
bv.region_vertex_pk_id
from ${rangeTableName} a
inner join bd_awards bw
on bw.pk_id = a.pk_awards
@ -561,6 +567,8 @@
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
@ -591,7 +599,8 @@
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
nvl(nvl(sc.enable_status, r.enable_status), 1) enable_status
nvl(nvl(sc.enable_status, r.enable_status), 1) enable_status,
bv.region_vertex_pk_id
from cu_member cm
inner join bd_awards bw
on bw.pk_id = cm.pk_awards
@ -607,6 +616,8 @@
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
@ -661,7 +672,8 @@
bw.benefit_share_ratio,
bws.awards_value share_awards_value,
br.name country_name,
cr.county region_address
cr.county region_address,
bv.region_vertex_pk_id
from (
select *
from ${secondTableName} start with pk_member = #{pkMember}
@ -681,6 +693,8 @@
on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0
left join bd_area br
on br.pk_id = cr.county and br.del_flag = 0
left join bd_vertex bv
on bv.pk_id = cm.pk_vertex
where bg.del_flag = 0
</select>

View File

@ -4,16 +4,16 @@
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.BdWaresBonusItems">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_WARES_BONUS" property="pkWaresBonus" />
<result column="ASS_ACHIEVE" property="assAchieve" />
<result column="ALGEBRA" property="algebra" />
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_WARES_BONUS" property="pkWaresBonus"/>
<result column="ASS_ACHIEVE" property="assAchieve"/>
<result column="ALGEBRA" property="algebra"/>
</resultMap>
</mapper>

View File

@ -72,17 +72,6 @@
SELECT 1 FROM dual
</insert>
<insert id="insertCuMemberBonusDetail">
insert into cu_member_bonus_detail(pk_bonus, pk_order, pk_bonus_items, income_status,
cal_type, cal_achieve, cal_value, pretax_income,
income_tax, real_income, 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,jdbcType=NUMERIC}, #{item.calValue,jdbcType=NUMERIC}, #{item.pretaxIncome,jdbcType=NUMERIC},
#{item.incomeTax,jdbcType=NUMERIC}, #{item.realIncome,jdbcType=NUMERIC},
#{item.remark}, #{item.incomeRatio,jdbcType=NUMERIC}, #{item.incomeDialRatio,jdbcType=NUMERIC}, #{item.orderDialRatio,jdbcType=NUMERIC},
#{item.pkCountry}, #{item.pkCreator})
</insert>
<delete id="deleteCuMemberBonusDetail">
delete
from CU_MEMBER_BONUS_DETAIL

View File

@ -77,19 +77,7 @@
</foreach>
SELECT 1 FROM dual
</insert>
<insert id="insertCuMemberBonusExpand">
insert 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, 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.expandNoCapping}, #{item.expandCapping}, #{item.expandNormalHalf}, #{item.expandNormalReal},
#{item.remark}, #{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
#{item.pkCountry}, #{item.pkCreator})
</insert>
<delete id="deleteCuMemberBonusExpand">
delete
from CU_MEMBER_BONUS_EXPAND

View File

@ -244,37 +244,6 @@
b.retail_real_subtotal)
</insert>
<select id="queryMemberBonusTotalByCondition" resultMap="CuMemberBonus">
select cb.period,sum(direct_income) direct_income,sum(expand_income) expand_income,sum(expand_no_capping) expand_no_capping,
sum(expand_capping) expand_capping,sum(coach_income) coach_income,sum(share_income) share_income,
sum(service_income) service_income,sum(back_points) back_points,sum(service_spend) service_spend,
sum(pur_real_subtotal) pur_real_subtotal,sum(repur_range_income) repur_range_income,sum(repur_expand_income) repur_expand_income,
sum(repur_real_subtotal) repur_real_subtotal,sum(cloud_direct_income) cloud_direct_income,sum(cloud_pur_income) cloud_pur_income,
sum(cloud_repur_income) cloud_repur_income,sum(cloud_real_subtotal) cloud_real_subtotal,sum(repur_coupon) repur_coupon,
sum(repur_coupon_share) repur_coupon_share,sum(repur_coupon_subtotal) repur_coupon_subtotal,
sum(global_points) global_points,sum(car_award_points) car_award_points,sum(hi_fun_income) hi_fun_income,
sum(real_income_total) real_income_total,cp.settle_date from cu_member_bonus cb
inner join cu_member cm
on cb.pk_member = cm.pk_id
inner join cu_member_settle_period cp
on cb.period = cp.pk_id
where cb.del_flag=0 and cm.del_flag=0
and cp.del_flag=0 and cb.income_status=0
<if test="pkVertex != null and pkVertex != ''">
and cm.pk_vertex = #{pkVertex}
</if>
<if test="pkTeamCode != null and pkTeamCode != ''">
and cm.pk_team_code = #{pkTeamCode}
</if>
<if test="startDate != null">
and cp.settle_date >=#{startDate, jdbcType=DATE}
</if>
<if test="endDate != null">
and cp.settle_date &lt; #{endDate, jdbcType=DATE}
</if>
group by cb.period,cp.settle_date
</select>
<select id="queryMemberBonusByCondition" resultMap="CuMemberBonus">
select cp.settle_date,
cb.direct_income,
@ -591,18 +560,6 @@
from dual connect by rownum &lt;= #{rowNum}
</select>
<select id="queryWeekMemberBonus" resultMap="CuMemberBonus">
select cb.pk_member, sum(expand_income) expand_income, sum(repur_expand_income) repur_expand_income
from cu_member_bonus cb
inner join BD_SYSTEM_CONFIG sy
on cb.pk_country = sy.pk_country
where sy.key = 'EXPAND_CAP_METHOD1'
and sy.value = '2'
and cb.period >= #{startPeriod}
and cb.period &lt; #{endPeriod}
group by cb.pk_member
</select>
<update id="recalculateTeamNewBoxNum">
MERGE INTO ${retailsTableName} s
USING (

View File

@ -1,20 +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.CuMemberBonusPushHisMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.CuMemberBonusPushHis">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MEMBER" property="pkMember" />
<result column="CAL_ACHIEVE" property="calAchieve" />
<result column="ROUND" property="round" />
<result column="SECOND" property="second" />
</resultMap>
</mapper>

View File

@ -4,51 +4,53 @@
<!-- 通用查询映射结果 -->
<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" />
<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" />
<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>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
DEL_FLAG,
CREATION_TIME,
MODIFIED_TIME,
PK_COUNTRY,
PK_CREATOR,
PK_MODIFIED,
PK_ID, PERIOD, PK_RATE, SETTLE_MONTH, EXPECT_SHARE_TOTAL, REAL_SHARE_TOTAL
</sql>
<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}
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>

View File

@ -4,62 +4,45 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberShareDetail" type="com.hzs.common.domain.member.bonus.CuMemberShareDetail">
<id column="PK_ID" property="pkId" />
<result column="PK_SHARE_BONUS" property="pkShareBonus" />
<result column="DEL_FLAG" property="delFlag" />
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="PROMOTE_TOTAL" property="promoteTotal" />
<result column="REACH_TOTAL" property="reachTotal" />
<result column="EXPECT_SHARE_INCOME" property="expectShareIncome" />
<result column="EXPECT_SHARE_SUBTOTAL" property="expectShareSubtotal" />
<result column="REAL_SHARE_INCOME" property="realShareIncome" />
<result column="REAL_SHARE_SUBTOTAL" property="realShareSubtotal" />
<id column="PK_ID" property="pkId"/>
<result column="PK_SHARE_BONUS" property="pkShareBonus"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="PROMOTE_TOTAL" property="promoteTotal"/>
<result column="REACH_TOTAL" property="reachTotal"/>
<result column="EXPECT_SHARE_INCOME" property="expectShareIncome"/>
<result column="EXPECT_SHARE_SUBTOTAL" property="expectShareSubtotal"/>
<result column="REAL_SHARE_INCOME" property="realShareIncome"/>
<result column="REAL_SHARE_SUBTOTAL" property="realShareSubtotal"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
DEL_FLAG,
CREATION_TIME,
MODIFIED_TIME,
PK_COUNTRY,
PK_CREATOR,
PK_MODIFIED,
PK_ID, PK_AWARDS,PK_SHARE_BONUS, PROMOTE_TOTAL, REACH_TOTAL, EXPECT_SHARE_INCOME, EXPECT_SHARE_SUBTOTAL, REAL_SHARE_INCOME, REAL_SHARE_SUBTOTAL
</sql>
<update id="saveMemberShareBonus">
merge into cu_member_share_detail a
using(
<foreach collection="cuMemberShareDetailList" item="item" separator=" union ">
select #{item.pkAwards} pk_awards,#{item.pkShareBonus} pk_share_bonus,#{item.promoteTotal} promote_total,#{item.reachTotal} reach_total,
#{item.expectShareIncome} expect_share_income,#{item.expectShareSubtotal} expect_share_subtotal,
#{item.realShareIncome} real_share_income,#{item.realShareSubtotal} real_share_subtotal,
#{item.creationTime, jdbcType=TIMESTAMP} creation_time,#{item.pkCountry} pk_country,#{item.pkCreator,jdbcType=BIGINT} pk_creator,
#{item.modifiedTime, jdbcType=TIMESTAMP} modified_time,#{item.pkModified,jdbcType=BIGINT} pk_modified from dual
</foreach>
) b
<foreach collection="cuMemberShareDetailList" item="item" separator=" union ">
select #{item.pkAwards} pk_awards,#{item.pkShareBonus} pk_share_bonus,#{item.promoteTotal} promote_total,#{item.reachTotal} reach_total,
#{item.expectShareIncome} expect_share_income,#{item.expectShareSubtotal} expect_share_subtotal,
#{item.realShareIncome} real_share_income,#{item.realShareSubtotal} real_share_subtotal,
#{item.creationTime, jdbcType=TIMESTAMP} creation_time,#{item.pkCountry} pk_country,#{item.pkCreator,jdbcType=BIGINT} pk_creator,
#{item.modifiedTime, jdbcType=TIMESTAMP} modified_time,#{item.pkModified,jdbcType=BIGINT} pk_modified from dual
</foreach>
) b
on (a.pk_share_bonus=b.pk_share_bonus and a.pk_awards=b.pk_awards)
WHEN NOT MATCHED THEN
insert(pk_awards,pk_share_bonus, promote_total, reach_total, expect_share_income, expect_share_subtotal, real_share_income,
real_share_subtotal,creation_time,pk_country,pk_creator)
real_share_subtotal,creation_time,pk_country,pk_creator)
values
(b.pk_awards,b.pk_share_bonus,b.promote_total,b.reach_total, b.expect_share_income, b.expect_share_subtotal, b.real_share_income,
b.real_share_subtotal,b.creation_time,b.pk_country,b.pk_creator)
when matched then
update set a.promote_total=b.promote_total,a.reach_total=b.reach_total,a.expect_share_income=b.expect_share_income,
a.expect_share_subtotal=b.expect_share_subtotal,a.real_share_income=b.real_share_income,
a.real_share_subtotal=b.real_share_subtotal,a.modified_time=b.modified_time,a.pk_modified=b.pk_modified
a.expect_share_subtotal=b.expect_share_subtotal,a.real_share_income=b.real_share_income,
a.real_share_subtotal=b.real_share_subtotal,a.modified_time=b.modified_time,a.pk_modified=b.pk_modified
</update>
<select id="queryCuMemberShareBonusByPeriod" resultMap="CuMemberShareDetail">
select cd.* from CU_MEMBER_SHARE_BONUS ch
inner join CU_MEMBER_SHARE_DETAIL cd
on ch.pk_id =cd.pk_share_bonus
where ch.del_flag=0 and cd.del_flag=0
and ch.period=#{period}
</select>
</mapper>

View File

@ -1,23 +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.CuMemberShareMaxMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.CuMemberShareMax">
<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="ORDER_ACHIEVE" property="orderAchieve" />
<result column="SHARE_INCOME" property="shareIncome" />
</resultMap>
<delete id="deleteCuMemberShareMax">
delete from CU_MEMBER_SHARE_MAX where period = #{period} and del_flag=0
</delete>
</mapper>

View File

@ -4,101 +4,133 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuRegionAssessDetail" type="com.hzs.common.domain.member.detail.CuRegionAssessDetail">
<id column="PK_ID" property="pkId" />
<result column="PK_MEMBER" property="pkMember" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_REGION_ASSESS" property="pkRegionAssess" />
<result column="ASSESS_DATE" property="assessDate" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="TEAM_MONTH_PV" property="teamMonthPv" />
<result column="SMALL_AREA_PV" property="smallAreaPv" />
<result column="ASSESS_STATUS" property="assessStatus" />
<id column="PK_ID" property="pkId"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_REGION_ASSESS" property="pkRegionAssess"/>
<result column="ASSESS_DATE" property="assessDate"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="TEAM_MONTH_PV" property="teamMonthPv"/>
<result column="SMALL_AREA_PV" property="smallAreaPv"/>
<result column="ASSESS_STATUS" property="assessStatus"/>
</resultMap>
<insert id="batchInsertCuRegionAssessDetail">
insert ALL
<foreach item="item" index="index" collection="cuRegionAssessDetailList" separator=" " >
into cu_region_assess_detail(pk_id,pk_member,pk_region_assess,assess_date,pk_creator,pk_country) values
(
#{item.pkId},#{item.pkMember},#{item.pkRegionAssess},#{item.assessDate},#{item.pkCreator},#{item.pkCountry}
)
<foreach item="item" index="index" collection="cuRegionAssessDetailList" separator=" ">
into cu_region_assess_detail (
pk_id, pk_member, pk_region_assess, assess_date,
pk_creator, pk_country)
values (
#{item.pkId}, #{item.pkMember}, #{item.pkRegionAssess}, #{item.assessDate},
#{item.pkCreator}, #{item.pkCountry})
</foreach>
SELECT 1 FROM dual
</insert>
<update id="mergeCuRegionAssessDetailTeamPv">
merge into cu_region_assess_detail a
using(
select cd.pk_id,cr.pk_member,cr.pk_awards,
(cr.month_consume_pv+cr.team_month_pv) team_month_pv from cu_region_assess_detail cd
inner join ${rangeTableName} cr
on cd.pk_member=cr.pk_member
where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE}
using (
select cd.pk_id,
cr.pk_member,
cr.pk_awards,
(cr.month_consume_pv + cr.team_month_pv) team_month_pv
from cu_region_assess_detail cd
inner join ${rangeTableName} cr
on cd.pk_member = cr.pk_member
where cd.del_flag = 0
and cd.assess_date = #{assessDate, jdbcType=DATE}
) b
on(a.pk_id=b.pk_id)
on (a.pk_id = b.pk_id)
when matched then
update set a.pk_awards=b.pk_awards,a.team_month_pv=b.team_month_pv
WHERE a.pk_awards != b.pk_awards OR a.team_month_pv != b.team_month_pv
update set a.pk_awards = b.pk_awards, a.team_month_pv = b.team_month_pv
WHERE a.pk_awards != b.pk_awards
OR a.team_month_pv != b.team_month_pv
</update>
<update id="mergeCuRegionAssessDetailSmallAreaPv">
merge into cu_region_assess_detail a
using(
select pk_id,max(big_area_pv) big_area_pv from(
select cd.pk_id,b.* from cu_region_assess_detail cd
inner join(
select pk_parent pk_member,(month_consume_pv+team_month_pv) big_area_pv from ${rangeTableName}
union
select pk_member,month_consume_pv big_area_pv from ${rangeTableName}) b
on cd.pk_member=b.pk_member
where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE}
)
using (
select pk_id, max(big_area_pv) big_area_pv
from (
select cd.pk_id, b.*
from cu_region_assess_detail cd
inner join (
select pk_parent pk_member, (month_consume_pv + team_month_pv) big_area_pv
from ${rangeTableName}
union
select pk_member, month_consume_pv big_area_pv
from ${rangeTableName}
) b
on cd.pk_member = b.pk_member
where cd.del_flag = 0
and cd.assess_date = #{assessDate, jdbcType=DATE}
)
group by pk_id
) b
on(a.pk_id=b.pk_id)
on (a.pk_id = b.pk_id)
when matched then
update set a.small_area_pv=a.team_month_pv-b.big_area_pv
update set a.small_area_pv = a.team_month_pv - b.big_area_pv
</update>
<update id="updateCuRegionAssessDetailInit">
update cu_region_assess_detail set assess_status=2 where del_flag=0 and assess_date=#{assessDate, jdbcType=DATE}
</update>
<update id="updateCuRegionAssessDetailByPv">
update cu_region_assess_detail set assess_status=0
where del_flag=0 and team_month_pv>=46875 and small_area_pv>=15625
update cu_region_assess_detail
set assess_status = 2
where del_flag = 0
and assess_date = #{assessDate, jdbcType=DATE}
</update>
<update id="updateCuRegionAssessDetailByHand">
update cu_region_assess_detail set assess_status=0
where del_flag=0 and assess_date = #{assessDate, jdbcType=DATE}
and pk_region_assess in(select pk_id from cu_region_assess where del_flag=0 and source=2)
<update id="updateCuRegionAssessDetailByPv">
update cu_region_assess_detail
set assess_status = 0
where del_flag = 0
and team_month_pv >= 300000
and small_area_pv >= 100000
and assess_date = #{assessDate, jdbcType=DATE}
</update>
<update id="updateAssessRegionDetailByDate">
update cu_region_assess_detail set del_flag=1,modified_time=sysdate where pk_region_assess in(
select ca.pk_id from cu_region_assess ca
inner join (
select pk_id from cu_member_retail_region
where effective=0 and del_flag=0
and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE}
and nvl(modified_time,creation_time) &lt; #{assessEndDate,jdbcType=DATE}
) b
on ca.pk_region =b.pk_id
where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE})
update cu_region_assess_detail
set del_flag = 1,
modified_time = sysdate
where pk_region_assess in (
select ca.pk_id
from cu_region_assess ca
inner join (
select pk_id
from cu_member_retail_region
where effective = 0
and del_flag = 0
and nvl(modified_time, creation_time) >= #{assessStartDate, jdbcType=DATE}
and nvl(modified_time, creation_time) &lt; #{assessEndDate, jdbcType=DATE}
) b
on ca.pk_region = b.pk_id
where ca.del_flag = 0
and ca.assess_start_date != #{assessEndDate,jdbcType=DATE})
</update>
<delete id="deleteAssessRegionDetailByDate">
delete from cu_region_assess_detail where del_flag=0 and
pk_region_assess in(
select pk_id from cu_region_assess where del_flag=0 and
assess_start_date=#{assessStartDate, jdbcType=DATE}
<choose>
<when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
delete from cu_region_assess_detail
where del_flag = 0 and
pk_region_assess in (
select pk_id from cu_region_assess
where del_flag = 0
and assess_start_date = #{assessStartDate, jdbcType=DATE}
<choose>
<when test="assessPeriod == 1">and assess_period = #{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
)
</delete>
<select id="batchQueryCuRegionAssessDetailSeq" resultType="java.lang.Long">
select cu_region_assess_detail_seq.nextval from dual connect by rownum &lt;= #{rowNum}
select cu_region_assess_detail_seq.nextval
from dual connect by rownum &lt;= #{rowNum}
</select>
</mapper>

View File

@ -4,96 +4,119 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuRegionAssessExt" type="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt">
<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="PK_CREATOR" property="pkCreator" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_MEMBER" property="pkMember" />
<result column="PK_REGION" property="pkRegion" />
<result column="ASSESS_PERIOD" property="assessPeriod" />
<result column="ASSESS_START_DATE" property="assessStartDate" />
<result column="ASSESS_END_DATE" property="assessEndDate" />
<result column="REACH_NUM" property="reachNum" />
<result column="SOURCE" property="source" />
<result column="MEMBER_CODE" property="memberCode" />
<result column="MEMBER_NAME" property="memberName" />
<result column="PROVINCE_NAME" property="provinceName" />
<result column="CITY_NAME" property="cityName" />
<result column="COUNTY_NAME" property="countyName" />
<result column="ASSESS_ADDRESS" property="assessAddress" />
<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="PK_CREATOR" property="pkCreator"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="PK_REGION" property="pkRegion"/>
<result column="ASSESS_PERIOD" property="assessPeriod"/>
<result column="ASSESS_START_DATE" property="assessStartDate"/>
<result column="ASSESS_END_DATE" property="assessEndDate"/>
<result column="REACH_NUM" property="reachNum"/>
<result column="SOURCE" property="source"/>
<result column="MEMBER_CODE" property="memberCode"/>
<result column="MEMBER_NAME" property="memberName"/>
<result column="PROVINCE_NAME" property="provinceName"/>
<result column="CITY_NAME" property="cityName"/>
<result column="COUNTY_NAME" property="countyName"/>
<result column="ASSESS_ADDRESS" property="assessAddress"/>
<collection property="cuRegionAssessDetailList" ofType="com.hzs.common.domain.member.detail.CuRegionAssessDetail">
<result column="ASSESS_DATE" property="assessDate" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="TEAM_MONTH_PV" property="teamMonthPv" />
<result column="SMALL_AREA_PV" property="smallAreaPv" />
<result column="ASSESS_STATUS" property="assessStatus" />
<result column="ASSESS_DATE" property="assessDate"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="TEAM_MONTH_PV" property="teamMonthPv"/>
<result column="SMALL_AREA_PV" property="smallAreaPv"/>
<result column="ASSESS_STATUS" property="assessStatus"/>
</collection>
</resultMap>
<insert id="batchInsertCuRegionAssess">
insert ALL
<foreach item="item" index="index" collection="cuRegionAssessList" separator=" " >
into cu_region_assess(pk_id,pk_member,assess_period,pk_region,assess_start_date,assess_end_date,
source,pk_creator,pk_country) values
(
#{item.pkId},#{item.pkMember},#{item.assessPeriod},#{item.pkRegion},#{item.assessStartDate},#{item.assessEndDate},
#{item.source},#{item.pkCreator},#{item.pkCountry}
)
<foreach item="item" index="index" collection="cuRegionAssessList" separator=" ">
into cu_region_assess (
pk_id, pk_member, assess_period, pk_region,
assess_start_date, assess_end_date,
source, pk_creator, pk_country)
values (
#{item.pkId}, #{item.pkMember}, #{item.assessPeriod}, #{item.pkRegion},
#{item.assessStartDate}, #{item.assessEndDate},
#{item.source}, #{item.pkCreator}, #{item.pkCountry})
</foreach>
SELECT 1 FROM dual
</insert>
<update id="mergeCuRegionAssess">
merge into CU_REGION_ASSESS a
using(
select cd.pk_region_assess,sum(1) REACH_NUM from cu_region_assess_detail cd
inner join cu_region_assess ca
on cd.pk_region_assess=ca.pk_id
where cd.ASSESS_STATUS=0 and cd.del_flag=0 and ca.del_flag=0
and ca.assess_start_date &lt;= #{assessDate,jdbcType=DATE}
and ca.assess_end_date >= #{assessDate,jdbcType=DATE}
using (
select cd.pk_region_assess, sum(1) REACH_NUM
from cu_region_assess_detail cd
inner join cu_region_assess ca
on cd.pk_region_assess = ca.pk_id
where cd.ASSESS_STATUS = 0
and cd.del_flag = 0
and ca.del_flag = 0
and ca.assess_start_date &lt;= #{assessDate,jdbcType=DATE}
and ca.assess_end_date >= #{assessDate,jdbcType=DATE}
group by cd.pk_region_assess
) b
on (a.pk_id=b.pk_region_assess)
on (a.pk_id = b.pk_region_assess)
when matched then
update set a.REACH_NUM=b.REACH_NUM
update set a.REACH_NUM = b.REACH_NUM
</update>
<update id="updateAssessRegionByDate">
update cu_region_assess set del_flag=1,modified_time=sysdate where pk_id in(
select ca.pk_id from cu_region_assess ca
inner join (
select pk_id from cu_member_retail_region
where effective=0 and del_flag=0
and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE}
and nvl(modified_time,creation_time) &lt; #{assessEndDate,jdbcType=DATE}
) b
on ca.pk_region =b.pk_id
where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE})
update cu_region_assess
set del_flag = 1,
modified_time = sysdate
where pk_id in (
select ca.pk_id
from cu_region_assess ca
inner join (
select pk_id
from cu_member_retail_region
where effective = 0
and del_flag = 0
and nvl(modified_time, creation_time) >= #{assessStartDate,jdbcType=DATE}
and nvl(modified_time, creation_time) &lt; #{assessEndDate,jdbcType=DATE}
) b
on ca.pk_region = b.pk_id
where ca.del_flag = 0
and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE})
</update>
<delete id="deleteAssessRegionByDate">
delete from cu_region_assess where del_flag=0 and
assess_start_date=#{assessStartDate, jdbcType=DATE}
assess_start_date=#{assessStartDate, jdbcType=DATE}
<choose>
<when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
</delete>
<select id="queryCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
select * from cu_member_retail_region where effective=0 and del_flag=0
and nvl(modified_time,creation_time)>= #{startDate, jdbcType=DATE}
and nvl(modified_time,creation_time) &lt; #{endDate, jdbcType=DATE}
select *
from cu_member_retail_region
where effective = 0
and del_flag = 0
and nvl(modified_time, creation_time) >= #{startDate, jdbcType=DATE}
and nvl(modified_time, creation_time) &lt; #{endDate, jdbcType=DATE}
</select>
<select id="batchQueryCuRegionAssessSeq" resultType="java.lang.Long">
select cu_region_assess_seq.nextval from dual connect by rownum &lt;= #{rowNum}
select cu_region_assess_seq.nextval
from dual connect by rownum &lt;= #{rowNum}
</select>
<select id="queryRegionAssessByCondition" resultMap="CuRegionAssessExt">
select cm.member_code,cm.member_name,ca.reach_num,ca.assess_period,
ca.assess_start_date,ca.assess_end_date,ca.reach_num,
(province.name||city.name||county.name) assess_address,
cd.assess_date,cd.assess_status,cd.team_month_pv,cd.small_area_pv,
cd.assess_status /* province.name,city.name,county.name,*/
from cu_region_assess ca
ca.assess_start_date,ca.assess_end_date,ca.reach_num,
(province.name||city.name||county.name) assess_address,
cd.assess_date,cd.assess_status,cd.team_month_pv,cd.small_area_pv,
cd.assess_status /* province.name,city.name,county.name,*/
from cu_region_assess ca
inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess
inner join cu_member cm
@ -103,7 +126,7 @@
left join bd_area province on province.PK_ID=cr.province
left join bd_area city on city.PK_ID=cr.city
left join bd_area county on county.PK_ID=cr.county
where ca.del_flag=0 and cd.del_flag=0 and cm.del_flag=0 and cr.del_flag=0
where ca.del_flag=0 and cd.del_flag=0 and cm.del_flag=0 and cr.del_flag=0
<if test="regionAssessParam.assessDate != null">
and cd.assess_date &lt;= #{regionAssessParam.assessDate,jdbcType=DATE}
</if>
@ -121,22 +144,25 @@
</if>
</select>
<select id="queryDueCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
select * from cu_member_retail_region where effective=0 and del_flag=0
and effective_end_date>= #{startDate, jdbcType=DATE}
and effective_end_date &lt; #{endDate, jdbcType=DATE}
select *
from cu_member_retail_region
where effective = 0
and del_flag = 0
and effective_end_date >= #{startDate, jdbcType=DATE}
and effective_end_date &lt; #{endDate, jdbcType=DATE}
</select>
<select id="queryRegionAssessByDate"
resultType="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt">
select cd.pk_member,count(cd.pk_id) pk_id from cu_region_assess ca
inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess
inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess
where ca.del_flag=0 and cd.del_flag=0
and cd.assess_date>=#{startDate, jdbcType=DATE} and cd.assess_date &lt;=#{endDate, jdbcType=DATE}
and assess_status=0 and ca.pk_member in
and cd.assess_date>=#{startDate, jdbcType=DATE} and cd.assess_date &lt;=#{endDate, jdbcType=DATE}
and assess_status=0 and ca.pk_member in
<foreach collection="memberRetailRegionList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
group by cd.pk_member
group by cd.pk_member
</select>
</mapper>

View File

@ -10,11 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* @Description: 新零售会员dubbo服务
* @Author: jiang chao
* @Time: 2024/12/31 13:40
* @Classname: MemberRetailProvider
* @PackageName: com.hzs.retail.member.provider
* 新零售会员dubbo服务
*/
@Slf4j
@DubboService

View File

@ -2648,10 +2648,18 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
throw new ServiceException("当前已经是可以购买的最高等级");
}
// 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数
baseBoxNum = lastUpdateGrade.getBoxNumber().add(saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType));
BigDecimal oldBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType);
if (null != oldBoxNum) {
baseBoxNum = lastUpdateGrade.getBoxNumber().add(oldBoxNum);
} else {
baseBoxNum = lastUpdateGrade.getBoxNumber();
}
} else {
// 没有手动升级记录
baseBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType);
BigDecimal oldBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType);
if (null != oldBoxNum) {
baseBoxNum = oldBoxNum;
}
}
}
return baseBoxNum;

View File

@ -251,4 +251,11 @@ public class CuMemberRetailRange extends BaseEntity {
@TableField("small_team_pv")
private BigDecimal smallTeamPv;
/**
* 区域分组ID
*/
@TableField("region_vertex_pk_id")
private Integer regionVertexPkId;
}

View File

@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 特殊商品分配ev奖金明细
* </p>
*
* @author hzs
* @since 2024-10-30
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -11,12 +11,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 会员奖金-拓展收益明细表
* </p>
*
* @author hzs
* @since 2022-11-15
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 会员奖金-直推历史轮次记录
* </p>
*
* @author hzs
* @since 2023-09-10
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 会员奖金-分红奖金配置
* </p>
*
* @author hzs
* @since 2023-07-03
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -11,12 +11,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 会员奖金-理论最大分红奖金
* </p>
*
* @author hzs
* @since 2023-01-06
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -2,7 +2,9 @@ package com.hzs.common.domain.member.detail;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity;
@ -10,12 +12,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 新零售会员区域考核
* </p>
*
* @author hzs
* @since 2025-01-13
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity;
@ -12,12 +13,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 新零售会员区域考核明细表
* </p>
*
* @author hzs
* @since 2025-01-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ -56,7 +52,7 @@ public class CuRegionAssessDetail extends BaseEntity {
private Date assessDate;
/**
* 会员等级
* 会员奖衔
*/
@TableField("PK_AWARDS")
private Integer pkAwards;

View File

@ -4,19 +4,20 @@ import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.hzs.bonus.settle.IMemberSettleBonusApi;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.member.account.IMemberJobServiceApi;
import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.base.dto.AreaDTO;
import com.hzs.third.job.OrderJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
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;
import java.time.temporal.ChronoUnit;
import java.util.*;
/**
@ -32,6 +33,16 @@ public class JobTestController {
@DubboReference
IMemberJobServiceApi iMemberJobServiceApi;
@DubboReference
IMemberSettleBonusApi iMemberSettleBonusApi;
@GetMapping("/test-settle")
public AjaxResult testSettle() {
Date startDate = DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate());
iMemberSettleBonusApi.autoCalculateBonus(startDate);
return AjaxResult.success();
}
/**
* 测试行政区划更新