头像.Spu
parent
b04da7b793
commit
91eccc1761
|
|
@ -19,8 +19,10 @@ class UserController extends AdminController
|
||||||
$grid->model()
|
$grid->model()
|
||||||
->where('is_company', 1)
|
->where('is_company', 1)
|
||||||
->orderBy('created_at', 'desc');
|
->orderBy('created_at', 'desc');
|
||||||
|
|
||||||
$grid->column('user.id');
|
$grid->column('user.id');
|
||||||
|
$grid->column('avatar')->image('', 64);
|
||||||
|
$grid->column('nickname');
|
||||||
$grid->column('user.phone', '手机号')->copyable();
|
$grid->column('user.phone', '手机号')->copyable();
|
||||||
$grid->column('invite_complete_orders_count', '帮下单数');
|
$grid->column('invite_complete_orders_count', '帮下单数');
|
||||||
$grid->column('invite_complete_orders_sum_total_amount', '帮下单总额')->display(function ($value) {
|
$grid->column('invite_complete_orders_sum_total_amount', '帮下单总额')->display(function ($value) {
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,11 @@ class ProductSkuController extends Controller
|
||||||
$input['sort'] = '-id';
|
$input['sort'] = '-id';
|
||||||
}
|
}
|
||||||
|
|
||||||
$skus = ProductSku::select(['id', 'name', 'cover', 'sell_price', 'vip_price', 'market_price'])
|
$skus = ProductSpu::select(['id', 'name', 'cover', 'sell_price', 'vip_price', 'market_price'])
|
||||||
->filter($input)
|
->filter($input)
|
||||||
->online()
|
->whereHas('skus', function ($q) {
|
||||||
|
$q->online();
|
||||||
|
})
|
||||||
->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||||||
|
|
||||||
return ProductSkuTinyResource::collection($skus);
|
return ProductSkuTinyResource::collection($skus);
|
||||||
|
|
@ -62,11 +64,12 @@ class ProductSkuController extends Controller
|
||||||
public function show($id, Request $request)
|
public function show($id, Request $request)
|
||||||
{
|
{
|
||||||
$user = $request->user();
|
$user = $request->user();
|
||||||
|
$spu = ProductSpu::with(['specs', 'features'])->findOrFail($id);
|
||||||
|
|
||||||
$sku = ProductSku::with('buynote')->findOrFail($id);
|
$sku = $spu->skus()->with(['buynote'])->online()->first();
|
||||||
|
if (!$sku) {
|
||||||
$spu = ProductSpu::with(['specs', 'features'])->findOrFail($sku->spu_id);
|
throw new BizException('商品sku未上架');
|
||||||
|
}
|
||||||
// 主商品的规格
|
// 主商品的规格
|
||||||
$spuSpecs = [];
|
$spuSpecs = [];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,15 @@ namespace App\Models;
|
||||||
|
|
||||||
use App\Casts\JsonArray;
|
use App\Casts\JsonArray;
|
||||||
use App\Casts\Price;
|
use App\Casts\Price;
|
||||||
|
use App\Endpoint\Api\Filters\ProductSkuFilter;
|
||||||
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use EloquentFilter\Filterable;
|
||||||
|
|
||||||
class ProductSpu extends Model
|
class ProductSpu extends Model
|
||||||
{
|
{
|
||||||
use HasDateTimeFormatter;
|
use HasDateTimeFormatter;
|
||||||
|
use Filterable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
|
|
@ -57,6 +60,11 @@ class ProductSpu extends Model
|
||||||
'description'
|
'description'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function modelFilter()
|
||||||
|
{
|
||||||
|
return ProductSkuFilter::class;
|
||||||
|
}
|
||||||
|
|
||||||
public function skus()
|
public function skus()
|
||||||
{
|
{
|
||||||
return $this->hasMany(ProductSku::class, 'spu_id');
|
return $this->hasMany(ProductSku::class, 'spu_id');
|
||||||
|
|
@ -81,4 +89,42 @@ class ProductSpu extends Model
|
||||||
{
|
{
|
||||||
return $this->skus()->exists();
|
return $this->skus()->exists();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商品售价
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getSellPriceFormatAttribute()
|
||||||
|
{
|
||||||
|
return bcdiv($this->attributes['sell_price'], 100, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商品会员价
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getVipPriceFormatAttribute()
|
||||||
|
{
|
||||||
|
if (is_null($price = $this->attributes['vip_price'])) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return bcdiv($price, 100, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商品市场价
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getMarketPriceFormatAttribute()
|
||||||
|
{
|
||||||
|
if (is_null($price = $this->attributes['market_price'])) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return bcdiv($price, 100, 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ return [
|
||||||
'fields' => [
|
'fields' => [
|
||||||
'phone' => '手机号',
|
'phone' => '手机号',
|
||||||
'created_at' => '注册时间',
|
'created_at' => '注册时间',
|
||||||
|
'avatar' => '头像',
|
||||||
|
'nickname' => '昵称',
|
||||||
],
|
],
|
||||||
'options' => [
|
'options' => [
|
||||||
],
|
],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue