From 34c755eb76b677201cadb2acb8ed5fff1f96dc27 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 23 Jan 2024 14:06:34 +0800 Subject: [PATCH] 发票 --- src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 216 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 173 insertions(+), 43 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java index b223c47..bad1723 100644 --- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java +++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java @@ -7,8 +7,10 @@ import cc.mrbird.febs.mall.entity.MallMoneyFlow; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper; +import cc.mrbird.febs.mall.service.IAgentService; import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; +import cc.mrbird.febs.mall.service.IMemberProfitService; import cc.mrbird.febs.mall.service.impl.CommonService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; @@ -34,54 +36,182 @@ public class ProfitJob { @Autowired - private MallMoneyFlowMapper moneyFlowMapper; - + private IMemberProfitService memberProfitService; @Autowired - private MallMemberMapper memberMapper; + private IAgentService agentService; - @Autowired - private IApiMallMemberWalletService memberWalletService; + /** + * 代理分红 + */ +// @Scheduled(cron = "0 30 0 * * ?") +// public void profitJob() { +// memberProfitService.agentProfit(null); +// } - @Autowired - private IApiMallMemberService memberService; +// @Scheduled(cron = "0 30 1 * * ?") +// public void storeAndDirectorJob() { +// memberProfitService.storeAndDirectorProfit(null); +// } - @Scheduled(cron = "0 1 0 * * ?") - @Transactional(rollbackFor = Exception.class) - public void profitJob() { - log.info("推荐人返利执行"); - DateTime yesterday = DateUtil.yesterday(); - List<MallMoneyFlow> flows = moneyFlowMapper.selectMoneyFlowProfitByDate(yesterday); +// /** +// * 线下服务中心补贴 +// */ +// @Scheduled(cron = "0 0 1 * * ?") +// public void thankfulJob() { +// memberProfitService.thankfulProfit(null); +// } - if (CollUtil.isEmpty(flows)) { - return; - } +// /** +// * 代理商补贴 TODO 需要去掉注释 +// */ +// @Scheduled(cron = "0 0 1 * * ?") +// public void agentPerkJob() { +// memberProfitService.agentPerkJob(null); +// } +// +// /** +// * 线下服务中心补贴 +// */ +// @Scheduled(cron = "0 0 1 * * ?") +// public void offLinePerkJob() { +// memberProfitService.offLinePerkJob(null); +// } +// +// /** +// * 平级奖励补贴 +// */ +// @Scheduled(cron = "0 0 1 * * ?") +// public void teamEqualsPerkJob() { +// memberProfitService.teamEqualsPerkJob(null); +// } +// +// /** +// * 补贴消息--重试 +// * 一个小时运行一次 +// */ +// @Scheduled(cron = "0 0/5 * * * ?") +// public void mqPerkRetryJob() { +// memberProfitService.mqPerkRetryJob(); +// } +// /** +// * 联创、合伙人的每日绿色凭证释放 +// */ +// @Scheduled(cron = "0 0 1 * * ?") +// public void scoreRecordReleaseJob() { +// memberProfitService.scoreRecordReleaseJob(); +// } +// +// /** +// * 业绩产生凭证 +// */ +// @Scheduled(cron = "0 0 1 * * ?") +// public void achieveReleaseJob() { +// memberProfitService.achieveReleaseJob(); +// } +// +// /** +// * 代理星级补贴 +// */ +// @Scheduled(cron = "0 0 0 * * ?") +// public void perkAgentAchieveJob() { +// agentService.perkAgent(); +// } - for (MallMoneyFlow flow : flows) { - MallMember member = memberMapper.selectById(flow.getMemberId()); - - List<MallMember> child = memberMapper.selectByIdAndNoLevel(member.getInviteId(), AgentLevelEnum.ZERO_LEVEL.name()); - if (CollUtil.isEmpty(child)) { - continue; - } - int size = child.size(); - BigDecimal needReturn = flow.getAmount().multiply(BigDecimal.valueOf(0.1)); - - String orderNo = MallUtils.getOrderNum("R"); - String remarkFormat = "{}, 用户:{}, 利润分红: {}"; - - BigDecimal returnMoney = needReturn.divide(BigDecimal.valueOf(size), 2, RoundingMode.DOWN); - for (MallMember mallMember : child) { - memberWalletService.addBalance(returnMoney, mallMember.getId()); - - String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), returnMoney); - memberService.addMoneyFlow(mallMember.getId(), returnMoney, MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, member.getId(), null); - } - - String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), needReturn); - memberService.addMoneyFlow(member.getId(), needReturn.negate(), MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, null, null); - memberWalletService.reduceBalance(needReturn, member.getId()); - - moneyFlowMapper.updateIsReturnByMemberId(MallMoneyFlow.IS_RETURN_Y, flow.getMemberId()); - } + /** + * 用户预约完成之后,根据产品周期,将用户买单变成买单 + */ + @Scheduled(cron = "0 0 2 * * ?") + public void BuyToSell() { + agentService.BuyToSell(); } + + + /** + * 用户等级升级 + */ + @Scheduled(cron = "0 0 0 * * ?") + public void memberLevelUp() { + agentService.memberLevelUp(); + } + + /** + * 买单 + * 看是否是开始显示订单的时间段,超出结束时间的买单,全部超时失败 + */ + @Scheduled(cron = "0 0/30 * * * ? ") + public void timeGetOrderBuy() { + agentService.timeGetOrderBuy(); + } + + /** + * 买单 + * 看是否是开始显示订单的时间段,超出结束时间的买单,全部超时返还令牌 + */ + @Scheduled(cron = "0 0/30 * * * ? ") + public void timeGetOrderBuyCancel() { + agentService.timeGetOrderBuyCancel(); + } + + + /** + * 直推奖励 + * 从冻结到可用 + */ + @Scheduled(cron = "0 0 0/2 * * ? ") + public void basicMemberPerk() { + agentService.basicMemberPerk(); + } + + /** + * 团队奖励 + */ + @Scheduled(cron = "0 0 0/2 * * ? ") + public void teamMemberPerk() { + agentService.teamMemberPerk(); + } + + /** + * 平级奖励 + */ + @Scheduled(cron = "0 0 0/2 * * ? ") + public void equalsMemberPerk() { + agentService.equalsMemberPerk(); + } + +// /** +// * 卖单 +// * 看是否是开始显示订单的时间段,超出结束时间的卖单,全部超时失败 +// */ +// @Scheduled(cron = "0 0/30 * * * ? ") +// public void timeGetOrderSell() { +// agentService.timeGetOrderSell(); +// } + + + + + /** + * 静态分红 + */ +// @Scheduled(cron = "0 0 0 * * ?") +// public void staticProfitJob() { +// memberProfitService.staticProfit(null); +// } + + /** + * 排名奖 每月1号 + */ +// @Scheduled(cron = "0 30 0 1 * ?") +// public void rankJob() { +// memberProfitService.rankProfit(); +// } + + /** + * 积分池,所有消费拿出10%放到积分池,然后按1%每天释放加权平分 + */ +// @Scheduled(cron = "0 0 2 * * ?") +// @Scheduled(cron = "0 0/5 * * * ? ") +// public void scorePool() { +// memberProfitService.scorePool(); +// } } -- Gitblit v1.9.1