Pintuangroup.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\pintuan\api\controller;
  11. use addon\pintuan\model\PintuanGroup as PintuanGroupModel;
  12. use addon\pintuan\model\PintuanOrder;
  13. use app\api\controller\BaseApi;
  14. use app\model\order\OrderCommon;
  15. /**
  16. * 拼团组
  17. */
  18. class Pintuangroup extends BaseApi
  19. {
  20. /**
  21. * 列表信息
  22. */
  23. public function lists()
  24. {
  25. $goods_id = $this->params[ 'goods_id' ] ?? 0;
  26. if (empty($goods_id)) {
  27. return $this->response($this->error('', 'REQUEST_GOODS_ID'));
  28. }
  29. $pintuan_group_model = new PintuanGroupModel();
  30. $condition = [
  31. [ 'ppg.goods_id', '=', $goods_id ],
  32. [ 'ppg.status', '=', 2 ],// 当前状态:0未支付 1拼团失败 2.组团中3.拼团成功
  33. [ 'ppg.site_id', '=', $this->site_id ]
  34. ];
  35. $list = $pintuan_group_model->getPintuanGoodsGroupList($condition);
  36. return $this->response($list);
  37. }
  38. /**
  39. * 获取开团信息
  40. * @return false|string
  41. */
  42. public function info()
  43. {
  44. $group_id = input('group_id', 0);
  45. $condition = [
  46. [ 'pg.group_id', '=', $group_id ],
  47. [ 'pg.site_id', '=', $this->site_id ]
  48. ];
  49. $pintuan_group_model = new PintuanGroupModel();
  50. $info = $pintuan_group_model->getPintuanGroupDetail($condition);
  51. if (!empty($info)) {
  52. $info[ 'data' ][ 'is_self' ] = 0;
  53. $token = $this->checkToken();
  54. if ($token[ 'code' ] == 0 && $info[ 'data' ][ 'head_id' ] == $this->member_id) $info[ 'data' ][ 'is_self' ] = 1;
  55. //待支付的参团订单
  56. $info[ 'data' ][ 'order_id' ] = 0;
  57. if ($token[ 'code' ] == 0) {
  58. $pintuan_order = new PintuanOrder();
  59. $field = 'po.order_id';
  60. $order_info = $pintuan_order->getPintuanOrderInfo([
  61. [ 'po.pintuan_id', '=', $info[ 'data' ][ 'pintuan_id' ] ],
  62. [ 'po.site_id', '=', $this->site_id ],
  63. [ 'po.group_id', '=', $group_id ],
  64. [ 'po.head_id', '<>', $this->member_id ],
  65. [ 'o.member_id', '=', $this->member_id ],
  66. [ 'o.order_status', '<>', OrderCommon::ORDER_CLOSE ],
  67. ], $field, 'po', [
  68. [ 'order o', 'o.order_id = po.order_id', 'left' ]
  69. ]);
  70. $info[ 'data' ][ 'order_id' ] = $order_info[ 'data' ][ 'order_id' ] ?? 0;
  71. }
  72. }
  73. return $this->response($info);
  74. }
  75. }