From e2bd522c69969233f7b2835b69bb27702ed09c92 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 04 Aug 2025 18:13:24 +0800 Subject: [PATCH] feat(ai): 新增答题功能 - 新增答题记录接口和相关实体类 - 实现开始答题、答题、提交和上一题功能 - 添加答题记录和题目相关查询接口 - 优化答题流程和数据结构 --- src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java index 1343f35..31a2347 100644 --- a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java @@ -42,6 +42,7 @@ public class VipCommonServiceImpl implements IVipCommonService { private final MallOrderInfoMapper mallOrderInfoMapper; + private final MallOrderItemMapper mallOrderItemMapper; private final IMallVipConfigService mallVipConfigService; private final IMallMoneyFlowService mallMoneyFlowService; private final IApiMallMemberWalletService mallMemberWalletService; @@ -279,7 +280,7 @@ .eq(MallMember::getAccountStatus, MallMember.ACCOUNT_STATUS_ENABLE) .eq(MallMember::getAccountType, MallMember.ACCOUNT_TYPE_NORMAL) .ne(MallMember::getStoreMaster, 0) - .orderByAsc(MallMember::getStoreMaster) + .orderByDesc(MallMember::getId) .last("limit 1") ); // 如果没有找到符合条件的团长,则记录日志并返回 @@ -298,15 +299,24 @@ return; } // 计算返佣金额 + List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectList( + new LambdaQueryWrapper<MallOrderItem>() + .eq(MallOrderItem::getOrderId, orderId) + .eq(MallOrderItem::getState, 1) + ); + if(CollUtil.isEmpty(mallOrderItems)){ + return; + } + BigDecimal amount = mallOrderItems.stream().map(MallOrderItem::getLevelOnePrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal returnPercent = happySaleLevel.getReturnPercent(); - BigDecimal multiply = mallOrderInfo.getAmount().multiply(returnPercent).setScale(2, RoundingMode.HALF_DOWN); + BigDecimal multiply = amount.multiply(returnPercent).setScale(2, RoundingMode.HALF_DOWN); log.info("团长获得返佣:{}",multiply); // 如果返佣金额小于等于0,则直接返回 if(BigDecimal.ZERO.compareTo(multiply) >=0){ return; } // 如果返佣金额大于等于订单金额,则直接返回 - if(multiply.compareTo(mallOrderInfo.getAmount()) >= 0){ + if(multiply.compareTo(amount) > 0){ return; } // 记录团长获得返佣 -- Gitblit v1.9.1