Jelajahi Sumber

增加购物车相关接口,增加数量和减少数量

baolei 6 bulan lalu
induk
melakukan
ebcdd405d1

+ 16 - 0
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/CartsApiController.java

@@ -69,4 +69,20 @@ public class CartsApiController extends BaseApiController {
         return cartsService.delete(getUserContext(),  request);
     }
 
+    /**
+     * 购物车增加商品数量列表
+     */
+    @PostMapping("/addCnt")
+    public CartsListResponse addCnt(@Valid @RequestBody CartsRequest request){
+        return cartsService.addCnt(getUserContext(),  request);
+    }
+
+    /**
+     * 购物车减少商品数量列表
+     */
+    @PostMapping("/subCnt")
+    public CartsListResponse subCnt(@Valid @RequestBody CartsRequest request){
+        return cartsService.subCnt(getUserContext(),  request);
+    }
+
 }

+ 3 - 0
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/service/CartsServiceI.java

@@ -17,4 +17,7 @@ public interface CartsServiceI {
 
     CartsListResponse delete(UserContext userContext, CartsRequest request);
 
+    CartsListResponse addCnt(UserContext userContext, CartsRequest request);
+    CartsListResponse subCnt(UserContext userContext, CartsRequest request);
+
 }

+ 125 - 0
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/service/impl/CartsApiServiceImpl.java

@@ -394,4 +394,129 @@ class CartsApiServiceImpl implements CartsServiceI {
 
         return new CartsListResponse(cartsResponseList, sum.toPlainString());
     }
+
+    @Override
+    public CartsListResponse addCnt(UserContext userContext, CartsRequest request) {
+
+        SysUser currentUser = userContext.getCurrentUser();
+        Long userId = currentUser.getUserId();
+
+        Carts updCarts = cartsMapper.selectCartsById(request.getId());
+//        if (updCarts.getQuantity() < 9) {
+        updCarts.setQuantity(updCarts.getQuantity() + 1);
+        updCarts.setUpdateUser(userContext.getCurrentUser().getUserId().toString());
+        updCarts.setUpdateTime(DateUtils.getNowDate());
+        cartsMapper.updateCarts(updCarts);
+//        }
+
+        Carts cond = new Carts();
+        cond.setUserId(userId);
+        cond.setDelFlag(EDelFlag.NO.getVal());
+
+        List<Carts> exiCarts = cartsMapper.selectCartsList(cond);
+        List<CartsResponse> cartsResponseList = new ArrayList<>();
+
+        BigDecimal sum = BigDecimal.ZERO;
+        for (Carts carts : exiCarts) {
+
+            MerchantProd mercProd = wxApiProductMapper.selectMerchantProdByMercProdId(carts.getMercProdId());
+
+            ProdAttrPrice condPrice = new ProdAttrPrice();
+            condPrice.setProdAttrId(carts.getProdAttrId());
+            condPrice.setSellerId(mercProd.getMercId());
+            condPrice.setProdId(mercProd.getProdId());
+            condPrice.setBuyerRoleKey(ERoleKey.CUSTOMER.getCode());
+
+            List<ProdAttrPrice> priceList = prodAttrPriceMapper.selectProdAttrPriceList(condPrice);
+
+            CartsResponse cartsResponse = new CartsResponse();
+
+            if (StringUtils.isNotEmpty(priceList)) {
+                sum = sum.add(new BigDecimal(carts.getQuantity()).multiply(RMBUtil.fenToYuan(priceList.get(0).getPrice())));
+                cartsResponse.setPrice(RMBUtil.fenToYuan(priceList.get(0).getPrice()));
+            }
+
+            cartsResponse.setId(carts.getId());
+            cartsResponse.setUserId(userId);
+            cartsResponse.setMercProdId(carts.getMercProdId());
+            cartsResponse.setProdAttrId(carts.getProdAttrId());
+            cartsResponse.setProdName(wxApiProductMapper.selectProdById(mercProd.getProdId()).getProdName());
+            cartsResponse.setProdAttrName(wxApiProductMapper.selectProdAttrByProdAttrId(carts.getProdAttrId()).getAttrName());
+            cartsResponse.setQuantity(carts.getQuantity());
+            cartsResponse.setCheckFlag(carts.getCheckFlag());
+
+            ProdPic condPic = new ProdPic();
+            condPic.setProdId(mercProd.getProdId());
+            condPic.setDelFlag(EDelFlag.NO.getVal());
+
+            List<ProdPic> picList = prodPicServiceImpl.selectProdPicList(condPic);
+            cartsResponse.setProdPicList(picList);
+            cartsResponseList.add(cartsResponse);
+        }
+
+        return new CartsListResponse(cartsResponseList, sum.toPlainString());
+    }
+
+    @Override
+    public CartsListResponse subCnt(UserContext userContext, CartsRequest request) {
+
+        SysUser currentUser = userContext.getCurrentUser();
+        Long userId = currentUser.getUserId();
+
+        Carts updCarts = cartsMapper.selectCartsById(request.getId());
+
+        if (updCarts.getQuantity() > 1) {
+            updCarts.setQuantity(updCarts.getQuantity() - 1);
+            updCarts.setUpdateUser(userContext.getCurrentUser().getUserId().toString());
+            updCarts.setUpdateTime(DateUtils.getNowDate());
+            cartsMapper.updateCarts(updCarts);
+        }
+
+        Carts cond = new Carts();
+        cond.setUserId(userId);
+        cond.setDelFlag(EDelFlag.NO.getVal());
+
+        List<Carts> exiCarts = cartsMapper.selectCartsList(cond);
+        List<CartsResponse> cartsResponseList = new ArrayList<>();
+
+        BigDecimal sum = BigDecimal.ZERO;
+        for (Carts carts : exiCarts) {
+
+            MerchantProd mercProd = wxApiProductMapper.selectMerchantProdByMercProdId(carts.getMercProdId());
+
+            ProdAttrPrice condPrice = new ProdAttrPrice();
+            condPrice.setProdAttrId(carts.getProdAttrId());
+            condPrice.setSellerId(mercProd.getMercId());
+            condPrice.setProdId(mercProd.getProdId());
+            condPrice.setBuyerRoleKey(ERoleKey.CUSTOMER.getCode());
+
+            List<ProdAttrPrice> priceList = prodAttrPriceMapper.selectProdAttrPriceList(condPrice);
+
+            CartsResponse cartsResponse = new CartsResponse();
+
+            if (StringUtils.isNotEmpty(priceList)) {
+                sum = sum.add(new BigDecimal(carts.getQuantity()).multiply(RMBUtil.fenToYuan(priceList.get(0).getPrice())));
+                cartsResponse.setPrice(RMBUtil.fenToYuan(priceList.get(0).getPrice()));
+            }
+
+            cartsResponse.setId(carts.getId());
+            cartsResponse.setUserId(userId);
+            cartsResponse.setMercProdId(carts.getMercProdId());
+            cartsResponse.setProdAttrId(carts.getProdAttrId());
+            cartsResponse.setProdName(wxApiProductMapper.selectProdById(mercProd.getProdId()).getProdName());
+            cartsResponse.setProdAttrName(wxApiProductMapper.selectProdAttrByProdAttrId(carts.getProdAttrId()).getAttrName());
+            cartsResponse.setQuantity(carts.getQuantity());
+            cartsResponse.setCheckFlag(carts.getCheckFlag());
+
+            ProdPic condPic = new ProdPic();
+            condPic.setProdId(mercProd.getProdId());
+            condPic.setDelFlag(EDelFlag.NO.getVal());
+
+            List<ProdPic> picList = prodPicServiceImpl.selectProdPicList(condPic);
+            cartsResponse.setProdPicList(picList);
+            cartsResponseList.add(cartsResponse);
+        }
+
+        return new CartsListResponse(cartsResponseList, sum.toPlainString());
+    }
 }