PoolController.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace addons\Seed\backend\controllers;
  3. use addons\Seed\common\models\SeedCapitalStatistics;
  4. use addons\Seed\common\models\SeedEnergyPool;
  5. use common\enums\StatusEnum;
  6. use common\helpers\DateHelper;
  7. use Yii;
  8. /**
  9. * 能量池控制器
  10. *
  11. * Class PoolController
  12. * @package addons\Seed\backend\controllers
  13. */
  14. class PoolController extends BaseController
  15. {
  16. /**
  17. * 能量池
  18. * @return string
  19. */
  20. public function actionIndex()
  21. {
  22. $retuest = Yii::$app->request;
  23. if ($retuest->isAjax) {
  24. if ($retuest->isGet) {
  25. // 种子金、能量池数据
  26. $statistics = SeedCapitalStatistics::find()->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED])->asArray()->one();
  27. $data['now_seed_num'] = $statistics['total_seed_num'] - $statistics['collect_seed_num'] - $statistics['refund_seed_num'] - $statistics['bad_seed_num'];// 当前种子金数量
  28. $data['total_energy_pool'] = $statistics['total_energy_pool'];// 当前能量池能量
  29. // 今日能量池释放次数
  30. $today = DateHelper::today();
  31. $start_today = $today['start'];// 今日凌晨时间戳
  32. $end_today = $today['end'];// 明日凌晨时间戳
  33. $data['today_release_num'] = SeedEnergyPool::find()->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED])->andWhere(['between','created_at',$start_today,$end_today])->count();// 今日释放能量池次数
  34. // 本周能量池释放次数
  35. $week = DateHelper::thisWeek();
  36. $start_week = $week['start'];// 今日凌晨时间戳
  37. $end_week = $week['end'];// 明日凌晨时间戳
  38. $data['week_release_num'] = SeedEnergyPool::find()->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED])->andWhere(['between','created_at',$start_week,$end_week])->count();// 本周释放能量池次数
  39. $data['release_energy_pool'] = $statistics['release_energy_pool'];// 能量池累计释放总额
  40. $data['release_num'] = $statistics['release_num'];// 能量池总计释放次数
  41. $where = [];
  42. $where[] = ['=', 'mall_id', $this->mall_id];
  43. $where[] = ['=', 'status', StatusEnum::ENABLED];
  44. $params = array('where' => $where, 'order' => 'created_at desc', 'limit' => 7);
  45. $list = SeedEnergyPool::lists($params, true);
  46. if ($list) {
  47. foreach ($list as $item) {
  48. $date = date('m-d H:i', $item['created_at']);
  49. $data['chart']['seed_num']['keys'][] = $date;// 种子金
  50. $data['chart']['seed_num']['values'][] = $item['total_seed_num'];// 种子金
  51. $data['chart']['pool']['keys'][] = $date;// 能量池
  52. $data['chart']['pool']['values'][] = $item['release_energy_pool'];// 能量池
  53. $data['chart']['price']['keys'][] = $date;// 变动单价
  54. $data['chart']['price']['values'][] = $item['unit_price'];// 变动单价
  55. }
  56. }
  57. $data['list'] = $list;
  58. $this->success('获取成功', $data);
  59. }
  60. } else {
  61. return $this->render($this->action->id);
  62. }
  63. }
  64. /**
  65. * 能量池释放记录
  66. * @Author: lun
  67. * @DateTime: 2022/7/28 0028 10:10
  68. * @Copyright: copyright (c) 2021 广东七件事集团
  69. * @return mixed|string|void
  70. */
  71. public function actionRelease()
  72. {
  73. $retuest = Yii::$app->request;
  74. if ($retuest->isAjax) {
  75. if ($retuest->isGet) {
  76. $get = Yii::$app->request->get();
  77. // 检查提交的参数
  78. $res = Yii::$app->services->validate->validate($get,[
  79. [['release_num','page','limit'], 'integer'],
  80. [['start_at','end_at'], 'string'],
  81. ]);
  82. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  83. $where = $list = [];
  84. $where[] = ['=', 'mall_id', $this->mall_id];
  85. !empty($get['release_num']) && $where[] = ['=', 'release_num', $get['release_num']];
  86. // 根据时间筛选
  87. if (!empty($get['start_at']) && !empty($get['end_at'])) {
  88. $where[] = ['between', 'created_at', strtotime($get['start_at']), strtotime($get['end_at'])];
  89. }
  90. $where[] = ['=', 'status', StatusEnum::ENABLED];
  91. $order = 'created_at desc';
  92. $params = array('where' => $where, 'order' => $order, 'limit' => $get['limit']);
  93. $list = SeedEnergyPool::listPage($params, false, true);
  94. $this->success('获取成功', $list);
  95. }
  96. } else {
  97. return $this->render($this->action->id);
  98. }
  99. }
  100. }