java110 5 anni fa
parent
commit
3b97a3d8ee

+ 50 - 26
java110-bean/src/main/java/com/java110/dto/groupBuyProduct/GroupBuyProductDto.java

@@ -1,8 +1,11 @@
 package com.java110.dto.groupBuyProduct;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.product.ProductDto;
+
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName FloorDto
@@ -12,17 +15,19 @@ import java.util.Date;
  * @Version 1.0
  * add by wuxw 2019/4/24
  **/
-public class GroupBuyProductDto extends PageDto implements Serializable {
+public class GroupBuyProductDto extends ProductDto implements Serializable {
 
     private String groupProdName;
-private String productId;
-private String userCount;
-private String groupId;
-private String groupProdDesc;
-private String sort;
-private String state;
-private String storeId;
-private String batchId;
+    private String productId;
+    private String userCount;
+    private String groupId;
+    private String groupProdDesc;
+    private String sort;
+    private String state;
+    private String storeId;
+    private String batchId;
+
+
 
 
     private Date createTime;
@@ -33,55 +38,72 @@ private String batchId;
     public String getGroupProdName() {
         return groupProdName;
     }
-public void setGroupProdName(String groupProdName) {
+
+    public void setGroupProdName(String groupProdName) {
         this.groupProdName = groupProdName;
     }
-public String getProductId() {
+
+    public String getProductId() {
         return productId;
     }
-public void setProductId(String productId) {
+
+    public void setProductId(String productId) {
         this.productId = productId;
     }
-public String getUserCount() {
+
+    public String getUserCount() {
         return userCount;
     }
-public void setUserCount(String userCount) {
+
+    public void setUserCount(String userCount) {
         this.userCount = userCount;
     }
-public String getGroupId() {
+
+    public String getGroupId() {
         return groupId;
     }
-public void setGroupId(String groupId) {
+
+    public void setGroupId(String groupId) {
         this.groupId = groupId;
     }
-public String getGroupProdDesc() {
+
+    public String getGroupProdDesc() {
         return groupProdDesc;
     }
-public void setGroupProdDesc(String groupProdDesc) {
+
+    public void setGroupProdDesc(String groupProdDesc) {
         this.groupProdDesc = groupProdDesc;
     }
-public String getSort() {
+
+    public String getSort() {
         return sort;
     }
-public void setSort(String sort) {
+
+    public void setSort(String sort) {
         this.sort = sort;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getBatchId() {
+
+    public String getBatchId() {
         return batchId;
     }
-public void setBatchId(String batchId) {
+
+    public void setBatchId(String batchId) {
         this.batchId = batchId;
     }
 
@@ -101,4 +123,6 @@ public void setBatchId(String batchId) {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+
 }

+ 42 - 19
java110-bean/src/main/java/com/java110/dto/groupBuyProductSpec/GroupBuyProductSpecDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.groupBuyProductSpec;
 
 import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -15,12 +16,13 @@ import java.util.Date;
 public class GroupBuyProductSpecDto extends PageDto implements Serializable {
 
     private String specId;
-private String groupSales;
-private String productId;
-private String groupPrice;
-private String defaultShow;
-private String storeId;
-private String groupStock;
+    private String groupSales;
+    private String productId;
+    private String[] productIds;
+    private String groupPrice;
+    private String defaultShow;
+    private String storeId;
+    private String groupStock;
 
 
     private Date createTime;
@@ -31,43 +33,56 @@ private String groupStock;
     public String getSpecId() {
         return specId;
     }
-public void setSpecId(String specId) {
+
+    public void setSpecId(String specId) {
         this.specId = specId;
     }
-public String getGroupSales() {
+
+    public String getGroupSales() {
         return groupSales;
     }
-public void setGroupSales(String groupSales) {
+
+    public void setGroupSales(String groupSales) {
         this.groupSales = groupSales;
     }
-public String getProductId() {
+
+    public String getProductId() {
         return productId;
     }
-public void setProductId(String productId) {
+
+    public void setProductId(String productId) {
         this.productId = productId;
     }
-public String getGroupPrice() {
+
+    public String getGroupPrice() {
         return groupPrice;
     }
-public void setGroupPrice(String groupPrice) {
+
+    public void setGroupPrice(String groupPrice) {
         this.groupPrice = groupPrice;
     }
-public String getDefaultShow() {
+
+    public String getDefaultShow() {
         return defaultShow;
     }
-public void setDefaultShow(String defaultShow) {
+
+    public void setDefaultShow(String defaultShow) {
         this.defaultShow = defaultShow;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getGroupStock() {
+
+    public String getGroupStock() {
         return groupStock;
     }
-public void setGroupStock(String groupStock) {
+
+    public void setGroupStock(String groupStock) {
         this.groupStock = groupStock;
     }
 
@@ -87,4 +102,12 @@ public void setGroupStock(String groupStock) {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String[] getProductIds() {
+        return productIds;
+    }
+
+    public void setProductIds(String[] productIds) {
+        this.productIds = productIds;
+    }
 }

+ 20 - 0
java110-db/src/main/resources/mapper/goods/GroupBuyProductSpecServiceDaoImplMapper.xml

@@ -119,4 +119,24 @@
 
     </select>
 
+    <select id="queryProductStockAndSales" parameterType="Map" resultType="Map">
+        select t.product_id productId,sum(t.group_stock) groupStock,SUM(t.group_sales) groupSales
+        from group_buy_product_spec t
+        where 1 =1
+        and t.status_cd= '0'
+        <if test="productId !=null and productId != ''">
+            and t.product_id= #{productId}
+        </if>
+        <if test="productIds != null">
+            and t.product_id in
+            <foreach collection="productIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="storeId !=null and storeId != ''">
+            and t.store_id= #{storeId}
+        </if>
+        group by t.product_id
+    </select>
+
 </mapper>

+ 5 - 3
java110-interface/src/main/java/com/java110/intf/goods/IGroupBuyProductSpecInnerServiceSMO.java

@@ -27,15 +27,14 @@ public interface IGroupBuyProductSpecInnerServiceSMO {
     public int saveGroupBuyProductSpec(@RequestBody GroupBuyProductSpecPo groupBuyProductSpecPo);
 
     @RequestMapping(value = "/updateGroupBuyProductSpec", method = RequestMethod.POST)
-    public int updateGroupBuyProductSpec(@RequestBody  GroupBuyProductSpecPo groupBuyProductSpecPo);
+    public int updateGroupBuyProductSpec(@RequestBody GroupBuyProductSpecPo groupBuyProductSpecPo);
 
     @RequestMapping(value = "/deleteGroupBuyProductSpec", method = RequestMethod.POST)
-    public int deleteGroupBuyProductSpec(@RequestBody  GroupBuyProductSpecPo groupBuyProductSpecPo);
+    public int deleteGroupBuyProductSpec(@RequestBody GroupBuyProductSpecPo groupBuyProductSpecPo);
 
     /**
      * <p>查询小区楼信息</p>
      *
-     *
      * @param groupBuyProductSpecDto 数据对象分享
      * @return GroupBuyProductSpecDto 对象数据
      */
@@ -50,4 +49,7 @@ public interface IGroupBuyProductSpecInnerServiceSMO {
      */
     @RequestMapping(value = "/queryGroupBuyProductSpecsCount", method = RequestMethod.POST)
     int queryGroupBuyProductSpecsCount(@RequestBody GroupBuyProductSpecDto groupBuyProductSpecDto);
+
+    @RequestMapping(value = "/queryProductStockAndSales", method = RequestMethod.POST)
+    List<GroupBuyProductSpecDto> queryProductStockAndSales(@RequestBody GroupBuyProductSpecDto groupBuyProductSpecDto);
 }

+ 140 - 0
service-goods/src/main/java/com/java110/goods/bmo/groupBuyProduct/impl/GetGroupBuyProductBMOImpl.java

@@ -1,8 +1,19 @@
 package com.java110.goods.bmo.groupBuyProduct.impl;
 
+import com.java110.dto.file.FileRelDto;
 import com.java110.dto.groupBuyProduct.GroupBuyProductDto;
+import com.java110.dto.groupBuyProductSpec.GroupBuyProductSpecDto;
+import com.java110.dto.product.ProductSpecDetailDto;
+import com.java110.dto.productDetail.ProductDetailDto;
+import com.java110.dto.productSpecValue.ProductSpecValueDto;
 import com.java110.goods.bmo.groupBuyProduct.IGetGroupBuyProductBMO;
 import com.java110.intf.IGroupBuyProductInnerServiceSMO;
+import com.java110.intf.IGroupBuyProductSpecInnerServiceSMO;
+import com.java110.intf.IProductDetailInnerServiceSMO;
+import com.java110.intf.IProductSpecValueInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
+import com.java110.intf.goods.IProductInnerServiceSMO;
+import com.java110.intf.goods.IProductSpecDetailInnerServiceSMO;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -18,6 +29,24 @@ public class GetGroupBuyProductBMOImpl implements IGetGroupBuyProductBMO {
     @Autowired
     private IGroupBuyProductInnerServiceSMO groupBuyProductInnerServiceSMOImpl;
 
+    @Autowired
+    private IProductInnerServiceSMO productInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IProductSpecValueInnerServiceSMO productSpecValueInnerServiceSMOImpl;
+
+    @Autowired
+    private IProductSpecDetailInnerServiceSMO productSpecDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IGroupBuyProductSpecInnerServiceSMO groupBuyProductSpecInnerServiceSMOImpl;
+
     /**
      * @param groupBuyProductDto
      * @return 订单服务能够接受的报文
@@ -30,6 +59,7 @@ public class GetGroupBuyProductBMOImpl implements IGetGroupBuyProductBMO {
         List<GroupBuyProductDto> groupBuyProductDtos = null;
         if (count > 0) {
             groupBuyProductDtos = groupBuyProductInnerServiceSMOImpl.queryGroupBuyProducts(groupBuyProductDto);
+            freshProductDtos(groupBuyProductDtos, groupBuyProductDto);
         } else {
             groupBuyProductDtos = new ArrayList<>();
         }
@@ -41,4 +71,114 @@ public class GetGroupBuyProductBMOImpl implements IGetGroupBuyProductBMO {
         return responseEntity;
     }
 
+
+    private void freshProductDtos(List<GroupBuyProductDto> productDtos, GroupBuyProductDto productDto) {
+
+        if (productDtos == null || productDtos.size() < 1) {
+            return;
+        }
+
+        //输入
+        List<String> productIds = new ArrayList<>();
+
+        for (GroupBuyProductDto tmpProductDto : productDtos) {
+            productIds.add(tmpProductDto.getProductId());
+        }
+
+        FileRelDto fileRelDto = new FileRelDto();
+        fileRelDto.setObjIds(productIds.toArray(new String[productIds.size()]));
+        fileRelDto.setRelTypeCd(FileRelDto.REL_TYPE_CD_GOODS_COVER);
+        List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+
+        //刷入图片信息
+        List<String> photoVos = null;
+        String url = null;
+        for (GroupBuyProductDto tmpProductDto : productDtos) {
+            for (FileRelDto tmpFileRelDto : fileRelDtos) {
+                if (tmpProductDto.getProductId().equals(tmpFileRelDto.getObjId())) {
+                    url = "/callComponent/download/getFile/file?fileId=" + tmpFileRelDto.getFileRealName() + "&communityId=-1";
+                    tmpProductDto.setCoverPhoto(url);
+                }
+            }
+        }
+
+        //刷入库存和销量
+        GroupBuyProductSpecDto productSpecValueDto = new GroupBuyProductSpecDto();
+        productSpecValueDto.setStoreId(productDtos.get(0).getStoreId());
+        productSpecValueDto.setProductIds(productIds.toArray(new String[productIds.size()]));
+        List<GroupBuyProductSpecDto> productSpecValueDtos = groupBuyProductSpecInnerServiceSMOImpl.queryProductStockAndSales(productSpecValueDto);
+        for (GroupBuyProductDto tmpProduct : productDtos) {
+            for (GroupBuyProductSpecDto tmpProdSpecValue : productSpecValueDtos) {
+                if (tmpProdSpecValue.getProductId().equals(tmpProduct.getProductId())) {
+                    tmpProduct.setStock(tmpProdSpecValue.getGroupStock());
+                }
+            }
+        }
+
+        // 查询规格
+        if (productDtos.size() > 1) {
+            return;
+        }
+
+        //输入轮播图
+        fileRelDto = new FileRelDto();
+        fileRelDto.setObjId(productDtos.get(0).getProductId());
+        fileRelDto.setRelTypeCd(FileRelDto.REL_TYPE_CD_GOODS_CAROUSEL_FIGURE);
+        fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+        List<String> photos = new ArrayList<>();
+        for (GroupBuyProductDto tmpProductDto : productDtos) {
+            for (FileRelDto tmpFileRelDto : fileRelDtos) {
+                if (tmpProductDto.getProductId().equals(tmpFileRelDto.getObjId())) {
+                    url = "/callComponent/download/getFile/file?fileId=" + tmpFileRelDto.getFileRealName() + "&communityId=-1";
+                    photos.add(url);
+                }
+            }
+            tmpProductDto.setCarouselFigurePhotos(photos);
+        }
+
+        freshProductSpecValue(productDtos);
+
+        ProductDetailDto productDetailDto = new ProductDetailDto();
+        productDetailDto.setProductId(productDtos.get(0).getProductId());
+        productDetailDto.setStoreId(productDtos.get(0).getStoreId());
+        List<ProductDetailDto> productDetailDtos = productDetailInnerServiceSMOImpl.queryProductDetails(productDetailDto);
+
+        if (productDetailDtos == null || productDetailDtos.size() < 1) {
+            return;
+        }
+
+        productDtos.get(0).setContent(productDetailDtos.get(0).getContent());
+    }
+
+    private void freshProductSpecValue(List<GroupBuyProductDto> productDtos) {
+        ProductSpecValueDto productSpecValueDto = new ProductSpecValueDto();
+        productSpecValueDto.setProductId(productDtos.get(0).getProductId());
+        productSpecValueDto.setStoreId(productDtos.get(0).getStoreId());
+        List<ProductSpecValueDto> productSpecValueDtos = productSpecValueInnerServiceSMOImpl.queryProductSpecValues(productSpecValueDto);
+
+        if (productSpecValueDtos == null || productSpecValueDtos.size() < 1) {
+            return;
+        }
+        productDtos.get(0).setProductSpecValues(productSpecValueDtos);
+
+        List<String> specIds = new ArrayList<>();
+        for (ProductSpecValueDto productSpecValue : productSpecValueDtos) {
+            specIds.add(productSpecValue.getSpecId());
+        }
+
+        ProductSpecDetailDto productSpecDetailDto = new ProductSpecDetailDto();
+        productSpecDetailDto.setSpecIds(specIds.toArray(new String[specIds.size()]));
+        productSpecDetailDto.setStoreId(productDtos.get(0).getStoreId());
+        List<ProductSpecDetailDto> productSpecDetailDtos = productSpecDetailInnerServiceSMOImpl.queryProductSpecDetails(productSpecDetailDto);
+        List<ProductSpecDetailDto> tmpProductSpecDetailDtos = null;
+        for (ProductSpecValueDto productSpecValue : productSpecValueDtos) {
+            tmpProductSpecDetailDtos = new ArrayList<>();
+            for (ProductSpecDetailDto tmpProductSpecDetailDto : productSpecDetailDtos) {
+                if (productSpecValue.getSpecId().equals(tmpProductSpecDetailDto.getSpecId())) {
+                    tmpProductSpecDetailDtos.add(tmpProductSpecDetailDto);
+                }
+            }
+            productSpecValue.setProductSpecDetails(tmpProductSpecDetailDtos);
+        }
+    }
 }

+ 8 - 0
service-goods/src/main/java/com/java110/goods/dao/IGroupBuyProductSpecServiceDao.java

@@ -39,6 +39,14 @@ public interface IGroupBuyProductSpecServiceDao {
      * @throws DAOException DAO异常
      */
     List<Map> getGroupBuyProductSpecInfo(Map info) throws DAOException;
+    /**
+     * 查询拼团产品规格信息(instance过程)
+     * 根据bId 查询拼团产品规格信息
+     * @param info bId 信息
+     * @return 拼团产品规格信息
+     * @throws DAOException DAO异常
+     */
+    List<Map> queryProductStockAndSales(Map info) throws DAOException;
 
 
 

+ 9 - 0
service-goods/src/main/java/com/java110/goods/dao/impl/GroupBuyProductSpecServiceDaoImpl.java

@@ -60,6 +60,15 @@ public class GroupBuyProductSpecServiceDaoImpl extends BaseServiceDao implements
         return businessGroupBuyProductSpecInfos;
     }
 
+    @Override
+    public List<Map> queryProductStockAndSales(Map info) throws DAOException {
+        logger.debug("查询拼团产品规格信息 入参 info : {}",info);
+
+        List<Map> businessGroupBuyProductSpecInfos = sqlSessionTemplate.selectList("groupBuyProductSpecServiceDaoImpl.queryProductStockAndSales",info);
+
+        return businessGroupBuyProductSpecInfos;
+    }
+
 
     /**
      * 修改拼团产品规格信息

+ 6 - 0
service-goods/src/main/java/com/java110/goods/smo/impl/GroupBuyProductSpecInnerServiceSMOImpl.java

@@ -73,6 +73,12 @@ public class GroupBuyProductSpecInnerServiceSMOImpl extends BaseServiceSMO imple
         return groupBuyProductSpecServiceDaoImpl.queryGroupBuyProductSpecsCount(BeanConvertUtil.beanCovertMap(groupBuyProductSpecDto));
     }
 
+    @Override
+    public List<GroupBuyProductSpecDto> queryProductStockAndSales(GroupBuyProductSpecDto groupBuyProductSpecDto) {
+        return BeanConvertUtil.covertBeanList(groupBuyProductSpecServiceDaoImpl.queryProductStockAndSales(BeanConvertUtil.beanCovertMap(groupBuyProductSpecDto)), GroupBuyProductSpecDto.class);
+    }
+
+
     public IGroupBuyProductSpecServiceDao getGroupBuyProductSpecServiceDaoImpl() {
         return groupBuyProductSpecServiceDaoImpl;
     }