UserCenterController.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace addons\BusinessActivity\api\modules\v1\controllers;
  3. use addons\BusinessActivity\common\enums\BusinessActivityEnum;
  4. use addons\BusinessActivity\common\service\ActivityService;
  5. use addons\BusinessActivity\common\service\CommissionService;
  6. use addons\BusinessActivity\common\service\OrderService;
  7. use addons\BusinessActivity\common\service\SignInService;
  8. use api\controllers\OnAuthController;
  9. use Yii;
  10. class UserCenterController extends OnAuthController
  11. {
  12. public $modelClass = '';
  13. /**
  14. * 不用进行登录验证的方法
  15. *
  16. * 例如: ['index', 'update', 'create', 'view', 'delete']
  17. * 默认全部需要验证
  18. *
  19. * @var array
  20. */
  21. protected $authOptional = [
  22. 'index'
  23. ];
  24. public function actionIndex()
  25. {
  26. if (empty($this->user_id)) return $this->success('请登录');
  27. $ret['user'] = [
  28. 'nickname' => $this->user['nickname'],
  29. 'avatar_url'=> $this->user['avatar_url'],
  30. 'id' => $this->user['id'],
  31. ];
  32. // 获取活动数据
  33. $activity_data = (new ActivityService())->getActivityCustomByUserId($this->mall_id, $this->user_id);
  34. // 数据统计
  35. $ret['total_commission'] = bcdiv((new CommissionService())->statisticsByUserId($this->mall_id, $this->user_id), 100, 2);
  36. // 所参与的活动
  37. $ret['total_signin'] = (new SignInService())->totalByUserId($this->mall_id, $this->user_id);
  38. $ret['total_order'] = 0;
  39. if (!empty($activity_data['activity'])) {
  40. $total_order = (new OrderService())->totalByActivity($this->mall_id, array_keys($activity_data['activity']));
  41. $ret = array_merge($ret, $total_order);
  42. }
  43. $ret = array_merge($ret, $activity_data);
  44. $ret['page_title'] = Yii::$app->services->setting->addons->get($this->mall_id, BusinessActivityEnum::ADDONS_NAME, 'basic.name') ?? '会议奖励';
  45. return $this->success('获取成功', $ret);
  46. }
  47. }