Browse Source

优化代码

java110 5 years ago
parent
commit
7242334201

+ 21 - 0
java110-bean/src/main/java/com/java110/dto/storeOrderCart/StoreOrderCartDto.java

@@ -1,9 +1,11 @@
 package com.java110.dto.storeOrderCart;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.product.ProductSpecDetailDto;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName FloorDto
@@ -33,12 +35,15 @@ public class StoreOrderCartDto extends PageDto implements Serializable {
     private String state;
     private String stateName;
     private String freightPrice;
+    private String specId;
 
 
     private Date createTime;
 
     private String statusCd = "0";
 
+    private List<ProductSpecDetailDto> productSpecDetails;
+
 
     public String getValueId() {
         return valueId;
@@ -176,4 +181,20 @@ public class StoreOrderCartDto extends PageDto implements Serializable {
     public void setStateName(String stateName) {
         this.stateName = stateName;
     }
+
+    public String getSpecId() {
+        return specId;
+    }
+
+    public void setSpecId(String specId) {
+        this.specId = specId;
+    }
+
+    public List<ProductSpecDetailDto> getProductSpecDetails() {
+        return productSpecDetails;
+    }
+
+    public void setProductSpecDetails(List<ProductSpecDetailDto> productSpecDetails) {
+        this.productSpecDetails = productSpecDetails;
+    }
 }

+ 2 - 1
java110-db/src/main/resources/mapper/goods/StoreOrderCartServiceDaoImplMapper.xml

@@ -21,11 +21,12 @@
         orderId,t.cart_id,t.cart_id cartId,t.remark,t.status_cd,t.status_cd statusCd,t.store_id,t.store_id
         storeId,t.cart_num,t.cart_num cartNum,t.price,t.pay_price,t.pay_price payPrice,t.person_id,t.person_id
         personId,t.state,t.freight_price,t.freight_price freightPrice,p.prod_name prodName,so.person_name personName,
-        td.name stateName,t.create_time createTime
+        td.name stateName,t.create_time createTime,psv.spec_id specId
         from store_order_cart t
         left join store_order so on t.order_id = so.order_id
         left join t_dict td on t.state = td.status_cd and td.table_name = 'store_order_cart' and td.table_columns = 'state'
         left join product p on t.product_id = p.product_id and p.status_cd = '0'  and p.store_id = t.store_id
+        left join product_spec_value psv on p.product_id = psv.product_id and psv.store_id = p.store_id and t.value_id = psv.value_id and psv.status_cd = '0'
         where 1 =1
         <if test="valueId !=null and valueId != ''">
             and t.value_id= #{valueId}

+ 4 - 0
service-goods/src/main/java/com/java110/goods/api/StoreOrderApi.java

@@ -311,6 +311,8 @@ public class StoreOrderApi {
     public ResponseEntity<String> queryStoreOrderCart(
             @RequestHeader(value = "store-id", required = false) String storeId,
             @RequestParam(value = "personId", required = false) String personId,
+            @RequestParam(value = "state", required = false) String state,
+            @RequestParam(value = "cartId", required = false) String cartId,
             @RequestParam(value = "page") int page,
             @RequestParam(value = "row") int row) {
         StoreOrderCartDto storeOrderCartDto = new StoreOrderCartDto();
@@ -318,6 +320,8 @@ public class StoreOrderApi {
         storeOrderCartDto.setRow(row);
         storeOrderCartDto.setStoreId(storeId);
         storeOrderCartDto.setPersonId(personId);
+        storeOrderCartDto.setState(state);
+        storeOrderCartDto.setCartId(cartId);
         return getStoreOrderCartBMOImpl.get(storeOrderCartDto);
     }
 

+ 34 - 0
service-goods/src/main/java/com/java110/goods/bmo/storeOrderCart/impl/GetStoreOrderCartBMOImpl.java

@@ -1,7 +1,10 @@
 package com.java110.goods.bmo.storeOrderCart.impl;
 
+import com.java110.dto.product.ProductSpecDetailDto;
+import com.java110.dto.productSpecValue.ProductSpecValueDto;
 import com.java110.dto.storeOrderCart.StoreOrderCartDto;
 import com.java110.goods.bmo.storeOrderCart.IGetStoreOrderCartBMO;
+import com.java110.intf.goods.IProductSpecDetailInnerServiceSMO;
 import com.java110.intf.goods.IStoreOrderCartInnerServiceSMO;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +21,9 @@ public class GetStoreOrderCartBMOImpl implements IGetStoreOrderCartBMO {
     @Autowired
     private IStoreOrderCartInnerServiceSMO storeOrderCartInnerServiceSMOImpl;
 
+    @Autowired
+    private IProductSpecDetailInnerServiceSMO productSpecDetailInnerServiceSMOImpl;
+
     /**
      * @param storeOrderCartDto
      * @return 订单服务能够接受的报文
@@ -30,6 +36,7 @@ public class GetStoreOrderCartBMOImpl implements IGetStoreOrderCartBMO {
         List<StoreOrderCartDto> storeOrderCartDtos = null;
         if (count > 0) {
             storeOrderCartDtos = storeOrderCartInnerServiceSMOImpl.queryStoreOrderCarts(storeOrderCartDto);
+            freshOrderCart(storeOrderCartDtos);
         } else {
             storeOrderCartDtos = new ArrayList<>();
         }
@@ -41,4 +48,31 @@ public class GetStoreOrderCartBMOImpl implements IGetStoreOrderCartBMO {
         return responseEntity;
     }
 
+    /**
+     * 刷新规格
+     * @param storeOrderCartDtos
+     */
+    private void freshOrderCart(List<StoreOrderCartDto> storeOrderCartDtos) {
+
+        List<String> specIds = new ArrayList<>();
+
+        for(StoreOrderCartDto storeOrderCartDto : storeOrderCartDtos){
+            specIds.add(storeOrderCartDto.getSpecId());
+        }
+
+        ProductSpecDetailDto productSpecDetailDto = new ProductSpecDetailDto();
+        productSpecDetailDto.setSpecIds(specIds.toArray(new String[specIds.size()]));
+        List<ProductSpecDetailDto> productSpecDetailDtos = productSpecDetailInnerServiceSMOImpl.queryProductSpecDetails(productSpecDetailDto);
+        List<ProductSpecDetailDto> tmpProductSpecDetailDtos = null;
+        for (StoreOrderCartDto storeOrderCartDto : storeOrderCartDtos) {
+            tmpProductSpecDetailDtos = new ArrayList<>();
+            for (ProductSpecDetailDto tmpProductSpecDetailDto : productSpecDetailDtos) {
+                if (storeOrderCartDto.getSpecId().equals(tmpProductSpecDetailDto.getSpecId())) {
+                    tmpProductSpecDetailDtos.add(tmpProductSpecDetailDto);
+                }
+            }
+            storeOrderCartDto.setProductSpecDetails(tmpProductSpecDetailDtos);
+        }
+    }
+
 }