Cart.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\jielong\model;
  11. use app\model\BaseModel;
  12. /**
  13. * 购物车
  14. */
  15. class Cart extends BaseModel
  16. {
  17. /**
  18. * 添加购物车
  19. * @param $data
  20. * @return array
  21. */
  22. public function addCart($data)
  23. {
  24. $cart_info = model("promotion_jielong_cart")->getInfo([ [ 'sku_id', '=', $data[ 'sku_id' ] ], [ 'member_id', '=', $data[ 'member_id' ] ], [ 'jielong_id', '=', $data[ 'jielong_id' ] ] ], 'cart_id, num');
  25. if (!empty($cart_info)) {
  26. $res = model("promotion_jielong_cart")->update([ 'num' => $cart_info[ 'num' ] + $data[ 'num' ] ], [ [ 'cart_id', '=', $cart_info[ 'cart_id' ] ] ]);
  27. } else {
  28. $res = model("promotion_jielong_cart")->add($data);
  29. }
  30. return $this->success($res);
  31. }
  32. /**
  33. * 获取购物车商品信息
  34. * @param unknown $data
  35. */
  36. public function getCartSkuInfo($condition, $fields, $alias, $join)
  37. {
  38. $res_info = model("promotion_jielong_cart")->getInfo($condition, $fields, $alias, $join);
  39. return $this->success($res_info);
  40. }
  41. /**
  42. * 更新购物车商品数量
  43. * @param unknown $data
  44. */
  45. public function editCart($data)
  46. {
  47. $res = model("promotion_jielong_cart")->update([ 'num' => $data[ 'num' ] ], [ [ 'cart_id', '=', $data[ 'cart_id' ] ], [ 'member_id', '=', $data[ 'member_id' ] ] ]);
  48. return $this->success($res);
  49. }
  50. /**
  51. * 删除购物车商品项(可以多项)
  52. * @param unknown $data
  53. */
  54. public function deleteCart($data)
  55. {
  56. $res = model("promotion_jielong_cart")->delete([ [ 'cart_id', 'in', explode(',', $data[ 'cart_id' ]) ], [ 'member_id', '=', $data[ 'member_id' ] ] ]);
  57. return $this->success($res);
  58. }
  59. /**
  60. * 清空购物车
  61. * @param unknown $data
  62. */
  63. public function clearCart($data)
  64. {
  65. $res = model("promotion_jielong_cart")->delete([ [ 'member_id', '=', $data[ 'member_id' ] ], [ 'jielong_id', '=', $data[ 'jielong_id' ] ] ]);
  66. return $this->success($res);
  67. }
  68. /**
  69. * 获取会员购物车
  70. * @param unknown $member_id
  71. * @param unknown $site_id
  72. */
  73. public function getCart($member_id, $site_id, $jielong_id)
  74. {
  75. $field = 'pjc.cart_id, pjc.site_id, pjc.member_id, pjc.sku_id, pjc.num,pjc.jielong_id, ngs.sku_name,
  76. ngs.sku_no, ngs.sku_spec_format,ngs.price,ngs.market_price,
  77. ngs.discount_price, ngs.promotion_type, ngs.start_time, ngs.end_time, ngs.stock,
  78. ngs.sku_image, ngs.sku_images, ngs.goods_state, ngs.goods_stock_alarm, ngs.is_virtual, ngs.goods_name,
  79. ngs.virtual_indate, ngs.is_free_shipping, ngs.shipping_template, ngs.unit, ngs.introduction,ngs.sku_spec_format, ngs.keywords, ngs.max_buy, ngs.min_buy, ns.site_name, ngs.is_limit, ngs.limit_type';
  80. $alias = 'pjc';
  81. $join = [
  82. [
  83. 'goods_sku ngs',
  84. 'pjc.sku_id = ngs.sku_id',
  85. 'inner'
  86. ],
  87. [
  88. 'site ns',
  89. 'pjc.site_id = ns.site_id',
  90. 'inner'
  91. ],
  92. ];
  93. $list = model("promotion_jielong_cart")->getList([ [ 'pjc.member_id', '=', $member_id ], [ 'pjc.site_id', '=', $site_id ], [ 'ngs.is_delete', '=', 0 ], [ 'pjc.jielong_id', '=', $jielong_id ] ], $field, 'pjc.cart_id desc', $alias, $join);
  94. return $this->success($list);
  95. }
  96. /**
  97. * 获取购物车数量
  98. * @param unknown $member_id
  99. */
  100. public function getCartCount($member_id, $jielong_id)
  101. {
  102. $list = model("promotion_jielong_cart")->getCount([ [ 'member_id', '=', $member_id ], [ 'jielong_id', '=', $jielong_id ] ]);
  103. return $this->success($list);
  104. }
  105. /**
  106. * 获取购物车商品数量
  107. * @param $condition
  108. * @return array
  109. */
  110. public function getCartSumCopy($condition, $field, $alias = 'a', $join = null)
  111. {
  112. $sum = model("promotion_jielong_cart")->getSum($condition, $field, $alias, $join);
  113. return $this->success($sum);
  114. }
  115. public function getCartSum($condition)
  116. {
  117. $sum = model("promotion_jielong_cart")->getCount($condition);
  118. return $this->success($sum);
  119. }
  120. /**
  121. * 获取购物车商品选择数量
  122. * @param $condition
  123. * @return array
  124. */
  125. public function getCartList($condition = [], $field = 'cart_id,site_id,member_id,sku_id,num,jielong_id', $order = 'cart_id desc')
  126. {
  127. $alias = 'gc';
  128. $join = [
  129. [
  130. 'goods_sku gs',
  131. 'gc.sku_id = gs.sku_id',
  132. 'left'
  133. ]
  134. ];
  135. $list = model("promotion_jielong_cart")->getList($condition, $field, $order, $alias, $join);
  136. return $this->success($list);
  137. }
  138. }