wangming vor 1 Monat
Ursprung
Commit
527f4e630d

+ 2 - 4
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ShopCartItemDto.java

@@ -10,16 +10,12 @@
 
 package com.yami.shop.bean.app.dto;
 
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.yami.shop.common.serializer.json.ImgJsonSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 
 /**
  * @author LGH
@@ -52,4 +48,6 @@ public class ShopCartItemDto extends ProductItemDto implements Serializable {
 
     @ApiModelProperty(value = "是否收藏")
     private Boolean isCollection;
+
+    private Integer basketCount;
 }

+ 3 - 2
yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/ChangeShopCartParam.java

@@ -10,11 +10,11 @@
 
 package com.yami.shop.bean.app.param;
 
-import javax.validation.constraints.NotNull;
-
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * @author LGH
  */
@@ -42,6 +42,7 @@ public class ChangeShopCartParam {
 
     @ApiModelProperty(value = "分销推广人卡号")
     private String distributionCardNo;
+
     @ApiModelProperty(value = "渠道id")
     private Integer platform;
 }

+ 5 - 10
yami-shop-service/src/main/java/com/yami/shop/dao/BasketMapper.java

@@ -10,19 +10,13 @@
 
 package com.yami.shop.dao;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import com.yami.shop.bean.app.dto.BasketItemDto;
-import com.yami.shop.bean.app.dto.OrderItemDto;
-import com.yami.shop.bean.app.param.ShopCartParam;
-import org.apache.ibatis.annotations.Param;
-
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yami.shop.bean.app.dto.ShopCartItemDto;
+import com.yami.shop.bean.app.param.ShopCartParam;
 import com.yami.shop.bean.model.Basket;
+import org.apache.ibatis.annotations.Param;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
 
 public interface BasketMapper extends BaseMapper<Basket> {
 
@@ -44,4 +38,5 @@ 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);
 }

+ 21 - 14
yami-shop-service/src/main/java/com/yami/shop/service/impl/BasketServiceImpl.java

@@ -68,17 +68,23 @@ public class BasketServiceImpl extends ServiceImpl<BasketMapper, Basket> impleme
     }
 
     @Override
-    @CacheEvict(cacheNames = "ShopCartItems", key = "#userId")
     public void addShopCartItem(ChangeShopCartParam param, String userId) {
         Basket basket = new Basket();
-        basket.setBasketCount(param.getCount());
-        basket.setBasketDate(new Date());
-        basket.setProdId(param.getProdId());
-        basket.setShopId(param.getShopId());
-        basket.setUserId(userId);
-        basket.setSkuId(param.getSkuId());
-        basket.setDistributionCardNo(param.getDistributionCardNo());
-        basketMapper.insert(basket);
+        ShopCartItemDto cartItem = basketMapper.getShopCartItemsByShopIdSkuIdUserId(param.getShopId(), param.getSkuId(), userId);
+        if (cartItem!=null){
+            basket.setBasketCount(cartItem.getBasketCount() + param.getCount());
+            basket.setBasketId(cartItem.getBasketId());
+            basketMapper.updateById(basket);
+        }else {
+            basket.setBasketCount(param.getCount());
+            basket.setBasketDate(new Date());
+            basket.setProdId(param.getProdId());
+            basket.setShopId(param.getShopId());
+            basket.setUserId(userId);
+            basket.setSkuId(param.getSkuId());
+            basket.setDistributionCardNo(param.getDistributionCardNo());
+            basketMapper.insert(basket);
+        }
     }
 
     @Override
@@ -113,17 +119,18 @@ public class BasketServiceImpl extends ServiceImpl<BasketMapper, Basket> impleme
     @Override
     public List<ShopCartItemDto> getShopCartItems(String userId, Integer platform) {
         // 在这个类里面要调用这里的缓存信息,并没有使用aop,所以不使用注解
-        List<ShopCartItemDto> shopCartItemDtoList = cacheManagerUtil.getCache("ShopCartItems", userId);
-        if (ObjectUtils.isNotEmpty(shopCartItemDtoList)) {
-            return shopCartItemDtoList;
-        }
+//        List<ShopCartItemDto> shopCartItemDtoList = cacheManagerUtil.getCache("ShopCartItems", userId);
+        List<ShopCartItemDto> shopCartItemDtoList = Lists.newArrayList();
+//        if (ObjectUtils.isNotEmpty(shopCartItemDtoList)) {
+//            return shopCartItemDtoList;
+//        }
         shopCartItemDtoList = basketMapper.getShopCartItemsByPlatform(userId, platform);
         for (ShopCartItemDto shopCartItemDto : shopCartItemDtoList) {
             shopCartItemDto.setProductTotalAmount(Arith.mul(shopCartItemDto.getProdCount(), shopCartItemDto.getPrice()));
             shopCartItemDto.setWeight(shopCartItemDto.getWeight());
             shopCartItemDto.setWeightUnit(shopCartItemDto.getWeightUnit());
         }
-        cacheManagerUtil.putCache("ShopCartItems", userId, shopCartItemDtoList);
+//        cacheManagerUtil.putCache("ShopCartItems", userId, shopCartItemDtoList);
         return shopCartItemDtoList;
     }
 

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

@@ -118,4 +118,13 @@
       select user_id from tz_basket where prod_id = #{prodId}
     </select>
 
+    <select id="getShopCartItemsByShopIdSkuIdUserId" resultType="com.yami.shop.bean.app.dto.ShopCartItemDto">
+        SELECT tb.*,tb.basket_count AS prod_count,tsd.shop_name,tp.pic,tp.price,tp.ori_price,tp.brief,ts.properties,ts.prod_name
+        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.sku_id = #{skuId} and tb.user_id = #{userId}
+    </select>
+
 </mapper>