## 去掉旧抗衰达人,调整推荐相关列表;

This commit is contained in:
cabbage 2025-06-17 16:03:53 +08:00
parent e89e09371f
commit 45e3ec095c
13 changed files with 138 additions and 510 deletions

View File

@ -28,62 +28,26 @@ import org.springframework.web.bind.annotation.*;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* @Description:
* @Author: sui q
* @Time: 2022/11/2 16:21
* @Classname: CuMemberSettleController
* @PackageName: com.hzs.member.achieve.controller
*/
@RestController
@RequestMapping("/manage/settle")
public class CuMemberSettleController extends BaseController {
private ICuMemberBonusService cuMemberBonusService;
private IBonusSettleService bonusSettleService;
private ICuMemberTreeService cuMemberTreeService;
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
private IBonusGrantService bonusGrantService;
private ICuMemberMonthAchieveService cuMemberMonthAchieveService;
@Autowired
public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) {
this.cuMemberBonusService = cuMemberBonusService;
}
private ICuMemberBonusService iCuMemberBonusService;
@Autowired
public void setCuMemberMonthAchieveService(ICuMemberMonthAchieveService cuMemberMonthAchieveService) {
this.cuMemberMonthAchieveService = cuMemberMonthAchieveService;
}
private IBonusSettleService iBonusSettleService;
@Autowired
public void setBonusGrantService(IBonusGrantService bonusGrantService) {
this.bonusGrantService = bonusGrantService;
}
private ICuMemberTreeService iCuMemberTreeService;
@Autowired
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
}
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Autowired
public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) {
this.cuMemberTreeService = cuMemberTreeService;
}
private IBonusGrantService iBonusGrantService;
@Autowired
public void setBonusSettleService(IBonusSettleService bonusSettleService) {
this.bonusSettleService = bonusSettleService;
}
private ICuMemberMonthAchieveService iCuMemberMonthAchieveService;
/**
* 初始化奖金结算表
@ -92,7 +56,7 @@ public class CuMemberSettleController extends BaseController {
*/
@GetMapping("/init-table")
public AjaxResult initTable(String settleDate) {
cuMemberTreeService.createCuMemberTree(settleDate);
iCuMemberTreeService.createCuMemberTree(settleDate);
return AjaxResult.success();
}
@ -103,7 +67,7 @@ public class CuMemberSettleController extends BaseController {
*/
@GetMapping("/init-period")
public AjaxResult initPeriod(String settleDate) {
cuMemberSettlePeriodService.initCuMemberPeriod(settleDate);
iCuMemberSettlePeriodService.initCuMemberPeriod(settleDate);
return AjaxResult.success();
}
@ -116,17 +80,11 @@ public class CuMemberSettleController extends BaseController {
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.INSERT)
public AjaxResult settleBonus(String settleDate) {
// initTable(settleDate);
// settleDate = "2024-04-29";
Date startDate = DateUtils.parseStringToDate(settleDate);
if (DateUtils.compareDateAfter(DateUtils.beforeDate(6, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.SETTLE_VALIDATE_DATE));
}
// List<SaOrderExt> saOrderExtList = saOrderServiceApi.querySaOrderByDay(startDate,
// DateUtils.afterDate(1, ChronoUnit.DAYS, startDate)).getData();
// for(int i=0;i<=92;i++) {
// startDate=DateUtils.afterDate(1,ChronoUnit.DAYS, startDate);
cuMemberBonusService.autoCalculateBonus(startDate, startDate);
// }
iCuMemberBonusService.autoCalculateBonus(startDate, startDate);
return AjaxResult.success();
}
@ -142,7 +100,7 @@ public class CuMemberSettleController extends BaseController {
if (DateUtils.compareDate(DateUtils.beforeDate(6, ChronoUnit.DAYS, DateUtils.currentDate()), startDate) > 0) {
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.PUBLISH_VALIDATE_DATE));
}
bonusGrantService.publishBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
iBonusGrantService.publishBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
return AjaxResult.success();
}
@ -158,7 +116,7 @@ public class CuMemberSettleController extends BaseController {
if (!DateUtils.compareDateEqual(DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.NO_PUBLISH_VALIDATE_DATE));
}
bonusGrantService.publishBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
iBonusGrantService.publishBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
return AjaxResult.success();
}
@ -174,7 +132,7 @@ public class CuMemberSettleController extends BaseController {
if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.GRANT_VALIDATE_DATE));
}
bonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
return AjaxResult.success();
}
@ -185,7 +143,7 @@ public class CuMemberSettleController extends BaseController {
*/
@GetMapping("/grant-temp-bonus")
public AjaxResult grantTempBonus(Integer pkCountry, String settleDate) {
bonusGrantService.grantBonusByTempPeriod(pkCountry, settleDate);
iBonusGrantService.grantBonusByTempPeriod(pkCountry, settleDate);
return AjaxResult.success();
}
@ -196,7 +154,7 @@ public class CuMemberSettleController extends BaseController {
*/
@GetMapping("/grant-bonus_all")
public AjaxResult grantBonusAll() {
bonusGrantService.grantWithdrawBonusByPeriodEveryDay();
iBonusGrantService.grantWithdrawBonusByPeriodEveryDay();
return AjaxResult.success();
}
@ -212,13 +170,12 @@ public class CuMemberSettleController extends BaseController {
if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.WITHDRAW_VALIDATE_DATE));
}
bonusGrantService.withdrawalBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
iBonusGrantService.withdrawalBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
return AjaxResult.success();
}
/**
* 秒接结算业绩仅用于测试
* w
*
* @return AjaxResult
*/
@ -227,8 +184,8 @@ public class CuMemberSettleController extends BaseController {
if (StringUtils.isEmpty(orderCode)) {
return AjaxResult.error();
}
// bonusSettleService.calculateCumberBonusBySecond(orderCode);
bonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(orderCode);
// iBonusSettleService.calculateCumberBonusBySecond(orderCode);
iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(orderCode);
return AjaxResult.success();
}
@ -239,28 +196,12 @@ public class CuMemberSettleController extends BaseController {
*/
@GetMapping("/settle-month")
public AjaxResult settleMonth() {
cuMemberMonthAchieveService.insertCuMemberAchieveByEveryDay(DateUtils.beforeDate(1, ChronoUnit.DAYS));
return AjaxResult.success();
}
/**
* 发放直推达人抗衰达人
* w
*
* @return AjaxResult
*/
@GetMapping("/settle-wall")
public AjaxResult settleMemberHonorWall(String startDate) {
cuMemberMonthAchieveService.insertCuMemberMonthAchieve(DateUtils.parseStringToDate(startDate));
cuMemberMonthAchieveService.insertCuMemberCuMemberMonthYearAchieve(DateUtils.parseStringToDate(startDate));
iCuMemberMonthAchieveService.insertCuMemberAchieveByEveryDay(DateUtils.beforeDate(1, ChronoUnit.DAYS));
return AjaxResult.success();
}
/*
* @description: 查询奖金计算期数列表
* @author: sui q
* @date: 2023/4/26 17:10
* @param: null null
* 查询奖金计算期数列表
**/
@AccessPermissions("bonusCount")
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.SELECT)
@ -268,7 +209,7 @@ public class CuMemberSettleController extends BaseController {
public TableDataInfo list(@RequestBody MemberPeriodParam periodParam) {
startPage();
periodParam.setPkCountry(SecurityUtils.getPkCountry());
List<CuMemberSettlePeriodExt> cuMemberSettlePeriods = cuMemberSettlePeriodService.queryCuMemberSettlePeriod(periodParam);
List<CuMemberSettlePeriodExt> cuMemberSettlePeriods = iCuMemberSettlePeriodService.queryCuMemberSettlePeriod(periodParam);
List<MemberSettlePeriodVO> list = new ArrayList<>();
cuMemberSettlePeriods.forEach(cuMemberSettlePeriod ->
list.add(BeanUtil.copyProperties(cuMemberSettlePeriod, MemberSettlePeriodVO.class))

View File

@ -8,30 +8,21 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员月数据 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-06-06
*/
public interface CuMemberMonthAchieveMapper extends BaseMapper<CuMemberMonthAchieve> {
/*
* @description: 根据时间查询月业绩
* @author: sui q
* @date: 2023/6/7 14:37
* @param: null null
**/
List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveByDate(@Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod,
@Param("recommend") Integer recommend, @Param("repurchase") Integer repurchase);
/**
* 根据时间查询月业绩
*/
List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveByDate(@Param("startPeriod") Integer startPeriod,
@Param("endPeriod") Integer endPeriod,
@Param("recommend") Integer recommend,
@Param("repurchase") Integer repurchase);
/*
* @description: 每天插入会员月表计算推荐业绩复购业绩1-6号计算前7天
* @author: sui q
* @date: 2023/6/6 14:15
* @param: null null
**/
/**
* 每天插入会员月表计算推荐业绩复购业绩1-6号计算前7天
*/
void insertCuMemberMonthAchieve(@Param("tableName") String tableName, @Param("period") Integer period, @Param("month") String month);
}

View File

@ -6,36 +6,22 @@ import com.hzs.common.domain.member.achieve.CuMemberMonthAchieve;
import java.util.Date;
/**
* <p>
* 会员月数据 服务类
* </p>
*
* @author hzs
* @since 2023-06-06
*/
public interface ICuMemberMonthAchieveService extends IService<CuMemberMonthAchieve> {
/*
* @description: 每日生成业绩月表统计数据
* @author: sui q
* @date: 2023/9/1 9:50
* @param: null null
**/
/**
* 每日生成业绩月表统计数据
*/
void insertCuMemberAchieveByEveryDay(Date settleDate);
/*
* @description: 每天插入会员月表计算推荐业绩复购业绩1-6号计算前7天
* @author: sui q
* @date: 2023/6/6 14:15
* @param: null null
**/
/**
* 每天插入会员月表计算推荐业绩复购业绩1-6号计算前7天
*/
void insertCuMemberMonthAchieve(Date settleDate);
/*
* @description: 每天统计月表数据
* @author: sui q
* @date: 2023/8/29 10:31
* @param: null null
**/
/**
* 每天统计月表数据
*/
void insertCuMemberCuMemberMonthYearAchieve(Date settleDate);
}

View File

@ -25,26 +25,21 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
/**
* <p>
* 会员月数据 服务实现类
* </p>
*
* @author hzs
* @since 2023-06-06
*/
@Service
public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAchieveMapper, CuMemberMonthAchieve> implements ICuMemberMonthAchieveService {
@Autowired
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Autowired
private ICuHonorWallService cuHonorWallService;
private ICuHonorWallService iCuHonorWallService;
@Autowired
private ICuMemberHonorWallService cuMemberHonorWallService;
private ICuMemberHonorWallService iCuMemberHonorWallService;
@Autowired
private ICuMemberTreeService cuMemberTreeService;
private ICuMemberTreeService iCuMemberTreeService;
@Autowired
private ICuMemberAchieveService cuMemberAchieveService;
private ICuMemberAchieveService iCuMemberAchieveService;
@Override
@Transactional(rollbackFor = Exception.class)
@ -66,12 +61,12 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
String table = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(settleDateStr);
// 获得当前月第一天
String currentMonthDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.currentMonthFirstDate(settleDate));
CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthDate);
CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthDate);
if (day <= 6) {
// 计算上月
String beforeFirstMonthDate = DateUtils.beforeMonthFirstDateStr(settleDate);
String beforeTable = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(beforeFirstMonthDate);
CuMemberSettlePeriod beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
CuMemberSettlePeriod beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
baseMapper.insertCuMemberMonthAchieve(beforeTable, beforePeriod.getPkId(), DateUtils.getMonth(beforeFirstMonthDate));
}
// 计算当前月
@ -80,7 +75,7 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
// 每月7号发放徽章,发放上个月的
if (day == 7) {
// 查询徽章
List<CuHonorWall> cuHonorWallList = cuHonorWallService.queryCuHonorWall();
List<CuHonorWall> cuHonorWallList = iCuHonorWallService.queryCuHonorWall();
Map<String, CuHonorWall> honorWallMap = new HashMap<>();
cuHonorWallList.forEach(cuHonorWall -> {
String key = cuHonorWall.getPkCountry().toString() + cuHonorWall.getType() + cuHonorWall.getValue();
@ -89,7 +84,7 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
List<CuMemberHonorWall> cuMemberHonorWallList = new ArrayList<>();
// 上月期间作为结束期间
String beforeFirstMonthDate = DateUtils.beforeMonthFirstDateStr(settleDate);
CuMemberSettlePeriod beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
CuMemberSettlePeriod beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
// 月徽章
grantHonorWall(beforePeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
HonorWallType.RECOMMEND_MONTH.getValue(), HonorWallType.ANTIFADING_MONTH.getValue(), honorWallMap, cuMemberHonorWallList);
@ -97,14 +92,14 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
if (month == 1 || month == 4 || month == 7 || month == 10) {
// 3个月期间作为开始期间
String quarterFirstMonthDate = DateUtils.beforeMonthFirstDateStr(3, settleDate);
CuMemberSettlePeriod quarterPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(quarterFirstMonthDate);
CuMemberSettlePeriod quarterPeriod = iCuMemberSettlePeriodService.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);
CuMemberSettlePeriod yearPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yearFirstMonthDate);
if (yearPeriod != null) {
grantHonorWall(yearPeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
HonorWallType.RECOMMEND_QUARTER.getValue(), HonorWallType.ANTIFADING_QUARTER.getValue(), honorWallMap, cuMemberHonorWallList);
@ -112,7 +107,7 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
}
}
if (cuMemberHonorWallList.size() > 0) {
cuMemberHonorWallService.saveBatch(cuMemberHonorWallList);
iCuMemberHonorWallService.saveBatch(cuMemberHonorWallList);
}
}
}
@ -124,18 +119,18 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
// 月表
int day = DateUtils.currentDay(settleDate);
String monthTableName = TableNameConstants.CU_MEMBER_MONTH + DateUtils.getMonth(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate));
Integer number = cuMemberTreeService.queryExistOracleTable(monthTableName);
Integer number = iCuMemberTreeService.queryExistOracleTable(monthTableName);
if (number == null || number <= 0) {
// 创建表
cuMemberAchieveService.createCuMemberMonthTable(monthTableName);
cuMemberTreeService.createCuMemberTreeDayOnlyIndex(monthTableName);
cuMemberTreeService.createCuMemberTreeParentIndex(monthTableName);
cuMemberTreeService.createCuMemberTreePlaceIndex(monthTableName);
iCuMemberAchieveService.createCuMemberMonthTable(monthTableName);
iCuMemberTreeService.createCuMemberTreeDayOnlyIndex(monthTableName);
iCuMemberTreeService.createCuMemberTreeParentIndex(monthTableName);
iCuMemberTreeService.createCuMemberTreePlaceIndex(monthTableName);
}
if (day >= 1 && day <= 6) {
cuMemberAchieveService.mergeCuMemberMonth(day, DateUtils.beforeMonthLastDateStr(settleDate));
iCuMemberAchieveService.mergeCuMemberMonth(day, DateUtils.beforeMonthLastDateStr(settleDate));
}
cuMemberAchieveService.mergeCuMemberMonth(0, DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, settleDate));
iCuMemberAchieveService.mergeCuMemberMonth(0, DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, settleDate));
}
private void grantHonorWall(Integer startPeriod, Integer endPeriod, String settleMonth, Integer recommend, Integer repurchase,

View File

@ -245,10 +245,6 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
// 复购券
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
// 环球积分
// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.GLOBAL_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getGlobalPoints(), currencyDTO.getOutExchangeRate()), settleDate);
// 车奖积分
// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate);
});
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
// 新增流水明细,记录奖金明细的发放状态消费明细

View File

@ -56,14 +56,14 @@ import java.util.*;
public class ApiCuMemberAchieveDisController extends BaseController {
@DubboReference
ICurrencyServiceApi currencyServiceApi;
ICurrencyServiceApi iCurrencyServiceApi;
@Autowired
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Autowired
private ICuMemberAchieveService cuMemberAchieveService;
private ICuMemberAchieveService iCuMemberAchieveService;
@Autowired
private ICuMemberMonthAchieveService cuMemberMonthAchieveService;
private ICuMemberMonthAchieveService iCuMemberMonthAchieveService;
/**
* 用于查询会员市场动态
@ -73,7 +73,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
// 查询架构树
MemberAchieveDisParam memberAchieveDisParam = new MemberAchieveDisParam();
memberAchieveDisParam.setPkMember(SecurityUtils.getUserId());
return AjaxResult.success(cuMemberAchieveService.queryCuMemberAchieveDis(memberAchieveDisParam));
return AjaxResult.success(iCuMemberAchieveService.queryCuMemberAchieveDis(memberAchieveDisParam));
}
/**
@ -88,7 +88,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_CODE_NOT_NULL));
}
memberAchieveDisParam.setPkCountry(SecurityUtils.getPkCountry());
return AjaxResult.success(cuMemberAchieveService.queryCuMemberDis(memberAchieveDisParam));
return AjaxResult.success(iCuMemberAchieveService.queryCuMemberDis(memberAchieveDisParam));
}
/**
@ -100,7 +100,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
public AjaxResult queryLastAchieve(@RequestBody MemberAchieveDisParam memberAchieveDisParam) {
// 业绩分布 近7日业绩 左区右区新增人数 血缘业绩 左区右区新增业绩
memberAchieveDisParam.setPkMember(SecurityUtils.getUserId());
return AjaxResult.success(cuMemberAchieveService.queryCuMemberUnderBloodAchieveByPkMember(memberAchieveDisParam));
return AjaxResult.success(iCuMemberAchieveService.queryCuMemberUnderBloodAchieveByPkMember(memberAchieveDisParam));
}
/**
@ -112,7 +112,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
public AjaxResult queryRealAchieve(@RequestBody MemberAchieveDisParam memberAchieveDisParam) {
// 业绩分布 近7日业绩 左区右区新增人数 血缘业绩 左区右区新增业绩
memberAchieveDisParam.setPkMember(SecurityUtils.getUserId());
return AjaxResult.success(cuMemberAchieveService.queryCuMemberUnderBloodAchieveByPkMember(memberAchieveDisParam));
return AjaxResult.success(iCuMemberAchieveService.queryCuMemberUnderBloodAchieveByPkMember(memberAchieveDisParam));
}
/**
@ -120,7 +120,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
*/
@GetMapping("/query-real-performance")
public AjaxResult queryRealPerformance(Integer month) {
RealPerformanceVo realPerformanceVo = cuMemberAchieveService.queryRealPerformance(SecurityUtils.getUserId(), SecurityUtils.getPkCountry(), month);
RealPerformanceVo realPerformanceVo = iCuMemberAchieveService.queryRealPerformance(SecurityUtils.getUserId(), SecurityUtils.getPkCountry(), month);
return AjaxResult.success(realPerformanceVo);
}
@ -134,7 +134,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
public AjaxResult queryRealPerformancePic() {
int month = DateUtil.month(DateUtils.currentDate()) + 1;
AzAchievementPie achievementPie = cuMemberAchieveService.queryRealPerformancePic(SecurityUtils.getUserId(), SecurityUtils.getPkCountry(), month);
AzAchievementPie achievementPie = iCuMemberAchieveService.queryRealPerformancePic(SecurityUtils.getUserId(), SecurityUtils.getPkCountry(), month);
return AjaxResult.success(achievementPie);
}
@ -148,7 +148,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
*/
@GetMapping("/new-add-achieve-contrast")
public AjaxResult queryNewAddAchieveContrast(Integer month) {
return AjaxResult.success(cuMemberAchieveService.selectNewAddAchieveContrast(SecurityUtils.getUserId(), SecurityUtils.getPkCountry(), month));
return AjaxResult.success(iCuMemberAchieveService.selectNewAddAchieveContrast(SecurityUtils.getUserId(), SecurityUtils.getPkCountry(), month));
}
@ -162,7 +162,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
if (null == pna.getAchievementType()) {
pna.setAchievementType(EAchievementType.WHOLE.getValue());
}
pna = cuMemberAchieveService.placeNewAddAchieveStat(pna);
pna = iCuMemberAchieveService.placeNewAddAchieveStat(pna);
return AjaxResult.success(pna);
}
@ -177,7 +177,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
LocalDate localDate;
LocalDate startDate;
if (StringUtils.isNotEmpty(pna.getYear())) {
currentDate = cuMemberAchieveService.getDateFromYearAndMonth(pna.getYear(), pna.getMonthType().toString());
currentDate = iCuMemberAchieveService.getDateFromYearAndMonth(pna.getYear(), pna.getMonthType().toString());
LocalDate today = currentDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
//当月第一天和最后一天
localDate = null == pna.getMonthType() ? LocalDate.now() : LocalDate.of(today.getYear(), pna.getMonthType(), 1);
@ -190,7 +190,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
Date systemDate = DateUtils.currentDate();
List<Integer> orderTypeList = new ArrayList<>();
Integer pkCountry = SecurityUtils.getPkCountry();
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
pna.setPkMember(SecurityUtils.getUserId());
pna.setPkCountry(SecurityUtils.getPkCountry());
pna.setPkCountry(pkCountry);
@ -257,34 +257,34 @@ public class ApiCuMemberAchieveDisController extends BaseController {
//查询左右区人列表最新数据
if (pna.getMonthScoreType() == null || pna.getMonthScoreType() == EMonthScoreType.PEOPLE_NUMBER.getValue()) {
if (DateUtils.compareDateBefore(systemDate, enddate)) {
pnaList = cuMemberAchieveService.placeNewAddAchieveDetails(pna);
pnaList = iCuMemberAchieveService.placeNewAddAchieveDetails(pna);
} else {
//查询左右区人列表历史数据
int frontLastendperiod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
int frontLastendperiod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
DateUtils.parseDateToStr(endDateStr)).getPkId();
String frontTreeTableNameEnd = TableNameConstants.CU_MEMBER_SETTLE + frontLastendperiod;
pna.setAchieveTableName(frontTreeTableNameEnd);
pnaList = cuMemberAchieveService.placeNewAddAchieveHistoryDetails(pna);
pnaList = iCuMemberAchieveService.placeNewAddAchieveHistoryDetails(pna);
}
} else if (pna.getMonthScoreType() == EMonthScoreType.SCORE.getValue()) {
//查询左右区业绩详情
//查询最新期数
int endperiod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
int endperiod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(
DateUtils.parseDateToStr(endDateStr)).getPkId();
pna.setPeriod(endperiod);
String achieveTableName = TableNameConstants.CU_MEMBER_TREE + DateUtils.getMonth(startDateStr);
pna.setAchieveTableName(achieveTableName);
pnaList = cuMemberAchieveService.leftRightAchieveDetails(pna);
pnaList = iCuMemberAchieveService.leftRightAchieveDetails(pna);
} else if (pna.getMonthScoreType() == EMonthScoreType.BLOOD_SCORE.getValue()) {
//查询左右区血缘业绩详情
String achieveTableName = TableNameConstants.CU_MEMBER_MONTH + DateUtils.getMonth(startDateStr);
pna.setAchieveTableName(achieveTableName);
pnaList = cuMemberAchieveService.leftRightDirectAchieveDetails(pna);
pnaList = iCuMemberAchieveService.leftRightDirectAchieveDetails(pna);
} else if (pna.getMonthScoreType() == EMonthScoreType.DIRECT_SCORE.getValue()) {
//查询血缘业绩详情
String achieveTableName = TableNameConstants.CU_MEMBER_MONTH + DateUtils.getMonth(startDateStr);
pna.setAchieveTableName(achieveTableName);
pnaList = cuMemberAchieveService.directAchieveDetails(pna);
pnaList = iCuMemberAchieveService.directAchieveDetails(pna);
}
if (CollectionUtil.isNotEmpty(pnaList)) {
@ -307,7 +307,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
if (null == pna.getAchievementType()) {
pna.setAchievementType(EAchievementType.WHOLE.getValue());
}
pna = cuMemberAchieveService.placeNewAddAchieveStat(pna);
pna = iCuMemberAchieveService.placeNewAddAchieveStat(pna);
List<PlaceNewAddAchieveVO> list = new ArrayList<>();
list.add(pna);
ExcelUtil<PlaceNewAddAchieveVO> util = new ExcelUtil<>(PlaceNewAddAchieveVO.class);
@ -330,7 +330,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
}
pa.setPkMember(SecurityUtils.getUserId());
pa.setPkCountry(SecurityUtils.getPkCountry());
pa = cuMemberAchieveService.parentAchieveRight(pa);
pa = iCuMemberAchieveService.parentAchieveRight(pa);
return AjaxResult.success(pa);
}
@ -350,16 +350,12 @@ public class ApiCuMemberAchieveDisController extends BaseController {
}
pa.setPkMember(SecurityUtils.getUserId());
pa.setPkCountry(SecurityUtils.getPkCountry());
List<ParentAchieveVO> paList = cuMemberAchieveService.parentAchieveLeft(pa);
List<ParentAchieveVO> paList = iCuMemberAchieveService.parentAchieveLeft(pa);
return AjaxResult.success(paList);
}
/**
* @description: 根据月查询该月的最后一天
* @author: zhang jing
* @date: 2023/9/5 19:40
* @param: []
* @return:
* 根据月查询该月的最后一天
**/
public String lastDayByMonth(String endDate) {
// 将月份字符串转换为 LocalDate 对象
@ -376,7 +372,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
}
/**
* 推荐达人
* 推荐分布
**/
@PostMapping("/recommend")
public TableDataInfo recommendExperts(@RequestBody ParentAchieveVO parentAchieveVO) {
@ -384,7 +380,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
return new TableDataInfo();
}
parentAchieveVO.setPkCountry(SecurityUtils.getPkCountry());
List<CuMemberMonthAchieveExt> cuMemberMonthAchieveExtList = cuMemberMonthAchieveService.queryCuMemberMonthAchieveRecommend(parentAchieveVO);
List<CuMemberMonthAchieveExt> cuMemberMonthAchieveExtList = iCuMemberMonthAchieveService.queryCuMemberMonthAchieveRecommend(parentAchieveVO);
cuMemberMonthAchieveExtList.forEach(cuMemberMonthAchieveExt -> {
String memberName = cuMemberMonthAchieveExt.getMemberName();
if (memberName.length() > 2) {
@ -396,34 +392,14 @@ public class ApiCuMemberAchieveDisController extends BaseController {
return getDataTable(cuMemberMonthAchieveExtList);
}
/**
* 抗衰达人
**/
@PostMapping("/repurchase")
public TableDataInfo repurchaseExperts(@RequestBody ParentAchieveVO parentAchieveVO) {
if (parentAchieveVO.getWallType() == null) {
return new TableDataInfo();
}
parentAchieveVO.setPkCountry(SecurityUtils.getPkCountry());
List<CuMemberMonthAchieveExt> cuMemberMonthAchieveExtList = cuMemberMonthAchieveService.queryCuMemberMonthAchieveRepurchase(parentAchieveVO);
cuMemberMonthAchieveExtList.forEach(cuMemberMonthAchieveExt -> {
String memberName = cuMemberMonthAchieveExt.getMemberName();
if (memberName.length() > 2) {
cuMemberMonthAchieveExt.setMemberName(memberName.replaceFirst(memberName.substring(1, memberName.length() - 1), "*"));
} else {
cuMemberMonthAchieveExt.setMemberName(memberName.replaceFirst(memberName.substring(1), "*"));
}
});
return getDataTable(cuMemberMonthAchieveExtList);
}
/**
* 抗衰达人
* 月度业绩
**/
@PostMapping("/month-achieve")
public TableDataInfo memberMonthAchieve(@RequestBody MonthAchieveParam monthAchieveParam) {
List<MemberMonthAchieveVO> memberMonthAchieveList = new ArrayList<>();
List<CuMemberAchieveExt> cuMemberAchieveExtList = cuMemberAchieveService.queryMemberMonthAchieve(SecurityUtils.getUserId(), monthAchieveParam.getMonth());
List<CuMemberAchieveExt> cuMemberAchieveExtList = iCuMemberAchieveService.queryMemberMonthAchieve(SecurityUtils.getUserId(), monthAchieveParam.getMonth());
for (CuMemberAchieveExt cuMemberAchieveExt : cuMemberAchieveExtList) {
MemberMonthAchieveVO memberMonthAchieveVO = BeanUtil.copyProperties(cuMemberAchieveExt, MemberMonthAchieveVO.class);
setAchieve(cuMemberAchieveExt, memberMonthAchieveVO);
@ -448,7 +424,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
}
/**
* 抗衰达人
* 月度业绩详细
**/
@PostMapping("/month-achieve-detail")
public TableDataInfo memberMonthAchieveDetail(@RequestBody MonthAchieveParam monthAchieveParam) {
@ -463,9 +439,9 @@ public class ApiCuMemberAchieveDisController extends BaseController {
List<CuMemberAchieveExt> cuMemberAchieveExtList;
monthAchieveParam.setMonth(monthAchieveParam.getMonth().replace("-", ""));
if (monthAchieveParam.getPlaceDept() == 0) {
cuMemberAchieveExtList = cuMemberAchieveService.queryParentMemberMonthAchieve(monthAchieveParam);
cuMemberAchieveExtList = iCuMemberAchieveService.queryParentMemberMonthAchieve(monthAchieveParam);
} else {
cuMemberAchieveExtList = cuMemberAchieveService.queryPlaceParentMemberMonthAchieve(monthAchieveParam);
cuMemberAchieveExtList = iCuMemberAchieveService.queryPlaceParentMemberMonthAchieve(monthAchieveParam);
}
if (CollectionUtil.isNotEmpty(cuMemberAchieveExtList)) {
for (CuMemberAchieveExt cuMemberAchieveExt : cuMemberAchieveExtList) {
@ -505,7 +481,7 @@ public class ApiCuMemberAchieveDisController extends BaseController {
*
* @return
*/
@GetMapping("get-data-info")
@GetMapping("/get-data-info")
public AjaxResult getDataInfo() {
Date date = DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate());
DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, date);

View File

@ -8,12 +8,7 @@ import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description: 会员月累计业绩统计
* @author: sui q
* @time: 2023/8/29 17:31
* @classname: MemberMonthAchieve
* @package_name: com.hzs.member.achieve.controller.vo
* version 1.0.0
* 会员月累计业绩统计
*/
@Data
public class MemberMonthAchieveVO implements Serializable {

View File

@ -1,68 +1,38 @@
package com.hzs.member.achieve.mapper;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.achieve.CuMemberMonthAchieve;
import com.hzs.common.domain.member.ext.CuMemberMonthAchieveExt;
import com.hzs.member.achieve.controller.vo.ParentAchieveVO;
import com.hzs.member.achieve.controller.vo.RealPerformanceVo;
import com.hzs.member.achieve.vo.CuMemberMonthVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* <p>
* 会员月数据 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-06-06
*/
public interface CuMemberMonthAchieveMapper extends BaseMapper<CuMemberMonthAchieve> {
/*
* @description: 根据时间查询月业绩
* @author: sui q
* @date: 2023/6/7 14:37
* @param: null null
**/
/**
* 根据时间查询月业绩
*/
List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveByDate(@Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod,
@Param("recommend") Integer recommend, @Param("repurchase") Integer repurchase);
/*
* @description: 根据条件查询会员月业绩 推荐达人
* @author: sui q
* @date: 2023/6/7 16:00
* @param: null null
**/
/**
* 根据条件查询会员月业绩 推荐达人
*/
List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveRecommend(ParentAchieveVO parentAchieveVO);
/*
* @description: 根据条件查询会员月业绩 推荐达人
* @author: sui q
* @date: 2023/6/7 16:00
* @param: null null
**/
List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveRepurchase(ParentAchieveVO parentAchieveVO);
/*
* @description: 每天插入会员月表计算推荐业绩复购业绩1-6号计算前7天
* @author: sui q
* @date: 2023/6/6 14:15
* @param: null null
**/
void insertCuMemberMonthAchieve(@Param("tableName") String tableName, @Param("period") Integer period, @Param("month") String month);
/**
*
* @param pkMember 会员主键
* @param achieveTable 表名
* @return
* 每天插入会员月表计算推荐业绩复购业绩1-6号计算前7天
*/
CuMemberMonthVo queryCuMemberMonthInfo(@Param("pkMember") Long pkMember,@Param("achieveTable") String achieveTable);
void insertCuMemberMonthAchieve(@Param("tableName") String tableName, @Param("period") Integer period, @Param("month") String month);
/**
* 查询会员真实业绩
*
* @param pkMember
* @param achieveTable
* @return

View File

@ -3,75 +3,40 @@ package com.hzs.member.achieve.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.achieve.CuMemberMonthAchieve;
import com.hzs.common.domain.member.ext.CuMemberMonthAchieveExt;
import com.hzs.member.achieve.controller.vo.MemberMonthAchieveVO;
import com.hzs.member.achieve.controller.vo.ParentAchieveVO;
import com.hzs.member.achieve.controller.vo.RealPerformanceVo;
import com.hzs.member.achieve.vo.CuMemberMonthVo;
import java.util.Date;
import java.util.List;
/**
* <p>
* 会员月数据 服务类
* </p>
*
* @author hzs
* @since 2023-06-06
*/
public interface ICuMemberMonthAchieveService extends IService<CuMemberMonthAchieve> {
/*
* @description: 每日生成业绩月表统计数据
* @author: sui q
* @date: 2023/9/1 9:50
* @param: null null
**/
/**
* 每日生成业绩月表统计数据
*/
void insertCuMemberAchieveByEveryDay(Date settleDate);
/*
* @description: 每天插入会员月表计算推荐业绩复购业绩1-6号计算前7天
* @author: sui q
* @date: 2023/6/6 14:15
* @param: null null
**/
/**
* 每天插入会员月表计算推荐业绩复购业绩1-6号计算前7天
*/
void insertCuMemberMonthAchieve(Date settleDate);
/*
* @description: 每天统计月表数据
* @author: sui q
* @date: 2023/8/29 10:31
* @param: null null
**/
/**
* 每天统计月表数据
*/
void insertCuMemberCuMemberMonthYearAchieve(Date settleDate);
/*
* @description: 根据条件查询会员月业绩
* @author: sui q
* @date: 2023/6/7 16:00
* @param: null null
**/
List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveRecommend(ParentAchieveVO parentAchieveVO);
/*
* @description: 根据条件查询会员月业绩 推荐达人
* @author: sui q
* @date: 2023/6/7 16:00
* @param: null null
**/
List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveRepurchase(ParentAchieveVO parentAchieveVO);
/**
*
* @param pkMember 会员主键
* @param achieveTable 表名
* @return
* 根据条件查询会员月业绩
*/
CuMemberMonthVo queryCuMemberMonthInfo(Long pkMember, String achieveTable);
List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveRecommend(ParentAchieveVO parentAchieveVO);
/**
* 查询会员真实业绩
*
* @param pkMember
* @param achieveTable
* @return

View File

@ -18,7 +18,6 @@ import com.hzs.member.achieve.service.ICuMemberAchieveService;
import com.hzs.member.achieve.service.ICuMemberMonthAchieveService;
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.member.achieve.service.ICuMemberTreeService;
import com.hzs.member.achieve.vo.CuMemberMonthVo;
import com.hzs.member.base.service.ICuHonorWallService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -27,24 +26,19 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
/**
* <p>
* 会员月数据 服务实现类
* </p>
*
* @author hzs
* @since 2023-06-06
*/
@Service
public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAchieveMapper, CuMemberMonthAchieve> implements ICuMemberMonthAchieveService {
@Autowired
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Autowired
private ICuHonorWallService cuHonorWallService;
private ICuHonorWallService iCuHonorWallService;
@Autowired
private ICuMemberTreeService cuMemberTreeService;
private ICuMemberTreeService iCuMemberTreeService;
@Autowired
private ICuMemberAchieveService cuMemberAchieveService;
private ICuMemberAchieveService iCuMemberAchieveService;
@Override
@Transactional(rollbackFor = Exception.class)
@ -66,12 +60,12 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
String table = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(settleDateStr);
// 获得当前月第一天
String currentMonthDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.currentMonthFirstDate(settleDate));
CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthDate);
CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthDate);
if (day <= 6) {
// 计算上月
String beforeFirstMonthDate = DateUtils.beforeMonthFirstDateStr(settleDate);
String beforeTable = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(beforeFirstMonthDate);
CuMemberSettlePeriod beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
CuMemberSettlePeriod beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
baseMapper.insertCuMemberMonthAchieve(beforeTable, beforePeriod.getPkId(), DateUtils.getMonth(beforeFirstMonthDate));
}
// 计算当前月
@ -80,7 +74,7 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
// 每月7号发放徽章,发放上个月的
if (day == 7) {
// 查询徽章
List<CuHonorWall> cuHonorWallList = cuHonorWallService.queryCuHonorWall();
List<CuHonorWall> cuHonorWallList = iCuHonorWallService.queryCuHonorWall();
Map<String, CuHonorWall> honorWallMap = new HashMap<>();
cuHonorWallList.forEach(cuHonorWall -> {
String key = cuHonorWall.getPkCountry().toString() + cuHonorWall.getType() + cuHonorWall.getValue();
@ -89,7 +83,7 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
List<CuMemberHonorWall> cuMemberHonorWallList = new ArrayList<>();
// 上月期间作为结束期间
String beforeFirstMonthDate = DateUtils.beforeMonthFirstDateStr(settleDate);
CuMemberSettlePeriod beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
CuMemberSettlePeriod beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
// 月徽章
grantHonorWall(beforePeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
HonorWallType.RECOMMEND_MONTH.getValue(), HonorWallType.ANTIFADING_MONTH.getValue(), honorWallMap, cuMemberHonorWallList);
@ -97,14 +91,14 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
if (month == 1 || month == 4 || month == 7 || month == 10) {
// 3个月期间作为开始期间
String quarterFirstMonthDate = DateUtils.beforeMonthFirstDateStr(3, settleDate);
CuMemberSettlePeriod quarterPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(quarterFirstMonthDate);
CuMemberSettlePeriod quarterPeriod = iCuMemberSettlePeriodService.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);
CuMemberSettlePeriod yearPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yearFirstMonthDate);
if (yearPeriod != null) {
grantHonorWall(yearPeriod.getPkId(), cuMemberSettlePeriod.getPkId(), settleMonth,
HonorWallType.RECOMMEND_QUARTER.getValue(), HonorWallType.ANTIFADING_QUARTER.getValue(), honorWallMap, cuMemberHonorWallList);
@ -121,18 +115,18 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
// 月表
int day = DateUtils.currentDay(settleDate);
String monthTableName = TableNameConstants.CU_MEMBER_MONTH + DateUtils.getMonth(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate));
Integer number = cuMemberTreeService.queryExistOracleTable(monthTableName);
Integer number = iCuMemberTreeService.queryExistOracleTable(monthTableName);
if (number == null || number <= 0) {
// 创建表
cuMemberAchieveService.createCuMemberMonthTable(monthTableName);
cuMemberTreeService.createCuMemberTreeDayOnlyIndex(monthTableName);
cuMemberTreeService.createCuMemberTreeParentIndex(monthTableName);
cuMemberTreeService.createCuMemberTreePlaceIndex(monthTableName);
iCuMemberAchieveService.createCuMemberMonthTable(monthTableName);
iCuMemberTreeService.createCuMemberTreeDayOnlyIndex(monthTableName);
iCuMemberTreeService.createCuMemberTreeParentIndex(monthTableName);
iCuMemberTreeService.createCuMemberTreePlaceIndex(monthTableName);
}
if (day >= 1 && day <= 6) {
cuMemberAchieveService.mergeCuMemberMonth(day, DateUtils.beforeMonthLastDateStr(settleDate));
iCuMemberAchieveService.mergeCuMemberMonth(day, DateUtils.beforeMonthLastDateStr(settleDate));
}
cuMemberAchieveService.mergeCuMemberMonth(0, DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, settleDate));
iCuMemberAchieveService.mergeCuMemberMonth(0, DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, settleDate));
}
@Override
@ -153,52 +147,29 @@ public class CuMemberMonthAchieveServiceImpl extends ServiceImpl<CuMemberMonthAc
date = DateUtils.beforeMonthFirstDate(settleDate);
}
String currentMonthDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date);
CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthDate);
CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthDate);
parentAchieveVO.setStartPeriod(cuMemberSettlePeriod.getPkId());
parentAchieveVO.setEndPeriod(cuMemberSettlePeriod.getPkId());
} else {
// 季度
// 上月期间作为结束期间
String beforeFirstMonthDate = DateUtils.beforeMonthFirstDateStr(settleDate);
CuMemberSettlePeriod beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
CuMemberSettlePeriod beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeFirstMonthDate);
parentAchieveVO.setEndPeriod(beforePeriod.getPkId());
if (Objects.equals(HonorWallType.RECOMMEND_QUARTER.getValue(), parentAchieveVO.getWallType()) ||
Objects.equals(HonorWallType.ANTIFADING_QUARTER.getValue(), parentAchieveVO.getWallType())) {
// 3个月期间作为开始期间
String quarterFirstMonthDate = DateUtils.beforeMonthFirstDateStr(3, settleDate);
CuMemberSettlePeriod quarterPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(quarterFirstMonthDate);
CuMemberSettlePeriod quarterPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(quarterFirstMonthDate);
parentAchieveVO.setStartPeriod(quarterPeriod.getPkId());
} else {
String yearFirstMonthDate = DateUtils.beforeMonthFirstDateStr(12, settleDate);
CuMemberSettlePeriod yearPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yearFirstMonthDate);
CuMemberSettlePeriod yearPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yearFirstMonthDate);
parentAchieveVO.setStartPeriod(yearPeriod.getPkId());
}
}
}
@Override
public List<CuMemberMonthAchieveExt> queryCuMemberMonthAchieveRepurchase(ParentAchieveVO parentAchieveVO) {
packageParamPeriod(parentAchieveVO);
return baseMapper.queryCuMemberMonthAchieveRepurchase(parentAchieveVO);
}
/**
* @param pkMember 会员主键
* @param achieveTable 表名
* @return
*/
@Override
public CuMemberMonthVo queryCuMemberMonthInfo(Long pkMember, String achieveTable) {
return baseMapper.queryCuMemberMonthInfo(pkMember, achieveTable);
}
/**
* 查询会员真实业绩
*
* @param pkMember
* @param achieveTable
* @return
*/
@Override
public RealPerformanceVo queryCuMemberMonthAchieveInfo(Long pkMember, String achieveTable) {
return baseMapper.queryCuMemberMonthAchieveInfo(pkMember, achieveTable);

View File

@ -1,133 +0,0 @@
package com.hzs.member.achieve.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2023/8/30 10:41
* @Classname: CuMemberMonthVo
* @PackageName: com.hzs.member.achieve.vo
*/
import lombok.Data;
import java.math.BigDecimal;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.achieve.vo
*@Author: yh
*@CreateTime: 2023-08-30 10:41
*@Description: TODO
*@Version: 1.0
*/
@Data
public class CuMemberMonthVo {
/**
* 用户主键
*/
private Long pkMember;
/**
* 会员推荐主键
*/
private Long pkParent;
/**
* 会员安置主键
*/
private Long pkPlaceParent;
/**
* 安置部门
*/
private Integer placeDept;
/**
* 会员编号
*/
private String memberCode;
/**
* 会员名称
*/
private String memberName;
/**
* 会员类型
*/
private Integer customerType;
/**
* 电话
*/
private String phone;
/**
* 等级
*/
private Integer pkGrade;
/**
* 奖衔
*/
private Integer pkAwards;
/**
* 团队
*/
private Long pkCenterCode;
/**
* 体系
*/
private Long pkVertex;
/**
* 结算等级
*/
private Integer pkSettleCountry;
/**
* A区首购累计业绩
*/
private BigDecimal aSumPv;
/**
* B区首购累计业绩
*/
private BigDecimal bSumPv;
/**
* A区复购累计业绩
*/
private BigDecimal repASumPv;
/**
* B区复购累计业绩
*/
private BigDecimal repBSumPv;
/**
* 注册累计业绩
*/
private BigDecimal registerPv;
/**
* 升级累计业绩
*/
private BigDecimal upgradePv;
/**
* 复购累计业绩
*/
private BigDecimal repurchasePv;
/**
* 嗨粉累计业绩
*/
private BigDecimal hiFunPv;
/**
* 商城累计业绩
*/
private BigDecimal mallPv;
}

View File

@ -71,26 +71,6 @@
on a.pk_member=cu.pk_id
where rownum &lt;= 3
</select>
<select id="queryCuMemberMonthAchieveRepurchase" resultMap="CuMemberMonthAchieve">
select rownum rank, nvl(cu.nick_name, cu.member_name) member_name, cu.head_path,a.money from (
select pk_member,sum(repurchase_money) money from CU_MEMBER_MONTH_ACHIEVE
where del_flag = 0 and pk_country=#{pkCountry}
and period between #{startPeriod} and #{endPeriod}
group by pk_member
order by sum(repurchase_money) desc) a
inner join cu_member cu
on a.pk_member=cu.pk_id
where rownum &lt;= 3
</select>
<select id="queryCuMemberMonthInfo" resultType="com.hzs.member.achieve.vo.CuMemberMonthVo">
select PK_MEMBER pkMember,PK_PARENT pkParent,PK_PLACE_PARENT pkPlaceParent,PLACE_DEPT placeDept,MEMBER_CODE memberCode,MEMBER_NAME memberName,
CUSTOMER_TYPE customerType, PHONE phone ,PK_GRADE pkGrade ,PK_AWARDS pkAwards,PK_TEAM_CODE pkTeamCode,PK_CENTER_CODE pkCenterCode,
PK_VERTEX pkVertex ,PK_SETTLE_COUNTRY pkSettleCountry ,A_SUM_PV aSumPv,B_SUM_PV bSumPv,REP_A_SUM_PV repASumPv, REP_B_SUM_PV repBSumPv,
REGISTER_PV registerPv, UPGRADE_PV upgradePv,REPURCHASE_PV repurchasePv,HI_FUN_PV hiFunPv,MALL_PV mallPv
from ${achieveTable} where PK_MEMBER = #{pkMember}
</select>
<select id="queryCuMemberMonthAchieveInfo" resultType="com.hzs.member.achieve.controller.vo.RealPerformanceVo">
select nvl(sum(A_NEW_PV),0) firstLeftPurchaseTotal,nvl(sum(B_NEW_PV),0) firstRightPurchaseTotal,nvl(sum(REP_A_NEW_PV),0) firstLeftRepurchaseTotal,nvl(sum(REP_B_NEW_PV),0) firstRightRepurchaseTotal

View File

@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 会员月数据
* </p>
*
* @author hzs
* @since 2023-06-06
*/
@Data
@EqualsAndHashCode(callSuper = true)