<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/6/20
 * Time: 16:34
 */
namespace App\Http\Controllers;

use App\Repositories\PosterRepository;
use App\Traits\UserTrait;
use Illuminate\Support\Facades\Redis;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Intervention\Image\ImageManagerStatic;

class PosterController extends Controller
{
    use UserTrait;
    public function __construct()
    {
    }

    /**
     * 分享内容海报
     */
    public function post(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'id' => 'required|integer',
        ]);
        if ($validator->fails()) {
            return jsonError($validator->errors()->first());
        }

        $userInfo = $this->getUserInfo();
        if(!$userInfo){
            return jsonError('获取用户信息失败');
        }
        $key = 'share_post_id_'.$request['id'].'_uid'.$userInfo['uid'];
        $url = Redis::get($key);
        if($url) return jsonSuccess($url);

        // 合成基本图
        $main = public_path('/image/post/main.png');
        $imageRepository = new PosterRepository($main);

        return $imageRepository->post($main,$userInfo,$request['id'],$key);
    }

    /**
     * 邀请海报
     */
    public function invite()
    {
        $userInfo = $this->getUserInfo();
        if(!$userInfo){
            return jsonError('获取用户信息失败');
        }
        $bean = config('customer.share_invite_bean');
        $key = 'share_invite_uid'.$userInfo['uid'].'bean_'.$bean;
        $url = Redis::get($key);
        if($url) return jsonSuccess($url);

        // 合成基本图
        $main = public_path('/image/invite/main.png');
        $imageRepository = new PosterRepository($main);

        return $imageRepository->invite($main,$userInfo,$key,$bean);
    }
}