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