From f9e40800aa15abd4cfd2799f334b015e6f13629c Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 16 Mar 2026 11:21:38 +0800
Subject: [PATCH] feat(yinhe): 新增智能体系统功能并调整配置

---
 src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java |  322 +++++++++++++++++++++++++++--------------------------
 1 files changed, 165 insertions(+), 157 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java
index 59411bf..d9ec3fe 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java
@@ -11,6 +11,7 @@
 import cc.mrbird.febs.mall.service.IMallAchieveService;
 import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
 import cc.mrbird.febs.mall.service.IMemberProfitService;
+import cc.mrbird.febs.rabbit.producter.AgentProducer;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
@@ -36,163 +37,170 @@
 @ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true")
 public class OrderSettlementJob {
 
-    @Autowired
-    private MallOrderInfoMapper mallOrderInfoMapper;
-
-    @Autowired
-    private MallOrderItemMapper mallOrderItemMapper;
-
-    @Autowired
-    private IApiMallMemberWalletService memberWalletService;
-
-    @Autowired
-    private IMallMoneyFlowService mallMoneyFlowService;
-
-    @Autowired
-    private MallMemberMapper mallMemberMapper;
-
-    @Autowired
-    private MallGoodsSkuMapper mallGoodsSkuMapper;
-
-    @Autowired
-    private MallLeaderAchieveMapper mallLeaderAchieveMapper;
-
-    @Autowired
-    private MallTeamLeaderMapper mallTeamLeaderMapper;
-
-    @Autowired
-    private DataDictionaryCustomMapper dataDictionaryCustomMapper;
-
-    @Autowired
-    private IMemberProfitService memberProfitService;
-
-    @Autowired
-    private IMallAchieveService mallAchieveService;
-
-    /**
-     * 普通商品结算
-     */
-    @Scheduled(cron = "0 0 0 * * ?")
-    public void normalGoodsSettlementJob() {
-        log.info("普通商品结算");
-        List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10));
-        if (CollUtil.isEmpty(orderInfos)) {
-            return;
-        }
-
-        for (MallOrderInfo orderInfo : orderInfos) {
-            MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId());
-            if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
-                continue;
-            }
-
-            for (MallOrderItem item : orderInfo.getItems()) {
-                MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId());
-                BigDecimal score = sku.getPresentPrice();
-
-                memberWalletService.add(score, member.getId(), "score");
-                mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
-
-                mallAchieveService.add(item.getId());
-            }
-
-            // 普通商品动态分红结算
-            memberProfitService.dynamicProfit(orderInfo.getId(), 1);
-        }
-    }
-
-    /**
-     * 自动确认收货
-     */
+//    @Autowired
+//    private MallOrderInfoMapper mallOrderInfoMapper;
+//
+//    @Autowired
+//    private MallOrderItemMapper mallOrderItemMapper;
+//
+//    @Autowired
+//    private IApiMallMemberWalletService memberWalletService;
+//
+//    @Autowired
+//    private IMallMoneyFlowService mallMoneyFlowService;
+//
+//    @Autowired
+//    private MallMemberMapper mallMemberMapper;
+//
+//    @Autowired
+//    private MallGoodsSkuMapper mallGoodsSkuMapper;
+//
+//    @Autowired
+//    private MallLeaderAchieveMapper mallLeaderAchieveMapper;
+//
+//    @Autowired
+//    private MallTeamLeaderMapper mallTeamLeaderMapper;
+//
+//    @Autowired
+//    private DataDictionaryCustomMapper dataDictionaryCustomMapper;
+//
+//    @Autowired
+//    private IMemberProfitService memberProfitService;
+//
+//    @Autowired
+//    private IMallAchieveService mallAchieveService;
+//
+//    @Autowired
+//    private AgentProducer agentProducer;
+//
+//    /**
+//     * 普通商品结算
+//     */
+////    @Scheduled(cron = "0 0 0 * * ?")
+////    public void normalGoodsSettlementJob() {
+////        log.info("普通商品结算");
+////        List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10));
+////        if (CollUtil.isEmpty(orderInfos)) {
+////            return;
+////        }
+////
+////        for (MallOrderInfo orderInfo : orderInfos) {
+////            MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId());
+////            if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
+////                continue;
+////            }
+////
+////            for (MallOrderItem item : orderInfo.getItems()) {
+////                MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId());
+////                BigDecimal score = sku.getPresentPrice();
+////
+////                memberWalletService.add(score, member.getId(), "score");
+////                mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
+////
+////                mallAchieveService.add(item.getId());
+////            }
+////
+////            // 普通商品动态分红结算
+////            memberProfitService.dynamicProfit(orderInfo.getId(), 1);
+////        }
+////    }
+//
+//    /**
+//     * 自动确认收货
+//     */
 //    @Scheduled(cron = "0 0 0 * * ?")
-
-    @Scheduled(cron = "1 * * * * ?")
-    public void orderAutoConfirmJob() {
-        log.info("自动确认收货");
-        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.OEDER_AUTO_CONFIRM.getType(), DataDictionaryEnum.OEDER_AUTO_CONFIRM.getCode());
-        Integer value = Integer.parseInt(dic.getValue());
-        List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value));
-        if(CollUtil.isNotEmpty(orderInfos)){
-            for(MallOrderInfo orderInfo : orderInfos){
-                MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode());
-                Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch();
-                if(1 == profitSwitch){
-                    BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent());
-//                DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode());
-//                BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
-                    //生成一条团长提成记录
-                    Long id = orderInfo.getId();
-                    List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
-                    if(CollUtil.isNotEmpty(mallOrderItemList)){
-                        for(MallOrderItem mallOrderItem : mallOrderItemList){
-                            Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState();
-                            if(1 == state){
-                                MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
-                                mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
-                                mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
-                                mallLeaderAchieve.setOrderItemId(mallOrderItem.getId());
-                                BigDecimal itemAmount = mallOrderItem.getAmount();
-                                mallLeaderAchieve.setAmount(itemAmount);
-                                BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN);
-                                mallLeaderAchieve.setProfitAmount(bigDecimal);
-                                mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
-                                mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
-                                mallLeaderAchieveMapper.insert(mallLeaderAchieve);
-                            }
-                        }
-                    }
-                }
-            }
-            mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value));
-        }
-    }
-    /**
-     * 团长第二天才会结算前一天的所有提成
-     * 从团长业绩表中查询出前一天的所有已完成订单金额*提成系数,得到今日提成
-     * 修改业绩的状态
-     * 并生成一条提成流水
-     */
-    @Scheduled(cron = "0 0 1 * * ?")
-//    @Scheduled(cron = "1 * * * * ?")
-    public void leaderAchieveAuto() {
-        log.info("团长每日提成");
-        //获取每日提成总数
-        /**
-         * a.unique_code uniqueCode 团长特征码
-         * , IFNULL(sum(a.amount),0) amount 每日提成总金额
-         */
-            DateTime dateTime = DateUtil.offsetDay(new Date(), -1);
-//        DateTime dateTime = DateUtil.offsetDay(new Date(), 0);
-        List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime);
-        if (CollUtil.isNotEmpty(allLeaderAchieve)) {
-            for (Map<String, String> map : allLeaderAchieve) {
-                String uniqueCode = map.get("uniqueCode");
-                Object profitAmount = map.get("profitAmount");
-
-                MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode);
-                Integer profitSwitch = mallTeamLeader.getProfitSwitch();
-                if(1 == profitSwitch){
-                    //直接舍弃小数点的第三位
-                    BigDecimal achieveMoney = new BigDecimal(String.valueOf(profitAmount)).setScale(2,BigDecimal.ROUND_DOWN);
-                    MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode);
-                    memberWalletService.addBalance(achieveMoney,mallMember.getId());
-                    String achieveNo = "TC."+ MallUtils.getOrderNum();
-                    mallMoneyFlowService.addMoneyFlow(
-                            mallMember.getId(),
-                            achieveMoney,
-                            MoneyFlowTypeEnum.LEADERACHIEVE.getValue(),
-                            achieveNo,
-                            FlowTypeEnum.BALANCE.getValue());
-
-                    //更新到已提成状态
-                    mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime);
-                }
-            }
-        }
-    }
-
-//    public static void main(String[] args) {
-//        BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN);
-//        System.out.println(bigDecimal);
+//
+////    @Scheduled(cron = "1 * * * * ?")
+//    public void orderAutoConfirmJob() {
+//        log.info("自动确认收货");
+//        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.OEDER_AUTO_CONFIRM.getType(), DataDictionaryEnum.OEDER_AUTO_CONFIRM.getCode());
+//        Integer value = Integer.parseInt(dic.getValue());
+//        List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value));
+//        if(CollUtil.isNotEmpty(orderInfos)){
+////            for(MallOrderInfo orderInfo : orderInfos){
+////                MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode());
+////                Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch();
+////                if(1 == profitSwitch){
+////                    BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent());
+//////                DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode());
+//////                BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
+////                    //生成一条团长提成记录
+////                    Long id = orderInfo.getId();
+////                    List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
+////                    if(CollUtil.isNotEmpty(mallOrderItemList)){
+////                        for(MallOrderItem mallOrderItem : mallOrderItemList){
+////                            Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState();
+////                            if(1 == state){
+////                                MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
+////                                mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
+////                                mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
+////                                mallLeaderAchieve.setOrderItemId(mallOrderItem.getId());
+////                                BigDecimal itemAmount = mallOrderItem.getAmount();
+////                                mallLeaderAchieve.setAmount(itemAmount);
+////                                BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN);
+////                                mallLeaderAchieve.setProfitAmount(bigDecimal);
+////                                mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
+////                                mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
+////                                mallLeaderAchieveMapper.insert(mallLeaderAchieve);
+////                            }
+////                        }
+////                    }
+////                }
+////            }
+//            mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value));
+//
+//            orderInfos.forEach(item -> {
+//                agentProducer.sendGetScoreMsg(item.getId());
+//            });
+//        }
 //    }
+//    /**
+//     * 团长第二天才会结算前一天的所有提成
+//     * 从团长业绩表中查询出前一天的所有已完成订单金额*提成系数,得到今日提成
+//     * 修改业绩的状态
+//     * 并生成一条提成流水
+//     */
+////    @Scheduled(cron = "0 0 1 * * ?")
+//////    @Scheduled(cron = "1 * * * * ?")
+////    public void leaderAchieveAuto() {
+////        log.info("团长每日提成");
+////        //获取每日提成总数
+////        /**
+////         * a.unique_code uniqueCode 团长特征码
+////         * , IFNULL(sum(a.amount),0) amount 每日提成总金额
+////         */
+////            DateTime dateTime = DateUtil.offsetDay(new Date(), -1);
+//////        DateTime dateTime = DateUtil.offsetDay(new Date(), 0);
+////        List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime);
+////        if (CollUtil.isNotEmpty(allLeaderAchieve)) {
+////            for (Map<String, String> map : allLeaderAchieve) {
+////                String uniqueCode = map.get("uniqueCode");
+////                Object profitAmount = map.get("profitAmount");
+////
+////                MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode);
+////                Integer profitSwitch = mallTeamLeader.getProfitSwitch();
+////                if(1 == profitSwitch){
+////                    //直接舍弃小数点的第三位
+////                    BigDecimal achieveMoney = new BigDecimal(String.valueOf(profitAmount)).setScale(2,BigDecimal.ROUND_DOWN);
+////                    MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode);
+////                    memberWalletService.addBalance(achieveMoney,mallMember.getId());
+////                    String achieveNo = "TC."+ MallUtils.getOrderNum();
+////                    mallMoneyFlowService.addMoneyFlow(
+////                            mallMember.getId(),
+////                            achieveMoney,
+////                            MoneyFlowTypeEnum.LEADERACHIEVE.getValue(),
+////                            achieveNo,
+////                            FlowTypeEnum.BALANCE.getValue());
+////
+////                    //更新到已提成状态
+////                    mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime);
+////                }
+////            }
+////        }
+////    }
+//
+////    public static void main(String[] args) {
+////        BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN);
+////        System.out.println(bigDecimal);
+////    }
 }

--
Gitblit v1.9.1