Quellcode durchsuchen

svip商品价格1

Aslee vor 3 Jahren
Ursprung
Commit
3414a18b81

+ 26 - 3
src/main/java/com/caimei365/commodity/controller/ProductPageApi.java

@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -261,13 +262,20 @@ public class ProductPageApi {
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/product/archive")
-    public ResponseJson<PaginationVo<ArchiveVo>> getProductArchive(String keyword, Integer productType, Integer pageNum, Integer pageSize) {
+    public ResponseJson<PaginationVo<ArchiveVo>> getProductArchive(String keyword, Integer productType,
+                                                                   @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                   @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         return pageService.getProductArchive(keyword, productType, pageNum, pageSize);
     }
 
     /**
      * 商品资料详情
      */
+    @ApiOperation("商品资料详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = false, name = "archiveId", value = "资料id"),
+            @ApiImplicitParam(required = false, name = "userId", value = "用户id"),
+    })
     @GetMapping("/product/archive/detail")
     public ResponseJson<ArchiveDetailVo> getArchiveDetail(Integer archiveId, Integer userId) {
         if (null == archiveId || null == userId) {
@@ -278,9 +286,24 @@ public class ProductPageApi {
 
     /**
      * 超级会员优惠商品页面
+     * @param userId    用户id
+     * @param source    来源 : 1 网站 ; 2 小程序
+     * @return
      */
+    @ApiOperation("商品资料详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = false, name = "userId", value = "用户id"),
+            @ApiImplicitParam(required = false, name = "source", value = "来源 : 1 网站 ; 2 小程序"),
+            @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
+            @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
+    })
     @GetMapping("/svip/product/page")
-    public ResponseJson<Map<String,Object>> getSvipProductPage(){
-        return null;
+    public ResponseJson<Map<String, Object>> getSvipProductPage(Integer userId, Integer source,
+                                                                @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        if (null == userId || source == null) {
+            return ResponseJson.error("参数错误", null);
+        }
+        return pageService.getSvipProductPage(userId, source, pageNum, pageSize);
     }
 }

+ 15 - 0
src/main/java/com/caimei365/commodity/mapper/PageMapper.java

@@ -259,4 +259,19 @@ public interface PageMapper {
      * @return
      */
     Integer findBeansHistoryByArchiveId(Integer userId, Integer archiveId);
+
+    /**
+     * 查询超级会员优惠商品宣传图
+     *
+     * @param userId 用户id
+     * @param source 来源 : 1 网站 ; 2 小程序
+     * @return
+     */
+    String getSvipProductAdsImage(@Param("userId") Integer userId, @Param("source") Integer source);
+
+    /**
+     * 查询超级会员优惠商品列表
+     * @return
+     */
+    List<ProductItemVo> getSvipProductList();
 }

+ 11 - 0
src/main/java/com/caimei365/commodity/service/PageService.java

@@ -153,4 +153,15 @@ public interface PageService {
      * @return
      */
     ResponseJson<ArchiveDetailVo> getArchiveDetail(Integer archiveId, Integer userId);
+
+    /**
+     * 超级会员优惠商品页面
+     *
+     * @param userId    用户id
+     * @param source    来源 : 1 网站 ; 2 小程序
+     * @param pageNum   页码
+     * @param pageSize  每页数量
+     * @return
+     */
+    ResponseJson<Map<String, Object>> getSvipProductPage(Integer userId, Integer source, Integer pageNum, Integer pageSize);
 }

+ 17 - 0
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -1018,4 +1018,21 @@ public class PageServiceImpl implements PageService {
         ossClient.shutdown();
         return url;
     }
+
+    @Override
+    public ResponseJson<Map<String, Object>> getSvipProductPage(Integer userId, Integer source, Integer pageNum, Integer pageSize) {
+        Map<String, Object> svipProductPageData = new HashMap<>(2);
+        String adsImage = pageMapper.getSvipProductAdsImage(userId, source);
+        PageHelper.startPage(pageNum, pageSize);
+        List<ProductItemVo> svipProductList = pageMapper.getSvipProductList();
+        svipProductList.forEach(svipProduct->{
+            priceUtilService.setProductDetails(userId, svipProduct);
+            svipProduct.setImage(ImageUtils.getImageURL("product", svipProduct.getImage(), 0, domain));
+        });
+        PaginationVo<ProductItemVo> svipProductPage = new PaginationVo<>(svipProductList);
+        svipProductPageData.put("adsImage", adsImage);
+        svipProductPageData.put("svipProductPage", svipProductPage);
+        return ResponseJson.success(svipProductPageData);
+    }
+
 }

+ 18 - 0
src/main/resources/backup.sql

@@ -0,0 +1,18 @@
+-- =================================== 2021年9月 超级会员S_VIP start =====================================
+CREATE TABLE `cm_svip_product` (
+                                   `id` INT NOT NULL AUTO_INCREMENT,
+                                   `productId` INT NULL COMMENT '商品id',
+                                   `priceType` INT NULL COMMENT '会员价类型:1折扣,2优惠价',
+                                   `discount` FLOAT(11,2) NULL COMMENT '会员折扣',
+                                   `discountPrice` FLOAT(11,2) NULL COMMENT '会员价',
+                                   `sort` INT NULL COMMENT '排序值',
+                                   `addTime` DATETIME NULL COMMENT '添加时间',
+                                   PRIMARY KEY (`id`))
+    COMMENT = '超级会员优惠商品';
+CREATE TABLE `cm_svip_product_adsimage` (
+                                     `id` INT NOT NULL,
+                                     `pcImage` TEXT NULL COMMENT 'pc端宣传图',
+                                     `appletsImage` TEXT NULL COMMENT '小程序端宣传图',
+                                     PRIMARY KEY (`id`))
+    COMMENT = '超级会员优惠商品宣传图';
+-- =================================== 2021年9月 超级会员S_VIP end =====================================

+ 40 - 0
src/main/resources/mapper/PageMapper.xml

@@ -479,5 +479,45 @@
     <select id="findBeansHistoryByArchiveId" resultType="java.lang.Integer">
         select id from user_beans_history where userId = #{userId} and archiveId = #{archiveId}
     </select>
+    <select id="getSvipProductAdsImage" resultType="java.lang.String">
+        select if(#{source} = 1, pcImage, appletsImage)
+        from cm_svip_product_adsimage
+        limit 1;
+    </select>
+    <select id="getSvipProductList" resultType="com.caimei365.commodity.model.vo.ProductItemVo">
+        select
+            p.productID as productId,
+            p.actStatus,
+            p.name,
+            p.aliasName,
+            p.mainImage as image,
+            p.unit,
+            p.productCode as code,
+            p.price1TextFlag as priceFlag,
+            p.price1 as price,
+            p.shopID as shopId,
+            p.searchKey as keyword,
+            p.price8Text as beautyActFlag,
+            p.minBuyNumber as minBuyNumber,
+            p.maxBuyNumber as maxBuyNumber,
+            p.ladderPriceFlag,
+            p.normalPrice,
+            p.step,
+            p.shopID as shopId,
+            p.taxPoint as taxRate,
+            p.includedTax,
+            p.invoiceType,
+            p.productCategory as productCategory,
+            p.validFlag,
+            p.featuredFlag,
+            p.commodityType,
+            p.bigTypeID as bigTypeId,
+            p.smallTypeID as smallTypeId,
+            p.tinyTypeID as tinyTypeId,
+            p.visibility as visibility
+        from cm_svip_product csp
+        left join product p on p.productID = csp.productId
+        where p.productID = #{productId} and p.validFlag = 2
+    </select>
 
 </mapper>

+ 1 - 1
src/main/resources/mapper/PriceMapper.xml

@@ -51,7 +51,7 @@
             if(csp.id is not null,1,0) as svipProductFlag,
             csp.priceType as svipPriceType,
             csp.discount as svipDiscount,
-            csp.discountPrice as svipDisountPrice
+            csp.discountPrice as svipDiscountPrice
         from product p
         left join cm_svip_product csp on p.productID = csp.productId
         where p.productID in