IndexController.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <?php
  2. namespace addons\Seed\backend\controllers;
  3. use addons\Seed\common\enums\SeedEnum;
  4. use addons\Seed\common\models\SeedLog;
  5. use addons\Seed\common\models\SeedOrder;
  6. use addons\Seed\common\models\SeedUser;
  7. use common\enums\DownloadEnum;
  8. use common\enums\StatusEnum;
  9. use common\helpers\csv\CsvExportHelper;
  10. use common\models\common\CapitalLog;
  11. use common\models\user\User;
  12. use Yii;
  13. use common\controllers\AddonsController;
  14. /**
  15. * 种子金控制器
  16. *
  17. * Class IndexController
  18. * @package addons\Seed\backend\controllers
  19. */
  20. class IndexController extends BaseController
  21. {
  22. public $enableCsrfValidation = false;
  23. /**
  24. * 用户种子金
  25. * @return string
  26. */
  27. public function actionUser()
  28. {
  29. $retuest = Yii::$app->request;
  30. if ($retuest->isAjax) {
  31. if ($retuest->isGet) {
  32. $get = Yii::$app->request->get();
  33. // 检查提交的参数
  34. $res = Yii::$app->services->validate->validate($get,[
  35. [['user_id','mobile','page','limit'], 'integer'],
  36. ]);
  37. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  38. $where = $list = [];
  39. $where[] = ['=', 'mall_id', $this->mall_id];
  40. !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']];
  41. $where[] = ['=', 'status', StatusEnum::ENABLED];
  42. // 根据搜索手机号查询用户id
  43. if (!empty($get['mobile'])) {
  44. $user_id = User::find()->select("id")->where(['mall_id' => $this->mall_id,'mobile' => $get['mobile']])->asArray()->column();
  45. if (empty($user_id)) $this->success('获取成功', $list);
  46. $where[] = ['in', 'user_id', $user_id];
  47. }
  48. $with = ['user'];
  49. $select = "user_id,total_seed_num,total_seed_cost";
  50. $order = 'id desc,created_at desc';
  51. $params = array('where' => $where, 'select' => $select, 'order' => $order, 'with' => $with, 'limit' => $get['limit'] ?: 20);
  52. $list = SeedUser::listPage($params, false, true);
  53. $list['export_list'] = SeedUser::fieldsList();
  54. $this->success('获取成功', $list);
  55. }
  56. if ($retuest->isPost) {
  57. $post = $retuest->post();
  58. // 检查提交的参数
  59. $res = Yii::$app->services->validate->validate($post,[
  60. [['user_id','mobile'], 'integer'],
  61. [['fields'], 'safe'],
  62. ]);
  63. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  64. $filename = '种子金记录-' . date('YmdHis').'_'.rand(10000,99999);
  65. $post['mall_id'] = $this->mall_id;
  66. $res = CsvExportHelper::exportDownLoadCenter($this->mall_id,$filename,DownloadEnum::TYPE_ASSETS,SeedUser::class,'exportHandle',$post);
  67. if ($res === false) return $this->error('加入导出任务失败'.CsvExportHelper::getStaticError());
  68. return $this->success('添加导出任务成功,任务完成后请在下载中心进行下载!');
  69. }
  70. } else {
  71. return $this->render($this->action->id);
  72. }
  73. }
  74. /**
  75. * 种子金订单
  76. * @Author: lun
  77. * @DateTime: 2022/7/28 0028 10:10
  78. * @Copyright: copyright (c) 2021 广东七件事集团
  79. * @return mixed|string|void
  80. */
  81. public function actionOrder()
  82. {
  83. $retuest = Yii::$app->request;
  84. if ($retuest->isAjax) {
  85. if ($retuest->isGet) {
  86. $get = Yii::$app->request->get();
  87. // 检查提交的参数
  88. $res = Yii::$app->services->validate->validate($get,[
  89. [['user_id','page','limit'], 'integer'],
  90. [['order_no','start_at','end_at'], 'string'],
  91. ]);
  92. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  93. $where = $list = [];
  94. $where[] = ['=', 'mall_id', $this->mall_id];
  95. !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']];
  96. !empty($get['order_no']) && $where[] = ['=', 'order_no', $get['order_no']];
  97. // 根据时间筛选
  98. if (!empty($get['start_at']) && !empty($get['end_at'])) {
  99. $where[] = ['between', 'created_at', strtotime($get['start_at']), strtotime($get['end_at'])];
  100. }
  101. $where[] = ['=', 'status', StatusEnum::ENABLED];
  102. $with = ['user'];
  103. $select = "id,user_id,identity,order_id,event_pay,order_no,seed_num,basic_unit_price,unit_price,seed_cost,seed_status,created_at";
  104. $order = 'created_at desc';
  105. $params = array('where' => $where, 'select' => $select, 'order' => $order, 'with' => $with, 'limit' => $get['limit']);
  106. $list = SeedOrder::listPage($params, false, true);
  107. $seed_status_arr = SeedEnum::getSeedMap();// 获取种子金状态
  108. $this->success('获取成功', compact('list','seed_status_arr'));
  109. }
  110. } else {
  111. return $this->render($this->action->id);
  112. }
  113. }
  114. /**
  115. * 种子金变动明细
  116. * @Author: lun
  117. * @DateTime: 2022/7/28 0028 10:21
  118. * @Copyright: copyright (c) 2021 广东七件事集团
  119. * @return mixed|string|void
  120. */
  121. public function actionChangeLog()
  122. {
  123. $retuest = Yii::$app->request;
  124. if ($retuest->isAjax) {
  125. if ($retuest->isGet) {
  126. $get = Yii::$app->request->get();
  127. // 检查提交的参数
  128. $res = Yii::$app->services->validate->validate($get,[
  129. [['seed_order_id','user_id'], 'integer'],
  130. [['order_no','start_at','end_at'], 'string'],
  131. ]);
  132. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  133. $where = $list = [];
  134. $where[] = ['=', 'mall_id', $this->mall_id];
  135. !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']];
  136. !empty($get['seed_order_id']) && $where[] = ['=', 'seed_order_id', $get['seed_order_id']];
  137. // 根据订单号筛选
  138. if (!empty($get['order_no'])) {
  139. $order_id = SeedOrder::find()->select('order_id')->where(['order_no' => $get['order_no'], 'status' => StatusEnum::ENABLED])->scalar();
  140. !empty($order_id) && $where[] = ['=', 'order_id', $order_id];
  141. }
  142. // 根据时间筛选
  143. if (!empty($get['start_at']) && !empty($get['end_at'])) {
  144. $where[] = ['between', 'created_at', strtotime($get['start_at']), strtotime($get['end_at'])];
  145. }
  146. $where[] = ['=', 'status', StatusEnum::ENABLED];
  147. $with = ['user','seedOrder'];
  148. $order = 'created_at desc';
  149. $select = 'mall_id,user_id,order_id,event_pay,seed_num,seed_cost,change_unit_price,after_unit_price,desc,capital_type,created_at';
  150. $params = array('where' => $where, 'select' => $select, 'order' => $order, 'with' => $with, 'limit' => $get['limit']);
  151. $list = SeedLog::listPage($params, false, true);
  152. $seed_status_arr = SeedEnum::getChangeMap();// 获取种子金状态
  153. $this->success('获取成功', compact('list','seed_status_arr'));
  154. }
  155. } else {
  156. return $this->render($this->action->id);
  157. }
  158. }
  159. }