CommonServiceUtil.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.caimei.www.service;
  2. import com.caimei.www.mapper.CommonDao;
  3. import com.caimei.www.mapper.ShoppingDao;
  4. import com.caimei.www.pojo.order.ActivityPrice;
  5. import com.caimei.www.pojo.order.CartItem;
  6. import com.caimei.www.pojo.order.LadderPrice;
  7. import org.springframework.stereotype.Component;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.util.CollectionUtils;
  10. import javax.annotation.Resource;
  11. import java.util.List;
  12. import java.util.stream.IntStream;
  13. /**
  14. * Description
  15. *
  16. * @author : Charles
  17. * @date : 2020/7/28
  18. */
  19. @Service
  20. public class CommonServiceUtil {
  21. @Resource
  22. private CommonDao commonDao;
  23. /**
  24. * 设置购物车商品价格
  25. * @param cartItem
  26. * @param userId
  27. */
  28. public void setCartItemPrice(CartItem cartItem, Integer userId) {
  29. // 活动价
  30. ActivityPrice activity = commonDao.getActivityPriceByProductId(cartItem.getProductId());
  31. if (null != activity) {
  32. cartItem.setPrice(activity.getPrice());
  33. cartItem.setActivityFlag(1);
  34. cartItem.setLadderFlag(0);
  35. } else if (cartItem.getLadderFlag() == 1) {
  36. // 阶梯价
  37. List<LadderPrice> ladderPrices = commonDao.getladderPricesByProductId(cartItem.getProductId());
  38. if (!CollectionUtils.isEmpty(ladderPrices)){
  39. IntStream.range(0, ladderPrices.size()).forEach(i->{
  40. boolean isThisLadder;
  41. if (i == ladderPrices.size()-1) {
  42. ladderPrices.get(i).setMaxNum(0);
  43. isThisLadder = (cartItem.getNumber()>ladderPrices.get(i).getBuyNum());
  44. } else {
  45. ladderPrices.get(i).setMaxNum(ladderPrices.get(i+1).getBuyNum());
  46. isThisLadder = (cartItem.getNumber()>ladderPrices.get(i).getBuyNum() && cartItem.getNumber()<ladderPrices.get(i).getMaxNum());
  47. }
  48. if (isThisLadder){
  49. cartItem.setPrice(ladderPrices.get(i).getBuyPrice());
  50. }
  51. });
  52. cartItem.setMin(ladderPrices.get(0).getBuyNum());
  53. cartItem.setLadderPrices(ladderPrices);
  54. } else {
  55. cartItem.setLadderFlag(0);
  56. }
  57. } else {
  58. // 复购价
  59. Double repurchase = commonDao.getRepurchasePrice(cartItem.getProductId(), userId);
  60. if (null != repurchase && repurchase>0) {
  61. cartItem.setPrice(repurchase);
  62. }
  63. }
  64. }
  65. }