Goods.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\groupbuy\api\controller;
  11. use addon\groupbuy\model\Groupbuy as GroupbuyModel;
  12. use addon\groupbuy\model\Poster;
  13. use app\api\controller\BaseApi;
  14. use app\api\controller\Goodssku;
  15. /**
  16. * 团购商品
  17. */
  18. class Goods extends BaseApi
  19. {
  20. /**
  21. * 【废弃】基础信息
  22. */
  23. public function info()
  24. {
  25. $groupbuy_id = isset($this->params[ 'groupbuy_id' ]) ? $this->params[ 'groupbuy_id' ] : 0;
  26. $sku_id = isset($this->params[ 'sku_id' ]) ? $this->params[ 'sku_id' ] : 0;
  27. if (empty($groupbuy_id)) {
  28. return $this->response($this->error('', 'REQUEST_GROUPBUY_ID'));
  29. }
  30. if (empty($sku_id)) {
  31. return $this->response($this->error('', 'REQUEST_SKU_ID'));
  32. }
  33. $groupbuy_model = new GroupbuyModel();
  34. $condition = [
  35. [ 'sku.sku_id', '=', $sku_id ],
  36. [ 'pg.groupbuy_id', '=', $groupbuy_id ],
  37. [ 'g.goods_state', '=', 1 ],
  38. [ 'g.is_delete', '=', 0 ]
  39. ];
  40. $info = $groupbuy_model->getGroupbuyGoodsDetail($condition);
  41. return $this->response($info);
  42. }
  43. /**
  44. * 团购商品详情信息
  45. */
  46. public function detail()
  47. {
  48. $groupbuy_id = isset($this->params[ 'groupbuy_id' ]) ? $this->params[ 'groupbuy_id' ] : 0;
  49. if (empty($groupbuy_id)) {
  50. return $this->response($this->error('', 'REQUEST_GROUPBUY_ID'));
  51. }
  52. $groupbuy_model = new GroupbuyModel();
  53. $condition = [
  54. [ 'pg.groupbuy_id', '=', $groupbuy_id ],
  55. [ 'pg.site_id', '=', $this->site_id ],
  56. [ 'g.goods_state', '=', 1 ],
  57. [ 'g.is_delete', '=', 0 ]
  58. ];
  59. $goods_sku_detail = $groupbuy_model->getGroupbuyGoodsDetail($condition)[ 'data' ];
  60. if (empty($goods_sku_detail)) return $this->response($this->error());
  61. $res[ 'goods_sku_detail' ] = $goods_sku_detail;
  62. // 处理公共数据
  63. $goods_sku_api = new Goodssku();
  64. $goods_sku_api->handleGoodsDetailData($res[ 'goods_sku_detail' ]);
  65. return $this->response($this->success($res));
  66. }
  67. /**
  68. * 查询商品SKU集合
  69. * @return false|string
  70. */
  71. public function goodsSku()
  72. {
  73. $goods_id = isset($this->params[ 'goods_id' ]) ? $this->params[ 'goods_id' ] : 0;
  74. $groupbuy_id = isset($this->params[ 'groupbuy_id' ]) ? $this->params[ 'groupbuy_id' ] : 0;
  75. if (empty($goods_id)) {
  76. return $this->response($this->error('', 'REQUEST_ID'));
  77. }
  78. if (empty($groupbuy_id)) {
  79. return $this->response($this->error('', 'REQUEST_GROUPBUY_ID'));
  80. }
  81. $groupbuy_model = new GroupbuyModel();
  82. $condition = [
  83. [ 'pg.groupbuy_id', '=', $groupbuy_id ],
  84. [ 'pg.site_id', '=', $this->site_id ],
  85. [ 'g.goods_id', '=', $goods_id ],
  86. [ 'g.goods_state', '=', 1 ],
  87. [ 'g.is_delete', '=', 0 ]
  88. ];
  89. $list = $groupbuy_model->getGroupbuyGoodsSkuList($condition, null);
  90. return $this->response($list);
  91. }
  92. public function page()
  93. {
  94. $page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
  95. $page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
  96. $goods_id_arr = isset($this->params[ 'goods_id_arr' ]) ? $this->params[ 'goods_id_arr' ] : '';//goods_id数组
  97. $condition = [
  98. [ 'pg.status', '=', 2 ],// 状态(1未开始 2进行中 3已结束)
  99. [ 'g.goods_stock', '>', 0 ],
  100. [ 'g.goods_state', '=', 1 ],
  101. [ 'g.is_delete', '=', 0 ],
  102. [ 'sku.site_id', '=', $this->site_id ]
  103. ];
  104. if (!empty($goods_id_arr)) {
  105. $condition[] = [ 'sku.goods_id', 'in', $goods_id_arr ];
  106. }
  107. $groupbuy_model = new GroupbuyModel();
  108. $list = $groupbuy_model->getGroupbuyGoodsPageList($condition, $page, $page_size, 'pg.groupbuy_id desc');
  109. return $this->response($list);
  110. }
  111. public function lists()
  112. {
  113. $num = isset($this->params[ 'num' ]) ? $this->params[ 'num' ] : 0;
  114. $condition = [
  115. [ 'pg.status', '=', 2 ],// 状态(1未开始 2进行中 3已结束)
  116. [ 'g.goods_stock', '>', 0 ],
  117. [ 'g.goods_state', '=', 1 ],
  118. [ 'g.is_delete', '=', 0 ],
  119. [ 'sku.site_id', '=', $this->site_id ]
  120. ];
  121. if (!empty($goods_id_arr)) {
  122. $condition[] = [ 'sku.goods_id', 'in', $goods_id_arr ];
  123. }
  124. $groupbuy_model = new GroupbuyModel();
  125. $list = $groupbuy_model->getGroupbuyGoodsList($condition, '', 'pg.groupbuy_id desc', $num);
  126. return $this->response($list);
  127. }
  128. /**
  129. * 获取商品海报
  130. */
  131. public function poster()
  132. {
  133. $this->checkToken();
  134. $promotion_type = 'groupbuy';
  135. $qrcode_param = json_decode($this->params[ 'qrcode_param' ], true);
  136. $qrcode_param[ 'source_member' ] = $this->member_id;
  137. $qrcode_param[ 'id' ] = $qrcode_param[ 'groupbuy_id' ] ?? 0;
  138. unset($qrcode_param[ 'groupbuy_id' ]);
  139. $poster = new Poster();
  140. $res = $poster->goods($this->params[ 'app_type' ], $this->params[ 'page' ], $qrcode_param, $promotion_type, $this->site_id);
  141. return $this->response($res);
  142. }
  143. }