StatisticsController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace addons\IssueCoupons\backend\controllers;
  3. use addons\IssueCoupons\common\enums\IssueCouponsEnum;
  4. use addons\IssueCoupons\common\models\IssueCouponsRule;
  5. use addons\IssueCoupons\common\models\IssueCouponsStatistics;
  6. use addons\IssueCoupons\common\models\IssueCouponsUser;
  7. use common\enums\AddonsEnum;
  8. use common\enums\StatusEnum;
  9. use common\models\mall\MallAddons;
  10. use common\models\user\User;
  11. use common\models\user\UserLabel;
  12. use common\models\user\UserLevel;
  13. use Yii;
  14. use common\controllers\AddonsController;
  15. use yii\db\Exception;
  16. /**
  17. * 默认控制器
  18. *
  19. * Class DefaultController
  20. * @package addons\IssueCoupons\backend\controllers
  21. */
  22. class StatisticsController extends BaseController
  23. {
  24. public $enableCsrfValidation = false;
  25. /**
  26. * 获取配置
  27. * @Author: ltm
  28. * @DateTime: 2022/06/28 0015 10:43
  29. * @Copyright: copyright (c) 2021 广东七件事集团
  30. * @return array|string|\yii\web\Response
  31. */
  32. public function actionIndex()
  33. {
  34. $retuest = Yii::$app->request;
  35. if ($retuest->isAjax) {
  36. if ($retuest->isPost) {
  37. $params = Yii::$app->request->post();
  38. // 检查提交的参数
  39. $res = Yii::$app->services->validate->validate($params,[
  40. [['name'], 'string'],
  41. [['create_time'],'safe']
  42. ]);
  43. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  44. $where = [];
  45. $time = time();
  46. if(!empty($params['name'])){
  47. $user_ids = IssueCouponsRule::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'name', $params['name'] . '%', false])->asArray()->column();
  48. if (empty($user_ids)) $this->success('查无此用户');
  49. $where[] = ['in', 'rule_id', $user_ids];
  50. };
  51. if($params['create_time']) $where[] = ['between', 'created_at', strtotime($params['create_time'][0]),strtotime($params['create_time'][1])];
  52. $where[] = ['=', 'mall_id', $this->mall_id];
  53. $where[] = ['>=', 'status', StatusEnum::DISABLED];
  54. $order = 'id desc';
  55. $params = array('where' => $where, 'with'=>['rule'], 'order'=>$order, 'limit' => $params['limit']);
  56. $list = IssueCouponsStatistics::listPage($params, false, true);
  57. if($list['list']){
  58. foreach ($list['list'] as $k => $v){
  59. if($v['rule']['coupon']){
  60. $coupon = json_decode($v['rule']['coupon'],true);
  61. if($coupon){
  62. $coupon_array = array_sum(array_column($coupon,'num'));
  63. $list['list'][$k]['rule']['coupon_num'] = $coupon_array;
  64. }
  65. }
  66. if($v['rule']['e_coupon']){
  67. $e_coupon = json_decode($v['rule']['e_coupon'],true);
  68. if($e_coupon){
  69. $e_coupon_array = array_sum(array_column($e_coupon,'num'));
  70. $list['list'][$k]['rule']['e_coupon_num'] = $e_coupon_array;
  71. }
  72. }
  73. }
  74. }
  75. $list['now_time'] = time();
  76. $this->success('获取成功', $list);
  77. }
  78. } else {
  79. return $this->render($this->action->id);
  80. }
  81. }
  82. }