|
@@ -3,23 +3,20 @@ package com.caimei.www.service.impl;
|
|
|
import com.caimei.www.mapper.ShoppingDao;
|
|
|
import com.caimei.www.mapper.UserDao;
|
|
|
import com.caimei.www.pojo.JsonModel;
|
|
|
-import com.caimei.www.pojo.order.ActivityPrice;
|
|
|
import com.caimei.www.pojo.order.CartItem;
|
|
|
import com.caimei.www.pojo.order.CartSupplier;
|
|
|
-import com.caimei.www.pojo.order.LadderPrice;
|
|
|
-import com.caimei.www.pojo.user.Account;
|
|
|
+import com.caimei.www.pojo.account.Account;
|
|
|
+import com.caimei.www.service.CommonServiceUtil;
|
|
|
import com.caimei.www.service.ShoppingService;
|
|
|
import com.caimei.www.utils.ImageUtil;
|
|
|
import com.caimei.www.utils.PriceUtil;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
-import java.util.stream.IntStream;
|
|
|
|
|
|
/**
|
|
|
* Description
|
|
@@ -35,7 +32,12 @@ public class ShoppingServiceImpl implements ShoppingService {
|
|
|
private ShoppingDao shoppingDao;
|
|
|
@Resource
|
|
|
private UserDao userDao;
|
|
|
-
|
|
|
+ @Resource
|
|
|
+ private CommonServiceUtil commonServiceUtil;
|
|
|
+ /*@Autowired
|
|
|
+ public void setCommonServiceUtil(CommonServiceUtil commonServiceUtil) {
|
|
|
+ this.commonServiceUtil = commonServiceUtil;
|
|
|
+ }*/
|
|
|
/**
|
|
|
* 顶部购物车数据
|
|
|
*
|
|
@@ -76,7 +78,7 @@ public class ShoppingServiceImpl implements ShoppingService {
|
|
|
boolean priceVisible = (cartItem.getPriceFlag() == 0 || (cartItem.getPriceFlag() == 2 && account.getIdentity() ==2));
|
|
|
if (priceVisible) {
|
|
|
// 设置商品价格
|
|
|
- setCartItemPrice(cartItem, userId);
|
|
|
+ commonServiceUtil.setCartItemPrice(cartItem, userId);
|
|
|
// 该供应商下价格累加
|
|
|
supplierPrice.updateAndGet(v -> v + PriceUtil.add(supplierPrice, cartItem.getPrice()).doubleValue());
|
|
|
itemCount.incrementAndGet();
|
|
@@ -124,46 +126,4 @@ public class ShoppingServiceImpl implements ShoppingService {
|
|
|
return JsonModel.success(resultMap);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 设置购物车商品价格
|
|
|
- * @param cartItem
|
|
|
- * @param userId
|
|
|
- */
|
|
|
- private void setCartItemPrice(CartItem cartItem, Integer userId) {
|
|
|
- // 活动价
|
|
|
- ActivityPrice activity = shoppingDao.getActivityPriceByProductId(cartItem.getProductId());
|
|
|
- if (null != activity) {
|
|
|
- cartItem.setPrice(activity.getPrice());
|
|
|
- cartItem.setActivityFlag(1);
|
|
|
- cartItem.setLadderFlag(0);
|
|
|
- } else if (cartItem.getLadderFlag() == 1) {
|
|
|
- // 阶梯价
|
|
|
- List<LadderPrice> ladderPrices = shoppingDao.getladderPricesByProductId(cartItem.getProductId());
|
|
|
- if (!CollectionUtils.isEmpty(ladderPrices)){
|
|
|
- IntStream.range(0, ladderPrices.size()).forEach(i->{
|
|
|
- boolean isThisLadder;
|
|
|
- if (i == ladderPrices.size()-1) {
|
|
|
- ladderPrices.get(i).setMaxNum(0);
|
|
|
- isThisLadder = (cartItem.getNumber()>ladderPrices.get(i).getBuyNum());
|
|
|
- } else {
|
|
|
- ladderPrices.get(i).setMaxNum(ladderPrices.get(i+1).getBuyNum());
|
|
|
- isThisLadder = (cartItem.getNumber()>ladderPrices.get(i).getBuyNum() && cartItem.getNumber()<ladderPrices.get(i).getMaxNum());
|
|
|
- }
|
|
|
- if (isThisLadder){
|
|
|
- cartItem.setPrice(ladderPrices.get(i).getBuyPrice());
|
|
|
- }
|
|
|
- });
|
|
|
- cartItem.setMin(ladderPrices.get(0).getBuyNum());
|
|
|
- cartItem.setLadderPrices(ladderPrices);
|
|
|
- } else {
|
|
|
- cartItem.setLadderFlag(0);
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 复购价
|
|
|
- Double repurchase = shoppingDao.getRepurchasePrice(cartItem.getProductId(), userId);
|
|
|
- if (null != repurchase && repurchase>0) {
|
|
|
- cartItem.setPrice(repurchase);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
}
|