Goods.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace addon\cardservice\shopapi\controller;
  13. use addon\cardservice\model\CardGoods;
  14. use addon\cardservice\model\MemberCard as MemberCardModel;
  15. use app\shopapi\controller\BaseApi;
  16. /**
  17. *
  18. * Class Goods
  19. */
  20. class Goods extends BaseApi
  21. {
  22. public function __construct()
  23. {
  24. //执行父类构造函数
  25. parent::__construct();
  26. $token = $this->checkToken();
  27. if ($token[ 'code' ] < 0) {
  28. echo $this->response($token);
  29. exit;
  30. }
  31. }
  32. /**
  33. * 卡项购买记录
  34. */
  35. public function cardList(){
  36. $model = new MemberCardModel();
  37. $page_index = $this->params['page'] ?? 1;
  38. $page_size = $this->params['page_size'] ?? PAGE_LIST_ROWS;
  39. $goods_id = $this->params['goods_id'] ?? 0;
  40. $search_text = $this->params['search_text'] ?? '';
  41. $condition = [
  42. [ 'mgc.site_id', '=', $this->site_id ],
  43. [ 'mgc.goods_id', '=', $goods_id ],
  44. ];
  45. if (!empty($search_text)) {
  46. $condition[] = [ 'm.nickname', 'like', '%' . $search_text . '%' ];
  47. }
  48. $field = 'mgc.*, g.goods_name,g.price,g.goods_image,m.username,m.nickname,m.headimg';
  49. $join = [
  50. [ 'goods g', 'mgc.goods_id = g.goods_id', 'inner' ],
  51. [ 'member m', 'mgc.member_id = m.member_id', 'left' ],
  52. ];
  53. $list = $model->getCardPageList($condition, $field, 'mgc.create_time desc', $page_index, $page_size, 'mgc', $join);
  54. return $this->response($list);
  55. }
  56. /**
  57. * 卡项购买记录详情
  58. */
  59. public function cardDetail(){
  60. $card_id = $this->params['card_id'] ?? 0;
  61. $model = new MemberCardModel();
  62. $card_goods = new CardGoods();
  63. $condition = [
  64. [ 'mgc.card_id', '=', $card_id ],
  65. [ 'mgc.site_id', '=', $this->site_id ],
  66. ];
  67. $field = 'mgc.*, g.goods_name,g.price,g.goods_image,m.username,m.nickname,m.headimg';
  68. $join = [
  69. [ 'goods g', 'mgc.goods_id = g.goods_id', 'inner' ],
  70. [ 'member m', 'mgc.member_id = m.member_id', 'left' ],
  71. ];
  72. $detail = $model->getCardInfo($condition, $field, 'mgc', $join)[ 'data' ] ?? [];
  73. $detail[ 'card_type_name' ] = $card_goods->getCardType($detail[ 'card_type' ])[ 'title' ];
  74. $condition = [
  75. [ 'mgc.card_id', '=', $card_id ],
  76. [ 'g.goods_state', '=', 1 ],
  77. [ 'g.is_delete', '=', 0 ]
  78. ];
  79. $join = [
  80. [ 'goods_sku g', 'mgc.sku_id = g.sku_id', 'left' ],
  81. ];
  82. $item_list = $model->getCartItemList($condition, 'mgc.*, g.sku_name', 'mgc.item_id asc', 'mgc', $join)[ 'data' ] ?? [];
  83. $detail['item_list'] = $item_list;
  84. return $this->response($this->success($detail));
  85. }
  86. /**
  87. * 卡项使用记录
  88. * @return false|string
  89. */
  90. public function cardUseRecord()
  91. {
  92. $page_index = $this->params['page'] ?? 1;
  93. $page_size = $this->params['page_size'] ?? PAGE_LIST_ROWS;
  94. $card_id = $this->params['card_id'] ?? 0;
  95. $item_id = $this->params['item_id'] ?? 0;
  96. $condition = [];
  97. $condition[] = [ 'cr.site_id', '=', $this->site_id ];
  98. if (!empty($item_id)) {
  99. $condition[] = [ 'cr.card_item_id', '=', $item_id ];
  100. }
  101. if (!empty($card_id)) {
  102. $condition[] = [ 'cr.card_id', '=', $card_id ];
  103. }
  104. $alias = 'cr';
  105. $prefix = config('database.connections.mysql.prefix');
  106. $field = 'cr.*, sku.sku_name,sku.sku_image,sku.sku_images,sku.price,ci.num as item_num,
  107. IF(cr.type = \'order\', (select order_id from `' . $prefix . 'order_goods` og where og.order_goods_id = cr.relation_id), 0) as order_id, s.store_name';
  108. $join = [
  109. [ 'member_goods_card_item ci', 'ci.item_id = cr.card_item_id', 'left' ],
  110. [ 'goods_sku sku', 'ci.sku_id = sku.sku_id', 'left' ],
  111. [ 'store s', 'cr.store_id = s.store_id', 'left' ],
  112. ];
  113. $model = new MemberCardModel();
  114. $list = $model->getMemberCardRecordsPageList($condition, $field, 'cr.create_time desc', $page_index, $page_size, $alias, $join);
  115. return $this->response($list);
  116. }
  117. }