李帅

1.订单会员优化

......@@ -4,6 +4,9 @@ namespace App\Http\Controllers\V1;
use App\Http\Controllers\Controller;
use App\Models\Membership;
use App\Models\Order;
use App\Models\UserProfile;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Jiannei\Response\Laravel\Support\Facades\Response;
......@@ -16,7 +19,16 @@ class MembershipController extends Controller
*/
public function index(Request $request)
{
$membership = Membership::query()->where('state',1);
$user = $request->user();
$profile = UserProfile::query()->find($user->id);
if ($profile->is_vip == 1){
$state = 2; // 会员显示
}else{
$state = 1; // 非会员显示
}
$membership = Membership::query()->where('state',$state);
// 获取会员介绍页内容
if ($this->isAppleClient()){
$membership = $membership->where('terminal',2);
......@@ -25,11 +37,29 @@ class MembershipController extends Controller
}
$membership = $membership->first();
if ($membership == null) return Response::fail('no content');
$membership->bg_images = $membership->getImage();
$membership->goods_list = $membership->getMembershipGoods()->get();
if ($profile->is_vip == 1){
// 会员显示
$membership->is_vip = 1;
$membership->create_vip_time = '会员开通时间:' . Carbon::parse($profile->create_vip_time)->toDateString();
$order = Order::query()->where('user_id', $user->id)
->where('status',Order::DONE)
->latest();
$name = $order->order_goods->goods_name;
if ($this->isAppleClient()){
$membership->create_vip_type = '订阅模式:' . $name;
}else{
$membership->create_vip_type = '会员期:' . $name;
}
}else{
// 非会员显示
$membership->is_vip = 0;
$membership->bg_images = $membership->getImage();
$membership->goods_list = $membership->getMembershipGoods()->get();
}
return Response::success($membership);
}
......
......@@ -83,7 +83,7 @@ class OrderController extends Controller
$order->order_sn = $order_sn;
$order->user_id = $user_id;
$order->pay_amount = $pay_amount;
$order->description = '一言会员' . $membership_good->limit_days . $membership_good->limit_unit;
$order->description = $membership_good->name . $membership_good->limit_days . $membership_good->limit_unit;
$order->goods_amount = $membership_good->price;
$order->status = Order::UNPAID;
$order->source = $source;
......@@ -96,7 +96,7 @@ class OrderController extends Controller
$order_good->order_sn = $order_sn;
$order_good->goods_id = $member_id;
$order_good->goods_type = OrderGood::MemberShip;
$order_good->goods_name = $membership_good->limit_days . $membership_good->limit_unit;
$order_good->goods_name = $membership_good->name;
$order_good->goods_image = $membership->getSingleImage();
$order_good->goods_price = $membership_good->price;
$order_good->goods_number = $number;
......
......@@ -18,9 +18,11 @@ class Membership extends Model
public function getImage()
{
return collect(explode(',', $this->bg_images))->map(function ($item){
return Storage::disk('public')->url($item);
});
// return collect(explode(',', $this->bg_images))->map(function ($item){
// return Storage::disk('public')->url($item);
// });
return Storage::disk('public')->url($this->bg_images);
}
public function getSingleImage()
......
......@@ -14,6 +14,10 @@ class UserProfile extends Model
protected $fillable = ['user_id','unionid'];
protected $casts = [
'create_vip_time' => 'boolean',
];
public function user()
{
return $this->belongsTo('App\Models\User', 'id', 'user_id');
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterMembershipTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
Schema::table('membership_goods', function (Blueprint $table) {
$table->string('name')->after('membership_id')->default('')->comment('商品名称');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
Schema::dropColumns('membership_goods', ['name']);
}
}
......@@ -46,7 +46,7 @@ Route::prefix('v1')->namespace('App\Http\Controllers\V1')->group(function (Route
/** 我的作品 */
$api->get('/my/videos', 'UserController@videos')->middleware('auth:sanctum');
/** 我的作品 */
/** 作品详情 */
$api->get('/my/videos/{id}', 'UserController@video')->middleware('auth:sanctum');
/** 临境 */
......