From 413a57e2524cb0b839d5d83d961de3b59814eb6e Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 24 Oct 2025 16:53:11 +0800
Subject: [PATCH] feat(ai): 实现产品依赖解锁功能 - 在AiMemberAnswerServiceImpl中注入AiProductDependencyService和AiMemberProductUnlockService - 修改insure方法,根据答题分数解锁符合条件的产品 - 新增selectListByProductIds和insertList方法到AiMemberProductUnlockService - 实现产品依赖关系查询方法selectListByProductId到AiProductDependencyService- 在AiProductServiceImpl中增加产品状态判断逻辑,支持锁定和解锁状态显示 - 添加memberId字段到ApiProductPageDto用于查询用户已解锁产品 - 在ApiProductVo中新增state字段表示产品锁定/解锁状态

---
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index c7990b9..00ea979 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -15,6 +15,7 @@
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -27,6 +28,7 @@
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author wzy
@@ -46,6 +48,7 @@
     private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
     private final MallMoneyFlowMapper mallMoneyFlowMapper;
     private final MallAchieveRecordMapper mallAchieveRecordMapper;
+    private final MallMemberCouponMapper mallMemberCouponMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -281,7 +284,7 @@
             }
 
             BigDecimal income = profit.multiply(profitProp).divide(BigDecimal.valueOf(agentMemberList.size()), 2, RoundingMode.HALF_UP);
-            if (income.compareTo(BigDecimal.ZERO) > 0) {
+            if (income.compareTo(BigDecimal.ZERO) < 1) {
                 continue;
             }
 
@@ -477,4 +480,22 @@
         }
         log.info("#####==店补/董事==end==######");
     }
+
+    @Override
+    public void getOrderCoupon(Long orderId) {
+        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderId);
+        if(CollUtil.isNotEmpty(mallOrderItemList)){
+            List<Long> memberCouponIds = mallOrderItemList.stream().map(MallOrderItem::getMemberCouponId).collect(Collectors.toList());
+            if(CollUtil.isNotEmpty(memberCouponIds)){
+                for(Long memberCouponId : memberCouponIds){
+                    MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId);
+                    if(ObjectUtil.isEmpty(mallMemberCoupon)){
+                        continue;
+                    }
+                    mallMemberCoupon.setState(2);
+                    mallMemberCouponMapper.updateById(mallMemberCoupon);
+                }
+            }
+        }
+    }
 }

--
Gitblit v1.9.1