From 3d3960a3b3d1057db9d2f4016512915e7a5c517d Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 25 Sep 2025 09:56:21 +0800 Subject: [PATCH] feat(ai): 集成百炼工作流实现AI流式对话功能 - 新增百炼工作流SDK相关依赖和工具类 - 实现llmInvokeStreamingWithThink方法用于流式调用 - 配置API Key和应用ID以连接百炼平台 - 启用思考模式(enableThinking)和思维输出(hasThoughts) - 处理流式响应并封装为FebsResponse返回 - 添加异常处理机制捕获API调用错误 - 移除原有的静态提示词配置逻辑 -重构answerStreamV3接口直接调用新实现 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 34 +++++++++++++++++++++++++++++----- 1 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index e674534..e7e5c42 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -34,6 +34,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; @@ -287,8 +288,8 @@ delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount(); orderInfo.setCarriage(delivaryAmount); }else{ - MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode()); - if(mallTeamLeader!=null){ + MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(addOrderDto.getTakeUniqueCode()); + if(ObjectUtil.isEmpty(mallTeamLeader)){ throw new FebsException("自提点信息异常"); } orderInfo.setCarriage(delivaryAmount); @@ -871,8 +872,15 @@ } } - MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId()); - if(ObjectUtil.isNotEmpty(expressInfo)){ + MallExpressInfo expressInfo = expressInfoMapper.selectOne( + Wrappers.lambdaQuery(MallExpressInfo.class) + .eq(MallExpressInfo::getOrderId, orderInfo.getId()) + .eq(MallExpressInfo::getOrderNo, orderInfo.getOrderNo()) + .last("limit 1") + ); + +// MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId()); + if(ObjectUtil.isNotNull(expressInfo)){ orderDetailVo.setExpressNo(expressInfo.getExpressNo()); orderDetailVo.setExpressCom(expressInfo.getExpressCom()); } @@ -896,7 +904,13 @@ @Transactional(rollbackFor = Exception.class) public void confirmOrder(Long id) { MallMember member = LoginUserUtil.getLoginUser(); - MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id); +// MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id); + MallOrderInfo orderInfo = this.baseMapper.selectOne( + new LambdaQueryWrapper<MallOrderInfo>() + .eq(MallOrderInfo::getMemberId, member.getId()) + .eq(MallOrderInfo::getId, id) + .last("limit 1") + ); if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) { throw new FebsException("订单不存在"); } @@ -904,6 +918,16 @@ if (orderInfo.getStatus() != OrderStatusEnum.WAIT_FINISH.getValue()) { throw new FebsException("该状态不能确认收货"); } + if(orderInfo.getDeliveryType().equals(1)){ + List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectList( + new LambdaQueryWrapper<MallOrderItem>() + .eq(MallOrderItem::getOrderId, id) + .eq(MallOrderItem::getLeaderState, 0) + ); + if(CollUtil.isNotEmpty(mallOrderItems)){ + throw new FebsException("请先核销"+mallOrderItems.get(0).getGoodsName()); + } + } List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(null, orderInfo.getId(), 3); if(CollUtil.isNotEmpty(mallRefundEntities)){ -- Gitblit v1.9.1