## 定时任务整体调整;

This commit is contained in:
jiangchao 2025-04-01 14:33:10 +08:00
parent 25852c9fc3
commit 7748af02ae
47 changed files with 1477 additions and 2106 deletions

View File

@ -1,21 +0,0 @@
package com.hzs.report.perk;
import com.hzs.common.core.domain.R;
/**
* @Description: 会员补贴dubbo服务接口
* @Author: jiang chao
* @Time: 2024/4/22 16:38
* @Classname: MemberPerkServiceApi
* @PackageName: com.hzs.report.stat
*/
public interface IMemberPerkServiceApi {
/**
* 会员补贴处理
*
* @return
*/
R memberPerkHandle();
}

View File

@ -1,13 +1,8 @@
package com.hzs.sale.wares;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
import com.hzs.sale.wares.dto.WaresDTO;
import com.hzs.sale.wares.dto.WaresPreSaleDTO;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Description: 商品对外提供接口
@ -49,13 +44,4 @@ public interface IWaresServiceApi {
*/
void updateByAutoStartAndAutoEnd(Date currentTime);
/**
* 根据条件查询商品信息
*
* @param specialArea 专区
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/16 11:13
*/
R<List<BdWaresDetailExt>> queryWaresDetailBySkuCodeList(Integer specialArea, List<String> skuCodeList);
}

View File

@ -103,7 +103,6 @@ public interface IAccountServiceApi {
*/
R<BdAccount> queryPostageAccount(Integer pkCountry);
/**
* @description: 会员端账户查询
* @author: zhang jing
@ -113,5 +112,4 @@ public interface IAccountServiceApi {
**/
R<List<BdAccount>> memberAccountByType(Integer pkCountry);
}

View File

@ -23,7 +23,6 @@ public interface IEmailServiceApi {
* @param eMailType 邮件类型
* @return
*/
R sendMail(List<String> recipientList, String title, String content, EMailType eMailType);
R<?> sendMail(List<String> recipientList, String title, String content, EMailType eMailType);
R sendMessage();
}

View File

@ -12,9 +12,7 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 会员网体历史记录 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-10-31
@ -158,6 +156,7 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
**/
void mergeCuMemberTreeBySettleDate(@Param("targetTableName") String targetTableName,
@Param("sourceTableName") String sourceTableName, @Param("period") Integer period);
/**
* 迁移月表数据先删除
*
@ -274,6 +273,7 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
* @Date: 2022/11/4 17:41
*/
List<CuMemberSettleExt> queryCuMemberSettleEnoughAwardAchieve(String settleTableName);
/*
* @description: 回退会员奖衔
* @author: sui q
@ -313,6 +313,7 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
/**
* 根据订单查询出网体中记录的会员数据及推荐人
*
* @param settleTableName 结算表
* @param serviceMemberSet 会员编号
* @return: List<CuMemberSettleExt>
@ -407,6 +408,7 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
*/
List<CuMemberSettleExt> batchQueryCuMemberSettleParentForSpecial(@Param("settleTableName") String settleTableName,
@Param("pkMemberList") List<?> pkMemberList);
/**
* 更新会员网体奖衔数据更新月表结算表
*
@ -592,48 +594,62 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
* @param: pkMember 会员
**/
List<CuMemberSettleExt> queryCuMemberTree(@Param("tableName") String settleTableName, @Param("pkMember") Long pkMember, @Param("pkPlaceParent") Long pkPlaceParent);
/**
* 查询秒结表会员信息
*
* @param pkMember
* @param settleTableName
* @return
*/
List<CuMemberSettleExt> selectByTreeMemberList(@Param("pkMember") Long pkMember, @Param("tableName") String settleTableName, @Param("level") Integer level);
/**
* 查询会员真实业绩
*
* @param pkMember
* @return
*/
CuMemberSettleExt getCuMemberRealPerformanceByMemberId(@Param("pkMember") Long pkMember, @Param("tableName") String tableName);
/**
* 查询安置左右区人数
*
* @param memberId 会员id
* @param placeDept
* @return
*/
Long queryPlaceParentPeopleNumber(@Param("memberId") Long memberId, @Param("placeDept") Integer placeDept);
/**
* 查询推荐大小区人数
*
* @param memberId
* @param placeDept
* @return
*/
Long queryParentPeopleNumber(@Param("memberId") Long memberId, @Param("placeDept") Integer placeDept);
/**
* 查询秒结表是否有值
*
* @param settleTableName
* @return
*/
Long selectByselectByTreeMemberCount(@Param("tableName") String settleTableName, @Param("pkMember") Long pkMember);
/**
* 查询伞下安置新增业绩
*
* @param settleTableName
* @param pkMember
* @return
*/
List<CuMemberSettleExt> brollyBelowResettle(@Param("tableName") String settleTableName, @Param("pkMember") Long pkMember);
/**
* 根据pkmember查询 关联parent
*
* @param settleTableName
* @param pkMember
* @return
@ -642,19 +658,24 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
/**
* 查询会员直推人数
*
* @param memberIds
* @return
*/
List<MemberParentCountParam> queryByMemberParentCount(@Param("memberIds") List<Long> memberIds);
/**
* 查询会员直推业绩
*
* @param settleTableName
* @param memberIds
* @return
*/
List<MemberParentCountParam> queryByMemberParentSumPv(@Param("tableName") String settleTableName, @Param("memberIds") List<Long> memberIds);
/**
* 查询历史安置架构
*
* @param settleTableName
* @param pkMember
* @param memberIdList
@ -665,6 +686,7 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
/**
* 查询历史推荐上下架
*
* @param settleTableName
* @param pkMember
* @param level
@ -674,13 +696,16 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
/**
* 查询历史会员直推人数
*
* @param memberIds
* @param settleTableName
* @return
*/
List<MemberParentCountParam> queryByMemberParentAndMemberSettleCount(@Param("memberIds") List<Long> memberIds, @Param("settleTableName") String settleTableName);
/**
* 查询会员历史直推业绩
*
* @param settleTableName
* @param memberIds
* @return

View File

@ -77,44 +77,44 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
// 计算当前月
String settleMonth = DateUtils.getMonth(currentMonthDate);
baseMapper.insertCuMemberMonthAchieve(table, cuMemberSettlePeriod.getPkId(), settleMonth);
// 每月7号发放徽章,发放上个月的
if (day == 7) {
// 查询徽章
List<CuHonorWall> cuHonorWallList = cuHonorWallService.queryCuHonorWall();
Map<String, CuHonorWall> honorWallMap = new HashMap<>();
cuHonorWallList.forEach(cuHonorWall -> {
String key = cuHonorWall.getPkCountry().toString() + cuHonorWall.getType() + cuHonorWall.getValue();
honorWallMap.put(key, cuHonorWall);
});
List<CuMemberHonorWall> cuMemberHonorWallList = new ArrayList<>();
// 上月期间作为结束期间
String beforeFirstMonthDate = DateUtils.beforeMonthFirstDateStr(settleDate);
CuMemberSettlePeriod beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
// 月徽章
grantHonorWall(beforePeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
HonorWallType.RECOMMEND_MONTH.getValue(), HonorWallType.ANTIFADING_MONTH.getValue(), honorWallMap, cuMemberHonorWallList);
// 再发季度徽章
if (month == 1 || month == 4 || month == 7 || month == 10) {
// 3个月期间作为开始期间
String quarterFirstMonthDate = DateUtils.beforeMonthFirstDateStr(3, settleDate);
CuMemberSettlePeriod quarterPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(quarterFirstMonthDate);
grantHonorWall(quarterPeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
HonorWallType.RECOMMEND_QUARTER.getValue(), HonorWallType.ANTIFADING_QUARTER.getValue(), honorWallMap, cuMemberHonorWallList);
if (month == 1) {
// 再发年度徽章
// 3个月期间作为开始期间
String yearFirstMonthDate = DateUtils.beforeMonthFirstDateStr(12, settleDate);
CuMemberSettlePeriod yearPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yearFirstMonthDate);
if (yearPeriod != null) {
grantHonorWall(yearPeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
HonorWallType.RECOMMEND_QUARTER.getValue(), HonorWallType.ANTIFADING_QUARTER.getValue(), honorWallMap, cuMemberHonorWallList);
}
}
}
if (cuMemberHonorWallList.size() > 0) {
cuMemberHonorWallService.saveBatch(cuMemberHonorWallList);
}
}
// // 每月7号发放徽章,发放上个月的
// if (day == 7) {
// // 查询徽章
// List<CuHonorWall> cuHonorWallList = cuHonorWallService.queryCuHonorWall();
// Map<String, CuHonorWall> honorWallMap = new HashMap<>();
// cuHonorWallList.forEach(cuHonorWall -> {
// String key = cuHonorWall.getPkCountry().toString() + cuHonorWall.getType() + cuHonorWall.getValue();
// honorWallMap.put(key, cuHonorWall);
// });
// List<CuMemberHonorWall> cuMemberHonorWallList = new ArrayList<>();
// // 上月期间作为结束期间
// String beforeFirstMonthDate = DateUtils.beforeMonthFirstDateStr(settleDate);
// CuMemberSettlePeriod beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
// // 月徽章
// grantHonorWall(beforePeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
// HonorWallType.RECOMMEND_MONTH.getValue(), HonorWallType.ANTIFADING_MONTH.getValue(), honorWallMap, cuMemberHonorWallList);
// // 再发季度徽章
// if (month == 1 || month == 4 || month == 7 || month == 10) {
// // 3个月期间作为开始期间
// String quarterFirstMonthDate = DateUtils.beforeMonthFirstDateStr(3, settleDate);
// CuMemberSettlePeriod quarterPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(quarterFirstMonthDate);
// grantHonorWall(quarterPeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
// HonorWallType.RECOMMEND_QUARTER.getValue(), HonorWallType.ANTIFADING_QUARTER.getValue(), honorWallMap, cuMemberHonorWallList);
// if (month == 1) {
// // 再发年度徽章
// // 3个月期间作为开始期间
// String yearFirstMonthDate = DateUtils.beforeMonthFirstDateStr(12, settleDate);
// CuMemberSettlePeriod yearPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yearFirstMonthDate);
// if (yearPeriod != null) {
// grantHonorWall(yearPeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
// HonorWallType.RECOMMEND_QUARTER.getValue(), HonorWallType.ANTIFADING_QUARTER.getValue(), honorWallMap, cuMemberHonorWallList);
// }
// }
// }
// if (cuMemberHonorWallList.size() > 0) {
// cuMemberHonorWallService.saveBatch(cuMemberHonorWallList);
// }
// }
}
@Override

View File

@ -505,11 +505,11 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
*/
@Override
public List<CuMemberSettleExt> queryCuMemberTreeParentTable(String settleTableName, Long pkMember, Integer level) {
Long b = System.currentTimeMillis();
long b = System.currentTimeMillis();
System.out.println("开始时间:" + b);
List<CuMemberSettleExt> memberSettleExtList = baseMapper.queryCuMemberTreeParentTable(settleTableName, pkMember, level);
System.out.println("结束时间:" + (System.currentTimeMillis() - b));
List<Long> ids = memberSettleExtList.stream().map(a -> a.getPkMember()).collect(Collectors.toList());
List<Long> ids = memberSettleExtList.stream().map(CuMemberTree::getPkMember).collect(Collectors.toList());
// 查询会员直推人数
List<MemberParentCountParam> memberParentCountParamList = new ArrayList<>();
if (ids.size() > 0) {
@ -519,14 +519,10 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
} else {
memberParentCountParamList = baseMapper.queryByMemberParentAndMemberSettleCount(ids, settleTableName);
}
}
Map<Long, Long> memberParentCountMap = memberParentCountParamList.stream().collect(Collectors.toMap(MemberParentCountParam::getPkMember, MemberParentCountParam::getParentMemberCount));
// 查询直推人数
memberSettleExtList.stream().map(a -> {
a.setDirectPushNumber(memberParentCountMap.getOrDefault(a.getPkMember(), 0L));
return a;
}).collect(Collectors.toList());
memberSettleExtList.stream().peek(a -> a.setDirectPushNumber(memberParentCountMap.getOrDefault(a.getPkMember(), 0L))).collect(Collectors.toList());
//查询直推业绩
if (StringUtils.isNotBlank(settleTableName) && ids.size() > 0) {
List<MemberParentCountParam> memberParentCountParamPvList = new ArrayList<>();
@ -539,14 +535,8 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
Map<Long, BigDecimal> memberParentPvMap = memberParentCountParamPvList.stream().collect(Collectors.toMap(MemberParentCountParam::getPkMember, MemberParentCountParam::getParentMemberSumPv));
// 查询直推业绩
memberSettleExtList.stream().map(a -> {
a.setHistoryPerformancePv(memberParentPvMap.getOrDefault(a.getPkMember(), BigDecimal.ZERO));
return a;
}).collect(Collectors.toList());
memberSettleExtList.stream().peek(a -> a.setHistoryPerformancePv(memberParentPvMap.getOrDefault(a.getPkMember(), BigDecimal.ZERO))).collect(Collectors.toList());
}
return memberSettleExtList;
}
@ -714,7 +704,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
@Override
public CuMemberSettleExt queryCuMemberTreeByPlacePkMemberTable(String settleTableName, Long pkMember) {
CuMemberSettleExt cuMemberSettleExt = baseMapper.queryCuMemberTreeByPlacePkMemberTable(settleTableName, pkMember);
List<Long> memberIds = Arrays.asList(cuMemberSettleExt.getPkMember());
List<Long> memberIds = Collections.singletonList(cuMemberSettleExt.getPkMember());
// 查询会员直推人数
List<MemberParentCountParam> memberParentCountParamList = baseMapper.queryByMemberParentCount(memberIds);
Map<Long, Long> memberParentCountMap = memberParentCountParamList.stream().collect(Collectors.toMap(MemberParentCountParam::getPkMember, MemberParentCountParam::getParentMemberCount));

View File

@ -8,7 +8,6 @@ import com.hzs.bonus.bonus.service.ICuMemberBonusService;
import com.hzs.bonus.settle.IMemberSettleBonusApi;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.order.SaOrder;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
@ -31,16 +30,12 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
@Autowired
private ICuMemberMonthAchieveService cuMemberMonthAchieveService;
@Autowired
private IBonusSettleService bonusSettleService;
@Autowired
private ICuMemberBonusService cuMemberBonusService;
@Autowired
private IBonusGrantService bonusGrantService;
@Autowired
private ICuMemberAchieveService cuMemberAchieveService;
@ -72,6 +67,7 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
class BonusCalculateBonus extends Thread {
private final Date settleDate;
public BonusCalculateBonus(Date settleDate) {
this.settleDate = settleDate;
}
@ -87,7 +83,7 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
try {
cuMemberBonusService.autoCalculateBonus(settleDate, settleEndDate);
} catch (Exception e) {
log.info("11111111", e);
log.error("奖金结算异常,结算时间:{}", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate), e);
}
}
}

View File

@ -7,7 +7,6 @@ import com.hzs.common.domain.member.bonus.CuMemberBonus;
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
import com.hzs.bonus.bonus.param.BonusParam;
import com.hzs.bonus.bonus.vo.MemberBonusVO;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
@ -15,9 +14,7 @@ import java.util.Map;
import java.util.Set;
/**
* <p>
* 会员奖金-会员奖金汇总表 服务类
* </p>
*
* @author hzs
* @since 2022-11-11
@ -26,6 +23,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
* @return: List<Integer>
* @Author: sui q
@ -35,6 +33,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据查询条件查询每日奖金汇总
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
@ -44,6 +43,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
@ -53,6 +53,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据查询条件查询会员秒接奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
@ -62,6 +63,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
@ -71,6 +73,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusVO>
* @Author: sui q
@ -89,6 +92,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据条件查询查询每天奖金汇总
*
* @param bonusParam 查询条件
* @return: List<BonusTotalVO>
* @Author: sui q
@ -98,6 +102,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据查询条件查询会员明细奖金
*
* @param bonusParam 查询条件
* @return: List<MemberBonusDetailVO>
* @Author: sui q
@ -115,6 +120,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 后台根据查询条件查询会员奖金明细
*
* @param bonusParam 查询条件
* @return: List<MemberBonusDetailSerVO>
* @Author: sui q
@ -124,6 +130,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
@ -133,6 +140,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusList 会员奖金
* @return: void
* @Author: sui q
@ -142,6 +150,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusList 会员奖金
* @return: void
* @Author: sui q
@ -159,6 +168,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据国家期间查询存在首购奖金的会员
*
* @param period 期间
* @param pkCountryList 国家
* @return: List<CuMemberBonus>
@ -169,6 +179,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 更新奖金状态
*
* @param grantStatus 发放状态
* @param oldGrantStatus 原来的发放状态
* @param startPeriod 期间
@ -180,6 +191,7 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
/**
* 根据发放状态查询某一期的奖金
*
* @param grantStatus 发放状态
* @param startPeriod 期间
* @param endPeriod 期间
@ -206,14 +218,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
**/
void backupsSettleBonusEveryday();
/*
* @description: 结算极差奖金
* @author: sui q
* @date: 2024/10/15 10:12
* @param: null null
**/
void autoCalculateRangeBonus(Date settleDate);
/*
* @description: 查询会员奖金根据期间
* @author: sui q

View File

@ -58,7 +58,6 @@ import com.hzs.system.config.IRangeServiceApi;
import com.hzs.system.config.dto.BonusConfigDTO;
import com.hzs.system.config.dto.GradeDTO;
import com.hzs.system.config.dto.RangeDTO;
import com.hzs.third.email.IEmailServiceApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
@ -80,12 +79,20 @@ import java.util.*;
@Slf4j
public class BonusSettleServiceImpl implements IBonusSettleService {
@DubboReference
ISystemConfigServiceApi systemConfigServiceApi;
@DubboReference
IGradeServiceApi gradeServiceApi;
@DubboReference
IAwardsServiceApi awardsServiceApi;
@DubboReference
IRangeServiceApi rangeServiceApi;
@DubboReference
IMemberServiceApi memberServiceApi;
@DubboReference
IEmailServiceApi emailServiceApi;
IBonusItemsServiceApi bonusItemsServiceApi;
@DubboReference
IAcPickServiceApi acPickServiceApi;
private ICuMemberTreeService cuMemberTreeService;
@ -154,21 +161,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
@Autowired
private BonusSettleStoreHandle bonusSettleStoreHandle;
@DubboReference
private ISystemConfigServiceApi systemConfigServiceApi;
@DubboReference
private IRangeServiceApi rangeServiceApi;
@DubboReference
private IAwardsServiceApi awardsServiceApi;
@DubboReference
private IBonusItemsServiceApi bonusItemsServiceApi;
@DubboReference
private IAcPickServiceApi acPickServiceApi;
private ICuMemberBonusService cuMemberBonusService;
private ICuMemberBonusPushService cuMemberBonusPushService;
@ -648,7 +640,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
}
} catch (Exception e) {
e.printStackTrace();
emailServiceApi.sendMessage();
throw new RuntimeException(e);
}
}
@ -1438,25 +1429,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
}
}
/**
* @param settleDateStr 结算日期
* @Desccription: 计算云代的奖金
* @return: Map<Long, CuMemberSettleExt> 需要更新的
* @Author: sui q
* @Date: 2022/11/10 17:40
*/
private void calculateRetailShareBonus(String settleDateStr, BonusConfigDTO bonusConfigDTO,
Integer period, BonusRecordDetailVO bonusRecordDetailVO, Map<Long, CuMemberBonus> cuMemberBonusMap) {
// List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusSettleFirstPurchaseHandle.calculateShareBonus(settleDateStr, bonusConfigDTO, period, cuMemberBonusMap, cuAwardsControlMap);
// if (CollectionUtil.isNotEmpty(cuMemberBonusDetailList)) {
// if (bonusRecordDetailVO.getCuMemberBonusDetailList() != null) {
// bonusRecordDetailVO.getCuMemberBonusDetailList().addAll(cuMemberBonusDetailList);
// } else {
// bonusRecordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList);
// }
// }
}
/**
* @param settleDateStr 结算日期
* @param bonusConfigDTO 各个国家奖金参数

View File

@ -90,7 +90,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
this.cuMemberTreeService = cuMemberTreeService;
}
@Autowired
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
this.cuMemberBonusSettle = cuMemberBonusSettle;
@ -695,11 +694,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
cuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)));
}
@Override
public void autoCalculateRangeBonus(Date settleDate) {
}
@Override
public Set<Long> queryMemberBonusByPeriod(Integer period) {
LambdaQueryWrapper<CuMemberBonus> queryWrapper = new LambdaQueryWrapper<>();
@ -716,4 +710,5 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
cuMemberBonusList.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
return cuMemberBonusMap;
}
}

View File

@ -23,13 +23,21 @@
<result column="MEMBER_NAME" property="memberName"/>
<result column="HEAD_PATH" property="headPath"/>
</resultMap>
<insert id="insertCuMemberMonthAchieve">
merge into CU_MEMBER_MONTH_ACHIEVE a
using (
select pk_member,#{period} period,RECOMMEND_MONEY,RECOMMEND_ACHIEVE,REPURCHASE_MONEY,REPURCHASE_ACHIEVE,pk_country from(
select pk_member,pk_country,sum(REGISTER_NEW_AMOUNT+UPGRADE_NEW_AMOUNT) RECOMMEND_MONEY,sum(REGISTER_NEW_PV+UPGRADE_NEW_PV) RECOMMEND_ACHIEVE,
sum(REPURCHASE_NEW_AMOUNT+HI_FUN_NEW_AMOUNT+MALL_NEW_AMOUNT) REPURCHASE_MONEY,sum(REPURCHASE_PV+HI_FUN_NEW_PV+MALL_NEW_PV) REPURCHASE_ACHIEVE from ${tableName}
where REGISTER_NEW_AMOUNT+UPGRADE_NEW_AMOUNT>0 or REPURCHASE_NEW_AMOUNT+HI_FUN_NEW_AMOUNT+MALL_NEW_AMOUNT>0
select pk_member, #{period} period, RECOMMEND_MONEY, RECOMMEND_ACHIEVE, REPURCHASE_MONEY, REPURCHASE_ACHIEVE, pk_country
from (
select pk_member,
pk_country,
sum(REGISTER_NEW_AMOUNT + UPGRADE_NEW_AMOUNT) RECOMMEND_MONEY,
sum(REGISTER_NEW_PV + UPGRADE_NEW_PV) RECOMMEND_ACHIEVE,
sum(REPURCHASE_NEW_AMOUNT + HI_FUN_NEW_AMOUNT + MALL_NEW_AMOUNT) REPURCHASE_MONEY,
sum(REPURCHASE_PV + HI_FUN_NEW_PV + MALL_NEW_PV) REPURCHASE_ACHIEVE
from ${tableName}
where REGISTER_NEW_AMOUNT + UPGRADE_NEW_AMOUNT > 0
or REPURCHASE_NEW_AMOUNT + HI_FUN_NEW_AMOUNT + MALL_NEW_AMOUNT > 0
group by pk_member, pk_country)
) b
on (a.pk_member = b.pk_member and a.period = b.period)
@ -43,21 +51,33 @@
b.pk_member, b.period, #{month}, b.RECOMMEND_MONEY, b.RECOMMEND_ACHIEVE, b.REPURCHASE_MONEY,
b.REPURCHASE_ACHIEVE, b.PK_COUNTRY, 1)
</insert>
<select id="queryCuMemberMonthAchieveByDate" resultMap="CuMemberMonthAchieve">
select * from(
select * from (
select pk_member,pk_country,${recommend} wall_type,sum(recommend_money) money from CU_MEMBER_MONTH_ACHIEVE
where del_flag=0 and period >= #{startPeriod} and period &lt; #{endPeriod}
select *
from (
select *
from (
select pk_member, pk_country, ${recommend} wall_type, sum(recommend_money) money
from CU_MEMBER_MONTH_ACHIEVE
where del_flag = 0
and period >= #{startPeriod}
and period &lt; #{endPeriod}
group by pk_member, pk_country
order by sum(recommend_money) desc
) where rownum &lt;= 3
)
where rownum &lt;= 3
union
select * from (
select pk_member,pk_country,${repurchase} wall_type,sum(repurchase_money) money from CU_MEMBER_MONTH_ACHIEVE
where del_flag=0 and period >= #{startPeriod} and period &lt; #{endPeriod}
select *
from (
select pk_member, pk_country, ${repurchase} wall_type, sum(repurchase_money) money
from CU_MEMBER_MONTH_ACHIEVE
where del_flag = 0
and period >= #{startPeriod}
and period &lt; #{endPeriod}
group by pk_member, pk_country
order by sum(repurchase_money) desc
) where rownum &lt;= 3) a
)
where rownum &lt;= 3) a
order by wall_type, a.money desc
</select>

View File

@ -1,12 +1,7 @@
package com.hzs.report.member.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.report.member.CuMemberPerk;
import com.hzs.common.domain.report.member.CuMemberPerkDetail;
import com.hzs.common.domain.report.member.ext.CuMemberPerkDetailExt;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
/**
* 会员补贴明细 Mapper 接口
@ -16,33 +11,4 @@ import java.util.Collection;
*/
public interface CuMemberPerkDetailMapper extends BaseMapper<CuMemberPerkDetail> {
/**
* 删除补贴明细物理
*
* @param pkMemberPerk 会员补贴配置ID
* @param calculateDate 计算日期
* @return
*/
int clearDetail(@Param("pkMemberPerk") Long pkMemberPerk, @Param("calculateDate") String calculateDate);
/**
* 查询血缘上第一个补贴配置统计条件全部相同必须去重的
*
* @param queryMemberPerk 会员配置
* @param calculateDateStr 查询日期
* @param period 查询期数
* @return
*/
CuMemberPerkDetail queryFirstParentPerk(@Param("queryMemberPerk") CuMemberPerk queryMemberPerk,
@Param("calculateDateStr") String calculateDateStr,
@Param("period") Integer period);
/**
* 批量更新去重数据
*
* @param detailList 补贴明细数据列表
* @return
*/
int updateDistinctDataBatch(@Param("detailList") Collection<CuMemberPerkDetailExt> detailList);
}

View File

@ -15,22 +15,6 @@ import java.util.List;
*/
public interface CuMemberPerkDetailMemberMapper extends BaseMapper<CuMemberPerkDetailMember> {
/**
* 删除补贴明细会员物理
*
* @param perkDetailMemberList 补贴明细会员列表
* @return
*/
int clearMember(@Param("perkDetailMemberList") List<CuMemberPerkDetailMember> perkDetailMemberList);
/**
* 批量插入补贴明细会员
*
* @param perkDetailMemberList 补贴明细会员列表
* @return
*/
int insertBatch(@Param("perkDetailMemberList") List<CuMemberPerkDetailMember> perkDetailMemberList);
/**
* 查询明细会员列表
*

View File

@ -15,27 +15,6 @@ import java.util.List;
*/
public interface CuMemberPerkDetailOrderMapper extends BaseMapper<CuMemberPerkDetailOrder> {
/**
* 删除补贴订单明细物理
*
* @param pkMemberPerk 会员补贴配置ID
* @param calculateDate 计算日期
* @return
*/
int clearOrder(@Param("pkMemberPerk") Long pkMemberPerk, @Param("calculateDate") String calculateDate);
/**
* 批量插入补贴明细订单
*
* @param pkMemberPerk 补贴配置ID
* @param pkMemberPerkDetail 补贴配置明细ID
* @param orderList 订单列表
* @return
*/
int insertBatch(@Param("pkMemberPerk") Long pkMemberPerk,
@Param("pkMemberPerkDetail") Long pkMemberPerkDetail,
@Param("orderList") List<SaOrderExt> orderList);
/**
* 查询明细订单列表
*

View File

@ -1,14 +1,11 @@
package com.hzs.report.member.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.report.member.CuMemberPerk;
import com.hzs.common.domain.report.member.ext.CuMemberPerkExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.report.member.param.MemberPerkQueryParam;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
@ -19,48 +16,6 @@ import java.util.List;
*/
public interface CuMemberPerkMapper extends BaseMapper<CuMemberPerk> {
/**
* 查询需要处理的补贴配置数据
*
* @param nowDate 当前时间
* @param pkCountry 所属国家 可为空默认为中国
* @return
*/
List<CuMemberPerk> queryHandleData(@Param("nowDate") Date nowDate, @Param("pkCountry") Integer pkCountry);
/**
* 查询时间范围时间ID
*
* @param startDate 开始时间
* @param endDate 结束时间
* @return
*/
List<CuMemberSettlePeriod> queryPeriodIdByDate(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* 查询需要统计的订单数据
*
* @param pkMember 会员ID
* @param queryDate 查询日期
* @param period 查询期数
* @param notProductList 不包含产品ID列表
* @param pkCountry 所属国家
* @return
*/
List<SaOrderExt> queryOrderData(@Param("pkMember") Long pkMember,
@Param("queryDate") Date queryDate,
@Param("period") Integer period,
@Param("notProductList") List<Long> notProductList,
@Param("pkCountry") Integer pkCountry);
/**
* 更新会员补贴数据
*
* @param pkId 补贴配置ID
* @return
*/
int updateMemberPerkData(@Param("pkId") Long pkId);
/**
* 补贴配置列表
*

View File

@ -1,53 +0,0 @@
package com.hzs.report.member.provider;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.report.member.CuMemberPerk;
import com.hzs.report.member.service.ICuMemberPerkBusinessService;
import com.hzs.report.member.service.ICuMemberPerkService;
import com.hzs.report.perk.IMemberPerkServiceApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
import java.util.List;
/**
* @Description: 会员补贴dubbo服务
* @Author: jiang chao
* @Time: 2024/4/22 16:41
* @Classname: MemberPerkServiceProvider
* @PackageName: com.hzs.report.member.provider
*/
@Slf4j
@DubboService
public class MemberPerkServiceProvider implements IMemberPerkServiceApi {
@Autowired
private ICuMemberPerkService iCuMemberPerkService;
@Autowired
private ICuMemberPerkBusinessService iCuMemberPerkBusinessService;
@Override
public R memberPerkHandle() {
try {
String str = null;
// 需要处理数据的补贴配置
List<CuMemberPerk> memberPerkList = iCuMemberPerkService.queryHandleData(new Date(), null);
if (CollectionUtil.isNotEmpty(memberPerkList)) {
str = iCuMemberPerkBusinessService.memberPerkHandle(memberPerkList);
}
if (null == str) {
return R.ok();
}
return R.fail(str);
} catch (Exception e) {
log.error("会员补贴处理异常:{}", e.getMessage(), e);
return R.fail(e.getMessage());
}
}
}

View File

@ -1,9 +1,5 @@
package com.hzs.report.member.service;
import com.hzs.common.domain.report.member.CuMemberPerk;
import java.util.List;
/**
* @Description: 会员补贴配置业务处理服务
* @Author: jiang chao
@ -13,12 +9,5 @@ import java.util.List;
*/
public interface ICuMemberPerkBusinessService {
/**
* 会员补贴处理
*
* @param memberPerkList 会员补贴数据
* @return
*/
String memberPerkHandle(List<CuMemberPerk> memberPerkList);
}

View File

@ -14,22 +14,6 @@ import java.util.List;
*/
public interface ICuMemberPerkDetailMemberService extends IService<CuMemberPerkDetailMember> {
/**
* 删除补贴明细会员物理
*
* @param perkDetailMemberList 补贴明细会员
* @return
*/
int clearMember(List<CuMemberPerkDetailMember> perkDetailMemberList);
/**
* 批量插入补贴明细会员
*
* @param perkDetailMemberList 补贴明细会员列表
* @return
*/
int insertBatch(List<CuMemberPerkDetailMember> perkDetailMemberList);
/**
* 查询明细会员列表
*

View File

@ -14,25 +14,6 @@ import java.util.List;
*/
public interface ICuMemberPerkDetailOrderService extends IService<CuMemberPerkDetailOrder> {
/**
* 删除补贴订单明细物理
*
* @param pkMemberPerk 会员补贴配置ID
* @param calculateDate 计算日期
* @return
*/
int clearOrder(Long pkMemberPerk, String calculateDate);
/**
* 批量插入补贴订单明细
*
* @param pkMemberPerk 补贴配置ID
* @param pkMemberPerkDetail 补贴配置明细ID
* @param orderList 订单列表
* @return
*/
int insertBatch(Long pkMemberPerk, Long pkMemberPerkDetail, List<SaOrderExt> orderList);
/**
* 查询明细订单列表
*

View File

@ -1,11 +1,7 @@
package com.hzs.report.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.report.member.CuMemberPerk;
import com.hzs.common.domain.report.member.CuMemberPerkDetail;
import com.hzs.common.domain.report.member.ext.CuMemberPerkDetailExt;
import java.util.Collection;
/**
* 会员补贴明细 服务类
@ -15,31 +11,4 @@ import java.util.Collection;
*/
public interface ICuMemberPerkDetailService extends IService<CuMemberPerkDetail> {
/**
* 删除补贴明细物理
*
* @param pkMemberPerk 会员补贴配置ID
* @param calculateDate 计算日期
* @return
*/
int clearDetail(Long pkMemberPerk, String calculateDate);
/**
* 查询血缘上第一个补贴配置统计条件全部相同必须去重的
*
* @param queryMemberPerk 会员配置
* @param calculateDateStr 查询日期
* @param period 查询期数
* @return
*/
CuMemberPerkDetail queryFirstParentPerk(CuMemberPerk queryMemberPerk, String calculateDateStr, Integer period);
/**
* 批量更新去重数据
*
* @param detailList 补贴明细数据列表
* @return
*/
int updateDistinctDataBatch(Collection<CuMemberPerkDetailExt> detailList);
}

View File

@ -3,8 +3,6 @@ package com.hzs.report.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.report.member.CuMemberPerkProduct;
import java.util.List;
/**
* 会员补贴产品配置 服务类
*
@ -13,12 +11,4 @@ import java.util.List;
*/
public interface ICuMemberPerkProductService extends IService<CuMemberPerkProduct> {
/**
* 查询补贴产品
*
* @param type 参与考核0=1=
* @return
*/
List<Long> queryPerkProductList(Integer type);
}

View File

@ -1,13 +1,10 @@
package com.hzs.report.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.report.member.CuMemberPerk;
import com.hzs.common.domain.report.member.ext.CuMemberPerkExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.report.member.param.MemberPerkQueryParam;
import java.util.Date;
import java.util.List;
/**
@ -18,44 +15,6 @@ import java.util.List;
*/
public interface ICuMemberPerkService extends IService<CuMemberPerk> {
/**
* 查询需要处理的补贴配置数据
*
* @param nowDate 当前时间
* @param pkCountry 所属国家 可为空默认为中国
* @return
*/
List<CuMemberPerk> queryHandleData(Date nowDate, Integer pkCountry);
/**
* 查询时间范围时间ID
*
* @param startDate 开始时间
* @param endDate 结束时间
* @return
*/
List<CuMemberSettlePeriod> queryPeriodIdByDate(Date startDate, Date endDate);
/**
* 查询需要统计的订单数据
*
* @param pkMember 会员ID
* @param queryDate 查询日期
* @param period 查询期数
* @param notProductList 不包含产品ID列表
* @param pkCountry 所属国家
* @return
*/
List<SaOrderExt> queryOrderData(Long pkMember, Date queryDate, Integer period, List<Long> notProductList, Integer pkCountry);
/**
* 更新会员补贴数据
*
* @param pkId 补贴配置ID
* @return
*/
int updateMemberPerkData(Long pkId);
/**
* 补贴配置列表
*

View File

@ -1,31 +1,8 @@
package com.hzs.report.member.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.enums.EAccount;
import com.hzs.common.core.enums.EOrderType;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.account.CuMemberTrade;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.report.member.CuMemberPerk;
import com.hzs.common.domain.report.member.CuMemberPerkDetail;
import com.hzs.common.domain.report.member.CuMemberPerkDetailMember;
import com.hzs.common.domain.report.member.ext.CuMemberPerkDetailExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.system.config.BdAccount;
import com.hzs.report.member.service.*;
import com.hzs.system.config.IAccountServiceApi;
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.math.BigDecimal;
import java.util.*;
/**
* @Description: 会员补贴配置业务处理服务
@ -38,257 +15,4 @@ import java.util.*;
@Service
public class CuMemberPerkBusinessServiceImpl implements ICuMemberPerkBusinessService {
@Autowired
private ICuMemberPerkService iCuMemberPerkService;
@Autowired
private ICuMemberPerkDetailService iCuMemberPerkDetailService;
@Autowired
private ICuMemberPerkDetailOrderService iCuMemberPerkDetailOrderService;
@Autowired
private ICuMemberPerkDetailMemberService iCuMemberPerkDetailMemberService;
@Autowired
private ICuMemberPerkProductService iCuMemberPerkProductService;
@DubboReference
IAccountServiceApi iAccountServiceApi;
@Transactional(rollbackFor = Exception.class)
@Override
public String memberPerkHandle(List<CuMemberPerk> memberPerkList) {
if (CollectionUtil.isNotEmpty(memberPerkList)) {
// 当前时间
Date nowDate = new Date();
// 创建人
Long pkCreator = MagicNumberConstants.PK_ADMIN;
// 所属国家默认中国
Integer pkCountry = CountryConstants.CHINA_COUNTRY;
// 开始时间7天前0点
Date startDate = DateUtils.getStartTime(DateUtils.addDays(nowDate, -7));
// 结束时间今天0点
Date endDate = DateUtils.getStartTime(nowDate);
// 拉取奖金期间需要跑数据的7天
List<CuMemberSettlePeriod> periodList = iCuMemberPerkService.queryPeriodIdByDate(startDate, endDate);
// 国家下所有币种
Map<Integer, BdAccount> accountMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
// 政策币ID
Integer pkPolicy = accountMap.get(EAccount.POLICY.getValue()).getPkId();
// 复购券ID
Integer pkRepurchase = accountMap.get(EAccount.REPURCHASE.getValue()).getPkId();
// 查询需要排除的产品2024.04.23 沟通暂时先全去舱
List<Long> notProductList = iCuMemberPerkProductService.queryPerkProductList(EYesNo.NO.getIntValue());
// 记录重算的补贴每天明细mapkey补贴配置ID + 日期 value补贴明细数据
Map<String, CuMemberPerkDetail> perkDetailMap = new HashMap<>();
// 遍历补贴配置计算累计的金额业绩
for (CuMemberPerk cuMemberPerk : memberPerkList) {
// 补贴配置ID
Long pkMemberPerk = cuMemberPerk.getPkId();
// 遍历更新期数
for (CuMemberSettlePeriod settlePeriod : periodList) {
// 查询数据时间
Date calculateDate = settlePeriod.getSettleDate();
// 查询数据时间字符串
String calculateDateStr = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, calculateDate);
if (cuMemberPerk.getCalculateStartDate().compareTo(calculateDate) <= 0
&& cuMemberPerk.getCalculateEndDate().compareTo(calculateDate) >= 0) {
// 本次循环处理时间在本条补贴配置的执行时间之内则需要重新计算数据
// 查询会员血缘伞下订单相关数据
List<SaOrderExt> orderList = iCuMemberPerkService.queryOrderData(cuMemberPerk.getPkMember(), calculateDate, settlePeriod.getPkId(), notProductList, pkCountry);
if (CollectionUtil.isNotEmpty(orderList)) {
// 有当天的订单需要处理
// 首购金额
BigDecimal firstAmount = BigDecimal.ZERO;
// 首购业绩
BigDecimal firstAchieve = BigDecimal.ZERO;
// 复购金额
BigDecimal repurchaseAmount = BigDecimal.ZERO;
// 复购业绩
BigDecimal repurchaseAchieve = BigDecimal.ZERO;
// 使用政策币
BigDecimal policyAmount = null;
// 使用复购券
BigDecimal repurchaseCouponAmount = null;
for (SaOrderExt saOrderExt : orderList) {
switch (EOrderType.getEnumByValue(saOrderExt.getOrderType())) {
case REGISTER_ORDER:
case UPGRADE_ORDER:
case SPECIAL_REGISTER_ORDER:
case SPECIAL_UPGRADE_ORDER:
// 首购注册升级特殊注册特殊升级虚拟订单)
firstAmount = firstAmount.add(saOrderExt.getOrderAmount());
firstAchieve = firstAchieve.add(saOrderExt.getOrderAchieve());
break;
case REPURCHASE_ORDER:
case WELFARE_ORDER:
case SPECIAL_REPURCHASE_ORDER:
}
// 订单支付流水
List<CuMemberTrade> tradeList = saOrderExt.getTradeList();
for (CuMemberTrade cuMemberTrade : tradeList) {
if (cuMemberTrade.getPkAccount().equals(pkPolicy)) {
// 政策币
if (null == policyAmount) {
policyAmount = cuMemberTrade.getTradeAmount().abs();
}
} else if (cuMemberTrade.getPkAccount().equals(pkRepurchase)) {
// 复购券
if (null == repurchaseCouponAmount) {
repurchaseCouponAmount = cuMemberTrade.getTradeAmount().abs();
}
}
if (null != policyAmount && null != repurchaseCouponAmount) {
break;
}
}
}
// 会员补贴明细
CuMemberPerkDetail cuMemberPerkDetail = new CuMemberPerkDetail();
cuMemberPerkDetail.setPolicyAmount(policyAmount);
cuMemberPerkDetail.setRepurchaseCouponAmount(repurchaseCouponAmount);
cuMemberPerkDetail.setFirstAmount(firstAmount);
cuMemberPerkDetail.setFirstAchieve(firstAchieve);
cuMemberPerkDetail.setRepurchaseAmount(repurchaseAmount);
cuMemberPerkDetail.setRepurchaseAchieve(repurchaseAchieve);
cuMemberPerkDetail.setDistinctFirstAmount(BigDecimal.ZERO);
cuMemberPerkDetail.setDistinctFirstAchieve(BigDecimal.ZERO);
cuMemberPerkDetail.setDistinctRepurchaseAmount(BigDecimal.ZERO);
cuMemberPerkDetail.setDistinctRepurchaseAchieve(BigDecimal.ZERO);
QueryWrapper<CuMemberPerkDetail> memberPerkDetailQueryWrapper = new QueryWrapper<>();
memberPerkDetailQueryWrapper.eq("PK_MEMBER_PERK", pkMemberPerk);
memberPerkDetailQueryWrapper.eq("CALCULATE_DATE", calculateDateStr);
CuMemberPerkDetail memberPerkDetail = iCuMemberPerkDetailService.getOne(memberPerkDetailQueryWrapper);
if (null == memberPerkDetail) {
// 没有补贴明细需要新増
cuMemberPerkDetail.setPkMemberPerk(pkMemberPerk);
cuMemberPerkDetail.setCalculateDate(calculateDateStr);
cuMemberPerkDetail.setCreationTime(nowDate);
cuMemberPerkDetail.setPkCreator(pkCreator);
cuMemberPerkDetail.setPkCountry(pkCountry);
iCuMemberPerkDetailService.save(cuMemberPerkDetail);
} else {
// 有补贴明细需要更新
cuMemberPerkDetail.setPkId(memberPerkDetail.getPkId());
cuMemberPerkDetail.setModifiedTime(nowDate);
cuMemberPerkDetail.setPkModified(pkCreator);
iCuMemberPerkDetailService.updateById(cuMemberPerkDetail);
// 删除补贴订单明细物理
iCuMemberPerkDetailOrderService.clearOrder(pkMemberPerk, calculateDateStr);
}
// 记录重算的补贴每天明细
perkDetailMap.put(pkMemberPerk + calculateDateStr, cuMemberPerkDetail);
// 批量插入补贴明细订单
iCuMemberPerkDetailOrderService.insertBatch(pkMemberPerk, cuMemberPerkDetail.getPkId(), orderList);
} else {
// 没有当天的订单
// 删除补贴订单明细物理
iCuMemberPerkDetailOrderService.clearOrder(pkMemberPerk, calculateDateStr);
// 删除补贴明细物理
iCuMemberPerkDetailService.clearDetail(pkMemberPerk, calculateDateStr);
}
}
}
}
// 需要更新去重的补贴配置明细mapkey需要更新的补贴配置 value更新补贴配置数据明细
Map<Long, CuMemberPerkDetailExt> distinctMemberPerkMap = new HashMap<>();
// 需要入库的补贴明细会员
List<CuMemberPerkDetailMember> perkDetailMemberList = new ArrayList<>();
// 遍历补贴配置计算血缘上去重业绩
for (CuMemberPerk cuMemberPerk : memberPerkList) {
// 补贴配置ID
Long pkMemberPerk = cuMemberPerk.getPkId();
// 遍历更新期数
for (CuMemberSettlePeriod settlePeriod : periodList) {
// 查询数据时间
Date calculateDate = settlePeriod.getSettleDate();
// 查询数据时间字符串
String calculateDateStr = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, calculateDate);
if (cuMemberPerk.getCalculateStartDate().compareTo(calculateDate) <= 0
&& cuMemberPerk.getCalculateEndDate().compareTo(calculateDate) >= 0) {
// 本次循环处理时间在本条补贴配置的执行时间之内则需要重新计算数据
// 当前配置当前天计算的数据需要把金额业绩去重
CuMemberPerkDetail nowPerkDetail = perkDetailMap.get(pkMemberPerk + calculateDateStr);
if (null != nowPerkDetail
&& nowPerkDetail.getFirstAmount().compareTo(BigDecimal.ZERO) > 0
&& nowPerkDetail.getFirstAchieve().compareTo(BigDecimal.ZERO) > 0
&& nowPerkDetail.getRepurchaseAmount().compareTo(BigDecimal.ZERO) > 0
&& nowPerkDetail.getRepurchaseAchieve().compareTo(BigDecimal.ZERO) > 0
) {
// 当存在数据并且 首购金额业绩复购金额业绩 都不为0时才进行处理
// 查询血缘上第一个补贴配置这个是需要进行去重的数据找到的人必须各种条件与当前配置一致并且需要去重
CuMemberPerkDetail tmpPerkDetail = iCuMemberPerkDetailService.queryFirstParentPerk(cuMemberPerk, calculateDateStr, settlePeriod.getPkId());
if (null != tmpPerkDetail) {
// 需要去重的数据
CuMemberPerkDetailExt distinctPerkDetailExt = distinctMemberPerkMap.get(tmpPerkDetail.getPkId());
if (null == distinctPerkDetailExt) {
// 如果不存在直接初始化去重金额业绩
distinctPerkDetailExt = new CuMemberPerkDetailExt();
distinctPerkDetailExt.setPkId(tmpPerkDetail.getPkId());
distinctPerkDetailExt.setDistinctFirstAmount(nowPerkDetail.getFirstAmount());
distinctPerkDetailExt.setDistinctFirstAchieve(nowPerkDetail.getFirstAchieve());
distinctPerkDetailExt.setDistinctRepurchaseAmount(nowPerkDetail.getRepurchaseAmount());
distinctPerkDetailExt.setDistinctRepurchaseAchieve(nowPerkDetail.getRepurchaseAchieve());
distinctPerkDetailExt.setDistinctPkMember(cuMemberPerk.getPkMember());
distinctMemberPerkMap.put(tmpPerkDetail.getPkId(), distinctPerkDetailExt);
} else {
// 如果已经存在则累加去重金额业绩
// 同一会员时间范围内配置了多条去重金额业绩只需要记录一份实际业务不会发生
if (!distinctPerkDetailExt.getDistinctPkMember().equals(cuMemberPerk.getPkMember())) {
distinctPerkDetailExt.setDistinctFirstAmount(distinctPerkDetailExt.getDistinctFirstAmount().add(nowPerkDetail.getFirstAmount()));
distinctPerkDetailExt.setDistinctFirstAchieve(distinctPerkDetailExt.getDistinctFirstAchieve().add(nowPerkDetail.getFirstAchieve()));
distinctPerkDetailExt.setDistinctRepurchaseAmount(distinctPerkDetailExt.getDistinctRepurchaseAmount().add(nowPerkDetail.getRepurchaseAmount()));
distinctPerkDetailExt.setDistinctRepurchaseAchieve(distinctPerkDetailExt.getDistinctRepurchaseAchieve().add(nowPerkDetail.getRepurchaseAchieve()));
}
}
// 补贴明细会员
CuMemberPerkDetailMember cuMemberPerkDetailMember = new CuMemberPerkDetailMember();
cuMemberPerkDetailMember.setPkMemberPerk(tmpPerkDetail.getPkMemberPerk());
cuMemberPerkDetailMember.setPkMemberPerkDetail(tmpPerkDetail.getPkId());
cuMemberPerkDetailMember.setDistinctPkMember(cuMemberPerk.getPkMember());
cuMemberPerkDetailMember.setDistinctPkMemberPerk(cuMemberPerk.getPkId());
perkDetailMemberList.add(cuMemberPerkDetailMember);
}
}
}
}
}
if (distinctMemberPerkMap.size() > 0) {
// 更新补贴明细的去重相关数据
iCuMemberPerkDetailService.updateDistinctDataBatch(distinctMemberPerkMap.values());
}
if (perkDetailMemberList.size() > 0) {
// 处理补贴明细会员数据
// 删除补贴明细会员物理
iCuMemberPerkDetailMemberService.clearMember(perkDetailMemberList);
// 批量插入补贴明细会员
iCuMemberPerkDetailMemberService.insertBatch(perkDetailMemberList);
}
// 遍历补贴配置计算血缘上去重业绩
for (CuMemberPerk cuMemberPerk : memberPerkList) {
// 更新补贴配置表中数据
iCuMemberPerkService.updateMemberPerkData(cuMemberPerk.getPkId());
}
}
return null;
}
}

View File

@ -18,16 +18,6 @@ import java.util.List;
@Service
public class CuMemberPerkDetailMemberServiceImpl extends ServiceImpl<CuMemberPerkDetailMemberMapper, CuMemberPerkDetailMember> implements ICuMemberPerkDetailMemberService {
@Override
public int clearMember(List<CuMemberPerkDetailMember> perkDetailMemberList) {
return baseMapper.clearMember(perkDetailMemberList);
}
@Override
public int insertBatch(List<CuMemberPerkDetailMember> perkDetailMemberList) {
return baseMapper.insertBatch(perkDetailMemberList);
}
@Override
public List<CuMemberPerkDetailMemberExt> queryMemberList(Long pkMemberPerk) {
return baseMapper.queryMemberList(pkMemberPerk);

View File

@ -18,16 +18,6 @@ import java.util.List;
@Service
public class CuMemberPerkDetailOrderServiceImpl extends ServiceImpl<CuMemberPerkDetailOrderMapper, CuMemberPerkDetailOrder> implements ICuMemberPerkDetailOrderService {
@Override
public int clearOrder(Long pkMemberPerk, String calculateDate) {
return baseMapper.clearOrder(pkMemberPerk, calculateDate);
}
@Override
public int insertBatch(Long pkMemberPerk, Long pkMemberPerkDetail, List<SaOrderExt> orderList) {
return baseMapper.insertBatch(pkMemberPerk, pkMemberPerkDetail, orderList);
}
@Override
public List<SaOrderExt> queryOrderList(Long pkMemberPerk) {
return baseMapper.queryOrderList(pkMemberPerk);

View File

@ -1,15 +1,11 @@
package com.hzs.report.member.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.domain.report.member.CuMemberPerk;
import com.hzs.common.domain.report.member.CuMemberPerkDetail;
import com.hzs.common.domain.report.member.ext.CuMemberPerkDetailExt;
import com.hzs.report.member.mapper.CuMemberPerkDetailMapper;
import com.hzs.report.member.service.ICuMemberPerkDetailService;
import org.springframework.stereotype.Service;
import java.util.Collection;
/**
* 会员补贴明细 服务实现类
*
@ -19,19 +15,4 @@ import java.util.Collection;
@Service
public class CuMemberPerkDetailServiceImpl extends ServiceImpl<CuMemberPerkDetailMapper, CuMemberPerkDetail> implements ICuMemberPerkDetailService {
@Override
public int clearDetail(Long pkMemberPerk, String calculateDate) {
return baseMapper.clearDetail(pkMemberPerk, calculateDate);
}
@Override
public CuMemberPerkDetail queryFirstParentPerk(CuMemberPerk queryMemberPerk, String calculateDateStr, Integer period) {
return baseMapper.queryFirstParentPerk(queryMemberPerk, calculateDateStr, period);
}
@Override
public int updateDistinctDataBatch(Collection<CuMemberPerkDetailExt> detailList) {
return baseMapper.updateDistinctDataBatch(detailList);
}
}

View File

@ -1,17 +1,11 @@
package com.hzs.report.member.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.domain.report.member.CuMemberPerkProduct;
import com.hzs.report.member.mapper.CuMemberPerkProductMapper;
import com.hzs.report.member.service.ICuMemberPerkProductService;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* 会员补贴产品配置 服务实现类
*
@ -21,15 +15,4 @@ import java.util.stream.Collectors;
@Service
public class CuMemberPerkProductServiceImpl extends ServiceImpl<CuMemberPerkProductMapper, CuMemberPerkProduct> implements ICuMemberPerkProductService {
@Override
public List<Long> queryPerkProductList(Integer type) {
QueryWrapper<CuMemberPerkProduct> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("TYPE", type);
List<CuMemberPerkProduct> perkProductList = this.list(queryWrapper);
if (CollectionUtil.isNotEmpty(perkProductList)) {
return perkProductList.stream().map(CuMemberPerkProduct::getPkProduct).collect(Collectors.toList());
}
return Collections.emptyList();
}
}

View File

@ -5,11 +5,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.enums.EDelFlag;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.report.member.CuMemberPerk;
import com.hzs.common.domain.report.member.CuMemberPerkDetail;
import com.hzs.common.domain.report.member.ext.CuMemberPerkExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.report.member.mapper.CuMemberPerkMapper;
import com.hzs.report.member.param.MemberPerkQueryParam;
import com.hzs.report.member.service.ICuMemberPerkDetailService;
@ -34,26 +32,6 @@ public class CuMemberPerkServiceImpl extends ServiceImpl<CuMemberPerkMapper, CuM
@Autowired
private ICuMemberPerkDetailService iCuMemberPerkDetailService;
@Override
public List<CuMemberPerk> queryHandleData(Date nowDate, Integer pkCountry) {
return baseMapper.queryHandleData(nowDate, pkCountry);
}
@Override
public List<CuMemberSettlePeriod> queryPeriodIdByDate(Date startDate, Date endDate) {
return baseMapper.queryPeriodIdByDate(startDate, endDate);
}
@Override
public List<SaOrderExt> queryOrderData(Long pkMember, Date queryDate, Integer period, List<Long> notProductList, Integer pkCountry) {
return baseMapper.queryOrderData(pkMember, queryDate, period, notProductList, pkCountry);
}
@Override
public int updateMemberPerkData(Long pkId) {
return baseMapper.updateMemberPerkData(pkId);
}
@Override
public List<CuMemberPerkExt> queryList(MemberPerkQueryParam param, Integer pkCountry) {
return baseMapper.queryList(param, pkCountry);

View File

@ -2,88 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.report.member.mapper.CuMemberPerkDetailMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.report.member.CuMemberPerkDetail">
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<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_COUNTRY" property="pkCountry"/>
<result column="PK_MEMBER_PERK" property="pkMemberPerk"/>
<result column="CALCULATE_DATE" property="calculateDate"/>
<result column="POLICY_AMOUNT" property="policyAmount"/>
<result column="REPURCHASE_COUPON_AMOUNT" property="repurchaseCouponAmount"/>
<result column="FIRST_AMOUNT" property="firstAmount"/>
<result column="FIRST_ACHIEVE" property="firstAchieve"/>
<result column="REPURCHASE_AMOUNT" property="repurchaseAmount"/>
<result column="REPURCHASE_ACHIEVE" property="repurchaseAchieve"/>
<result column="DISTINCT_FIRST_AMOUNT" property="distinctFirstAmount"/>
<result column="DISTINCT_FIRST_ACHIEVE" property="distinctFirstAchieve"/>
<result column="DISTINCT_REPURCHASE_AMOUNT" property="distinctRepurchaseAmount"/>
<result column="DISTINCT_REPURCHASE_ACHIEVE" property="distinctRepurchaseAchieve"/>
</resultMap>
<!-- 删除补贴明细(物理) -->
<delete id="clearDetail">
delete
from CU_MEMBER_PERK_DETAIL cmpd
where cmpd.del_flag = 0
and cmpd.pk_member_perk = #{pkMemberPerk}
and cmpd.calculate_date = #{calculateDate}
</delete>
<!-- 查询血缘上第一个补贴配置(统计条件全部相同,必须去重的) -->
<select id="queryFirstParentPerk" resultMap="BaseResultMap">
select t.*
from (select cmpd.*, rownum
from (select cms.pk_member, level top
from CU_MEMBER_SETTLE${period} cms
where cms.pk_member != #{queryMemberPerk.pkMember}
start with cms.pk_member = #{queryMemberPerk.pkMember}
connect by prior cms.pk_parent = cms.pk_member
order by level) t
left join CU_MEMBER_PERK cmp
on cmp.pk_member = t.pk_member
and cmp.del_flag = 0
and to_char(cmp.CALCULATE_START_DATE, 'yyyy-mm-dd') >= #{calculateDateStr}
and to_char(cmp.CALCULATE_END_DATE, 'yyyy-mm-dd') >= #{calculateDateStr}
left join CU_MEMBER_PERK_DETAIL cmpd
on cmpd.pk_member_perk = cmp.pk_id
and cmpd.del_flag = 0
where cmpd.calculate_date = #{calculateDateStr}
and cmp.check_amount = #{queryMemberPerk.checkAmount}
and cmp.check_achieve = #{queryMemberPerk.checkAchieve}
and cmp.check_type = #{queryMemberPerk.checkType}
and cmp.contain_cabin = #{queryMemberPerk.containCabin}
and cmp.deduction_policy = #{queryMemberPerk.deductionPolicy}
and cmp.deduction_repurchase = #{queryMemberPerk.deductionRepurchase}
and cmp.deduplication = 0
order by t.top) t
where rownum = 1
</select>
<!-- 批量更新去重数据 -->
<update id="updateDistinctDataBatch">
MERGE INTO CU_MEMBER_PERK_DETAIL cmpd
USING (
<foreach collection="detailList" item="item" separator=" UNION ALL ">
select #{item.pkId} pk_id,
#{item.distinctFirstAmount} distinct_first_amount,
#{item.distinctFirstAchieve} distinct_first_achieve,
#{item.distinctRepurchaseAmount} distinct_repurchase_amount,
#{item.distinctRepurchaseAchieve} distinct_repurchase_achieve
from dual
</foreach>
) tmp
on (tmp.pk_id = cmpd.pk_id)
WHEN MATCHED THEN
update
set cmpd.distinct_first_amount = tmp.distinct_first_amount,
cmpd.distinct_first_achieve = tmp.distinct_first_achieve,
cmpd.distinct_repurchase_amount = tmp.distinct_repurchase_amount,
cmpd.distinct_repurchase_achieve = tmp.distinct_repurchase_achieve
</update>
</mapper>

View File

@ -2,32 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.report.member.mapper.CuMemberPerkDetailMemberMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.report.member.CuMemberPerkDetailMember">
<result column="PK_MEMBER_PERK" property="pkMemberPerk"/>
<result column="PK_MEMBER_PERK_DETAIL" property="pkMemberPerkDetail"/>
<result column="DISTINCT_PK_MEMBER" property="distinctPkMember"/>
<result column="DISTINCT_PK_MEMBER_PERK" property="distinctPkMemberPerk"/>
</resultMap>
<!-- 删除补贴会员明细(物理) -->
<delete id="clearMember">
delete from cu_member_perk_detail_member cmpdm
where (cmpdm.pk_member_perk, cmpdm.pk_member_perk_detail) in
<foreach collection="perkDetailMemberList" item="item" open="(" separator=" union " close=")">
select #{item.pkMemberPerk}, #{item.pkMemberPerkDetail} from dual
</foreach>
</delete>
<!-- 批量插入补贴明细会员 -->
<insert id="insertBatch">
insert into cu_member_perk_detail_member
(pk_member_perk, pk_member_perk_detail, distinct_pk_member, distinct_pk_member_perk)
<foreach collection="perkDetailMemberList" item="item" separator="UNION ALL">
select #{item.pkMemberPerk}, #{item.pkMemberPerkDetail}, #{item.distinctPkMember}, #{item.distinctPkMemberPerk} from dual
</foreach>
</insert>
<!-- 查询明细会员列表 -->
<select id="queryMemberList" resultType="com.hzs.common.domain.report.member.ext.CuMemberPerkDetailMemberExt">
select distinct cmpdm.pk_member_perk,

View File

@ -2,35 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.report.member.mapper.CuMemberPerkDetailOrderMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.report.member.CuMemberPerkDetailOrder">
<result column="PK_MEMBER_PERK" property="pkMemberPerk"/>
<result column="PK_MEMBER_PERK_DETAIL" property="pkMemberPerkDetail"/>
<result column="PK_ORDER" property="pkOrder"/>
</resultMap>
<!-- 删除补贴订单明细(物理) -->
<delete id="clearOrder">
delete
from cu_member_perk_detail_order cmpo
where (cmpo.pk_member_perk, cmpo.pk_member_perk_detail) in
(select cmpd.pk_member_perk, cmpd.pk_id
from CU_MEMBER_PERK_DETAIL cmpd
where cmpd.del_flag = 0
and cmpd.pk_member_perk = #{pkMemberPerk}
and cmpd.calculate_date = #{calculateDate})
</delete>
<!-- 批量插入补贴明细订单 -->
<insert id="insertBatch">
insert into cu_member_perk_detail_order
(pk_member_perk, pk_member_perk_detail, pk_order)
<foreach collection="orderList" item="item" separator="UNION ALL">
select #{pkMemberPerk}, #{pkMemberPerkDetail}, #{item.pkId} from dual
</foreach>
</insert>
<!-- 订单 + 详情返回映射 -->
<resultMap id="saOrderExtResultMap" type="com.hzs.common.domain.sale.ext.SaOrderExt">
<result column="MEMBER_CODE" property="memberCode"/>

View File

@ -2,161 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.report.member.mapper.CuMemberPerkMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.report.member.CuMemberPerk">
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<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_COUNTRY" property="pkCountry"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="CHECK_AMOUNT" property="checkAmount"/>
<result column="CHECK_ACHIEVE" property="checkAchieve"/>
<result column="CHECK_TYPE" property="checkType"/>
<result column="CONTAIN_CABIN" property="containCabin"/>
<result column="DEDUCTION_POLICY" property="deductionPolicy"/>
<result column="DEDUCTION_REPURCHASE" property="deductionRepurchase"/>
<result column="DEDUPLICATION" property="deduplication"/>
<result column="START_DATE" property="startDate"/>
<result column="END_DATE" property="endDate"/>
<result column="STATUS" property="status"/>
<result column="CALCULATE_START_DATE" property="calculateStartDate"/>
<result column="CALCULATE_END_DATE" property="calculateEndDate"/>
<result column="FIRST_AMOUNT" property="firstAmount"/>
<result column="FIRST_ACHIEVE" property="firstAchieve"/>
<result column="REPURCHASE_AMOUNT" property="repurchaseAmount"/>
<result column="REPURCHASE_ACHIEVE" property="repurchaseAchieve"/>
<result column="USED_POLICY" property="usedPolicy"/>
<result column="USED_REPURCHASE" property="usedRepurchase"/>
<result column="DISTINCT_FIRST_AMOUNT" property="distinctFirstAmount"/>
<result column="DISTINCT_FIRST_ACHIEVE" property="distinctFirstAchieve"/>
<result column="DISTINCT_REPURCHASE_AMOUNT" property="distinctRepurchaseAmount"/>
<result column="DISTINCT_REPURCHASE_ACHIEVE" property="distinctRepurchaseAchieve"/>
</resultMap>
<!-- 查询需要处理的补贴配置数据 -->
<select id="queryHandleData" resultMap="BaseResultMap">
select cmp.*
from CU_MEMBER_PERK cmp
where cmp.del_flag = 0
and cmp.status = 3
<choose>
<when test="pkCountry != null">
and cmp.pk_country = #{pkCountry}
</when>
<otherwise>
and cmp.pk_country = 1
</otherwise>
</choose>
and #{nowDate} >= cmp.CALCULATE_START_DATE
and cmp.CALCULATE_END_DATE >= #{nowDate}
</select>
<!-- 查询时间范围时间ID -->
<select id="queryPeriodIdByDate" resultType="com.hzs.common.domain.member.achieve.CuMemberSettlePeriod">
select pk_id, settle_date
from CU_MEMBER_SETTLE_PERIOD cmsr
where cmsr.del_flag = 0
and cmsr.settle_date >= #{startDate}
and #{endDate} > cmsr.settle_date
order by cmsr.settle_date
</select>
<!-- 订单数据映射map -->
<resultMap id="orderDataMap" type="com.hzs.common.domain.sale.ext.SaOrderExt">
<result column="pk_id" property="pkId"/>
<result column="order_code" property="orderCode"/>
<result column="order_amount" property="orderAmount"/>
<result column="order_achieve" property="orderAchieve"/>
<collection property="tradeList" ofType="com.hzs.common.domain.member.account.CuMemberTrade">
<result column="creation_time" property="creationTime"/>
<result column="pk_account" property="pkAccount"/>
<result column="trade_amount" property="tradeAmount"/>
</collection>
</resultMap>
<!-- 查询需要统计的订单数据 -->
<select id="queryOrderData" resultMap="orderDataMap">
select so.*, cmt.creation_time, cmt.pk_account, cmt.trade_amount
from (
select so.pk_id,
so.order_code,
so.order_type,
so.pk_member,
so.pk_creator,
sum(soi.price * soi.quantity) order_amount,
sum(soi.achievement * soi.quantity) order_achieve
from sa_order so
left join sa_order_items soi
on soi.pk_order = so.pk_id
and soi.del_flag = 0
and soi.is_gift = 1
<!-- 是否含舱 -->
<if test="notProductList != null and notProductList.size > 0">
and soi.pk_product not in
<foreach collection="notProductList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
inner join (
select cms.pk_member
from CU_MEMBER_SETTLE${period} cms
where cms.pk_member != #{pkMember}
start with cms.pk_member = #{pkMember}
connect by cms.pk_parent = prior cms.pk_member
) cms
on cms.pk_member = so.pk_member
where so.del_flag = 0
and so.pk_country = #{pkCountry}
and so.order_status = 1
and so.order_type in (1, 2, 24, 25, 20, 3, 12, 13, 14, 18, 19, 22, 26, 28, 7, 27)
and to_char(so.pay_time, 'yyyy-mm-dd') = to_char(#{queryDate}, 'yyyy-mm-dd')
group by so.pk_id, so.order_code, so.order_type, so.pk_member, so.pk_creator
) so
<!-- 订单支付明细:使用政策币、使用复购券 -->
left join cu_member_trade cmt
on cmt.pk_member = so.pk_creator
and cmt.source_code = so.order_code
where so.order_amount != 0
and so.order_achieve != 0
order by so.order_code, cmt.creation_time desc
</select>
<!-- 更新会员补贴数据 -->
<update id="updateMemberPerkData">
update CU_MEMBER_PERK cmp
set (
cmp.USED_POLICY,
cmp.USED_REPURCHASE,
FIRST_AMOUNT,
FIRST_ACHIEVE,
REPURCHASE_AMOUNT,
REPURCHASE_ACHIEVE,
DISTINCT_FIRST_AMOUNT,
DISTINCT_FIRST_ACHIEVE,
DISTINCT_REPURCHASE_AMOUNT,
DISTINCT_REPURCHASE_ACHIEVE,
MODIFIED_TIME
) = (
select nvl(sum(POLICY_AMOUNT), 0) POLICY_AMOUNT,
nvl(sum(REPURCHASE_COUPON_AMOUNT), 0) REPURCHASE_COUPON_AMOUNT,
nvl(sum(FIRST_AMOUNT), 0) FIRST_AMOUNT,
nvl(sum(FIRST_ACHIEVE), 0) FIRST_ACHIEVE,
nvl(sum(REPURCHASE_AMOUNT), 0) REPURCHASE_AMOUNT,
nvl(sum(REPURCHASE_ACHIEVE), 0) REPURCHASE_ACHIEVE,
nvl(sum(DISTINCT_FIRST_AMOUNT), 0) DISTINCT_FIRST_AMOUNT,
nvl(sum(DISTINCT_FIRST_ACHIEVE), 0) DISTINCT_FIRST_ACHIEVE,
nvl(sum(DISTINCT_REPURCHASE_AMOUNT), 0) DISTINCT_REPURCHASE_AMOUNT,
nvl(sum(DISTINCT_REPURCHASE_ACHIEVE), 0) DISTINCT_REPURCHASE_ACHIEVE,
sysdate
from CU_MEMBER_PERK_DETAIL cmpd
where cmpd.pk_member_perk = #{pkId}
and cmpd.del_flag = 0)
where cmp.pk_id = #{pkId}
</update>
<!-- 补贴配置列表 -->
<select id="queryList" resultType="com.hzs.common.domain.report.member.ext.CuMemberPerkExt">
select cmp.*,

View File

@ -2,11 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.report.member.mapper.CuMemberPerkProductMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.report.member.CuMemberPerkProduct">
<id column="PK_ID" property="pkId"/>
<result column="PK_PRODUCT" property="pkProduct"/>
<result column="TYPE" property="type"/>
</resultMap>
</mapper>

View File

@ -33,17 +33,6 @@ public interface BdWaresDetailMapper extends BaseMapper<BdWaresDetail> {
@Param("transType") Integer transType,
@Param("orderItemsParams") List<OrderItemsParam> orderItemsParams);
/**
* 根据条件查询商品信息
*
* @param specialArea 专区
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/16 11:13
*/
List<BdWaresDetailExt> queryWaresDetailBySkuCodeList(@Param("specialArea") Integer specialArea,
@Param("skuCodeList") List<String> skuCodeList);
/**
* 根据条件查询商品信息
*

View File

@ -2,17 +2,14 @@ package com.hzs.sale.wares.provider;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
import com.hzs.common.domain.sale.wares.BdWaresLabel;
import com.hzs.sale.wares.IWaresServiceApi;
import com.hzs.sale.wares.service.IBdWaresDetailService;
import com.hzs.sale.wares.service.IBdWaresLabelService;
import com.hzs.sale.wares.service.IBdWaresService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
import java.util.List;
/**
* @BelongsProject: hzs_cloud
@ -30,9 +27,6 @@ public class WaresServiceProvider implements IWaresServiceApi {
@Autowired
private IBdWaresLabelService waresLabelService;
@Autowired
private IBdWaresDetailService bdWaresDetailService;
/**
* 校验标签是否使用
*
@ -73,7 +67,6 @@ public class WaresServiceProvider implements IWaresServiceApi {
waresService.waresPreSale();
}
/**
* 修改自动上下架状态自动下架
*
@ -84,8 +77,4 @@ public class WaresServiceProvider implements IWaresServiceApi {
waresService.updateByAutoStartAndAutoEnd(currentTime);
}
@Override
public R<List<BdWaresDetailExt>> queryWaresDetailBySkuCodeList(Integer specialArea, List<String> skuCodeList) {
return R.ok(bdWaresDetailService.queryWaresDetailBySkuCodeList(specialArea, skuCodeList));
}
}

View File

@ -31,16 +31,6 @@ public interface IBdWaresDetailService extends IService<BdWaresDetail> {
*/
List<BdWaresDetailExt> queryWaresDetailByCondition(Integer specialArea, Integer transType, List<OrderItemsParam> orderItemsParams);
/**
* 根据条件查询商品信息
*
* @param specialArea 专区
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/16 11:13
*/
List<BdWaresDetailExt> queryWaresDetailBySkuCodeList(Integer specialArea, List<String> skuCodeList);
/**
* 根据条件查询商品信息
*

View File

@ -89,11 +89,6 @@ public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, B
return bdWaresDetailExtList;
}
@Override
public List<BdWaresDetailExt> queryWaresDetailBySkuCodeList(Integer specialArea, List<String> skuCodeList) {
return baseMapper.queryWaresDetailBySkuCodeList(specialArea, skuCodeList);
}
@Override
public List<IcAvailableNum> queryWaresDetailSpecsByCondition(Integer specialArea, Integer pkCountry, Integer pkCorp, Integer pkStorehouse, Integer province,
String parentCode, CuMember cuMember, List<OrderItemsParam> orderItemsParams) {

View File

@ -116,46 +116,6 @@
</foreach>
</select>
<select id="queryWaresDetailBySkuCodeList" resultMap="BdWaresDetailExt">
select bd.pk_id,bs.pk_id pk_wares_specs_sku,bs.sku_code,bw.is_free_mail,be.pk_land_postage,
be.pk_air_postage,be.pk_ocean_postage,bw.pk_id pk_wares,be.is_maker_gift,be.pre_sale_status,
be.pk_special_currency,bw.wares_code, bw.wares_name,
1 is_gift,bd.pk_product,bs.price,bs.achieve,bp.pk_supplier,bp.shipping_channel,bp.product_code,
bs.ass_achieve,b.specs_name,b.specs_name_id from bd_wares bw
inner join bd_wares_extend be
on bw.pk_id = be.pk_wares
inner join bd_wares_detail bd
on bw.pk_id = bd.pk_wares
left join bd_wares_specs_sku bs
on bd.pk_id = bs.pk_wares_detail and bs.del_flag=0
left join bd_product bp
on bd.pk_product=bp.pk_id and bp.del_flag=0
left join (
select pk_wares_specs_sku,wmsys.wm_concat(distinct(sc.specs_name)) specs_name,wmsys.wm_concat(distinct(sc.pk_id)) specs_name_id
from bd_wares_specs_sku bs
inner join bd_wares_specs_relation br
on bs.pk_id = br.pk_wares_specs_sku
left join bd_wares_specs bp
on br.pk_wares_specs= bp.pk_id
left join bd_specs sc
on bp.pk_specs = sc.pk_id
<where>
bs.sku_code in
<foreach collection="skuCodeList" item="param" open="(" separator="," close=")">
#{param}
</foreach>
</where>
group by pk_wares_specs_sku) b
on bs.pk_id = b.pk_wares_specs_sku
where bw.del_flag=0 and be.del_flag=0
and bd.del_flag=0
and bw.special_area = #{specialArea}
and bs.sku_code in
<foreach collection="skuCodeList" item="param" open="(" separator="," close=")">
#{param}
</foreach>
</select>
<select id="queryWaresDetailSpecsByCondition" resultMap="BdWaresDetailExt">
select * from (
<foreach collection="orderItemsParams" item="item" index="index" separator="union">

View File

@ -320,6 +320,7 @@
where to_char(PUT_OFF_TIME, 'yyyy-mm-dd hh24:mi:ss') &lt;= to_char(#{currentTime}, 'yyyy-mm-dd hh24:mi:ss')
and IS_PUT_ON = '0'
</update>
<!-- 修改商品预售状态-->
<update id="waresPreSale">
update BD_WARES_EXTEND
@ -328,7 +329,6 @@
where SYSDATE >= ARRIVAL_TIME
and PRE_SALE_STATUS = 1
and DEL_FLAG = 0
</update>

View File

@ -4,12 +4,10 @@ import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EMailType;
import com.hzs.third.email.IEmailServiceApi;
import com.hzs.third.email.service.ITEmailService;
import com.hzs.third.sms.util.SmsUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
/**
@ -20,12 +18,12 @@ import java.util.List;
public class EmailProvider implements IEmailServiceApi {
@Autowired
private ITEmailService iTEmailService;
private ITEmailService itEmailService;
@Override
public R sendMail(List<String> recipientList, String title, String content, EMailType eMailType) {
public R<?> sendMail(List<String> recipientList, String title, String content, EMailType eMailType) {
try {
if (iTEmailService.sendMail(recipientList, title, content, true, eMailType)) {
if (itEmailService.sendMail(recipientList, title, content, true, eMailType)) {
return R.ok();
}
} catch (Exception e) {
@ -34,14 +32,4 @@ public class EmailProvider implements IEmailServiceApi {
return R.fail("邮件发送失败");
}
@Override
public R sendMessage() {
List<String> phoneList = new ArrayList<>();
phoneList.add("18310333172");
phoneList.forEach(phone -> {
String smsStr = SmsUtil.sendSms(phone, "奖金结算错误,安置有问题");
log.info("发送短信{}", smsStr);
});
return R.ok();
}
}

View File

@ -35,7 +35,6 @@ public class BonusSettleJob {
* @Date: 2023/3/4 13:48
*/
@XxlJob("backSettleBonus")
// @Scheduled(cron = "10 8 10 * * ?")
public void backupsSettleBonusEveryday() {
log.info("开始进行奖金结算");
memberBonusSettleApi.backupsSettleBonusEveryday();
@ -49,14 +48,12 @@ public class BonusSettleJob {
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus")
// @Scheduled(cron = "10 8 10 * * ?")
public void autoSettleBonusEveryday() {
Date startDate = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate());
log.info("开始进行奖金结算");
memberBonusSettleApi.autoCalculateBonus(startDate);
}
/**
* 奖金每天自动结算,计算前一天奖金
*
@ -107,7 +104,6 @@ public class BonusSettleJob {
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus4")
// @Scheduled(cron = "10 6 11 * * ?")
public void autoSettleBonusEveryday4() {
Date startDate = DateUtils.beforeDate(3, ChronoUnit.DAYS, DateUtils.currentDate());
log.info("开始进行奖金结算");
@ -162,7 +158,6 @@ public class BonusSettleJob {
* @param: null null
**/
@XxlJob("autoGrantBonus")
// @Scheduled(cron = "10 42 13 * * ?")
public void autoGrantBonusEveryday() {
log.info("开始进行奖金发放");
memberBonusSettleApi.autoGrantBonus();
@ -176,7 +171,6 @@ public class BonusSettleJob {
* @param: null null
**/
@XxlJob("autoSettleMember")
// @Scheduled(cron = "50 55 15 * * ?")
public void autoSettleMemberAchieveEveryday() {
log.info("开始进行会员业绩计算");
memberBonusSettleApi.insertCuMemberAchieveByEveryDay();

View File

@ -139,7 +139,7 @@ public class MemberJob {
*/
@XxlJob("member-expire-data")
public void memberExpireData() {
R resultR = memberServiceApi.handleExpireDate(MagicNumberConstants.PK_ADMIN, CountryConstants.CHINA_COUNTRY);
R<?> resultR = memberServiceApi.handleExpireDate(MagicNumberConstants.PK_ADMIN, CountryConstants.CHINA_COUNTRY);
if (!resultR.isSuccess()) {
log.error("处理会员续约状态出现异常,{}", resultR.getMsg());
}
@ -150,9 +150,7 @@ public class MemberJob {
*/
@XxlJob("updatWarehouseLogJob")
public void updatWarehouseLogJob() {
/**
* 查询初始化条形码配置,将当前尾号初始化为初始尾号
*/
// 查询初始化条形码配置,将当前尾号初始化为初始尾号
iBdBarCodeServiceApi.updatWarehouseLog();
}

View File

@ -1,40 +0,0 @@
package com.hzs.third.job;
import com.hzs.common.core.domain.R;
import com.hzs.report.perk.IMemberPerkServiceApi;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
/**
* @Description: 报表服务定时任务
* @Author: jiang chao
* @Time: 2024/4/22 16:34
* @Classname: ReportJob
* @PackageName: com.hzs.third.job
*/
@Slf4j
@ConditionalOnProperty(name = "xxl-job.start", havingValue = "true")
@Component
public class ReportJob {
@DubboReference
private IMemberPerkServiceApi iMemberPerkServiceApi;
/**
* 定时执行会员补贴计算
*/
@XxlJob("memberPerkHandle")
public void memberPerkHandle() {
log.info("会员补贴计算定时任务开始执行");
R resultR = iMemberPerkServiceApi.memberPerkHandle();
if (resultR.isSuccess()) {
log.info("会员补贴计算定时任务执行成功");
} else {
log.error("会员补贴计算定时任务执行失败:{}", resultR.getMsg());
}
}
}

View File

@ -1,16 +1,9 @@
package com.hzs.third.job;/**
* @Description:
* @Author: yuhui
* @Time: 2023/6/1 10:44
* @Classname: WaresJob
* @PackageName: com.hzs.third.job
*/
package com.hzs.third.job;
import com.hzs.sale.wares.IWaresServiceApi;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
@ -21,15 +14,15 @@ import java.util.Date;
* @BelongsPackage: com.hzs.third.job
* @Author: yh
* @CreateTime: 2023-06-01 10:44
*@Description: TODO
* @Version: 1.0
*/
@Slf4j
@ConditionalOnProperty(name = "xxl-job.start", havingValue = "true")
@Component
public class WaresJob {
@DubboReference
private IWaresServiceApi waresServiceApi;
IWaresServiceApi waresServiceApi;
/**
* 商品自动上下架
@ -37,9 +30,6 @@ public class WaresJob {
@XxlJob("waresAutoLoadingJob")
public void waresAutoLoadingJob() {
// 修改符合 时间条件商品上架
/**
* 获取当前时间
*/
Date currentTime = new Date();
// 自动上架
waresServiceApi.updateByAutoStartAndAutoStart(currentTime);

View File

@ -7,7 +7,6 @@ import cn.hutool.json.JSONUtil;
import com.hzs.activity.tourism.IAcTourismServiceApi;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.report.perk.IMemberPerkServiceApi;
import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.base.dto.AreaDTO;
import com.hzs.third.job.OrderJob;
@ -33,11 +32,9 @@ import java.util.*;
public class JobTestController {
@DubboReference
private IAcTourismServiceApi iAcTourismServiceApi;
IAcTourismServiceApi iAcTourismServiceApi;
@DubboReference
private IAreaServiceApi iAreaServiceApi;
@DubboReference
private IMemberPerkServiceApi iMemberPerkServiceApi;
IAreaServiceApi iAreaServiceApi;
/**
* 测试旅游活动定时任务
@ -59,22 +56,6 @@ public class JobTestController {
@Autowired
private OrderJob orderJob;
/**
* 测试会员补贴
*
* @return
*/
@GetMapping("/test-perk")
public AjaxResult testPerk() {
R resultR = iMemberPerkServiceApi.memberPerkHandle();
if (resultR.isSuccess()) {
log.info("会员补贴计算定时任务执行成功");
} else {
log.error("会员补贴计算定时任务执行失败:{}", resultR.getMsg());
}
return AjaxResult.success();
}
/**
* 测试行政区划更新
*