Browse Source

医美机构价格可见度

chao 3 years ago
parent
commit
475b4b7d61

+ 18 - 13
src/main/java/com/caimei365/commodity/components/PriceUtilService.java

@@ -85,24 +85,29 @@ public class PriceUtilService {
      * @param price  商品价格类
      * @param userId 用户Id
      */
-    public void setPriceByUserId(PriceVo price, Integer userId, Integer flag) {
-        // 根据用户Id查询用户身份
+    public void setPriceByUserId(PriceVo price, Integer userId) {
+        // 根据用户Id查询用户身份: 0个人,1协销,2会员机构,3供应商,4普通机构
         Integer identity = priceMapper.getIdentityByUserId(userId);
+        if (null == identity) {identity = 0;}
+        // priceFlag: 0公开价格,1不公开价格,2仅对会员机构公开,3仅对医美机构公开
+        Integer priceFlag = null != price.getPriceFlag() ? price.getPriceFlag() : 0;
+        // 会员机构类型:1医美,2生美
+        Integer clubType = 0;
+        if (identity == 2) {
+            clubType = priceMapper.getClubTypeById(userId);
+            if (null == clubType) {clubType = 0;}
+        }
         // 根据用户Id查询超级会员id
         Integer svipUserId = priceMapper.getSvipUserIdByUserId(userId);
         // 超级会员标识
         boolean svipUserFlag = null != svipUserId;
-        // 根据商品id查询商品活动
-        PromotionsVo promotions = promotionsMapper.getPromotionsByProductId(price.getProductId());
-        // 如果身份不是机构,并且促销活动不可见,直接把促销置空
-        if (promotions != null && promotions.getSeen() != null && promotions.getSeen() == 2 && flag == 1) {
-            promotions = null;
-        }else if (promotions != null && promotions.getSeen() != null && identity!=null && promotions.getSeen() == 2 && identity == 1) {
-            promotions = null;
-        }
+        // 根据商品id,用户身份 查询商品活动
+        PromotionsVo promotions = promotionsMapper.getPricePromotions(price.getProductId(), identity);
         price.setRepurchaseFlag(0);
         price.setActStatus(0);
-        if (null != identity && identity > 0) {
+        // 设置价格标志(协销|价格公开|仅对医美机构公开|仅对会员机构公开)
+        boolean setFlag = identity == 1 || priceFlag == 0 || (priceFlag == 3 && clubType == 1) || (priceFlag == 2 && identity == 2);
+        if (setFlag) {
             // 用户身份: 2-会员机构, 4-普通机构
             price.setUserIdentity(identity);
             // 设置划线价
@@ -207,7 +212,7 @@ public class PriceUtilService {
      * @param userId  用户Id
      * @param product ProductItemVo
      */
-    public void setProductDetails(Integer userId, ProductItemVo product, Integer flag) {
+    public void setProductDetails(Integer userId, ProductItemVo product) {
         // 设置图片
         product.setImage(ImageUtils.getImageURL("product", product.getImage(), 0, domain));
         // 设置价格等级
@@ -215,7 +220,7 @@ public class PriceUtilService {
         // 数据库获取基本价格信息
         PriceVo price = priceMapper.getDetailPrice(product.getProductId());
         // 根据用户id设置详细价格
-        setPriceByUserId(price, userId, flag);
+        setPriceByUserId(price, userId);
         // 设置价格
         product.setActStatus(price.getActStatus());
         product.setPrice(price.getPrice());

+ 22 - 37
src/main/java/com/caimei365/commodity/controller/ProductPageApi.java

@@ -57,16 +57,14 @@ public class ProductPageApi {
     @ApiImplicitParams({
             @ApiImplicitParam(required = true, name = "pageId", value = "页面信息id"),
             @ApiImplicitParam(required = false, name = "userId", value = "用户id"),
-            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序")
     })
     @GetMapping("/classify/product")
-    public ResponseJson<Map<String, Object>> getClassifyData(Integer pageId, Integer userId, Integer source,
-                                                             @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
+    public ResponseJson<Map<String, Object>> getClassifyData(Integer pageId, Integer userId, Integer source) {
         if (pageId == null) {
             return ResponseJson.error("参数异常", null);
         }
-        return pageService.getClassifyData(pageId, userId, source, flag);
+        return pageService.getClassifyData(pageId, userId, source);
     }
 
     /**
@@ -78,13 +76,11 @@ public class ProductPageApi {
     @ApiOperation("首页楼层数据(旧:/home/data)")
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "userId", value = "用户id"),
-            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序")
     })
     @GetMapping("/home/floor")
-    public ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source,
-                                                         @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
-        return pageService.getHomeData(userId, source, flag);
+    public ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source) {
+        return pageService.getHomeData(userId, source);
     }
 
     /**
@@ -147,13 +143,11 @@ public class ProductPageApi {
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "pageId", value = "页面id"),
             @ApiImplicitParam(required = false, name = "userId", value = "用户id"),
-            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序")
     })
     @GetMapping("/page/beauty")
-    public ResponseJson<Map<String, Object>> getPageBeautyData(Integer pageId, Integer userId, Integer source,
-                                                               @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
-        return pageService.getPageBeautyData(pageId, userId, source,flag);
+    public ResponseJson<Map<String, Object>> getPageBeautyData(Integer pageId, Integer userId, Integer source) {
+        return pageService.getPageBeautyData(pageId, userId, source);
     }
 
     /**
@@ -167,13 +161,11 @@ public class ProductPageApi {
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "floorId", value = "楼层id"),
             @ApiImplicitParam(required = false, name = "userId", value = "用户id"),
-            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序")
     })
     @GetMapping("/page/floor/details")
-    public ResponseJson<Map<String, Object>> getPageFloorData(Integer floorId, Integer userId, Integer source,
-                                                              @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
-        return pageService.getPageFloorData(floorId, userId, source, flag);
+    public ResponseJson<Map<String, Object>> getPageFloorData(Integer floorId, Integer userId, Integer source) {
+        return pageService.getPageFloorData(floorId, userId, source);
     }
 
     /**
@@ -187,13 +179,11 @@ public class ProductPageApi {
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "centreId", value = "分页详情楼层id"),
             @ApiImplicitParam(required = false, name = "userId", value = "用户id"),
-            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序")
     })
     @GetMapping("/page/floor/centre")
-    public ResponseJson<Map<String, Object>> getPageCentreData(Integer centreId, Integer userId, Integer source,
-                                                               @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
-        return pageService.getPageCentreData(centreId, userId, source, flag);
+    public ResponseJson<Map<String, Object>> getPageCentreData(Integer centreId, Integer userId, Integer source) {
+        return pageService.getPageCentreData(centreId, userId, source);
     }
 
     /**
@@ -205,12 +195,11 @@ public class ProductPageApi {
     @ApiOperation("商品详情页(旧:/product/details)")
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "userId", value = "用户id"),
-            @ApiImplicitParam(required = false, name = "productId", value = "商品Id"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = false, name = "productId", value = "商品Id")
     })
     @GetMapping("/product/details")
-    public ResponseJson<ProductDetailVo> getProductDetails(Integer productId, Integer userId, @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
-        return pageService.getProductDetails(productId, userId, flag);
+    public ResponseJson<ProductDetailVo> getProductDetails(Integer productId, Integer userId) {
+        return pageService.getProductDetails(productId, userId);
     }
 
     /**
@@ -221,16 +210,14 @@ public class ProductPageApi {
     @ApiOperation("再次购买商品列表(旧:/repeat/buyAgain)")
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "userId", value = "用户Id"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商"),
             @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/product/repeat")
     public ResponseJson<PaginationVo<ProductItemVo>> getBuyAgainProducts(Integer userId,
-                                                                         @RequestParam(value = "flag", defaultValue = "2") Integer flag,
                                                                          @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                          @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
-        return pageService.getBuyAgainProducts(userId, flag, pageNum, pageSize);
+        return pageService.getBuyAgainProducts(userId, pageNum, pageSize);
     }
 
 
@@ -346,18 +333,16 @@ public class ProductPageApi {
             @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 = "每页数量"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/svip/product/page")
     public ResponseJson<Map<String, Object>> getSvipProductPage(Integer userId, Integer source,
                                                                 @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
-                                                                @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
-                                                                @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
+                                                                @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
         if (null == userId || source == null) {
             return ResponseJson.error("参数错误", null);
         }
-        return pageService.getSvipProductPage(userId, source, pageNum, pageSize, flag);
+        return pageService.getSvipProductPage(userId, source, pageNum, pageSize);
     }
 
     /**

+ 6 - 9
src/main/java/com/caimei365/commodity/controller/ProductPriceApi.java

@@ -38,15 +38,14 @@ public class ProductPriceApi {
     @ApiOperation("获取商品详情价格(旧:/product/detail/price)(注意:supplierId更改为shopId)")
     @ApiImplicitParams({
             @ApiImplicitParam(required = true, name = "userId", value = "用户Id"),
-            @ApiImplicitParam(required = true, name = "productId", value = "商品Id"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = true, name = "productId", value = "商品Id")
     })
     @GetMapping("/detail")
-    public ResponseJson<PriceVo> getDetailPrice(Integer userId, Integer productId, @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
+    public ResponseJson<PriceVo> getDetailPrice(Integer userId, Integer productId) {
         if (null == userId || null == productId) {
             return ResponseJson.error("参数错误", null);
         }
-        return priceService.getDetailPrice(userId, productId, flag);
+        return priceService.getDetailPrice(userId, productId);
     }
 
     /**
@@ -59,16 +58,14 @@ public class ProductPriceApi {
     @ApiImplicitParams({
             @ApiImplicitParam(required = true, name = "userId", value = "用户Id"),
             @ApiImplicitParam(required = true, name = "productIds", value = "商品Ids,逗号拼接"),
-            @ApiImplicitParam(required = true, name = "source", value = "来源 : 1 网站 ; 2 小程序"),
-            @ApiImplicitParam(required = false, name = "flag", value = "协销身份标记: 1 协销 2机构 3供应商")
+            @ApiImplicitParam(required = true, name = "source", value = "来源 : 1 网站 ; 2 小程序")
     })
     @GetMapping("/list")
-    public ResponseJson<List<PriceVo>> getProductPrice(Integer userId, String productIds, Integer source,
-                                                       @RequestParam(value = "flag", defaultValue = "2") Integer flag) {
+    public ResponseJson<List<PriceVo>> getProductPrice(Integer userId, String productIds, Integer source) {
         if (null == userId || StringUtils.isEmpty(productIds) || source == null) {
             return ResponseJson.error("参数错误", null);
         }
-        return priceService.getListPrice(userId, productIds, source, flag);
+        return priceService.getListPrice(userId, productIds, source);
     }
 
     /**

+ 4 - 0
src/main/java/com/caimei365/commodity/mapper/PromotionsMapper.java

@@ -25,6 +25,10 @@ public interface PromotionsMapper {
      * 通过商品Id获取促销信息
      */
     PromotionsVo getPromotionsByProductId(Integer productId);
+    /**
+     * 通过商品Id与用户身份获取促销信息
+     */
+    PromotionsVo getPricePromotions(Integer productId, Integer identity);
     /**
      * 获取促销赠品
      */

+ 1 - 1
src/main/java/com/caimei365/commodity/model/vo/PriceVo.java

@@ -43,7 +43,7 @@ public class PriceVo implements Serializable {
      */
     private Integer maxBuyNumber;
     /**
-     * 是否公开机构价 0公开价格 1不公开价格
+     * 是否公开机构价: 0公开价格,1不公开价格,2仅对会员机构公开,3仅对医美机构公开
      */
     private Integer priceFlag;
     /**

+ 4 - 2
src/main/java/com/caimei365/commodity/model/vo/PromotionsVo.java

@@ -16,8 +16,6 @@ import java.util.List;
 @Data
 public class PromotionsVo implements Serializable {
     private static final long serialVersionUID = 1L;
-
-    private Integer seen;
     private Integer id;
     /**
      * 促销名称
@@ -27,6 +25,10 @@ public class PromotionsVo implements Serializable {
      * 促销描述
      */
     private String description;
+    /**
+     * 活动可见度, 1所有人,2仅对机构
+     */
+    private Integer seen;
     /**
      * 分类: 1单品促销,2凑单促销,3店铺促销
      */

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

@@ -30,7 +30,7 @@ public interface PageService {
      * @param userId 用户id
      * @param source 来源:1网站,2小程序
      */
-    ResponseJson<Map<String, Object>> getClassifyData(Integer pageId, Integer userId, Integer source, Integer flag);
+    ResponseJson<Map<String, Object>> getClassifyData(Integer pageId, Integer userId, Integer source);
 
     /**
      * 首页楼层数据
@@ -38,7 +38,7 @@ public interface PageService {
      * @param userId 用户id
      * @param source 来源:1网站,2小程序
      */
-    ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source, Integer flag);
+    ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source);
 
     /**
      * 首页基础数据(小程序)
@@ -74,7 +74,7 @@ public interface PageService {
      * @param userId 用户id
      * @param source 来源 : 1 网站 ; 2 小程序
      */
-    ResponseJson<Map<String, Object>> getPageBeautyData(Integer pageId, Integer userId, Integer source, Integer flag);
+    ResponseJson<Map<String, Object>> getPageBeautyData(Integer pageId, Integer userId, Integer source);
 
     /**
      * 楼层详情
@@ -83,7 +83,7 @@ public interface PageService {
      * @param userId  用户id
      * @param source  来源 : 1 网站 ; 2 小程序
      */
-    ResponseJson<Map<String, Object>> getPageFloorData(Integer floorId, Integer userId, Integer source, Integer flag);
+    ResponseJson<Map<String, Object>> getPageFloorData(Integer floorId, Integer userId, Integer source);
 
     /**
      * 分页详情楼层详情
@@ -92,7 +92,7 @@ public interface PageService {
      * @param userId   用户id
      * @param source   来源 : 1 网站 ; 2 小程序
      */
-    ResponseJson<Map<String, Object>> getPageCentreData(Integer centreId, Integer userId, Integer source, Integer flag);
+    ResponseJson<Map<String, Object>> getPageCentreData(Integer centreId, Integer userId, Integer source);
 
     /**
      * 商品详情页
@@ -100,14 +100,14 @@ public interface PageService {
      * @param productId 商品Id
      * @param userId    用户Id
      */
-    ResponseJson<ProductDetailVo> getProductDetails(Integer productId, Integer userId, Integer flag);
+    ResponseJson<ProductDetailVo> getProductDetails(Integer productId, Integer userId);
 
     /**
      * 再次购买商品列表
      *
      * @param userId 用户Id
      */
-    ResponseJson<PaginationVo<ProductItemVo>> getBuyAgainProducts(Integer userId, Integer flag, int pageNum, int pageSize);
+    ResponseJson<PaginationVo<ProductItemVo>> getBuyAgainProducts(Integer userId, int pageNum, int pageSize);
 
     /**
      * 项目仪器详情页
@@ -185,7 +185,7 @@ public interface PageService {
      * @param pageSize 每页数量
      * @return
      */
-    ResponseJson<Map<String, Object>> getSvipProductPage(Integer userId, Integer source, Integer pageNum, Integer pageSize, Integer flag);
+    ResponseJson<Map<String, Object>> getSvipProductPage(Integer userId, Integer source, Integer pageNum, Integer pageSize);
 
     /**
      * 充值商品详情

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

@@ -20,7 +20,7 @@ public interface PriceService {
      * @param productId 商品Id
      * @return PriceVo
      */
-    ResponseJson<PriceVo> getDetailPrice(Integer userId, Integer productId, Integer flag);
+    ResponseJson<PriceVo> getDetailPrice(Integer userId, Integer productId);
 
     /**
      * 获取商品列表价格
@@ -30,7 +30,7 @@ public interface PriceService {
      * @param source     来源 : 1 网站 ; 2 小程序
      * @return List<PriceVo>
      */
-    ResponseJson<List<PriceVo>> getListPrice(Integer userId, String productIds, Integer source, Integer flag);
+    ResponseJson<List<PriceVo>> getListPrice(Integer userId, String productIds, Integer source);
 
     /**
      * 获取阶梯价格

+ 1 - 1
src/main/java/com/caimei365/commodity/service/impl/CouponServiceImpl.java

@@ -112,7 +112,7 @@ public class CouponServiceImpl implements CouponService {
         List<ProductItemVo> productList = couponMapper.findCouponProduct(couponId, source, identity);
         productList.forEach(p -> {
             p.setCouponsLogo(true);
-            priceUtilService.setProductDetails(userId, p,2);
+            priceUtilService.setProductDetails(userId, p);
         });
         PageInfo<ProductItemVo> pageInfo = new PageInfo<>(productList);
         map.put("coupon", coupon);

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

@@ -106,7 +106,7 @@ public class PageServiceImpl implements PageService {
      */
     @Override
     @Cacheable(value = "insCommodityData", key = "#pageId+'-'+#userId+'-'+#source", unless = "#result == null")
-    public ResponseJson<Map<String, Object>> getClassifyData(Integer pageId, Integer userId, Integer source, Integer flag) {
+    public ResponseJson<Map<String, Object>> getClassifyData(Integer pageId, Integer userId, Integer source) {
         source = source == null ? 1 : source;
         Map<String, Object> map = new HashMap<>(3);
         Integer typeSort = pageMapper.getPageTypeSort(pageId);
@@ -117,7 +117,7 @@ public class PageServiceImpl implements PageService {
             setFloorLinkType(floorContent);
             floor.setFloorContent(floorContent);
             List<FloorImageVo> floorImageList = pageMapper.getFloorImageByCentreId(floor.getId(), source);
-            setFloorImageProduct(userId, floorImageList, source, flag);
+            setFloorImageProduct(userId, floorImageList, source);
             floor.setFloorImageList(floorImageList);
         }
         map.put("typeSort", typeSort);
@@ -134,7 +134,7 @@ public class PageServiceImpl implements PageService {
      */
     @Cacheable(value = "getHomeCommodityData", key = "#userId +'-'+ #source", unless = "#result == null")
     @Override
-    public ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source, Integer flag) {
+    public ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source) {
         Map<String, Object> map = new HashMap<>(2);
         //楼层管理
         source = source == null ? 1 : source;
@@ -150,7 +150,7 @@ public class PageServiceImpl implements PageService {
                 floorIterator.remove();
                 continue;
             }
-            setFloorImageProduct(userId, floorImageList, source, flag);
+            setFloorImageProduct(userId, floorImageList, source);
             floor.setFloorImageList(floorImageList);
         }
         map.put("homePageFloor", homePageFloor);
@@ -352,7 +352,7 @@ public class PageServiceImpl implements PageService {
      */
     @Cacheable(value = "getPageBeautyData", key = "#userId +'-'+ #pageId +'-'+ #source", unless = "#result == null")
     @Override
-    public ResponseJson<Map<String, Object>> getPageBeautyData(Integer pageId, Integer userId, Integer source, Integer flag) {
+    public ResponseJson<Map<String, Object>> getPageBeautyData(Integer pageId, Integer userId, Integer source) {
         if (pageId == null) {
             return ResponseJson.error("参数异常: 页面id不能为空!", null);
         }
@@ -375,7 +375,7 @@ public class PageServiceImpl implements PageService {
             } else {
                 setFloorLinkType(floorContent);
                 List<FloorImageVo> floorImageList = pageMapper.getFloorImageByCentreId(floor.getId(), source);
-                setFloorImageProduct(userId, floorImageList, source, flag);
+                setFloorImageProduct(userId, floorImageList, source);
                 floor.setFloorImageList(floorImageList);
                 String templateTypeStr = floorContent.getTemplateType();
                 if (StringUtils.isNotEmpty(templateTypeStr)) {
@@ -426,14 +426,14 @@ public class PageServiceImpl implements PageService {
      * @param source  来源 : 1 网站 ; 2 小程序
      */
     @Override
-    public ResponseJson<Map<String, Object>> getPageFloorData(Integer floorId, Integer userId, Integer source, Integer flag) {
+    public ResponseJson<Map<String, Object>> getPageFloorData(Integer floorId, Integer userId, Integer source) {
         if (floorId == null) {
             return ResponseJson.error("参数异常: 页面id不能为空!", null);
         }
         FloorContentVo floorContent = pageMapper.getFloorContentById(floorId);
         setFloorLinkType(floorContent);
         List<FloorImageVo> floorImageList = pageMapper.getFloorImageById(floorId, source);
-        setFloorImageProduct(userId, floorImageList, source, flag);
+        setFloorImageProduct(userId, floorImageList, source);
         Map<String, Object> map = new HashMap<>(2);
         map.put("floorContent", floorContent);
         map.put("floorImageList", floorImageList);
@@ -448,7 +448,7 @@ public class PageServiceImpl implements PageService {
      * @param source   来源 : 1 网站 ; 2 小程序
      */
     @Override
-    public ResponseJson<Map<String, Object>> getPageCentreData(Integer centreId, Integer userId, Integer source, Integer flag) {
+    public ResponseJson<Map<String, Object>> getPageCentreData(Integer centreId, Integer userId, Integer source) {
         if (centreId == null) {
             return ResponseJson.error("参数异常: 分页详情楼层id不能为空!", null);
         }
@@ -471,7 +471,7 @@ public class PageServiceImpl implements PageService {
             }
         }
         List<FloorImageVo> floorImageList = pageMapper.getFloorImageByCentreId(centreId, source);
-        setFloorImageProduct(userId, floorImageList, source, flag);
+        setFloorImageProduct(userId, floorImageList, source);
         Map<String, Object> map = new HashMap<>(2);
         map.put("floorContent", floorContent);
         map.put("floorImageList", floorImageList);
@@ -485,7 +485,7 @@ public class PageServiceImpl implements PageService {
      * @param userId    用户Id
      */
     @Override
-    public ResponseJson<ProductDetailVo> getProductDetails(Integer productId, Integer userId, Integer flag) {
+    public ResponseJson<ProductDetailVo> getProductDetails(Integer productId, Integer userId) {
         ProductDetailVo product = pageMapper.getProductDetails(productId);
         if (product == null) {
             //商品不存在
@@ -594,7 +594,7 @@ public class PageServiceImpl implements PageService {
             // 数据库获取基本价格信息
             PriceVo price = priceMapper.getDetailPrice(productId);
             // 根据用户id设置详细价格
-            priceUtilService.setPriceByUserId(price, userId, flag);
+            priceUtilService.setPriceByUserId(price, userId);
             // 设置价格
             product.setActStatus(price.getActStatus());
             product.setPrice(price.getPrice());
@@ -632,7 +632,7 @@ public class PageServiceImpl implements PageService {
      * @param pageSize
      */
     @Override
-    public ResponseJson<PaginationVo<ProductItemVo>> getBuyAgainProducts(Integer userId, Integer flag, int pageNum, int pageSize) {
+    public ResponseJson<PaginationVo<ProductItemVo>> getBuyAgainProducts(Integer userId, int pageNum, int pageSize) {
         if (null == userId) {
             return ResponseJson.error("参数错误:用户Id不能为空!", null);
         }
@@ -647,7 +647,7 @@ public class PageServiceImpl implements PageService {
             boolean state = (costFlag == 1 && MathUtil.compare(costPrice, discountPrice) >= 0) || MathUtil.compare(discountPrice, price) > 0;
             product.setRepurchasePriceState(state);
             // 设置商品主图及价格
-            priceUtilService.setProductDetails(userId, product, flag);
+            priceUtilService.setProductDetails(userId, product);
             //优惠券标识
             Boolean couponsLogo = pageService.setCouponsLogo(userId, product.getProductId(), 2);
             product.setCouponsLogo(couponsLogo);
@@ -901,7 +901,7 @@ public class PageServiceImpl implements PageService {
     /**
      * 设置楼层相关图片的商品信息
      */
-    private void setFloorImageProduct(Integer userId, List<FloorImageVo> floorImageList, Integer source, Integer flag) {
+    private void setFloorImageProduct(Integer userId, List<FloorImageVo> floorImageList, Integer source) {
         Iterator<FloorImageVo> iterator = floorImageList.iterator();
         while (iterator.hasNext()) {
             FloorImageVo image = iterator.next();
@@ -917,7 +917,7 @@ public class PageServiceImpl implements PageService {
                 ProductItemVo product = pageMapper.getProductItemById(image.getProductId());
                 if (product != null) {
                     // 商品价格
-                    priceUtilService.setProductDetails(userId, product, flag);
+                    priceUtilService.setProductDetails(userId, product);
                     // 设置商品主图
                     image.setListType(1);
                     image.setName(product.getName());
@@ -1153,13 +1153,13 @@ public class PageServiceImpl implements PageService {
     }
 
     @Override
-    public ResponseJson<Map<String, Object>> getSvipProductPage(Integer userId, Integer source, Integer pageNum, Integer pageSize, Integer flag) {
+    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, flag);
+            priceUtilService.setProductDetails(userId, svipProduct);
             svipProduct.setImage(ImageUtils.getImageURL("product", svipProduct.getImage(), 0, domain));
         });
         PaginationVo<ProductItemVo> svipProductPage = new PaginationVo<>(svipProductList);

+ 4 - 4
src/main/java/com/caimei365/commodity/service/impl/PriceServiceImpl.java

@@ -49,11 +49,11 @@ public class PriceServiceImpl implements PriceService {
      * @return PriceVo
      */
     @Override
-    public ResponseJson<PriceVo> getDetailPrice(Integer userId, Integer productId,Integer flag) {
+    public ResponseJson<PriceVo> getDetailPrice(Integer userId, Integer productId) {
         // 数据库获取基本价格信息
         PriceVo price = priceMapper.getDetailPrice(productId);
         // 根据用户id设置详细价格
-        priceUtilService.setPriceByUserId(price, userId,flag);
+        priceUtilService.setPriceByUserId(price, userId);
         log.info(">>>读取商品价格,商品ID:" + productId + ",用户ID:" + userId);
         return ResponseJson.success(price);
     }
@@ -66,7 +66,7 @@ public class PriceServiceImpl implements PriceService {
      * @return List<PriceVo>
      */
     @Override
-    public ResponseJson<List<PriceVo>> getListPrice(Integer userId, String productIds, Integer source, Integer flag) {
+    public ResponseJson<List<PriceVo>> getListPrice(Integer userId, String productIds, Integer source) {
         List<Integer> productIdList = Lists.newArrayList();
         if (productIds.contains(",")) {
             String[] productArr = productIds.split(",");
@@ -83,7 +83,7 @@ public class PriceServiceImpl implements PriceService {
         List<PriceVo> priceList = priceMapper.getListPriceByProductIds(productIdList);
         for (PriceVo price : priceList) {
             // 根据用户id设置详细价格
-            priceUtilService.setPriceByUserId(price, userId, flag);
+            priceUtilService.setPriceByUserId(price, userId);
             Boolean couponsLogo = pageService.setCouponsLogo(userId, price.getProductId(), source);
             price.setCouponsLogo(couponsLogo);
         }

+ 3 - 3
src/main/java/com/caimei365/commodity/service/impl/SellerServiceImpl.java

@@ -57,7 +57,7 @@ public class SellerServiceImpl implements SellerService {
         List<ProductItemVo> productList = sellerMapper.getSingleProductList(searchWord);
         productList.forEach(product -> {
             // 设置商品主图及价格
-            priceUtilService.setProductDetails(clubUserId, product, 1);
+            priceUtilService.setProductDetails(clubUserId, product);
         });
         PaginationVo<ProductItemVo> pageData = new PaginationVo<>(productList);
         return ResponseJson.success(pageData);
@@ -90,7 +90,7 @@ public class SellerServiceImpl implements SellerService {
                 product.setInitProductNum(0);
                 product.setTotalPrice(0d);
                 // 设置商品主图及价格
-                priceUtilService.setProductDetails(clubUserId, product, 1);
+                priceUtilService.setProductDetails(clubUserId, product);
                 //优惠券标识
                 Boolean couponsLogo = pageService.setCouponsLogo(clubUserId, product.getProductId(), 2);
                 product.setCouponsLogo(couponsLogo);
@@ -126,7 +126,7 @@ public class SellerServiceImpl implements SellerService {
             }
             productList.forEach(product -> {
                 // 设置商品主图及价格
-                priceUtilService.setProductDetails(userId, product, 2);
+                priceUtilService.setProductDetails(userId, product);
                 //优惠券标识
                 Boolean couponsLogo = pageService.setCouponsLogo(userId, product.getProductId(), source);
                 product.setCouponsLogo(couponsLogo);

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

@@ -115,7 +115,7 @@ public class ShopServiceImpl implements ShopService {
                 product.setIsChecked(false);
                 // 设置商品主图及价格
                 Integer userId = shopMapper.getUserIdByshopId(shopId);
-                priceUtilService.setProductDetails(userId, product, 3);
+                priceUtilService.setProductDetails(userId, product);
             }
         }
         PaginationVo<ProductItemVo> productPage = new PaginationVo<>(productList);

+ 1 - 1
src/main/java/com/caimei365/commodity/service/impl/UserLikeServiceImpl.java

@@ -58,7 +58,7 @@ public class UserLikeServiceImpl implements UserLikeService {
         List<ProductItemVo> productList = likeMapper.findLikeList(userId);
         productList.forEach(product -> {
             // 设置商品主图及价格
-            priceUtilService.setProductDetails(userId, product, 2);
+            priceUtilService.setProductDetails(userId, product);
             //优惠券标识
             Boolean couponsLogo = pageService.setCouponsLogo(userId, product.getProductId(), 2);
             product.setCouponsLogo(couponsLogo);

+ 29 - 2
src/main/resources/mapper/PromotionsMapper.xml

@@ -36,8 +36,35 @@
         where (prp.productId = #{productId} or
                prp.supplierId = (select p.shopID from product p where p.productID = #{productId})
             )
-          and (pr.status = 1 or (pr.status = 2 and (NOW() between pr.beginTime and pr.endTime)))
-          and pr.delFlag not in (1, 2)
+        and (pr.status = 1 or (pr.status = 2 and (NOW() between pr.beginTime and pr.endTime)))
+        and pr.delFlag not in (1, 2)
+        order by pr.type desc
+        limit 1
+    </select>
+    <select id="getPricePromotions" resultType="com.caimei365.commodity.model.vo.PromotionsVo">
+        select pr.id,
+            pr.name,
+            pr.description,
+            pr.type,
+            pr.mode,
+            pr.touchPrice,
+            pr.reducedPrice,
+            pr.beginTime,
+            pr.endTime,
+            pr.status,
+            prp.productId,
+            prp.supplierId as shopId,
+            pr.seen        as seen
+        from cm_promotions pr
+        left join cm_promotions_product prp on pr.id = prp.promotionsId
+        where (prp.productId = #{productId} or
+                prp.supplierId = (select p.shopID from product p where p.productID = #{productId})
+            )
+        and (pr.status = 1 or (pr.status = 2 and (NOW() between pr.beginTime and pr.endTime)))
+        <if test="identity != 2 and identity != 4">
+            and pr.seen = 1
+        </if>
+        and pr.delFlag not in (1, 2)
         order by pr.type desc
         limit 1
     </select>