| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- namespace addons\Achievement\api\modules\v1\controllers;
- use addons\Achievement\common\logic\AchievementLogic;
- use addons\Achievement\common\models\AchievementAwardLog;
- use addons\Achievement\common\models\AchievementGrantLog;
- use common\enums\AddonsEnum;
- use common\enums\StatusEnum;
- /**
- * 默认控制器
- *
- * Class DefaultController
- * @package addons\Achievement\api\modules\v1\controllers
- */
- class AchieveController extends BaseController
- {
- public $modelClass = '';
- /**
- * 不用进行登录验证的方法
- *
- * 例如: ['index', 'update', 'create', 'view', 'delete']
- * 默认全部需要验证
- *
- * @var array
- */
- protected $authOptional = ['index'];
-
- public function actionUserInfo()
- {
- if (!\Yii::$app->request->isGet) {
- return $this->error('请求方式错误');
- }
- $user = $this->user;
- $info = [
- 'user_id' => $user->id,
- 'nickname' => $user->nickname,
- 'avatar_url' => $user->avatar_url,
- 'mobile' => $user->mobile,
- 'settlement_cycle' => '',
- 'settlemented_income' => 0,
- 'not_settlement_income' => 0,
- 'all_income' => 0,
- ];
- $configs = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_ACHIEVEMENT, 'basic');
- // dd($configs);
- if (0 == $configs['settlement_cycle']) {
- $cycle = '每周一';
- } elseif (1 == $configs['settlement_cycle']) {
- $cycle = '每月1号';
- } elseif (2 == $configs['settlement_cycle']) {
- $cycle = '每自然季度';
- } else {
- $cycle = '';
- }
- $info['settlement_cycle'] = $cycle . ' ' . $configs['settlement_time'];
-
- $query = AchievementAwardLog::find()
- ->where(['mall_id' => $this->mall_id, 'user_id' => $this->user_id, 'status' => StatusEnum::ENABLED, 'is_skip_settlement' => 0]);
- $query_not = clone $query;
- $query_ed = clone $query;
- $info['not_settlement_income'] = $query_not->andWhere(['is_settlement' => 0])->asArray()->sum('award_money+equal_money');
- $info['settlemented_income'] = $query_ed->andWhere(['is_settlement' => 1])->asArray()->sum('award_money+equal_money');
- $info['all_income'] = $query->asArray()->sum('award_money+equal_money');
- return $this->success('success', $info);
- }
- public function actionRewardList()
- {
- if (!\Yii::$app->request->isGet) {
- return $this->error('请求方式错误');
- }
- $page = \Yii::$app->request->get('page');
- $limit = \Yii::$app->request->get('limit');
- // 列表类型,0:全部奖励明细,1:已结算;2:未结算
- $type = \Yii::$app->request->get('type');
- if (!in_array($type, [0, 1, 2])) return $this->error('参数错误');
- $wheres[] = ['mall_id' => $this->mall_id, 'user_id' => $this->user_id, 'status' => StatusEnum::ENABLED, 'is_skip_settlement' => 0];
- if (1 == $type) {
- $wheres[] = ['is_settlement' => 1];
- } elseif (2 == $type) {
- $wheres[] = ['is_settlement' => 0];
- }
- $params = [
- 'select' => 'id,grant_id,mall_id,user_id,award_money,is_settlement,achievement_sum,team_achievement,personal_achievement,award_proportion,award_money,created_at,equal_money',
- 'where' => $wheres,
- 'order' => 'created_at desc',
- 'page' => $page,
- 'limit' => $limit,
- ];
- $list = AchievementAwardLog::listPage($params);
- if(!empty($list['list'])){
- $grant_ids = array_column($list['list'],'grant_id');
- $arr = AchievementGrantLog::lists(['where'=>[['id'=>$grant_ids]],'select'=>'id,settlement_time','index'=>'id']);
- foreach ($list['list'] as &$item){
- if(!empty($arr[$item['grant_id']])){
- $item['created_at'] = $arr[$item['grant_id']]['settlement_time']??'';
- }
- $item['award_money'] = $item['award_money'] + $item['equal_money'];
- }
- }
- // $list = AchievementAwardLog::getStaticError();
- return $this->success('success', $list);
- }
- }
|