From ab4ea7b8f10c9b66aed9c2ea161a08b25c3851a7 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 30 四月 2024 19:11:37 +0800
Subject: [PATCH] 2024.04新增内容

---
 meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallOrderController.java |  112 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 74 insertions(+), 38 deletions(-)

diff --git a/meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallOrderController.java b/meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallOrderController.java
index 0f24d38..521f66e 100644
--- a/meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallOrderController.java
+++ b/meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallOrderController.java
@@ -1,11 +1,10 @@
 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.EnumCityRole;
 import com.sinata.common.enums.EnumIsDelete;
 import com.sinata.common.enums.mall.EnumMallOrderState;
 import com.sinata.common.util.QRCodeUtils;
@@ -17,8 +16,17 @@
 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.service.*;
+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.IMallGoodsService;
+import com.sinata.rest.modular.mall.service.IMallGoodsSkuService;
+import com.sinata.rest.modular.mall.service.IMallGroupSpecService;
+import com.sinata.rest.modular.mall.service.IMallOrderDetailGroupSpecService;
+import com.sinata.rest.modular.mall.service.IMallOrderDetailService;
+import com.sinata.rest.modular.mall.service.IMallOrderMainService;
+import com.sinata.rest.modular.mall.service.IMallOrderService;
 import com.sinata.rest.modular.member.model.MemUser;
 import com.sinata.rest.modular.member.model.MyCoupon;
 import com.sinata.rest.modular.member.service.IMyCouponService;
@@ -27,16 +35,30 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * 订单接口
@@ -76,6 +98,9 @@
     @Autowired
     private IMallGroupSpecService mallGroupSpecService;
 
+    @Autowired
+    private IMallOrderDetailGroupSpecService mallOrderDetailGroupSpecService;
+
     @GetMapping(value = "/list")
     @ApiOperation(value = "获取订单列表", notes = "获取订单列表")
     @ApiImplicitParams({
@@ -114,52 +139,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) {

--
Gitblit v1.7.1