Explorar o código

新增为你推荐购物车商品数量字段

zhangxin hai 3 semanas
pai
achega
49d5af36c2

+ 1 - 1
yami-shop-api/src/main/java/com/yami/shop/api/controller/ProdController.java

@@ -250,7 +250,7 @@ public class ProdController {
                 }
             }
             if (!productDtos.isEmpty()){
-                searchProdDtos =   userShopBehaviorService.findByProdAndShop(page,productDtos);
+                searchProdDtos =   userShopBehaviorService.findByProdAndShop(page,productDtos,userId);
             }
         }
 

+ 3 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/dto/SearchProdDto.java

@@ -79,6 +79,9 @@ public class SearchProdDto {
     @ApiModelProperty("热卖榜标签")
     private String hotLabel;
 
+    @ApiModelProperty("购物车数量")
+    private Long basketTotal;
+
     @ApiModelProperty(value = "sku列表")
     private List<SkuDto> skuList;
 

+ 2 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/BasketMapper.java

@@ -39,4 +39,6 @@ public interface BasketMapper extends BaseMapper<Basket> {
     List<String> listUserIdByProdId(@Param("prodId") Long prodId);
 
     ShopCartItemDto getShopCartItemsByShopIdSkuIdUserId(@Param("shopId") Long shopId, @Param("skuId") Long skuId, @Param("userId")String userId);
+
+    int findByCount( @Param("prodId")Long prodId, @Param("shopId") Long shopId, @Param("userId") String userId);
 }

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/service/UserShopBehaviorService.java

@@ -55,6 +55,6 @@ public interface UserShopBehaviorService extends IService<UserShopBehavior> {
 
     List<ProductDto> findByProdIdAndShopIdAndPrice(Long prodId, Long shopId, BigDecimal increased, BigDecimal decreased);
 
-    IPage<SearchProdDto> findByProdAndShop(PageParam<SearchProdDto> page, List<ProductDto> productDtos);
+    IPage<SearchProdDto> findByProdAndShop(PageParam<SearchProdDto> page, List<ProductDto> productDtos,String userId);
 
 }

+ 6 - 5
yami-shop-service/src/main/java/com/yami/shop/service/impl/UserShopBehaviorServiceImpl.java

@@ -22,10 +22,7 @@ import com.yami.shop.bean.model.Area;
 import com.yami.shop.bean.model.ChannelProd;
 import com.yami.shop.bean.model.UserShopBehavior;
 import com.yami.shop.common.util.PageParam;
-import com.yami.shop.dao.AreaMapper;
-import com.yami.shop.dao.ProductMapper;
-import com.yami.shop.dao.SkuMapper;
-import com.yami.shop.dao.UserShopBehaviorMapper;
+import com.yami.shop.dao.*;
 import com.yami.shop.service.AreaService;
 import com.yami.shop.service.UserShopBehaviorService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +46,9 @@ public class UserShopBehaviorServiceImpl extends ServiceImpl<UserShopBehaviorMap
     @Autowired
     private SkuMapper skuMapper;
 
+    @Autowired
+    private BasketMapper basketMapper;
+
     @Override
     public int findByUserIdCount(String userId) {
 
@@ -76,7 +76,7 @@ public class UserShopBehaviorServiceImpl extends ServiceImpl<UserShopBehaviorMap
     }
 
     @Override
-    public IPage<SearchProdDto> findByProdAndShop(PageParam<SearchProdDto> page, List<ProductDto> productDtos) {
+    public IPage<SearchProdDto> findByProdAndShop(PageParam<SearchProdDto> page, List<ProductDto> productDtos,String userId) {
         IPage<SearchProdDto> byProdAndShop = productMapper.findByProdAndShop(page,productDtos);
         if (byProdAndShop!=null&&byProdAndShop.getRecords()!=null&&!byProdAndShop.getRecords().isEmpty()){
             for (SearchProdDto searchProdDto : byProdAndShop.getRecords()) {
@@ -85,6 +85,7 @@ public class UserShopBehaviorServiceImpl extends ServiceImpl<UserShopBehaviorMap
                         .stocks(sku.getStocks()).properties(sku.getProperties()).skuId(sku.getSkuId())
                         .build()).collect(Collectors.toList());
                 searchProdDto.setSkuList(skuList);
+              int basketTotal =  basketMapper.findByCount(searchProdDto.getProdId(),searchProdDto.getShopId(),userId);
             }
         }
 

+ 8 - 0
yami-shop-service/src/main/resources/mapper/BasketMapper.xml

@@ -132,5 +132,13 @@
                  LEFT JOIN tz_sku ts ON tb.sku_id = ts.sku_id
         WHERE tp.status = 1 AND ts.status =1 and tb.shop_id = #{shopId} and tb.sku_id = #{skuId} and tb.user_id = #{userId}
     </select>
+    <select id="findByCount" resultType="java.lang.Integer">
+        SELECT IFNULL(SUM(tb.basket_count),0)
+        FROM tz_basket tb
+                 LEFT JOIN tz_shop_detail tsd ON tb.shop_id = tsd.shop_id
+                 LEFT JOIN tz_prod tp ON tb.prod_id = tp.prod_id
+                 LEFT JOIN tz_sku ts ON tb.sku_id = ts.sku_id
+        WHERE tp.status = 1 AND ts.status =1 and tb.shop_id = #{shopId} and tb.prod_id = #{prodId} and tb.user_id = #{userId}
+    </select>
 
 </mapper>