BonusLogController.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. namespace addons\BlindBox\backend\controllers;
  3. use addons\BlindBox\common\enums\BlindBoxEnum;
  4. use addons\BlindBox\common\models\BlindBoxBonusLog;
  5. use addons\BlindBox\common\models\BlindBoxBonusLogDetail;
  6. use addons\BlindBox\common\models\BlindBoxCate;
  7. use addons\BlindBox\common\models\BlindBoxRecommendUserLog;
  8. use common\enums\StatusEnum;
  9. use common\models\order\Order;
  10. use common\models\order\OrderDetail;
  11. use common\models\user\User;
  12. use Yii;
  13. /**
  14. * 默认控制器
  15. *
  16. * Class DefaultController
  17. * @package addons\BlindBox\backend\controllers
  18. */
  19. class BonusLogController extends BaseController
  20. {
  21. /**
  22. * 首页
  23. *
  24. * @return string
  25. */
  26. public function actionIndex()
  27. {
  28. if (\Yii::$app->request->isAjax) {
  29. if (\Yii::$app->request->isGet) {
  30. $params = \Yii::$app->request->get();
  31. $where[] = ['=', 'mall_id', $this->mall_id];
  32. $where[] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]];
  33. if (!empty($params['name'])) $where[] = ['order_no' => trim($params['name'])];
  34. if (!empty($params['start'])) $where[] = ['>=', 'created_at', strtotime($params['start'])];
  35. if (!empty($params['end'])) $where[] = ['<=', 'created_at', strtotime($params['end'])];
  36. $params['where'] = $where;
  37. $params['limit'] = 10;
  38. $params['order'] = 'id DESC';
  39. $params['select'] = 'id,mall_id,user_id,order_no,total_times,divided_times,divided_money,created_at,is_feedback,contribution';
  40. $pageData = BlindBoxBonusLog::listPage($params, false);
  41. if ($pageData === false) return $this->error(BlindBoxCate::getStaticError());
  42. if (!empty($pageData['list'])) {
  43. $user_id = array_column($pageData['list'], 'user_id');
  44. $user_list = User::lists(['where' => [['id' => $user_id]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']);
  45. foreach ($pageData['list'] as &$item) {
  46. $item['nickname'] = $item['avatar_url'] = $item['mobile'] = '';
  47. if (isset($user_list[$item['user_id']])) {
  48. $item['nickname'] = $user_list[$item['user_id']]['nickname'];
  49. $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url'];
  50. $item['mobile'] = $user_list[$item['user_id']]['mobile'];
  51. }
  52. $item['type'] = $item['order_no']['0'];
  53. }
  54. }
  55. $pageData['is_feedback_map'] = BlindBoxEnum::getIsFeedbackMap();
  56. return $this->success('操作成功', $pageData);
  57. }
  58. }
  59. return $this->render('index', [
  60. ]);
  61. }
  62. //详情
  63. public function actionDetail()
  64. {
  65. if (\Yii::$app->request->isAjax) {
  66. if (\Yii::$app->request->isGet) {
  67. $params = \Yii::$app->request->get();
  68. $res = Yii::$app->services->validate->validate($params, [
  69. [['bonus_log_id'], 'required', 'message' => '请选择具体分红记录'],
  70. ]);
  71. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  72. if (!empty($params['order_no'])) $params['where'][] = ['order_no' => trim($params['order_no'])];
  73. if (!empty($params['start'])) $where[] = ['>=', 'created_at', strtotime($params['start'])];
  74. if (!empty($params['end'])) $where[] = ['<=', 'created_at', strtotime($params['end'])];
  75. if (isset($params['is_settlement'])) $where[] = ['is_settlement' => $params['is_settlement']];
  76. $params['where'][] = ['mall_id' => $this->mall_id];
  77. $params['where'][] = ['bonus_log_id' => $params['bonus_log_id']];
  78. $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]];
  79. $params['limit'] = 10;
  80. $params['order'] = 'id DESC';
  81. $params['select'] = 'id,mall_id,user_id,order_no,bonus_log_id,total_contribution,contribution,total_bonus,order_bonus,is_settlement,created_at,money,is_feedback';
  82. $pageData = BlindBoxBonusLogDetail::listPage($params, false);
  83. if ($pageData === false) return $this->error(BlindBoxCate::getStaticError());
  84. if (!empty($pageData['list'])) {
  85. $user_id = array_column($pageData['list'], 'user_id');
  86. $user_list = User::lists(['where' => [['id' => $user_id]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']);
  87. foreach ($pageData['list'] as &$item) {
  88. $item['nickname'] = $item['avatar_url'] = $item['mobile'] = '';
  89. if (isset($user_list[$item['user_id']])) {
  90. $item['nickname'] = $user_list[$item['user_id']]['nickname'];
  91. $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url'];
  92. $item['mobile'] = $user_list[$item['user_id']]['mobile'];
  93. }
  94. }
  95. }
  96. $pageData['is_settlement_map'] = BlindBoxEnum::getIsSettlementMap();
  97. $pageData['is_feedback_map'] = BlindBoxEnum::getIsFeedbackMap();
  98. return $this->success('操作成功', $pageData);
  99. }
  100. }
  101. return $this->render('detail', []);
  102. }
  103. //推荐来源
  104. public function actionSource(){
  105. if (\Yii::$app->request->isAjax) {
  106. if (\Yii::$app->request->isPost) {
  107. $params = \Yii::$app->request->post();
  108. $res = Yii::$app->services->validate->validate($params, [
  109. [['bonus_log_id'], 'required', 'message' => '请选择具体分红记录'],
  110. ]);
  111. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  112. $params['where']=[
  113. ['mall_id'=>$this->mall_id],
  114. ['bonus_log_id'=>$params['bonus_log_id']],
  115. ['status'=>StatusEnum::DISABLED]
  116. ];
  117. $params['select'] = 'user_id';
  118. $list = BlindBoxRecommendUserLog::lists($params);
  119. $user_ids = array_column($list,'user_id');
  120. $user_list = User::lists(['where'=>[['id'=>$user_ids]],'select'=>'id,nickname,mobile,avatar_url']);
  121. return $this->success('操作成功', $user_list);
  122. }
  123. }
  124. }
  125. public function actionSourceGoods(){
  126. if (\Yii::$app->request->isAjax) {
  127. if (\Yii::$app->request->isPost) {
  128. $params = \Yii::$app->request->post();
  129. $res = Yii::$app->services->validate->validate($params, [
  130. [['order_no'], 'required', 'message' => '请选择具体分红记录'],
  131. ]);
  132. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  133. $order = Order::findOne(['order_no'=>$params['order_no']]);
  134. if(empty($order)) return $this->success('操作成功', []);
  135. $order_detail_list = OrderDetail::lists(['where'=>[['order_id'=>$order['id']]],'select'=>'id,goods_name,pic_url,price,num,goods_attr_name']);
  136. return $this->success('操作成功', $order_detail_list);
  137. }
  138. }
  139. }
  140. }