Showing
6 changed files
with
76 additions
and
8 deletions
| ... | @@ -4,6 +4,9 @@ namespace App\Http\Controllers\V1; | ... | @@ -4,6 +4,9 @@ namespace App\Http\Controllers\V1; |
| 4 | 4 | ||
| 5 | use App\Http\Controllers\Controller; | 5 | use App\Http\Controllers\Controller; |
| 6 | use App\Models\Membership; | 6 | use App\Models\Membership; |
| 7 | +use App\Models\Order; | ||
| 8 | +use App\Models\UserProfile; | ||
| 9 | +use Carbon\Carbon; | ||
| 7 | use Illuminate\Http\Request; | 10 | use Illuminate\Http\Request; |
| 8 | use Jiannei\Response\Laravel\Support\Facades\Response; | 11 | use Jiannei\Response\Laravel\Support\Facades\Response; |
| 9 | 12 | ||
| ... | @@ -16,7 +19,16 @@ class MembershipController extends Controller | ... | @@ -16,7 +19,16 @@ class MembershipController extends Controller |
| 16 | */ | 19 | */ |
| 17 | public function index(Request $request) | 20 | public function index(Request $request) |
| 18 | { | 21 | { |
| 19 | - $membership = Membership::query()->where('state',1); | 22 | + $user = $request->user(); |
| 23 | + $profile = UserProfile::query()->find($user->id); | ||
| 24 | + | ||
| 25 | + if ($profile->is_vip == 1){ | ||
| 26 | + $state = 2; // 会员显示 | ||
| 27 | + }else{ | ||
| 28 | + $state = 1; // 非会员显示 | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + $membership = Membership::query()->where('state',$state); | ||
| 20 | // 获取会员介绍页内容 | 32 | // 获取会员介绍页内容 |
| 21 | if ($this->isAppleClient()){ | 33 | if ($this->isAppleClient()){ |
| 22 | $membership = $membership->where('terminal',2); | 34 | $membership = $membership->where('terminal',2); |
| ... | @@ -25,11 +37,29 @@ class MembershipController extends Controller | ... | @@ -25,11 +37,29 @@ class MembershipController extends Controller |
| 25 | } | 37 | } |
| 26 | 38 | ||
| 27 | $membership = $membership->first(); | 39 | $membership = $membership->first(); |
| 28 | - | ||
| 29 | if ($membership == null) return Response::fail('no content'); | 40 | if ($membership == null) return Response::fail('no content'); |
| 30 | 41 | ||
| 42 | + if ($profile->is_vip == 1){ | ||
| 43 | + // 会员显示 | ||
| 44 | + $membership->is_vip = 1; | ||
| 45 | + $membership->create_vip_time = '会员开通时间:' . Carbon::parse($profile->create_vip_time)->toDateString(); | ||
| 46 | + $order = Order::query()->where('user_id', $user->id) | ||
| 47 | + ->where('status',Order::DONE) | ||
| 48 | + ->latest(); | ||
| 49 | + $name = $order->order_goods->goods_name; | ||
| 50 | + | ||
| 51 | + if ($this->isAppleClient()){ | ||
| 52 | + $membership->create_vip_type = '订阅模式:' . $name; | ||
| 53 | + }else{ | ||
| 54 | + $membership->create_vip_type = '会员期:' . $name; | ||
| 55 | + } | ||
| 56 | + }else{ | ||
| 57 | + // 非会员显示 | ||
| 58 | + $membership->is_vip = 0; | ||
| 31 | $membership->bg_images = $membership->getImage(); | 59 | $membership->bg_images = $membership->getImage(); |
| 32 | $membership->goods_list = $membership->getMembershipGoods()->get(); | 60 | $membership->goods_list = $membership->getMembershipGoods()->get(); |
| 61 | + } | ||
| 62 | + | ||
| 33 | 63 | ||
| 34 | return Response::success($membership); | 64 | return Response::success($membership); |
| 35 | } | 65 | } | ... | ... |
| ... | @@ -83,7 +83,7 @@ class OrderController extends Controller | ... | @@ -83,7 +83,7 @@ class OrderController extends Controller |
| 83 | $order->order_sn = $order_sn; | 83 | $order->order_sn = $order_sn; |
| 84 | $order->user_id = $user_id; | 84 | $order->user_id = $user_id; |
| 85 | $order->pay_amount = $pay_amount; | 85 | $order->pay_amount = $pay_amount; |
| 86 | - $order->description = '一言会员' . $membership_good->limit_days . $membership_good->limit_unit; | 86 | + $order->description = $membership_good->name . $membership_good->limit_days . $membership_good->limit_unit; |
| 87 | $order->goods_amount = $membership_good->price; | 87 | $order->goods_amount = $membership_good->price; |
| 88 | $order->status = Order::UNPAID; | 88 | $order->status = Order::UNPAID; |
| 89 | $order->source = $source; | 89 | $order->source = $source; |
| ... | @@ -96,7 +96,7 @@ class OrderController extends Controller | ... | @@ -96,7 +96,7 @@ class OrderController extends Controller |
| 96 | $order_good->order_sn = $order_sn; | 96 | $order_good->order_sn = $order_sn; |
| 97 | $order_good->goods_id = $member_id; | 97 | $order_good->goods_id = $member_id; |
| 98 | $order_good->goods_type = OrderGood::MemberShip; | 98 | $order_good->goods_type = OrderGood::MemberShip; |
| 99 | - $order_good->goods_name = $membership_good->limit_days . $membership_good->limit_unit; | 99 | + $order_good->goods_name = $membership_good->name; |
| 100 | $order_good->goods_image = $membership->getSingleImage(); | 100 | $order_good->goods_image = $membership->getSingleImage(); |
| 101 | $order_good->goods_price = $membership_good->price; | 101 | $order_good->goods_price = $membership_good->price; |
| 102 | $order_good->goods_number = $number; | 102 | $order_good->goods_number = $number; | ... | ... |
| ... | @@ -18,9 +18,11 @@ class Membership extends Model | ... | @@ -18,9 +18,11 @@ class Membership extends Model |
| 18 | 18 | ||
| 19 | public function getImage() | 19 | public function getImage() |
| 20 | { | 20 | { |
| 21 | - return collect(explode(',', $this->bg_images))->map(function ($item){ | 21 | +// return collect(explode(',', $this->bg_images))->map(function ($item){ |
| 22 | - return Storage::disk('public')->url($item); | 22 | +// return Storage::disk('public')->url($item); |
| 23 | - }); | 23 | +// }); |
| 24 | + | ||
| 25 | + return Storage::disk('public')->url($this->bg_images); | ||
| 24 | } | 26 | } |
| 25 | 27 | ||
| 26 | public function getSingleImage() | 28 | public function getSingleImage() | ... | ... |
| ... | @@ -14,6 +14,10 @@ class UserProfile extends Model | ... | @@ -14,6 +14,10 @@ class UserProfile extends Model |
| 14 | 14 | ||
| 15 | protected $fillable = ['user_id','unionid']; | 15 | protected $fillable = ['user_id','unionid']; |
| 16 | 16 | ||
| 17 | + protected $casts = [ | ||
| 18 | + 'create_vip_time' => 'boolean', | ||
| 19 | + ]; | ||
| 20 | + | ||
| 17 | public function user() | 21 | public function user() |
| 18 | { | 22 | { |
| 19 | return $this->belongsTo('App\Models\User', 'id', 'user_id'); | 23 | return $this->belongsTo('App\Models\User', 'id', 'user_id'); | ... | ... |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +use Illuminate\Database\Migrations\Migration; | ||
| 4 | +use Illuminate\Database\Schema\Blueprint; | ||
| 5 | +use Illuminate\Support\Facades\Schema; | ||
| 6 | + | ||
| 7 | +class AlterMembershipTable extends Migration | ||
| 8 | +{ | ||
| 9 | + /** | ||
| 10 | + * Run the migrations. | ||
| 11 | + * | ||
| 12 | + * @return void | ||
| 13 | + */ | ||
| 14 | + public function up() | ||
| 15 | + { | ||
| 16 | + // | ||
| 17 | + Schema::table('membership_goods', function (Blueprint $table) { | ||
| 18 | + $table->string('name')->after('membership_id')->default('')->comment('商品名称'); | ||
| 19 | + }); | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + /** | ||
| 23 | + * Reverse the migrations. | ||
| 24 | + * | ||
| 25 | + * @return void | ||
| 26 | + */ | ||
| 27 | + public function down() | ||
| 28 | + { | ||
| 29 | + // | ||
| 30 | + Schema::dropColumns('membership_goods', ['name']); | ||
| 31 | + } | ||
| 32 | +} |
| ... | @@ -46,7 +46,7 @@ Route::prefix('v1')->namespace('App\Http\Controllers\V1')->group(function (Route | ... | @@ -46,7 +46,7 @@ Route::prefix('v1')->namespace('App\Http\Controllers\V1')->group(function (Route |
| 46 | /** 我的作品 */ | 46 | /** 我的作品 */ |
| 47 | $api->get('/my/videos', 'UserController@videos')->middleware('auth:sanctum'); | 47 | $api->get('/my/videos', 'UserController@videos')->middleware('auth:sanctum'); |
| 48 | 48 | ||
| 49 | - /** 我的作品 */ | 49 | + /** 作品详情 */ |
| 50 | $api->get('/my/videos/{id}', 'UserController@video')->middleware('auth:sanctum'); | 50 | $api->get('/my/videos/{id}', 'UserController@video')->middleware('auth:sanctum'); |
| 51 | 51 | ||
| 52 | /** 临境 */ | 52 | /** 临境 */ | ... | ... |
-
Please register or login to post a comment