GroupController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wniu
  5. * Date: 2022/3/24
  6. * Time: 9:59 上午
  7. */
  8. namespace addons\LuckyGroup\api\modules\v1\controllers;
  9. use addons\LuckyGroup\common\enums\LuckyGroupEnum;
  10. use addons\LuckyGroup\common\logic\notify\Notify;
  11. use addons\LuckyGroup\common\models\DefaultModel;
  12. use addons\LuckyGroup\common\models\LuckyGroupLotteryPeriod;
  13. use addons\LuckyGroup\common\models\LuckyGroupOrder;
  14. use api\controllers\OnAuthController;
  15. use common\enums\PayTypeEnum;
  16. use common\enums\StatusEnum;
  17. use common\models\user\User;
  18. class GroupController extends OnAuthController
  19. {
  20. public $modelClass = '';
  21. /**
  22. * 不用进行登录验证的方法
  23. *
  24. * 例如: ['index', 'update', 'create', 'view', 'delete']
  25. * 默认全部需要验证
  26. *
  27. * @var array
  28. */
  29. protected $authOptional = [];
  30. /**
  31. * 拼团记录
  32. * @Author xiucun
  33. * @DateTime 2021-04-20 14:48:47
  34. * @return void
  35. * @copyright: Copyright (c) 2020 广东七件事集团
  36. */
  37. public function actionGroupOrderList()
  38. {
  39. $get = \Yii::$app->request->get();
  40. $res = \Yii::$app->services->validate->validate($get, [
  41. [['group_status'], 'integer'],
  42. ]);
  43. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  44. $params['where'] = [
  45. ['=', 'mall_id', $this->mall_id],
  46. ['=', 'user_id', $this->user_id],
  47. ['=', 'status', StatusEnum::ENABLED],
  48. // ['=', 'is_pay', LuckyGroupEnum::IS_PAY_1],
  49. ];
  50. if (isset($get['group_status'])&&$get['group_status']!=='') {
  51. $params['where'][] = ['=', 'group_status', $get['group_status']];
  52. }
  53. $params['select'] = 'id,goods_id,group_status,goods_attr_id,total_pay_price,buy_nums';
  54. $params['order'] = 'created_at desc';
  55. $params['with'] = ['goods', 'goodsAttr'];
  56. $params['limit'] = 10;
  57. $order_list = LuckyGroupOrder::listPage($params);
  58. if (!$order_list) return $this->error(LuckyGroupOrder::getStaticError());
  59. if ($order_list['list']) {
  60. foreach ($order_list['list'] as $k => &$v) {
  61. $v['group_status_text'] = DefaultModel::getGroupText($this->mall_id, $v['group_status']);
  62. }
  63. }
  64. return $this->success('success', $order_list);
  65. }
  66. /**
  67. * 拼团订单详情
  68. * @Author xiucun
  69. * @DateTime 2021-04-20 14:48:47
  70. * @return void
  71. * @copyright: Copyright (c) 2020 广东七件事集团
  72. */
  73. public function actionGroupOrderDetail()
  74. {
  75. $get = \Yii::$app->request->get();
  76. $res = \Yii::$app->services->validate->validate($get, [
  77. [['id'], 'integer'],
  78. ]);
  79. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  80. $select = 'id,order_no,goods_id,goods_attr_id,group_status,attend_type,address_id,money,buy_nums,win_time,win_nums,payment_type,pay_at,remark,total_pay_price,total_price,shipping_money,created_at,updated_at';
  81. $order_info = LuckyGroupOrder::getOne([['id' => $get['id']]], true, ['goods', 'address', 'goodsAttr', 'orderMarketing'], 'id desc', $select);
  82. if (!$order_info) return $this->error(LuckyGroupOrder::getStaticError());
  83. $order_info['status_text'] = DefaultModel::getAttendTypeArr($this->mall_id, $order_info['attend_type']);
  84. $order_info['group_status_text'] = DefaultModel::getGroupText($this->mall_id, $order_info['group_status']);
  85. $pay_type = PayTypeEnum::getMap();
  86. $order_info['payment_type_status'] = $pay_type[$order_info['payment_type']];
  87. return $this->success('success', $order_info);
  88. }
  89. /**
  90. * 拼中公示
  91. * User: wniu
  92. * Date: 2022/4/6
  93. * Time: 9:45 上午
  94. *
  95. */
  96. public function actionWinList()
  97. {
  98. $params = \Yii::$app->request->get();
  99. $params['select'] = '*';
  100. $params['order'] = 'number desc';
  101. $params['with'] = ['user'];
  102. $params['group'] ='number';
  103. $params['where'] = [['mall_id' => $this->mall_id, 'activity_id' => $params['activity_id'], 'goods_id' => $params['goods_id']]];
  104. $list = LuckyGroupLotteryPeriod::listPage($params);
  105. $win_order_ids = [];
  106. if($list['list']){
  107. foreach ($list['list'] as $k=>$v){
  108. $v['win_order_ids'] = explode(',',$v['win_order_ids']);
  109. $win_order_ids = array_merge($win_order_ids,$v['win_order_ids']);
  110. }
  111. $order_list = LuckyGroupOrder::lists(['where'=>[['id'=>$win_order_ids]],'select'=>'id,user_id','index'=>'id']);
  112. $user_ids = array_column($order_list,'user_id');
  113. $user_list = User::lists(['where'=>[['id'=>$user_ids]],'select'=>'id,avatar_url','index'=>'id']);
  114. foreach ($list['list'] as &$v){
  115. $win_order_ids = explode(',',$v['win_order_ids']);
  116. $v['win_avatar_url'] = [];
  117. foreach ($win_order_ids as $order_id){
  118. if(!empty($order_list[$order_id])&&!empty($user_list[$order_list[$order_id]['user_id']])){
  119. $v['win_avatar_url'][] = $user_list[$order_list[$order_id]['user_id']]['avatar_url'];
  120. }
  121. }
  122. }
  123. }
  124. return $this->success('success', $list);
  125. }
  126. }