ApiCartService.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package com.kmall.api.service;
  2. import com.kmall.api.dao.ApiCartMapper;
  3. import com.kmall.api.dao.ApiGoodsCrashMapper;
  4. import com.kmall.api.dao.ApiGoodsMapper;
  5. import com.kmall.api.dao.ApiProductMapper;
  6. import com.kmall.api.entity.CartVo;
  7. import com.kmall.api.entity.GoodsCrashVo;
  8. import com.kmall.api.entity.GoodsVo;
  9. import com.kmall.api.entity.ProductVo;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import java.util.ArrayList;
  13. import java.util.HashMap;
  14. import java.util.List;
  15. import java.util.Map;
  16. @Service
  17. public class ApiCartService {
  18. @Autowired
  19. private ApiCartMapper cartDao;
  20. @Autowired
  21. private ApiGoodsCrashMapper apiGoodsCrashMapper;
  22. @Autowired
  23. private ApiProductMapper apiProductMapper;
  24. @Autowired
  25. private ApiGoodsMapper apiGoodsMapper;
  26. @Autowired
  27. private ApiGoodsSpecificationService apiGoodsSpecificationService;
  28. public CartVo queryObject(Integer id) {
  29. return cartDao.queryObject(id);
  30. }
  31. public List<CartVo> queryList(Map<String, Object> map) {
  32. return cartDao.queryList(map);
  33. }
  34. public int queryTotal(Map<String, Object> map) {
  35. return cartDao.queryTotal(map);
  36. }
  37. public void save(CartVo cart) {
  38. cartDao.save(cart);
  39. // 更新购物车搭配减价
  40. // 判断购物车中是否存在此规格商品
  41. Map cartParam = new HashMap();
  42. cartParam.put("user_id", cart.getUser_id());
  43. List<CartVo> cartInfoList = cartDao.queryList(cartParam);
  44. // 是否有搭配减价
  45. Map crashParam = new HashMap();
  46. List<Long> goods_ids = new ArrayList();
  47. List<CartVo> cartUpdateList = new ArrayList();
  48. for (CartVo cartItem : cartInfoList) {
  49. if (null != cartItem.getChecked() && 1 == cartItem.getChecked()) {
  50. goods_ids.add(cartItem.getGoods_id());
  51. }
  52. if (!cartItem.getRetail_price().equals(cartItem.getRetail_product_price())) {
  53. cartItem.setRetail_price(cartItem.getRetail_product_price());
  54. cartUpdateList.add(cartItem);
  55. }
  56. }
  57. crashParam.put("store_id", cart.getStore_id());
  58. crashParam.put("goods_ids", goods_ids);
  59. List<GoodsCrashVo> goodsCrashList = apiGoodsCrashMapper.queryList(crashParam);
  60. if (null != goodsCrashList) {
  61. for (GoodsCrashVo crashVo : goodsCrashList) {
  62. for (CartVo cartItem : cartInfoList) {
  63. // 存在原始的
  64. if (null != cartItem.getChecked() && 1 == cartItem.getChecked()
  65. && cartItem.getGoods_id().equals(crashVo.getGoods_id())) {
  66. for (CartVo cartCrash : cartInfoList) { // 搭配上了商品
  67. if (!cartCrash.getId().equals(cartItem.getId())
  68. && cartCrash.getGoods_id().equals(crashVo.getGoods_crash_id())
  69. && cartCrash.getProduct_id().equals(crashVo.getProduct_crash_id())) {
  70. cartItem.setRetail_price(crashVo.getRetail_crash_price());
  71. cartUpdateList.add(cartItem);
  72. }
  73. }
  74. }
  75. }
  76. }
  77. }
  78. if (null != cartUpdateList && cartUpdateList.size() > 0) {
  79. for (CartVo cartItem : cartUpdateList) {
  80. cartDao.update(cartItem);
  81. }
  82. }
  83. }
  84. public void update(CartVo cart) {
  85. cartDao.update(cart);
  86. }
  87. public void delete(Long id) {
  88. cartDao.delete(id);
  89. }
  90. public void deleteBatch(Integer[] ids) {
  91. cartDao.deleteBatch(ids);
  92. }
  93. public void updateCheck(String[] productIds, Integer isChecked, Long userId, Long storeId) {
  94. cartDao.updateCheck(productIds, isChecked, userId, storeId);
  95. }
  96. public void deleteByProductIds(String[] productIds, Long storeId) {
  97. cartDao.deleteByProductIds(productIds, storeId);
  98. }
  99. /**
  100. * 只根据商品Id添加到购物车
  101. *
  102. * @param user_id
  103. * @param goods_id
  104. */
  105. public Map addByGoodsId(Long user_id, Long goods_id, Long store_id) {
  106. Map<String, Object> resultObj = new HashMap();
  107. resultObj.put("errno", 0);
  108. resultObj.put("errmsg", "添加成功");
  109. // 判断购物车中是否存在此规格商品
  110. Map cartParam = new HashMap();
  111. cartParam.put("user_id", user_id);
  112. cartParam.put("goods_id", goods_id);
  113. List<CartVo> cartInfoList = cartDao.queryList(cartParam);
  114. if (null != cartInfoList && cartInfoList.size() > 0) {
  115. CartVo cartVo = cartInfoList.get(0);
  116. cartVo.setNumber(cartVo.getNumber() + 1);
  117. update(cartVo);
  118. return resultObj;
  119. }
  120. ProductVo productVo = apiProductMapper.queryOneByGoodsId(goods_id, store_id);
  121. if (null == productVo || productVo.getStock_num() < 1) {
  122. resultObj.put("errno", 1);
  123. resultObj.put("errmsg", "库存不足,仅剩余" + productVo.getStock_num());
  124. return resultObj;
  125. }
  126. GoodsVo goodsVo = apiGoodsMapper.queryObject(goods_id);
  127. CartVo cartInfo = new CartVo();
  128. cartInfo.setGoods_id(productVo.getGoods_id());
  129. cartInfo.setProduct_id(productVo.getId());
  130. cartInfo.setGoods_sn(productVo.getGoods_sn());
  131. cartInfo.setGoods_name(goodsVo.getName());
  132. cartInfo.setList_pic_url(goodsVo.getList_pic_url());
  133. cartInfo.setNumber(1);
  134. cartInfo.setStore_id(store_id);
  135. cartInfo.setUser_id(user_id);
  136. cartInfo.setRetail_price(productVo.getRetail_price());
  137. cartInfo.setMarket_price(productVo.getMarket_price());
  138. //添加规格名和值
  139. cartInfo.setGoods_specification_name_value(productVo.getGoods_specification_name_value());
  140. cartInfo.setGoods_specification_ids(productVo.getGoods_specification_ids());
  141. cartInfo.setChecked(1);
  142. cartInfo.setGoodsBizType(goodsVo.getGoodsBizType());
  143. save(cartInfo);
  144. return resultObj;
  145. }
  146. }