Administrator
2025-05-27 c6ac1561db0b2f1c8e3a799d7f49808f4bae67c7
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -281,10 +281,21 @@
        mallMemberCoupon.setState(2);
        mallMemberCouponMapper.updateById(mallMemberCoupon);
        //运费
        BigDecimal delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount();
        orderInfo.setCarriage(delivaryAmount);
        BigDecimal delivaryAmount = BigDecimal.ZERO;
        if(StrUtil.isEmpty(addOrderDto.getTakeUniqueCode())){
            delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount();
            orderInfo.setCarriage(delivaryAmount);
        }else{
            MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(addOrderDto.getTakeUniqueCode());
            if(ObjectUtil.isEmpty(mallTeamLeader)){
                throw new FebsException("自提点信息异常");
            }
            orderInfo.setCarriage(delivaryAmount);
            orderInfo.setTakeCode(ShareCodeUtil.toSerialCode(orderInfo.getId()) + MallUtils.getRandomNum(10));
            orderInfo.setTakeUniqueCode(mallTeamLeader.getUniqueCode());
            orderInfo.setDeliveryType(1);
        }
        total = total.add(delivaryAmount);
        orderInfo.setAmount(total);
        orderInfo.setScoreAmount(totalScoreAmount);
@@ -300,6 +311,7 @@
        orderInfo.setLatitude(address.getLatitude());
        orderInfo.setLongitude(address.getLongitude());
        this.baseMapper.updateById(orderInfo);
        //过期时间修改成24小时
        agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(),  24 * 60 * 60 * 1000L);
        return orderInfo.getId();
@@ -699,7 +711,7 @@
                    orderInfo.setPayOrderNo(payResultStr);
                    orderInfo.setPayMethod("支付宝支付");
                    agentProducer.sendOrderReturn(orderInfo.getId());
//                    agentProducer.sendOrderReturn(orderInfo.getId());
                    break;
                case "3":
@@ -843,7 +855,21 @@
//            }
//        }
        OrderDetailVo orderDetailVo = MallOrderInfoConversion.INSTANCE.entityToDetailVo(orderInfo);
        if(StrUtil.isNotEmpty(orderInfo.getTakeUniqueCode())){
            MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode());
            if(ObjectUtil.isNotEmpty(mallTeamLeader)){
                orderDetailVo.setLeaderName(mallTeamLeader.getName());
                orderDetailVo.setLeaderPhone(mallTeamLeader.getPhone());
                orderDetailVo.setAddressPic(mallTeamLeader.getAddressPic());
                orderDetailVo.setAddressArea(mallTeamLeader.getAddressArea());
                orderDetailVo.setDetailAddress(mallTeamLeader.getDetailAddress());
                orderDetailVo.setLeaderLongitude(mallTeamLeader.getLongitude());
                orderDetailVo.setLeaderLatitude(mallTeamLeader.getLatitude());
            }
        }
        MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId());
        if(ObjectUtil.isNotEmpty(expressInfo)){
@@ -870,7 +896,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("订单不存在");
        }
@@ -878,6 +910,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)){