params = $params; } public function handle() { try { $rewardInfo = $this->params['reward_info']; $setData = [ 'uid' => $this->params['user_id'], 'is_add_up' => $rewardInfo['is_add_up'], 'date' => date('Y-m-d'), 'reward_way' => $this->params['reward_way'], ]; $userModel = new UserModel(); $awarkLogRepo = make(TaskAwarkLogRepository::class); $userModel = $userModel->where('code', $this->params['user_id']); foreach ($rewardInfo['reward'] as $k => $v) { $setData['reward'] = $v; switch ($k) { case 'movie': $setData['reward_type'] = TaskAwarkLogModel::REWARD_TYPE_MOVIE_CONUT; break; case 'house': $setData['reward_type'] = TaskAwarkLogModel::REWARD_TYPE_OPEN_HOUSE_COUNT; $userModel->increment('max_open_house', $v); break; case 'comment': $setData['reward_type'] = TaskAwarkLogModel::REWARD_TYPE_COMMENT_COUNT; break; case 'coin': $setData['reward_type'] = TaskAwarkLogModel::REWARD_TYPE_COIN; break; case 'vipTime': $setData['reward_type'] = TaskAwarkLogModel::REWARD_VIP_TIME; break; } if ($rewardInfo['is_add_up'] == 1) { switch ($k) { case 'movie': $userModel->increment('max_view', $v); break; case 'comment': $userModel->increment('max_comment', $v); break; case 'coin': $userModel->increment('coins', $v); // 帐变记录 $changeData = [ 'user_uid' => $this->params['user_id'], 'currency_type' => ChangeLogConstant::CHANGE_COIN, 'amount' => $v, 'way' => ChangeLogConstant::WAY_1, 'type' => ChangeLogConstant::TYPE_24, 'item_id' => $this->params['reward_way'], ]; make(QueueService::class)->saveChangeLogJob($changeData); break; } } elseif ($rewardInfo['is_add_up'] == 2) { // 不累计 if ($k == 'vipTime') { $userObj = UserModel::query()->where(['code' => $this->params['user_id']])->first(); if (empty($userObj->vip_expired)) { $userObj->vip_expired = Carbon::now()->addDays($v)->toDateTimeString(); } else { $oldVipExpired = Carbon::parse($userObj->vip_expired); $newVipExpired = $oldVipExpired->copy()->addDays($v)->toDateTimeString(); $userObj->vip_expired = $newVipExpired; } $userObj->save(); } } //插入日志 $awarkLogRepo->create($setData); make(UserRepository::class)->delUserCache($this->params['user_id']); } } catch (\Exception $exception) { logger('SendSignInRewardsJob', [$exception->getMessage()]); } } }