6
0
Fork 0

添加分区优惠券接口

release
vine_liutk 2021-12-23 13:56:14 +08:00
parent 724d82cddc
commit a85b9f0c7f
4 changed files with 53 additions and 3 deletions

View File

@ -3,6 +3,7 @@
namespace App\Endpoint\Api\Http\Controllers\Product;
use App\Endpoint\Api\Http\Controllers\Controller;
use App\Endpoint\Api\Http\Resources\CouponResource;
use App\Endpoint\Api\Http\Resources\ProductSkuTinyResource;
use App\Helpers\Paginator;
use App\Models\ProductPart;
@ -17,7 +18,7 @@ class PartController extends Controller
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function __invoke(Request $request)
public function index(Request $request)
{
$part = null;
@ -43,4 +44,17 @@ class PartController extends Controller
})
);
}
public function coupons(Request $request)
{
$part = null;
if (filled($partKey = $request->query('part'))) {
$part = ProductPart::where('key', $partKey)->first();
}
return response()->json([
'coupons'=> $part ? CouponResource::collection($part->getCoupons()->get()) : [],
'description' => $part?->description,
]);
}
}

View File

@ -0,0 +1,26 @@
<?php
namespace App\Endpoint\Api\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class CouponResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'type' => $this->type,
'amount' => $this->amount,
'threshold' => $this->threshold,
// 'receive_status' => $this->whenLoaded('likesInfo', $this->likesInfo->count() > 0),
];
}
}

View File

@ -57,7 +57,8 @@ Route::group([
// 热销商品
Route::get('product/hot', HotController::class);
// 商品分区
Route::get('product/part', PartController::class);
Route::get('product/part', [PartController::class, 'index']);
Route::get('product/part-coupons', [PartController::class, 'coupons']);
// 筛选商品
Route::get('product/products', [ProductSkuController::class, 'index']);
// 查看商品

View File

@ -54,10 +54,19 @@ class ProductPart extends Model
}
/**
* 此分区购买赠送的券
* 此分区购买赠送的券关系
*/
public function coupons()
{
return $this->hasMany(ProductPartCoupon::class, 'part_id');
}
/**
* 返回实际关联的券
* @return queryBuilder
*/
public function getCoupons()
{
return Coupon::whereIn('id', $this->coupons->pluck('coupon_id')->toArray());
}
}