Administrator
2025-05-22 909804c31a95a9d76abd2c50761152e95bde5406
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -209,12 +209,16 @@
                    MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
                    // todo 纯积分商品一个账号限制购买一次
//                    if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
//                        List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
//                        if (CollUtil.isNotEmpty(items)) {
//                            throw new FebsException("积分商品一个账号只能购买一次");
//                        }
//                    }
                    if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
                        Integer cnt = item.getCnt();
                        if(1 < cnt){
                            throw new FebsException("积分商品限购一件");
                        }
                        List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
                        if (CollUtil.isNotEmpty(items)) {
                            throw new FebsException("积分商品一个账号限购一次");
                        }
                    }
                    if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
                        throw new FebsException(mallGoods.getGoodsName() + "已下架");
@@ -226,6 +230,7 @@
                    }
                    BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt()));
                    BigDecimal levelOnePrice = sku.getLevelOnePrice().multiply(BigDecimal.valueOf(item.getCnt()));
                    //是否使用优惠卷
                    if(ObjectUtil.isNotEmpty(addOrderDto.getMemberCouponId())){
                        Long memberCouponId = addOrderDto.getMemberCouponId();
@@ -238,6 +243,7 @@
                        }
                    }
                    orderItem.setAmount(amount);
                    orderItem.setLevelOnePrice(levelOnePrice);
                    orderItem.setScoreAmount(scoreAmountMap.get(item.getSkuId()));
                    orderItem.setCnt(item.getCnt());
                    orderItem.setOrderId(orderInfo.getId());
@@ -1086,6 +1092,7 @@
        if(CollUtil.isEmpty(mallOrderItemList)){
            return new FebsResponse().fail().message("订单不存在");
        }
        int i = 0;
        for(MallOrderItem mallOrderItem : mallOrderItemList){
            QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>();
            objectQueryWrapper.eq("member_id",member.getId());
@@ -1106,7 +1113,11 @@
                    mallRefundEntity.setType(3);
                }
                mallRefundEntity.setState(3);
                mallRefundEntity.setAmount(mallOrderItem.getAmount().add(mallOrderInfo.getCarriage()));
                if(i == 0){
                    mallRefundEntity.setAmount(mallOrderItem.getAmount().add(mallOrderInfo.getCarriage()));
                }else{
                    mallRefundEntity.setAmount(mallOrderItem.getAmount());
                }
                mallRefundMapper.insert(mallRefundEntity);
            }else{
                if(mallRefund.getState() == 1){
@@ -1129,6 +1140,7 @@
            apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId());
            apiLeaderRefundOrderDto.setAgreeState(1);
            iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto);
            i++;
        }
        return new FebsResponse().success();
    }