<?php namespace App\Http\Controllers; use App\Services\InviteService; use App\Services\OfferService; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; class InvitesController extends Controller { private $service; public function __construct(InviteService $service) { $this->service = $service; } //回复报价的类型id const INTEGRAL_TYPE_INVITE = 1; public function index(Request $request) { $map = [ 'user_id' => $request->user->user_id, 'page' => $request->get('page'), 'page_size' => $request->get('page_size'), ]; $result = $this->service->getInviteList($map); return $this->Export(0, 'ok', $result); } public function store(Request $request) { $invitedUserId = $request->user->user_id; $userId = $request->get('user_id'); if ($userId == $invitedUserId) { return $this->Export(self::CAN_NOT_INVITE_MYSELF); } if (!$invitedUserId) { return $this->Export(self::INVALID_PARAMETER); } //注意invited_user_id指的是点击邀请好友链接的用户id $map = [ 'user_id' => $userId, 'invited_user_id' => $invitedUserId, 'integral_id' => self::INTEGRAL_TYPE_INVITE, ]; $result = $this->service->addInvite($map); if ($result['errcode'] === self::SUCCESS) { return $this->Export(0, 'ok'); } else { return $this->Export(self::INVITE_FAIL); } } public function info(Request $request) { $userId = $request->user->user_id; $result = $this->service->getInviteInfo(['user_id' => $userId]); //返回user_id方便前端使用 $result['data']['user_id'] = $userId; //还要获取最新的10条邀请记录,走缓存 $newInvites = Cache::remember('recent_invites', 10, function () { return $this->service->getInviteList([]); }); if (is_array($newInvites)) { $newInvites = array_get($newInvites, 'data'); $newInvites = array_map(function ($value) { $value['invited_user_mobile'] = substr_replace($value['invited_user_mobile'], '****', 3, 4); return $value; }, $newInvites); } else { $newInvites = []; } $result['data']['recent_invites'] = $newInvites; return $this->Export(0, 'ok', $result); } }