WalletLogController.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace addons\Redpack\backend\controllers;
  3. use addons\Redpack\common\enums\RedpackEnum;
  4. use addons\Redpack\common\models\Redpack;
  5. use addons\Redpack\common\models\RedpackWalletLog;
  6. use common\enums\StatusEnum;
  7. use common\models\user\User;
  8. use common\models\user\UserLevel;
  9. use Yii;
  10. use common\controllers\AddonsController;
  11. use yii\db\Exception;
  12. /**
  13. * 默认控制器
  14. *
  15. * Class DefaultController
  16. * @package addons\Redpack\backend\controllers
  17. */
  18. class WalletLogController extends BaseController
  19. {
  20. public $enableCsrfValidation = false;
  21. /**
  22. * 首页
  23. *
  24. * @return string
  25. */
  26. public function actionIndex()
  27. {
  28. try {
  29. $request = Yii::$app->request;
  30. if ($request->isAjax) {
  31. // 提交等级内容
  32. if ($request->isPost) {
  33. $params = Yii::$app->request->post();
  34. $res = Yii::$app->services->validate->validate($params, [
  35. [['page','user_id','user_name','mobile','date_start','date_end','from_type'], 'safe'],
  36. ]);
  37. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  38. $user_ids = [];
  39. $user_name_ids = [];
  40. $is_search = false;
  41. if(!empty($params['user_id'])) $where[] = ['=','user_id',$params['user_id']];
  42. if(!empty($params['mobile'])) {
  43. $user_ids[] = User::find()->select("id")->where(['mall_id' => $this->mall_id,'mobile' => $params['mobile']])->scalar();
  44. $is_search = true;
  45. }
  46. if(!empty($params['user_name'])) {
  47. $user_where[] = ['like','nickname',$params['user_name'] . '%', false];
  48. $select = 'id,nickname';
  49. $user_list = User::lists(['where' =>$user_where,'select' => $select],true);
  50. $user_name_ids = array_column($user_list,'id');
  51. $is_search = true;
  52. }
  53. if($is_search){
  54. $all_user_ids = array_merge($user_ids,$user_name_ids);
  55. if(!$all_user_ids){
  56. $all_user_ids = [-1];
  57. }
  58. $where[] = ['in','user_id',$all_user_ids];
  59. }
  60. if(!empty($params['from_type'])) $where[] = ['=','from_type',$params['from_type']];
  61. if($params['date_start'] && $params['date_end']) $where[] = ['between', 'created_at', strtotime($params['date_start']),strtotime($params['date_end'])];
  62. $where[] = ['=','mall_id',$this->mall_id];
  63. $where[] = ['>=','status',StatusEnum::DISABLED];
  64. $order = 'id desc';
  65. $list = RedpackWalletLog::listPage(['where' => $where,'order' => $order,'with' => ['user']],false);
  66. $list['from_type'] = RedpackEnum::getFromType('', $this->mall_id);
  67. $list['redpack_type'] = RedpackEnum::getRedpackText('', $this->mall_id);
  68. $list['redpack_name'] = Yii::$app->services->setting->addons->get($this->mall_id, RedpackEnum::ADDONS_NAME, 'basic.redpack_name') ?? '红包';
  69. return $this->success('操作成功',$list);
  70. }
  71. }
  72. } catch (\Exception $e) {
  73. return $this->error($e->getMessage(), []);
  74. }
  75. return $this->render($this->action->id);
  76. }
  77. }