mitao
2024-04-11 44174ecd40c58060ff6c64d2ad874b8afaf2ae7f
meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallOrderController.java
@@ -1,10 +1,8 @@
package com.sinata.rest.modular.mall.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sinata.common.enums.EnumIsDelete;
import com.sinata.common.enums.mall.EnumMallOrderState;
@@ -17,7 +15,10 @@
import com.sinata.rest.modular.mall.controller.vo.VoGoodsSku;
import com.sinata.rest.modular.mall.controller.vo.VoMallOrder;
import com.sinata.rest.modular.mall.controller.vo.VoMallOrderDetail;
import com.sinata.rest.modular.mall.model.*;
import com.sinata.rest.modular.mall.controller.vo.VoMallOrderDetailGroupSpecGoods;
import com.sinata.rest.modular.mall.model.MallOrder;
import com.sinata.rest.modular.mall.model.MallOrderDetail;
import com.sinata.rest.modular.mall.model.MallOrderMain;
import com.sinata.rest.modular.mall.service.*;
import com.sinata.rest.modular.member.model.MemUser;
import com.sinata.rest.modular.member.model.MyCoupon;
@@ -36,7 +37,6 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 订单接口
@@ -76,6 +76,9 @@
    @Autowired
    private IMallGroupSpecService mallGroupSpecService;
    @Autowired
    private IMallOrderDetailGroupSpecService mallOrderDetailGroupSpecService;
    @GetMapping(value = "/list")
    @ApiOperation(value = "获取订单列表", notes = "获取订单列表")
    @ApiImplicitParams({
@@ -114,52 +117,63 @@
            @ApiImplicitParam(name = "orderNo", value = "订单编号", defaultValue = "1", dataType = "String", paramType = "query", required = true),
    })
    public ApiUtils<VoMallOrder> detail(String orderNo) {
        VoMallOrder order = orderService.getOrderByOrderNo(orderNo);
        if (order == null) {
        VoMallOrder o = orderService.getOrderByOrderNo(orderNo);
        if (o == null) {
            return ApiUtils.returnNG(null, "订单信息不存在");
        }
        wrapperVoMallOrder(orderNo, o);
        return ApiUtils.returnOK(o);
    }
    public VoMallOrder wrapperVoMallOrder(String orderNo, VoMallOrder voMallOrder) {
        try {
            order.setOrderCode(QRCodeUtils.crateQRCode(orderNo, 200, 200));
            voMallOrder.setOrderCode(QRCodeUtils.crateQRCode(orderNo, 200, 200));
        } catch (Exception e) {
            e.printStackTrace();
        }
        List<VoMallOrderDetail> detailList = orderService.getOrderDetailByOrderNoList(orderNo);
        for (VoMallOrderDetail od : detailList) {
            List<Integer> groupSpecGoodsIdList = new ArrayList<>();
            MallGoodsSku goodsSku = mallGoodsSkuService.getOne(
                    Wrappers.<MallGoodsSku>query().lambda()
                            .eq(MallGoodsSku::getGoodsId, od.getGoodsId())
                            .eq(MallGoodsSku::getMerchantId, 0)
                            .last("LIMIT 1")
            );
            if (goodsSku != null && StrUtil.isNotBlank(goodsSku.getSpecIds())) {
                String[] specIdArray = goodsSku.getSpecIds().split(",");
                List<MallGroupSpec> groupSpecList = mallGroupSpecService.list(
                        Wrappers.<MallGroupSpec>query().lambda()
                                .in(MallGroupSpec::getId, specIdArray)
                );
                for (MallGroupSpec mallGroupSpec : groupSpecList) {
                    groupSpecGoodsIdList.addAll(
                            Arrays.stream(mallGroupSpec.getGoodsIds().split(",")).map(Integer::parseInt).collect(Collectors.toList())
                    );
                }
            }
            if (groupSpecGoodsIdList != null && groupSpecGoodsIdList.size() > 0) {
                List<MallGoods> groupSpecGoodsList = mallGoodsService.list(
                        Wrappers.<MallGoods>query().lambda()
                                .in(MallGoods::getId, groupSpecGoodsIdList)
                );
                od.setGroupSpecGoodsList(groupSpecGoodsList);
            }
            List<VoMallOrderDetailGroupSpecGoods> voMallOrderDetailGroupSpecGoodsList = mallOrderDetailGroupSpecService.getListByOrderNo(null, od.getOrderDetailNo());
            od.setGroupSpecGoodsList(voMallOrderDetailGroupSpecGoodsList);
//            List<Integer> groupSpecGoodsIdList = new ArrayList<>();
//            MallGoodsSku goodsSku = mallGoodsSkuService.getById(od.getSkuId());
//            if (goodsSku != null && StrUtil.isNotBlank(goodsSku.getSpecIds())) {
//                String[] specIdArray = goodsSku.getSpecIds().split(",");
//                List<MallGroupSpec> groupSpecList = mallGroupSpecService.list(
//                        Wrappers.<MallGroupSpec>query().lambda()
//                                .in(MallGroupSpec::getId, specIdArray)
//                );
//                for (MallGroupSpec mallGroupSpec : groupSpecList) {
//                    groupSpecGoodsIdList.addAll(
//                            Arrays.stream(mallGroupSpec.getGoodsIds().split(",")).map(Integer::parseInt).collect(Collectors.toList())
//                    );
//                }
//            }
//            if (groupSpecGoodsIdList != null && groupSpecGoodsIdList.size() > 0) {
//                List<MallGoods> groupSpecGoodsList = mallGoodsService.list(
//                        Wrappers.<MallGoods>query().lambda()
//                                .in(MallGoods::getId, groupSpecGoodsIdList)
//                );
//                od.setGroupSpecGoodsList(groupSpecGoodsList);
//            }
        }
        order.setDetailList(detailList);
        return ApiUtils.returnOK(order);
        voMallOrder.setDetailList(detailList);
        return voMallOrder;
    }
    @GetMapping(value = "/getOrderDetailGroupSpecGoods")
    @ApiOperation(value = "获取订单套餐规格组商品列表", notes = "获取订单套餐规格组商品列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "orderNo", value = "订单编号", dataType = "String", paramType = "query", required = true),
    })
    public ApiUtils<List<VoMallOrderDetailGroupSpecGoods>> getOrderDetailGroupSpecGoods(String orderNo) {
        return ApiUtils.returnOK(mallOrderDetailGroupSpecService.getListByOrderNo(orderNo, null));
    }
    @GetMapping(value = "/getSkuByMerchant")
    @ApiOperation(value = "获取门店sku信息", notes = "获取门店sku信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "skuIds", value = "商品Sku串(逗号分隔)", defaultValue = "1", dataType = "String", paramType = "query", required = true),
            @ApiImplicitParam(name = "skuIds", value = "商品Sku串(逗号分隔)", dataType = "String", paramType = "query", required = true),
            @ApiImplicitParam(name = "merchantId", value = "门店ID", defaultValue = "1", dataType = "String", paramType = "query", required = true),
    })
    public List<VoGoodsSku> getSkuByMerchant(String skuIds, Integer merchantId) {