瀏覽代碼

商品发布回显

chao 4 年之前
父節點
當前提交
6cf322542c

+ 13 - 0
src/main/java/com/caimei365/commodity/controller/ProductShopApi.java

@@ -3,6 +3,7 @@ package com.caimei365.commodity.controller;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.dto.ProductDto;
 import com.caimei365.commodity.model.search.ProductListVo;
+import com.caimei365.commodity.model.vo.ProductFormVo;
 import com.caimei365.commodity.service.ShopService;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
@@ -104,4 +105,16 @@ public class ProductShopApi {
         return shopService.releaseProduct(productDto);
     }
 
+    /**
+     * 供应商-商品编辑回显
+     *
+     * @param productId 商品Id
+     */
+    @ApiOperation("供应商-商品编辑回显(旧:/supplier/productInfo)")
+    @ApiImplicitParam(required = true, name = "productId", value = "商品Id")
+    @GetMapping("/product/form")
+    public ResponseJson<ProductFormVo> getProductForm(Integer productId) {
+        return shopService.getProductForm(productId);
+    }
+
 }

+ 21 - 0
src/main/java/com/caimei365/commodity/mapper/ShopMapper.java

@@ -5,6 +5,7 @@ import com.caimei365.commodity.model.po.ProductImagePo;
 import com.caimei365.commodity.model.po.ProductParameterPo;
 import com.caimei365.commodity.model.po.ProductPo;
 import com.caimei365.commodity.model.search.ProductListVo;
+import com.caimei365.commodity.model.vo.ProductFormVo;
 import com.caimei365.commodity.model.vo.ProductItemVo;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -83,4 +84,24 @@ public interface ShopMapper {
      * 修改商品详情
      */
     void updateProductDetailInfo(ProductDetailInfoPo productDetail);
+    /**
+     * 供应商-商品编辑回显
+     */
+    ProductFormVo getProductForm(Integer productId);
+    /**
+     * 获取品牌名称
+     */
+    String getBrandNameById(Integer brandId);
+    /**
+     * 获取相关参数
+     */
+    List<ProductParameterPo> getProductParameters(Integer productId);
+    /**
+     * 获取商品图片
+     */
+    List<ProductImagePo> getProductImages(Integer productId);
+    /**
+     * 获取商品详情
+     */
+    ProductDetailInfoPo getProductDetailInfo(Integer productId);
 }

+ 194 - 0
src/main/java/com/caimei365/commodity/model/vo/ProductFormVo.java

@@ -0,0 +1,194 @@
+package com.caimei365.commodity.model.vo;
+
+import com.caimei365.commodity.model.po.ProductDetailInfoPo;
+import com.caimei365.commodity.model.po.ProductImagePo;
+import com.caimei365.commodity.model.po.ProductParameterPo;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/4/22
+ */
+@ApiModel("商品编辑回显")
+@Data
+public class ProductFormVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 商品productID
+     */
+    private Integer productId;
+    /**
+     * 所属供应商Id
+     */
+    private Integer shopId;
+    /**
+     * 商品名称
+     */
+    private String name;
+    /**
+     * 内部商品名称
+     */
+    private String aliasName;
+    /**
+     * 商品属性: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;
+    /**
+     * 包装规格
+     */
+    private String unit;
+    /**
+     * 市场价
+     */
+    private Double normalPrice;
+    /**
+     * 商品价格
+     */
+    private Double price;
+    /**
+     * 价格可见度:0公开价格 1不公开价格 2仅对会员机构公开 price1TextFlag
+     */
+    private Integer priceFlag;
+    /**
+     * 启用阶梯价格标识 0否 1是
+     */
+    private Integer ladderPriceFlag;
+    /**
+     * 商品可见度:(3:所有人可见,2:普通机构可见,1:会员机构可见)
+     */
+    private Integer visibility;
+    /**
+     * 商品状态, 0逻辑删除 1待审核 2已上架 3已下架 8审核未通过 9已隐身 10已冻结
+     */
+    private Integer validFlag;
+    /**
+     * 是否使用活动角标:1是,空或0不是[与actType搭配使用,仅用于标识非真正活动]
+     */
+    private Integer actFlag;
+    /**
+     * 是否含税   0不含税,1含税,2未知
+     */
+    private Integer includedTax;
+    /**
+     * 供应商税率:增值专用发票默认13%,增值税普通发票6%取值范围[0-100]
+     */
+    private Double supplierTaxPoint;
+    /**
+     * 最小购买量
+     */
+    private Integer minBuyNumber;
+    /**
+     * 服务起订量
+     */
+    private Integer serviceNumber;
+    /**
+     * 库存
+     */
+    private Integer stock;
+    /**
+     * 商品的类别: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 ProductDetailInfoPo productDetail;
+    /**
+     * 商品图片
+     */
+    private List<ProductImagePo> imageList;
+    /**
+     * 相关参数
+     */
+    private List<ProductParameterPo> parametersList;
+}

+ 7 - 0
src/main/java/com/caimei365/commodity/service/ShopService.java

@@ -3,6 +3,7 @@ package com.caimei365.commodity.service;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.dto.ProductDto;
 import com.caimei365.commodity.model.search.ProductListVo;
+import com.caimei365.commodity.model.vo.ProductFormVo;
 
 import java.util.List;
 import java.util.Map;
@@ -79,4 +80,10 @@ public interface ShopService {
      */
     ResponseJson releaseProduct(ProductDto productDto);
 
+    /**
+     * 供应商-商品编辑回显
+     *
+     * @param productId 商品Id
+     */
+    ResponseJson<ProductFormVo> getProductForm(Integer productId);
 }

+ 36 - 0
src/main/java/com/caimei365/commodity/service/impl/ShopServiceImpl.java

@@ -11,7 +11,9 @@ import com.caimei365.commodity.model.po.ProductImagePo;
 import com.caimei365.commodity.model.po.ProductParameterPo;
 import com.caimei365.commodity.model.po.ProductPo;
 import com.caimei365.commodity.model.search.ProductListVo;
+import com.caimei365.commodity.model.vo.BrandVo;
 import com.caimei365.commodity.model.vo.PaginationVo;
+import com.caimei365.commodity.model.vo.ProductFormVo;
 import com.caimei365.commodity.model.vo.ProductItemVo;
 import com.caimei365.commodity.service.ShopService;
 import com.caimei365.commodity.utils.ImageUtils;
@@ -315,4 +317,38 @@ public class ShopServiceImpl implements ShopService {
         }
         return ResponseJson.success();
     }
+
+    /**
+     * 供应商-商品编辑回显
+     *
+     * @param productId 商品Id
+     */
+    @Override
+    public ResponseJson<ProductFormVo> getProductForm(Integer productId) {
+        if (null == productId) {
+            return ResponseJson.error("参数异常:商品Id不能为空!", null);
+        }
+        ProductFormVo product = shopMapper.getProductForm(productId);
+        if (null == product) {
+            return ResponseJson.error("商品信息异常,productId:" + productId, null);
+        }
+        if (StringUtils.isNotBlank(product.getTags())) {
+            String[] tags = product.getTags().split(",");
+            product.setTagsList(tags);
+        }
+        String typeName = shopMapper.getTypeName(product.getBigTypeId(), product.getSmallTypeId(), product.getTinyTypeId());
+        List<String> list = StringUtils.isNotEmpty(typeName) ? Arrays.asList(typeName.split("-")) : new ArrayList<>();
+        product.setBigTypeName(list.size() > 0 ? list.get(0) : null);
+        product.setSmallTypeName(list.size() > 1 ? list.get(1) : null);
+        product.setTinyTypeName(list.size() > 2 ? list.get(2) : null);
+        String brandName = shopMapper.getBrandNameById(product.getBrandId());
+        product.setBrandName(brandName);
+        ProductDetailInfoPo productDetail = shopMapper.getProductDetailInfo(productId);
+        List<ProductImagePo> productImage = shopMapper.getProductImages(productId);
+        List<ProductParameterPo> parametersList = shopMapper.getProductParameters(productId);
+        product.setProductDetail(productDetail);
+        product.setImageList(productImage);
+        product.setParametersList(parametersList);
+        return ResponseJson.success(product);
+    }
 }

+ 33 - 1
src/main/resources/mapper/ShopMapper.xml

@@ -107,7 +107,7 @@
             shopID = #{shopId}, name = #{name}, aliasName = #{aliasName}, commodityType = #{commodityType},
             bigTypeId = #{bigTypeId}, smallTypeId = #{smallTypeId}, tinyTypeId = #{tinyTypeId}, mainImage = #{mainImage},
             brandId = #{brandId}, productType = #{productType}, tags = #{tags}, unit = #{unit}, normalPrice = #{normalPrice},
-            price = #{price}, includedTax = #{includedTax}, minBuyNumber = #{minBuyNumber}, stock = #{stock},
+            price = #{price}, price1 = #{price}, includedTax = #{includedTax}, minBuyNumber = #{minBuyNumber}, stock = #{stock},
             <if test="productCategory != null and  productCategory != ''">
                 productCategory = #{productCategory},
             </if>
@@ -298,4 +298,36 @@
         where productID = #{productId}
         order by mainFlag DESC
     </select>
+    <select id="getProductForm" resultType="com.caimei365.commodity.model.vo.ProductFormVo">
+        select productID as productId, shopID as shopId, name as name, aliasName as aliasName, commodityType as commodityType,
+            bigTypeId as bigTypeId, smallTypeId as smallTypeId, tinyTypeId as tinyTypeId, mainImage as mainImage,
+            brandId as brandId, productType as productType, tags as tags, unit as unit, normalPrice as normalPrice,
+            price1 as price, includedTax as includedTax, minBuyNumber as minBuyNumber, stock as stock,
+            productCategory as productCategory, serviceNumber as serviceNumber, supplierTaxPoint as supplierTaxPoint,
+            addTime as addTime, hasSkuFlag as hasSkuFlag, sellNumber as sellNumber, sortIndex as sortIndex,
+            featuredFlag as featuredFlag, costCheckFlag as costCheckFlag, recommendType as recommendType,
+            price1TextFlag as priceFlag, actFlag as actFlag, ladderPriceFlag as ladderPriceFlag, visibility as visibility,
+            productCode as productCode, updateTime as updateTime, validFlag as validFlag
+        from product
+        where productID = #{productId}
+    </select>
+    <select id="getBrandNameById" resultType="java.lang.String">
+        select name from cm_brand where id = #{brandId}
+    </select>
+    <select id="getProductParameters" resultType="com.caimei365.commodity.model.po.ProductParameterPo">
+        select id, productID as productId, paramsName, paramsContent
+        from cm_product_related_parameters
+        where productId = #{productId} AND delFlag='0'
+    </select>
+    <select id="getProductImages" resultType="com.caimei365.commodity.model.po.ProductImagePo">
+        select productImageID as id, productID as productId, shopId, addTime, image, mainFlag, sortIndex
+        from productimage
+        where productID = #{productId} order by mainFlag desc
+    </select>
+    <select id="getProductDetailInfo" resultType="com.caimei365.commodity.model.po.ProductDetailInfoPo">
+        select productDetailInfoId, productId, detailInfo, serviceInfo, orderInfo, propValueAlias,
+                propValueImages, detailInfoTxt, seoTitle, seoKeyword, seoDes
+        from productdetailinfo
+        where productId = #{productId}
+    </select>
 </mapper>