Pārlūkot izejas kodu

供应商给机构下单

huangzhiguo 1 gadu atpakaļ
vecāks
revīzija
91bd41919f

+ 2 - 2
src/main/java/com/caimei365/commodity/controller/ShopApi.java

@@ -2,7 +2,7 @@ package com.caimei365.commodity.controller;
 
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.vo.PaginationVo;
-import com.caimei365.commodity.model.vo.ProductDetailVo;
+import com.caimei365.commodity.model.vo.ProductShoplVo;
 import com.caimei365.commodity.service.ShopOrderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -32,7 +32,7 @@ public class ShopApi {
      * @return
      */
     @GetMapping("/getShopProduct")
-    public ResponseJson<PaginationVo<ProductDetailVo>> getShopProductList(Integer shopId, String name, Integer pageNum, Integer pageSize) {
+    public ResponseJson<PaginationVo<ProductShoplVo>> getShopProductList(Integer shopId, String name, Integer pageNum, Integer pageSize) {
         if (null == shopId) {
             return ResponseJson.error(-1, "供应商Id不能为空", null);
         }

+ 2 - 1
src/main/java/com/caimei365/commodity/mapper/ShopOrderMapper.java

@@ -2,6 +2,7 @@ package com.caimei365.commodity.mapper;
 
 import com.caimei365.commodity.model.dto.Sku;
 import com.caimei365.commodity.model.vo.ProductDetailVo;
+import com.caimei365.commodity.model.vo.ProductShoplVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -20,7 +21,7 @@ public interface ShopOrderMapper {
      * @param shopId
      * @return
      */
-    List<ProductDetailVo> getShopProductList(@Param("shopId") Integer shopId, @Param("name") String name);
+    List<ProductShoplVo> getShopProductList(@Param("shopId") Integer shopId, @Param("name") String name);
 
     /**
      * 商品对应上架商城的 sku

+ 380 - 0
src/main/java/com/caimei365/commodity/model/vo/ProductShoplVo.java

@@ -0,0 +1,380 @@
+package com.caimei365.commodity.model.vo;
+
+import com.caimei365.commodity.model.dto.Sku;
+import com.caimei365.commodity.model.po.ProductDetailInfoPo;
+import com.caimei365.commodity.model.po.ProductImagePo;
+import com.caimei365.commodity.model.po.ProductParameterPo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2023/10/24
+ */
+@Data
+public class ProductShoplVo {
+    private Integer minBuyNumber;
+
+    private Integer stock;
+    /**
+     * 售罄标记 0否1是
+     */
+    private Integer saleOutFlag;
+    /**
+     * 展示的最低市场价
+     */
+    private Double normalPrice;
+    /**
+     * 展示的sku的skuId
+     */
+    private Integer skuId;
+    /**
+     * skus
+     */
+    private List<Sku> skus;
+    /**
+     * 展示的最低价的规格
+     */
+    private String unit;
+    /**
+     * 默认显示的最低价
+     */
+    private BigDecimal price;
+    /**
+     * 用户收藏标记(1收藏,0未收藏)
+     */
+    private Integer userLike;
+    /**
+     * 商品productID
+     */
+    private Integer productId;
+    /**
+     * 上架商城
+     */
+    private String groundMall;
+    /**
+     * 所属供应商Id
+     */
+    private Integer shopId;
+    /**
+     * 特殊供应商标识:正常供应商1,新品供应商2,二手供应商3
+     */
+    private Integer shopType;
+    /**
+     * 商品名称
+     */
+    private String name;
+    /**
+     * 内部商品名称
+     */
+    private String aliasName;
+    /**
+     * 搜索关键词,4个用英文逗号区分,不存在的直接逗号隔空(顺序参考:品牌,学名,市场称呼,大类别,小类别)
+     */
+    private String searchKey;
+    /**
+     * 商品属性:1产品,2仪器
+     */
+    private Integer commodityType;
+    /**
+     * 一级分类id
+     */
+    private Integer bigTypeId;
+    /**
+     * 二级分类id
+     */
+    private Integer smallTypeId;
+    /**
+     * 三级分类Id
+     */
+    private Integer tinyTypeId;
+    /**
+     * 主图
+     */
+    private String mainImage;
+    /**
+     * 品牌Id
+     */
+    private Integer brandId;
+    /**
+     * 商品类型:0其它类型(默认),1妆字号,2械字号
+     */
+    private Integer productType;
+    /**
+     * 商品标签用英文逗号隔开,中文逗号或其它一律不作切割
+     */
+    private String tags;
+    /**
+     * 商品货号
+     */
+    private String productCode;
+    /**
+     * 价格可见度:0公开价格 1不公开价格 2仅对会员机构公开 price1TextFlag
+     */
+    private Integer priceFlag;
+    /**
+     * 启用阶梯价格标识 0否 1是
+     */
+    private Integer ladderPriceFlag;
+    /**
+     * 阶梯价格列表
+     */
+    private List<LadderPriceVo> ladderPriceList;
+    /**
+     * 商品可见度:(3:所有人可见,2:普通机构可见,1:会员机构可见)
+     */
+    private Integer visibility;
+    /**
+     * 商品详情可见度:1所有人可见,2所有机构可见,3仅会员机构可见,4仅医美机构可见
+     */
+    private Integer commodityDetailsFlag;
+    /**
+     * 商品状态, 0逻辑删除 1待审核 2已上架 3已下架 8审核未通过 9已隐身 10已冻结
+     */
+    private Integer validFlag;
+    /**
+     * 是否使用活动角标:1是,空或0不是[与actType搭配使用,仅用于标识非真正活动]
+     */
+    private Integer actFlag;
+    /**
+     * 机构税率
+     */
+    private BigDecimal taxRate;
+    /**
+     * 是否含税   0不含税,1含税,2未知
+     */
+    private Integer includedTax;
+    /**
+     * 供应商税率:增值专用发票默认13%,增值税普通发票6%取值范围[0-100]
+     */
+    private Double supplierTaxPoint;
+    /**
+     * 服务起订量
+     */
+    private Integer serviceNumber;
+    /**
+     * 商品的类别:1正常商品(默认),2二手商品
+     */
+    private Integer productCategory;
+    /**
+     * 添加时间
+     */
+    private String addTime;
+    /**
+     * 更新时间
+     */
+    private String updateTime;
+    /**
+     * 是否有sku:1有, 0没有
+     */
+    private Integer hasSkuFlag;
+    /**
+     * 销量
+     */
+    private Integer sellNumber;
+    /**
+     * 排序值
+     */
+    private Integer sortIndex;
+    /**
+     * 供应商主推商品标志 0否 1是
+     */
+    private Integer featuredFlag;
+    /**
+     * 成本价选中标志:1固定成本 2比例成
+     */
+    private Integer costCheckFlag;
+    /**
+     * 相关推荐类型 0自动选择; 1手动推荐
+     */
+    private Integer recommendType;
+    /**
+     * 标签数组
+     */
+    private String[] tagsList;
+    /**
+     * 品牌名称
+     */
+    private String brandName;
+    /**
+     * 一级分类名称
+     */
+    private String bigTypeName;
+    /**
+     * 二级分类名称
+     */
+    private String smallTypeName;
+    /**
+     * 三级分类名称
+     */
+    private String tinyTypeName;
+    /**
+     * 所在分类名称
+     */
+    private String typeName;
+    /**
+     * 商品详情
+     */
+    private ProductDetailInfoPo productDetail;
+    /**
+     * 商品图片
+     */
+    private List<ProductImagePo> imageList;
+    /**
+     * 相关参数
+     */
+    private List<ProductParameterPo> parametersList;
+    /**
+     * 械字号类型   (基于械字号基础),1:一类,2:二类,3:三类
+     */
+    private String machineType;
+
+    /**
+     * 购买数量: 1逐步增长,2以起订量增长(起订量的倍数增长)
+     */
+    private Integer step;
+    /**
+     * 械字号资质证书图  (基于械字号基础)
+     */
+    private String qualificationImg;
+
+    /**
+     * 发票类型(基于是否含税基础)   1增值税票,2普通票, 3不能开票
+     */
+    private String invoiceType;
+    /**
+     * 开票税点(基于不含税基础) :增值税默认13%,普通票6%取值范围[0-100]
+     */
+    private Double taxPoint;
+    /**
+     * 销售区域:1全部区域, 0指定区域
+     */
+    private String allAreaFlag;
+    /**
+     * 指定的销售区域
+     */
+    private String provinceIds;
+    /**
+     * 商品详情信息
+     */
+    private String detailInfo;
+    /**
+     * 服务详情
+     */
+    private String serviceInfo;
+    /**
+     * 订购方案
+     */
+    private String orderInfo;
+    /**
+     * 计算后价格等级
+     */
+    private Integer priceGrade;
+    /**
+     * 供应商信息
+     */
+    private ShopVo shop;
+    /**
+     * 商品是否处于活动状态 1是 0否
+     */
+    private Integer actStatus;
+    /**
+     * 划线价格
+     */
+    private BigDecimal originalPrice;
+    /**
+     * 促销活动
+     */
+    private PromotionsVo promotions;
+    /**
+     * 用户身份: 2-会员机构, 4-普通机构
+     */
+    private Integer userIdentity;
+    /**
+     * 是否复购 0否 1是
+     */
+    private Integer repurchaseFlag;
+    /**
+     * 仪器培训方式:1线上培训,2线下培训
+     */
+    private Integer trainingMethod;
+    /**
+     * 售价是否包含:1售价未包含,2售价已包含
+     */
+    private Integer trainingType;
+    /**
+     * 培训费用(售价未包含)
+     */
+    private BigDecimal trainingFee;
+    /**
+     * 商品pc端活动类型,0无活动,1云上美博会
+     */
+    private Integer pcActType;
+    /**
+     * 商品小程序端活动类型,0无活动,1云上美博会
+     */
+    private Integer appletsActType;
+    /**
+     * 商品资料id
+     */
+    private Integer archiveId;
+    /**
+     * 超级会员优惠商品标识:0不是,1是
+     */
+    private Integer svipProductFlag;
+    /**
+     * 超级会员优惠价标签
+     */
+    private String svipPriceTag;
+    /**
+     * 商品备注
+     */
+    private String productRemarks;
+    /**
+     * 普通机构商品详情 1同资质机构商品详情,2用普通机构商品详情
+     */
+    private Integer productDetailChose;
+    /**
+     * 证书编号
+     * @return
+     */
+    public String qualificationNo;
+
+    /**
+     *产品名称
+     */
+    public String productName;
+    /**
+     *证书有效日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    public Date qualificationTime;
+
+    /**
+     *证书有效链接
+     */
+    public String qualificationLink;
+
+    /**
+     * 能否退货  1 能 2不能
+     */
+    private Integer returnGoodsStutas;
+    /**
+     * 特殊商品退货须知提示  (取后台帮助中心id1040的数据)
+     */
+    private String  helpContent;
+    /**
+     * 关联标签库字符串
+     */
+    private String  relatedLabels;
+    /**
+     * 外部商城sku
+     */
+    private List<Sku> organizeSkus;
+}

+ 2 - 2
src/main/java/com/caimei365/commodity/service/ShopOrderService.java

@@ -2,7 +2,7 @@ package com.caimei365.commodity.service;
 
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.vo.PaginationVo;
-import com.caimei365.commodity.model.vo.ProductDetailVo;
+import com.caimei365.commodity.model.vo.ProductShoplVo;
 
 import java.util.Map;
 
@@ -21,5 +21,5 @@ public interface ShopOrderService {
      * @param pageSize
      * @return
      */
-    ResponseJson<PaginationVo<ProductDetailVo>> getShopProductList(Integer shopId, String name,Integer pageNum, Integer pageSize);
+    ResponseJson<PaginationVo<ProductShoplVo>> getShopProductList(Integer shopId, String name, Integer pageNum, Integer pageSize);
 }

+ 13 - 10
src/main/java/com/caimei365/commodity/service/impl/ShopOrderServiceImpl.java

@@ -11,6 +11,7 @@ import com.caimei365.commodity.service.ShopOrderService;
 import com.caimei365.commodity.utils.ImageUtils;
 import com.caimei365.commodity.utils.MathUtil;
 import com.github.pagehelper.PageHelper;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -27,9 +28,10 @@ import java.util.stream.IntStream;
  * @author : Charles
  * @date : 2023/9/28
  */
+@Slf4j
 @Service
 public class ShopOrderServiceImpl implements ShopOrderService {
-    @Value("${caimei.wwwDomain}")
+    @Value("${caimei.imageDomain}")
     private String domain;
 
     @Resource private ShopOrderMapper shopOrderMapper;
@@ -47,9 +49,9 @@ public class ShopOrderServiceImpl implements ShopOrderService {
      * @return
      */
     @Override
-    public ResponseJson<PaginationVo<ProductDetailVo>> getShopProductList(Integer shopId, String name, Integer pageNum, Integer pageSize) {
+    public ResponseJson<PaginationVo<ProductShoplVo>> getShopProductList(Integer shopId, String name, Integer pageNum, Integer pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<ProductDetailVo> shopProductList = shopOrderMapper.getShopProductList(shopId, name);
+        List<ProductShoplVo> shopProductList = shopOrderMapper.getShopProductList(shopId, name);
         // 处理上架商城, 版本只显示联合丽格的sku
         List<String> organizeIdList = new ArrayList<>();
         organizeIdList.add("4");
@@ -69,7 +71,8 @@ public class ShopOrderServiceImpl implements ShopOrderService {
             Sku sku = skuList.get(0);
             product.setSkuId(sku.getSkuId());
             product.setUnit(sku.getUnit());
-            product.setPrice(sku.getPrice());
+            product.setPrice(BigDecimal.valueOf(sku.getPrice()));
+            product.setOriginalPrice(BigDecimal.valueOf(sku.getOriginalPrice()));
             product.setMinBuyNumber(sku.getMinBuyNumber());
 
             skuList.forEach( s -> {
@@ -90,7 +93,7 @@ public class ShopOrderServiceImpl implements ShopOrderService {
                     if (1 == skuList.size()) {
                         //1.对于只有一个SKU的商品,各个商品列表直接显示机构价即可:若是阶梯价,则显示第一级阶梯的价格:
                         product.setSkuId(ladderPrices.get(0).getSkuId());
-                        product.setPrice(ladderPrices.get(0).getBuyPrice());
+                        product.setPrice(BigDecimal.valueOf(ladderPrices.get(0).getBuyPrice()));
                         product.setMinBuyNumber(ladderPrices.get(0).getBuyNum());
                         product.setStock(ladderPrices.get(0).getStock());
                         product.setUnit(ladderPrices.get(0).getUnit());
@@ -103,13 +106,13 @@ public class ShopOrderServiceImpl implements ShopOrderService {
                         ProductItemVo lowAllPrice = priceMapper.findLowPriceOfOrganizePrice(product.getProductId(), 4);
                         if (null != lowLadderPrice) {
                             ProductItemVo productItemVo = lowLadderPrice.getPrice() > lowAllPrice.getPrice() ? lowAllPrice : lowLadderPrice;
-                            product.setPrice(productItemVo.getPrice());
+                            product.setPrice(BigDecimal.valueOf(productItemVo.getPrice()));
                             product.setSkuId(productItemVo.getSkuId());
                             product.setMinBuyNumber(productItemVo.getMinBuyNumber());
                             product.setUnit(productItemVo.getUnit());
                             product.setStock(productItemVo.getStock());
                         } else {
-                            product.setPrice(lowAllPrice.getPrice());
+                            product.setPrice(BigDecimal.valueOf(lowAllPrice.getPrice()));
                             product.setSkuId(lowAllPrice.getSkuId());
                             product.setMinBuyNumber(lowAllPrice.getMinBuyNumber());
                             product.setUnit(lowAllPrice.getUnit());
@@ -122,13 +125,13 @@ public class ShopOrderServiceImpl implements ShopOrderService {
             boolean taxFlag = "0".equals(product.getIncludedTax()) && ("1".equals(product.getInvoiceType()) || "2".equals(product.getInvoiceType()));
             if (taxFlag) {
                 BigDecimal thisTaxFee = MathUtil.div(MathUtil.mul(sku.getPrice(), product.getTaxRate()), 100, 2);
-                product.setPrice(MathUtil.add(product.getPrice(), thisTaxFee).doubleValue());
+                product.setPrice(MathUtil.add(product.getPrice(), thisTaxFee));
                 BigDecimal originalTaxFee = MathUtil.div(MathUtil.mul(sku.getOriginalPrice(), product.getTaxRate()), 100, 2);
-                product.setOriginalPrice(MathUtil.add(product.getOriginalPrice(), originalTaxFee).doubleValue());
+                product.setOriginalPrice(MathUtil.add(product.getOriginalPrice(), originalTaxFee));
             }
         });
 
-        PaginationVo<ProductDetailVo> page = new PaginationVo<>(shopProductList);
+        PaginationVo<ProductShoplVo> page = new PaginationVo<>(shopProductList);
         return ResponseJson.success(page);
     }
 

+ 3 - 3
src/main/resources/mapper/ShopOrderMapper.xml

@@ -3,13 +3,13 @@
 <mapper namespace="com.caimei365.commodity.mapper.ShopOrderMapper">
 
 
-    <select id="getShopProductList" resultType="com.caimei365.commodity.model.vo.ProductDetailVo">
+    <select id="getShopProductList" resultType="com.caimei365.commodity.model.vo.ProductShoplVo">
         select distinct p.productID       as productId,
                p.groundMall AS groundMall,
                p.actStatus,
                p.name,
                p.aliasName,
-               p.mainImage       as image,
+               p.mainImage       as mainImage,
                p.productCode     as code,
                p.priceFlag,
                p.searchKey       as keyword,
@@ -27,7 +27,7 @@
                p.tinyTypeID      as tinyTypeId,
                p.productType
         from product p
-        left join cm_organize_product_info copi on copi.productId = p.productID
+        left join cm_organize_product_info copi on copi.productId = p.productID AND organizeId != 0
         where p.shopId = #{shopId} and copi.validFlag = 2 and p.groundMall NOT LIKE '0'
         <if test="name != null and name != ''">
             and p.name like concat('%',#{name},'%')