MembershipController.php 3.41 KB
<?php

namespace App\Http\Controllers\V1;

use App\Http\Controllers\Controller;
use App\Models\Membership;
use App\Models\UserProfile;
use Illuminate\Http\Request;
use Jiannei\Response\Laravel\Support\Facades\Response;

class MembershipController extends Controller
{
    /**
     * Display a listing of the resource.
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\JsonResponse
     */
    public function index(Request $request)
    {
        $user = $request->user();
        $profile = UserProfile::query()->find($user->id);

        if ($profile == null) return Response::fail('未找到改用户');

        if ($profile->is_vip == UserProfile::IS_VIP) {
            $state = 2;  // 会员显示
        }else{
            $state = 1;  // 非会员显示
        }

        $membership = Membership::query()->where('state',$state);
        // 获取会员介绍页内容
        if ($this->isAppleClient()){
            $membership = $membership->where('terminal',2);
        }else{
            $membership = $membership->where('terminal',1);
        }

        $membership = $membership->first();
        if ($membership == null) return Response::fail('no content');

        $membership->bg_images = $membership->getImage();

        if ($profile->is_vip == UserProfile::IS_VIP) {
            // 会员显示
            $membership->is_vip = UserProfile::IS_VIP;
            $membership->create_vip_time = $profile->create_vip_time;
            $membership->expire_vip_time = $profile->expire_vip_time;
            $membership->goods_list = [];
        }elseif ($profile->is_vip == UserProfile::WAIT_VIP){
            // 非会员显示
            $membership->is_vip = UserProfile::WAIT_VIP;
            $membership->create_vip_time =  '';
            $membership->expire_vip_time =  '';
            $membership->goods_list = $membership->getMembershipGoods()->get();
        }else{
            // 非会员显示
            $membership->is_vip = UserProfile::NO_VIP;
            $membership->create_vip_time =  '';
            $membership->expire_vip_time =  '';
            $membership->goods_list = $membership->getMembershipGoods()->get();
        }


        return Response::success($membership);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}