diff --git a/app/Actions/Dealer/CalculateManageSubsidiesOfCurrentPeriod.php b/app/Actions/Dealer/CalculateManageSubsidiesOfCurrentPeriod.php
new file mode 100644
index 00000000..ed7a0902
--- /dev/null
+++ b/app/Actions/Dealer/CalculateManageSubsidiesOfCurrentPeriod.php
@@ -0,0 +1,30 @@
+day >= 20) {
+ $startAt = $tz->copy()->setDay(20)->startOfDay();
+ } elseif ($tz->day >= 5) {
+ $startAt = $tz->copy()->setDay(5)->startOfDay();
+ } else {
+ $startAt = $tz->copy()->subMonthNoOverflow()->setDay(20)->startOfDay();
+ }
+
+ $total = DealerManageSubsidyLog::where('order_completed_at', '>=', $startAt)->where('user_id', $dealer->user_id)->sum('total_amount');
+
+ return bcmul($total, '1', 2);
+ }
+}
diff --git a/app/Actions/Dealer/CalculatePurchaseAmountOfCurrentPeriod.php b/app/Actions/Dealer/CalculatePurchaseAmountOfCurrentPeriod.php
index 61f071db..03c32b68 100644
--- a/app/Actions/Dealer/CalculatePurchaseAmountOfCurrentPeriod.php
+++ b/app/Actions/Dealer/CalculatePurchaseAmountOfCurrentPeriod.php
@@ -3,8 +3,6 @@
namespace App\Actions\Dealer;
use App\Models\Dealer;
-use Illuminate\Support\Carbon;
-use Illuminate\Support\Facades\Cache;
class CalculatePurchaseAmountOfCurrentPeriod
{
@@ -31,17 +29,6 @@ class CalculatePurchaseAmountOfCurrentPeriod
$startAt = $tz->copy()->subMonthNoOverflow()->setDay(20)->startOfDay();
}
- return Cache::remember($this->prefix($startAt).':'.$dealer->user_id, 600, function () use ($dealer, $startAt) {
- return bcdiv($this->calculatePurchaseAmount->handle($dealer, $startAt), '1', 2);
- });
- }
-
- /**
- * @param \Illuminate\Support\Carbon $tz
- * @return string
- */
- protected function prefix(Carbon $tz): string
- {
- return $tz->rawFormat('ymd').'_dealer_purchase_amount';
+ return bcmul($this->calculatePurchaseAmount->handle($dealer, $startAt), '1', 2);
}
}
diff --git a/app/Actions/Dealer/CalculateUnsettledManageSubsidies.php b/app/Actions/Dealer/CalculateUnsettledManageSubsidies.php
new file mode 100644
index 00000000..6294cbc8
--- /dev/null
+++ b/app/Actions/Dealer/CalculateUnsettledManageSubsidies.php
@@ -0,0 +1,20 @@
+where('user_id', $dealer->user_id)->sum('total_amount');
+
+ return bcmul($total, '1', 2);
+ }
+}
diff --git a/app/Actions/Dealer/CalculateUnsettledPurchaseAmount.php b/app/Actions/Dealer/CalculateUnsettledPurchaseAmount.php
new file mode 100644
index 00000000..1436244c
--- /dev/null
+++ b/app/Actions/Dealer/CalculateUnsettledPurchaseAmount.php
@@ -0,0 +1,24 @@
+where('path', 'like', "{$dealer->userInfo->full_path}%")
+ ->sum('total_amount');
+
+ return bcmul($total, '1', 2);
+ }
+}
diff --git a/app/Admin/Controllers/ActivityController.php b/app/Admin/Controllers/ActivityController.php
new file mode 100644
index 00000000..1c903788
--- /dev/null
+++ b/app/Admin/Controllers/ActivityController.php
@@ -0,0 +1,272 @@
+column('id')->sortable();
+ $grid->column('title');
+ $grid->column('cover')->image(50);
+ // $grid->column('content');
+ $grid->column('is_use')->filter(Grid\Column\Filter\In::make([
+ 0=>'下架',
+ 1=>'上架',
+ ]))
+ ->if(function () {
+ return Admin::user()->can('dcat.admin.activities.edit');
+ })
+ ->then(function (Column $column) {
+ $column->switch();
+ })
+ ->else(function (Column $column) {
+ $column->bool();
+ });
+ $grid->column('started_at');
+ $grid->column('ended_at');
+ $grid->model()->orderBy('created_at', 'desc');
+ $grid->column('created_at')->sortable();
+ //新增
+ if (Admin::user()->can('dcat.admin.activities.create')) {
+ $grid->disableCreateButton(false);
+ // $grid->enableDialogCreate();
+ }
+ //删除以及自定义操作
+ $grid->actions(function (Grid\Displayers\Actions $actions) {
+ $actions->disableView(Admin::user()->cannot('dcat.admin.activities.show'));
+ $actions->disableDelete(Admin::user()->cannot('dcat.admin.activities.destroy'));
+ //修改
+ $actions->disableEdit(Admin::user()->cannot('dcat.admin.activities.edit'));
+ });
+ $grid->filter(function (Grid\Filter $filter) {
+ $filter->panel();
+ $filter->like('title')->width(3);
+ });
+ });
+ }
+
+ /**
+ * Make a show builder.
+ *
+ * @param mixed $id
+ *
+ * @return Show
+ */
+ protected function detail($id)
+ {
+ return function (Row $row) use ($id) {
+ $activity = ActivityModel::with(['parts', 'coupons', 'gifts'])->findOrFail($id);
+ $row->column(6, function ($column) use ($activity) {
+ $column->row(Show::make($activity, function (Show $show) use ($activity) {
+ $show->panel()
+ ->tools(function ($tools) {
+ $tools->disableEdit(Admin::user()->cannot('dcat.admin.activities.edit'));
+ $tools->disableList();
+ $tools->disableDelete(Admin::user()->cannot('dcat.admin.activities.destroy'));
+ });
+ $show->row(function (Show\Row $show) use ($activity) {
+ $show->field('id')->width(10, 1);
+ $show->field('title')->width(10, 1);
+ $show->field('cover')->width(10, 1)->image();
+ $show->field('is_use')->using([0=>'未开启', '已开启'])->dot([
+ '0'=>'#b3b9bf',
+ '1'=>'success',
+ ])->width(10, 1);
+ $show->width(6)->field('started_at');
+ $show->width(6)->field('ended_at');
+ $show->width(12)->field('parts', '分区关联')->width(10, 1)->as(function ($value) {
+ return array_column($value, 'name');
+ })->label();
+
+ foreach ($activity->coupons as $coupon) {
+ $show->width(6)->field('coupon.name', '优惠券名称')->as(function () use ($coupon) {
+ return $coupon->name;
+ })->label();
+ $show->width(6)->field('coupon.qty', '赠送数量')->as(function () use ($coupon) {
+ return $coupon->pivot->qty;
+ });
+ };
+ foreach ($activity->gifts as $gift) {
+ $show->width(6)->field('gift.name', '赠品名称')->as(function () use ($gift) {
+ return $gift->name;
+ })->label();
+ $show->width(6)->field('gift.qty', '赠送数量')->as(function () use ($gift) {
+ return $gift->pivot->qty;
+ });
+ };
+
+ $show->width(6)->field('created_at');
+ $show->width(6)->field('updated_at');
+ });
+ }));
+ });
+ $row->column(6, function ($column) use ($activity) {
+ $column->row(Show::make($activity, function (Show $show) use ($activity) {
+ $show->panel()
+ ->tools(function ($tools) {
+ $tools->disableEdit();
+ $tools->disableList();
+ $tools->disableDelete();
+ });
+ $show->row(function (Show\Row $show) {
+ $show->width(12)->field('coupons_rule')->as(function ($value) {
+ $str = '';
+ // dd($value);
+ foreach ($value as $key => $v) {
+ switch ($key) {
+ case 'type':
+ if ($v) {
+ $str .= '其他活动来源-';
+ } else {
+ $str .= '按订单赠送-';
+ }
+ break;
+ case 'value':
+ $str .= '满'.$v.'赠送-';
+ break;
+ case 'times':
+ if ($v) {
+ $str .= '不限次数-';
+ } else {
+ $str .= '仅首单-';
+ }
+ break;
+ }
+ }
+ return rtrim($str, '-');
+ })->width(10, 1);
+ $show->width(12)->field('gifts_rule')->as(function ($value) {
+ $str = '';
+ foreach ($value as $key => $v) {
+ switch ($key) {
+ case 'type':
+ if ($v) {
+ $str .= '其他活动来源-';
+ } else {
+ $str .= '按订单赠送-';
+ }
+ break;
+ case 'value':
+ $str .= '满'.$v.'赠送-';
+ break;
+ case 'times':
+ if ($v) {
+ $str .= '不限次数-';
+ } else {
+ $str .= '仅首单-';
+ }
+ break;
+ }
+ }
+ return rtrim($str, '-');
+ })->width(10, 1);
+ $show->field('content')->unescape()->width(10, 1);
+ });
+ }));
+ });
+ };
+ }
+
+ /**
+ * Make a form builder.
+ *
+ * @return Form
+ */
+ protected function form()
+ {
+ $builder = Activity::with(['parts', 'couponSet', 'giftSet']);
+ return Form::make($builder, function (Form $form) {
+ $form->display('id');
+ $form->display('created_at');
+ $form->display('updated_at');
+ $form->block(6, function (Form\BlockForm $form) {
+ $form->text('title')->required();
+ $form->image('cover')
+ ->move('activities/'.Carbon::now()->toDateString())
+ ->saveFullUrl()
+ ->removable(false)
+ ->autoUpload()->retainable();
+ $form->switch('is_use');
+ $form->dateRange('started_at', 'ended_at', '活动时间');
+ $form->multipleSelect('parts', '商品分区关联')->options(ProductPart::all()->pluck('name', 'id'))->customFormat(function ($v) {
+ if (! $v) {
+ return [];
+ }
+ // 从数据库中查出的二维数组中转化成ID
+ return array_column($v, 'id');
+ });
+ $form->hasMany('couponSet', '优惠券关联', function ($form) {
+ $form->select('coupon_id', '优惠券')->options(function ($id) {
+ $coupon = Coupon::find($id);
+ if ($coupon) {
+ return [$coupon->id => $coupon->name];
+ }
+ })->ajax(admin_route('api.coupons'));
+ $form->number('qty', '数量');
+ })->useTable();
+ $form->hasMany('giftSet', '赠品关联', function ($form) {
+ $form->select('sku_id', '赠品')->options(function ($id) {
+ $sku = ProductSku::find($id);
+ if ($sku) {
+ return [$sku->id => $sku->name];
+ }
+ })->ajax(admin_route('api.product_skus'));
+ $form->number('qty', '数量');
+ })->useTable();
+
+ $form->showFooter();
+ });
+ $form->block(6, function (Form\BlockForm $form) {
+ $form->title('活动内容');
+ //优惠券规则
+ $form->embeds('coupons_rule', function ($form) {
+ $form->radio('type')->options([
+ 0=>'按订单赠送',
+ 1=>'其他活动来源',
+ ])->default(0);
+ $form->number('value', '门槛');
+ // $form->number('qty', '总量')->help('前N单能获得');
+ $form->radio('times', '可领次数')->options([
+ '0'=>'仅首单',
+ '1'=>'不限',
+ ])->default(0);
+ });
+ //赠品规则
+ $form->embeds('gifts_rule', function ($form) {
+ $form->radio('type')->options([
+ 0=>'按订单赠送',
+ 1=>'其他活动来源',
+ ])->default(0);
+ $form->number('value', '门槛');
+ // $form->number('qty', '总量')->help('前N单能获得');
+ $form->radio('times', '可领次数')->options([
+ '0'=>'仅首单',
+ '1'=>'不限',
+ ])->default(0);
+ });
+ $form->editor('content')->height('600');
+ });
+ });
+ }
+}
diff --git a/app/Admin/Controllers/DealerChannelSubsidyController.php b/app/Admin/Controllers/DealerChannelSubsidyController.php
index 75efaafa..fa9b2ecd 100644
--- a/app/Admin/Controllers/DealerChannelSubsidyController.php
+++ b/app/Admin/Controllers/DealerChannelSubsidyController.php
@@ -12,6 +12,7 @@ use Dcat\Admin\Admin;
use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Layout\Row;
+use Dcat\Admin\Widgets\Card;
class DealerChannelSubsidyController extends AdminController
{
@@ -48,10 +49,12 @@ class DealerChannelSubsidyController extends AdminController
$grid->column('fee', '手续费')->prepend('¥')->help('手续费=补贴金额*手续费率');
$grid->column('fee_rate', '手续费率')->append('%');
$grid->column('total_earnings', '总收入')->prepend('¥')->help('总收入=补贴金额-手续费');
- $grid->column('remark', '备注')->display('查看')->modal(function ($modal) {
- $modal->title('备注');
- return '
'.nl2br($this->remark).'
';
- });
+ $grid->column('remark', '备注')->display('查看') // 设置按钮名称
+ ->expand(function () {
+ $card = new Card(null, nl2br($this->remark));
+
+ return "$card
";
+ });
$grid->column('settle_at', '结算时间')->display(function () {
return $this->settle_at?->toDateTimeString();
})->sortable();
diff --git a/app/Admin/Controllers/DealerEarningController.php b/app/Admin/Controllers/DealerEarningController.php
index c7a32e39..4d194f45 100644
--- a/app/Admin/Controllers/DealerEarningController.php
+++ b/app/Admin/Controllers/DealerEarningController.php
@@ -5,7 +5,9 @@ namespace App\Admin\Controllers;
use App\Admin\Actions\Show\DealerEarningPay;
use App\Admin\Renderable\Grid\Filter\DealerEarningStatusIn;
use App\Admin\Repositories\DealerEarning;
+use App\Admin\Widgets\InfoBox;
use App\Enums\DealerEarningStatus;
+use App\Enums\PayWay;
use App\Models\DealerChannelSubsidyLog;
use App\Models\DealerEarning as DealerEarningModel;
use App\Models\DealerManagerSalesLog;
@@ -32,46 +34,58 @@ class DealerEarningController extends AdminController
*/
protected function grid()
{
- $earning = DealerEarning::with(['user', 'payer']);
+ Admin::style(
+ <<setResource('dealer-earnings');
- $grid->model()->orderBy('id', 'desc');//默认ID倒叙
+ $grid->model()->orderBy('id', 'desc'); //默认ID倒叙
+
$grid->column('id')->sortable();
$grid->column('user.phone');
- $grid->column('type_name')->display(function () {
- return $this->type_name;
- })->label()->filter(Grid\Column\Filter\In::make([
- (new DealerManagerSubsidy())->getMorphClass() =>'管理者补贴',
- (new DealerManageSubsidy())->getMorphClass() =>'管理补贴',
- (new DealerChannelSubsidyLog())->getMorphClass() =>'渠道补贴',
- (new DealerPurchaseSubsidy())->getMorphClass() =>'进货补贴',
- ])->setColumnName('earningable_type'));
- $grid->column('remark')->display('详情') // 设置按钮名称
- ->expand(function () {
- // 这里返回 content 字段内容,并用 Card 包裹起来
- $card = new Card(null, $this->remark);
-
- return "$card
";
- });
- // $grid->column('earningable_type');
- // $grid->column('earningable_id');
+ $grid->column('user.userInfo.nickname', '昵称');
$grid->column('lvl')->display(function () {
return $this->lvl->text();
});
- $grid->column('is_manager')->bool();
+ $grid->column('earningable_type', '资金类型')->display(function () {
+ return $this->earningable_type_text;
+ })->label([
+ (new DealerManageSubsidy())->getMorphClass() => 'primary',
+ (new DealerManagerSubsidy())->getMorphClass() => 'success',
+ (new DealerPurchaseSubsidy())->getMorphClass() => 'danger',
+ (new DealerChannelSubsidyLog())->getMorphClass() => 'warning',
+ ])->filter(Grid\Column\Filter\In::make([
+ (new DealerManagerSubsidy())->getMorphClass() =>'管理者补贴',
+ (new DealerManageSubsidy())->getMorphClass() => '管理补贴',
+ (new DealerChannelSubsidyLog())->getMorphClass() => '渠道补贴',
+ (new DealerPurchaseSubsidy())->getMorphClass() => '进货补贴',
+ ]));
$grid->column('total_amount')->prepend('¥');
$grid->column('fee_rate')->append('%');
$grid->column('fee')->prepend('¥');
$grid->column('total_earnings')->prepend('¥');
- $grid->column('status_format')->display(function ($value) {
- return $this->status_format;
- })->using([
- -1=> '待结算',
- 0 => '待打款',
- 1 => '待收款',
- 5 => '已完成',
- ])->dot()->filter(DealerEarningStatusIn::make([
- -1=> '待结算',
+ $grid->column('remark')->display('查看') // 设置按钮名称
+ ->expand(function () {
+ $card = new Card(null, nl2br($this->remark));
+
+ return "$card
";
+ });
+ $grid->column('status', '状态')->display(function ($v) {
+ if (! $this->isSettled()) {
+ return " 待结算";
+ }
+
+ return " {$v->text()}";
+ })->filter(DealerEarningStatusIn::make([
+ -1 => '待结算',
0 => '待打款',
1 => '待收款',
5 => '已完成',
@@ -80,45 +94,39 @@ class DealerEarningController extends AdminController
$grid->column('payer_id')->display(function () {
return $this->payer_id ? $this->payer?->phone : '公司';
});
- // $grid->column('pay_info');
- $grid->column('pay_way')->using(DealerEarningModel::$payWayText)->label([
- DealerEarningModel::PAY_WAY_WALLET=>'warning',
- DealerEarningModel::PAY_WAY_OFFLINE=>'danger',
- 'none'=>'#b3b9bf',
- ]);
+ $grid->column('pay_way', '支付方式')->display(function ($v) {
+ return $v?->text();
+ })->circleDot(PayWay::colors());
$grid->column('pay_at');
-
- // $grid->column('pay_image');
$grid->column('created_at')->sortable();
$grid->actions(function (Grid\Displayers\Actions $actions) {
- //如果不是渠道补贴添加详情显示
- // if ($actions->row->earningable_type != (new DealerChannelSubsidyLog())->getMorphClass()) {
$actions->append(' 显示 ');
- // }
});
$grid->header(function ($collection) use ($grid) {
- $query = DealerEarningModel::query();
+ return tap(new Row(), function ($row) use ($grid) {
+ $query = DealerEarningModel::query();
- // 拿到表格筛选 where 条件数组进行遍历
- $grid->model()->getQueries()->unique()->each(function ($value) use (&$query) {
- if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) {
- return;
- }
+ // 拿到表格筛选 where 条件数组进行遍历
+ $grid->model()->getQueries()->unique()->each(function ($value) use (&$query) {
+ if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) {
+ return;
+ }
- $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []);
+ $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []);
+ });
+
+ // 查出统计数据
+ $totalAmount = (clone $query)->sum('total_amount');
+
+ $row->column(3, new InfoBox('金额', $totalAmount, 'fa fa-cny'));
});
-
- // 查出统计数据
- $totalAmount = (clone $query)->sum('total_amount');
- // 自定义组件
- return "金额:".$totalAmount.' 元
';
});
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->equal('user.phone')->width(3);
- $filter->between('settle_at')->dateTime()->width(7);
+ $filter->between('settle_at')->dateTime()->width(6);
});
});
}
@@ -134,21 +142,17 @@ class DealerEarningController extends AdminController
{
return function (Row $row) use ($id) {
$row->column(5, function ($column) use ($id) {
- $builder = DealerEarning::with(['user', 'payer']);
+ $builder = DealerEarning::with(['user.userInfo', 'payer']);
$column->row(Show::make($id, $builder, function (Show $show) {
$show->field('id');
- $show->field('type_name')->as(function () {
- return $this->type_name;
- })->label();
$show->field('user.phone');
- // $show->field('earningable_type');
- // $show->field('earningable_id');
+ $show->field('user.user_info.nickname', '昵称');
$show->field('lvl')->as(function () {
return $this->lvl->text();
});
- $show->field('is_manager')->as(function ($val) {
- return $val ? '是' : '否';
- });
+ $show->field('earningable_type', '资金类型')->as(function () {
+ return $this->earningable_type_text;
+ })->label();
$show->field('total_amount')->prepend('¥');
$show->field('fee_rate')->append('%');
$show->field('fee')->prepend('¥');
@@ -156,19 +160,28 @@ class DealerEarningController extends AdminController
$show->field('payer.phone', '打款人')->as(function () {
return $this->payer_id ? $this->payer?->phone : '公司';
});
- $show->field('pay_way', '支付方式')->using(DealerEarningModel::$payWayText)->dot([
- DealerEarningModel::PAY_WAY_WALLET=>'warning',
- DealerEarningModel::PAY_WAY_OFFLINE=>'danger',
- 'none'=>'#b3b9bf',
- ]);
+ $show->field('pay_way', '打款方式')->as(function () {
+ return $this->pay_way?->text();
+ })->circleDot(PayWay::colors());
+ $show->field('pay_at', '打款时间')->as(function () {
+ return $this->pay_at?->toDateTimeString();
+ });
$show->field('pay_image')->image();
- // $show->field('pay_info');
- $show->field('pay_at');
$show->field('settle_at');
- // $show->field('status');
- $show->field('remark');
- //非(待结算)显示收款人信息
- if ($show->model()->settle_at) {
+ $show->field('remark')->unescape()->as(function () {
+ return nl2br($this->remark);
+ });
+ $show->field('status', '状态')->unescape()->as(function () {
+ if (! $this->isSettled()) {
+ return " 待结算";
+ }
+
+ return " {$this->status->text()}";
+ });
+ $show->field('created_at');
+
+ // 非(待结算)显示收款人信息
+ if ($show->model()->isSettled()) {
$show->divider('收款信息-银行');
$show->field('bank_user_name', '银行-收款人')->as(function () {
$payInfo = $this->getPayInfo();
@@ -213,17 +226,16 @@ class DealerEarningController extends AdminController
return $payInfo['wechat']['image'] ?? '';
})->image();
}
- $show->field('created_at');
- // $show->field('updated_at');
+
$show->panel()
->tools(function (Show\Tools $tools) use ($show) {
$tools->disableEdit();
$tools->disableDelete();
- if ($show->model()->status == DealerEarningStatus::Pending && Admin::user()->can('dcat.admin.dealer_earnings.pay')) {
- if (!$show->model()->payer_id || $show->model()->payer_id == 1) {
- $tools->append(new DealerEarningPay());
- }
- }
+ // if ($show->model()->status == DealerEarningStatus::Pending && Admin::user()->can('dcat.admin.dealer_earnings.pay')) {
+ // if (!$show->model()->payer_id || $show->model()->payer_id == 1) {
+ // $tools->append(new DealerEarningPay());
+ // }
+ // }
});
}));
});
@@ -241,7 +253,6 @@ class DealerEarningController extends AdminController
$grid->column('order_completed_at', '结算时间');
$grid->disableCreateButton();
$grid->disableActions();
- // $grid->disablePagination();
});
break;
case DealerManageSubsidy::class://管理补贴
diff --git a/app/Admin/Controllers/DealerManageSubsidyController.php b/app/Admin/Controllers/DealerManageSubsidyController.php
index dc445223..47255cea 100644
--- a/app/Admin/Controllers/DealerManageSubsidyController.php
+++ b/app/Admin/Controllers/DealerManageSubsidyController.php
@@ -12,6 +12,7 @@ use Dcat\Admin\Admin;
use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Layout\Row;
+use Dcat\Admin\Widgets\Card;
class DealerManageSubsidyController extends AdminController
{
@@ -56,11 +57,12 @@ class DealerManageSubsidyController extends AdminController
$grid->column('fee', '手续费')->prepend('¥')->help('手续费=津贴总额*手续费率');
$grid->column('real_amount', '总收入')->prepend('¥')->help('总收入=津贴总额-手续费');
$grid->column('fee_rate', '手续费率')->append('%');
- $grid->column('remark', '备注')->display('查看')->modal(function ($modal) {
- $modal->title('备注');
+ $grid->column('remark', '备注')->display('查看') // 设置按钮名称
+ ->expand(function () {
+ $card = new Card(null, nl2br($this->remark));
- return "".nl2br($this->remark).'
';
- });
+ return "$card
";
+ });
$grid->column('status', '状态')->display(function ($v) {
return $v->text();
})->circleDot(DealerManageSubsidyStatus::colors());
diff --git a/app/Admin/Controllers/DealerManagerSubsidyController.php b/app/Admin/Controllers/DealerManagerSubsidyController.php
index 701e7de5..56c71fa5 100644
--- a/app/Admin/Controllers/DealerManagerSubsidyController.php
+++ b/app/Admin/Controllers/DealerManagerSubsidyController.php
@@ -12,6 +12,7 @@ use Dcat\Admin\Admin;
use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Layout\Row;
+use Dcat\Admin\Widgets\Card;
class DealerManagerSubsidyController extends AdminController
{
@@ -57,11 +58,12 @@ class DealerManagerSubsidyController extends AdminController
$grid->column('fee', '手续费')->prepend('¥')->help('手续费=津贴总额*手续费率');
$grid->column('real_amount', '总收入')->prepend('¥')->help('总收入=津贴总额-手续费');
$grid->column('fee_rate', '手续费率')->append('%');
- $grid->column('remark', '备注')->display('查看')->modal(function ($modal) {
- $modal->title('备注');
+ $grid->column('remark', '备注')->display('查看') // 设置按钮名称
+ ->expand(function () {
+ $card = new Card(null, nl2br($this->remark));
- return "".nl2br($this->remark).'
';
- });
+ return "$card
";
+ });
$grid->column('status', '状态')->display(function ($v) {
return $v->text();
})->circleDot(DealerManagerSubsidyStatus::colors());
diff --git a/app/Admin/Controllers/OrderController.php b/app/Admin/Controllers/OrderController.php
index cb32b8da..477bbcd9 100644
--- a/app/Admin/Controllers/OrderController.php
+++ b/app/Admin/Controllers/OrderController.php
@@ -16,6 +16,7 @@ use App\Admin\Renderable\PackageProductSimpleTable;
use App\Admin\Repositories\Order;
use App\Enums\PayWay;
use App\Models\Order as OrderModel;
+use App\Models\OrderActivity;
use App\Models\OrderLog;
use App\Models\OrderPackage;
use App\Models\OrderProduct;
@@ -322,8 +323,8 @@ class OrderController extends AdminController
$builder = OrderProduct::withCount('afterSales')->where('order_id', $id);
$productGrid = Grid::make($builder, function (Grid $grid) {
$grid->column('name')->display(function ($value) {
- if ($this->gift_for_sku_id) {
- $value .= '-【赠品】';
+ if ($this->isGift()) {
+ $value = '【赠品】'.$value;
}
return $value;
});
@@ -434,6 +435,19 @@ class OrderController extends AdminController
$column->row($packagesBox->collapsable());
$logsBox = Box::make('操作记录', $orderLogoGrid);
$column->row($logsBox->collapsable());
+ $activityBuilder = OrderActivity::with('activity')->where('order_id', $id);
+ $activityBox = Box::make('参与活动', Grid::make($activityBuilder, function (Grid $grid) {
+ $grid->column('activity.title', '活动名称');
+ $grid->column('show', '活动详情')->display(function () {
+ return '查看';
+ })->link(function () {
+ return admin_route('activities.show', ['activity' =>$this->activity_id]);
+ })->setHeaderAttributes(['style' => 'color:#5b69bc']);
+ $grid->disableActions();
+ $grid->disablePagination();
+ $grid->disableRefreshButton();
+ }));
+ $column->row($activityBox->collapsable());
});
};
}
diff --git a/app/Admin/Controllers/ProductPartController.php b/app/Admin/Controllers/ProductPartController.php
index b62ca71d..5e2a50cd 100644
--- a/app/Admin/Controllers/ProductPartController.php
+++ b/app/Admin/Controllers/ProductPartController.php
@@ -6,6 +6,7 @@ use App\Admin\Actions\Grid\PartCoupon;
use App\Admin\Renderable\ProductPartSkuTable;
use App\Admin\Renderable\ProductSkuSimpleTable;
use App\Admin\Repositories\ProductPart;
+use App\Models\ProductPart as ProductPartModel;
use App\Models\ProductSku;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
@@ -13,6 +14,7 @@ use Dcat\Admin\Grid;
use Dcat\Admin\Grid\Column;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Show;
+use Illuminate\Http\Request;
class ProductPartController extends AdminController
{
@@ -61,9 +63,9 @@ class ProductPartController extends AdminController
//删除以及自定义操作
$grid->actions(function (Grid\Displayers\Actions $actions) {
$actions->disableDelete(Admin::user()->cannot('dcat.admin.product_parts.destroy'));
- if (Admin::user()->can('dcat.admin.product_parts.coupons')) {
- $actions->append(new PartCoupon());
- }
+ // if (Admin::user()->can('dcat.admin.product_parts.coupons')) {
+ // $actions->append(new PartCoupon());
+ // }
});
/** 查询 **/
@@ -141,4 +143,18 @@ class ProductPartController extends AdminController
$form->display('updated_at');
});
}
+
+ public function parts(Request $request)
+ {
+ $name = $request->input('q');
+
+ $query = ProductPartModel::select('id', 'name as text');
+
+ if ($name) {
+ $query->where('name', 'like', "%$name%");
+ return $query->paginate(null);
+ }
+
+ return response()->json($query->get());
+ }
}
diff --git a/app/Admin/Controllers/ShippingRuleController.php b/app/Admin/Controllers/ShippingRuleController.php
index b556a36c..fa3be93e 100644
--- a/app/Admin/Controllers/ShippingRuleController.php
+++ b/app/Admin/Controllers/ShippingRuleController.php
@@ -130,7 +130,7 @@ class ShippingRuleController extends AdminController
public function destroy($id)
{
$rule = ShippingRuleModel::findOrFail($id);
- $rule->zones()->detach();
+ // $rule->zones()->detach();
return parent::destroy($id);
}
diff --git a/app/Admin/Forms/AfterSaleVerify.php b/app/Admin/Forms/AfterSaleVerify.php
index 8dfe6276..9e6c1afe 100644
--- a/app/Admin/Forms/AfterSaleVerify.php
+++ b/app/Admin/Forms/AfterSaleVerify.php
@@ -60,7 +60,19 @@ class AfterSaleVerify extends Form implements LazyRenderable
throw new BizException('退款金额不能大于商品实付金额');
}
}
- $afterSaleService->verify($afterSale, $input['remarks3'], (int) Arr::get($input, 'amount', 0));
+ $num = (int) Arr::get($input, 'num', 0) ?: $afterSale->num;
+ if ($num > $afterSale->orderProduct->quantity) {
+ throw new BizException('调整数量不能大于下单数量');
+ }
+ //调整换货,补货时amount问题
+ $amount = (int) Arr::get($input, 'amount', 0) ?: $afterSale->amount;
+ if (in_array($afterSale->type, [Aftersale::TYPE_CHANGE, Aftersale::TYPE_FILL])) {
+ //如果调整数量, 则同时调整价格
+ if ($num != $afterSale->num) {
+ $amount = bcmul(bcdiv($afterSale->amount, $afterSale->num), $num);
+ }
+ }
+ $afterSaleService->verify($afterSale, $input['remarks3'], $amount, $num);
} elseif ($input['state'] == 1) {//需要补充资料
$afterSaleService->backApply($afterSale, $input['remarks1']);
}
@@ -83,6 +95,8 @@ class AfterSaleVerify extends Form implements LazyRenderable
{
$id = $this->payload['id'] ?? 0;
$afterSale = AfterSale::findOrFail($id);
+ //可调整数量
+ $this->number('num')->value($afterSale->num)->min(1)->max($afterSale->orderProduct->quantity); //获取当前商品可发起的最大数量
if (in_array($afterSale->type, [1, 2])) {
$this->currency('amount')->customFormat(function () use ($afterSale) {
return bcdiv($afterSale->amount, 100, 2);
diff --git a/app/Admin/Renderable/ProductSkuTable.php b/app/Admin/Renderable/ProductSkuTable.php
index a4e63ef1..d4d5e660 100644
--- a/app/Admin/Renderable/ProductSkuTable.php
+++ b/app/Admin/Renderable/ProductSkuTable.php
@@ -90,9 +90,9 @@ class ProductSkuTable extends Grid
if (Admin::user()->can('dcat.admin.product_skus.sku_sync_spu')) {
$actions->append(new SkuSyncSpu());
}
- if (Admin::user()->can('dcat.admin.product_skus.sku_gift')) {
- $actions->append(new SkuGift());
- }
+ // if (Admin::user()->can('dcat.admin.product_skus.sku_gift')) {
+ // $actions->append(new SkuGift());
+ // }
}
if ($actions->row->verify_state == 1) {
if (Admin::user()->can('dcat.admin.product_skus.release_cancel')) {
@@ -110,7 +110,7 @@ class ProductSkuTable extends Grid
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->expand();
- $filter->equal('name')->width(3);
+ $filter->like('name')->width(3);
});
});
diff --git a/app/Admin/Repositories/Activity.php b/app/Admin/Repositories/Activity.php
new file mode 100644
index 00000000..707eddef
--- /dev/null
+++ b/app/Admin/Repositories/Activity.php
@@ -0,0 +1,16 @@
+isWaitShipping() || $order->isShipping())) {
throw new BizException('订单状态异常,无法发货');
}
- if (!isset($params['packages']) || count($params['packages']) <= 0) {
- throw new BizException('请选择发货商品');
- }
foreach ($params['packages'] as $item) {
+ if (isset($item['_remove_']) && $item['_remove_']) {//如果是已被移除选项则直接移除
+ continue;
+ }
if ($item['quantity'] < 1) {
throw new BizException('发货数量不能小于1');
}
@@ -41,6 +41,9 @@ class OrderPackageService
];
}
}
+ if (count($packageProducts) <= 0) {
+ throw new BizException('请选择发货商品');
+ }
foreach ($packageProducts as $product) {
$_orderProduct = OrderProduct::where('order_id', $order->id)
->where('after_sale_state', '<>', 1)
diff --git a/app/Admin/Services/OrderService.php b/app/Admin/Services/OrderService.php
index 5a22d39d..966b2a88 100644
--- a/app/Admin/Services/OrderService.php
+++ b/app/Admin/Services/OrderService.php
@@ -3,6 +3,7 @@
namespace App\Admin\Services;
use App\Enums\PayWay;
+use App\Events\OrderPaid;
use App\Exceptions\BizException;
use App\Models\Order;
use App\Models\OrderLog;
@@ -44,7 +45,8 @@ class OrderService
//操作订单状态-需要调整为统一支付方法
$orderService = new EndpointOrderService();
$orderService->pay($order, PayWay::Offline);
-
+ //注册支付成功事件
+ OrderPaid::dispatch($order);
//记录操作日志
OrderLog::create([
'order_id'=> $order->id,
diff --git a/app/Admin/routes.php b/app/Admin/routes.php
index a679fc24..cb521eb3 100644
--- a/app/Admin/routes.php
+++ b/app/Admin/routes.php
@@ -160,6 +160,8 @@ Route::group([
'index',
])->names('order_refunds');
+ $router->resource('activities', 'ActivityController')->names('activities');
+
$router->get('import-job-logs', 'ImportJobLogController@index')->name('import_job_logs.index');
$router->resource('sales-value-logs', 'SalesValueLogController')->only(
@@ -215,6 +217,7 @@ Route::group([
$router->get('api/product-categories', 'ProductCategoryController@categories')->name('api.product_categories');
$router->get('api/product-group-details', 'ProductGroupController@details')->name('api.product_group_details');
$router->get('api/product-skus', 'ProductSkuController@skus')->name('api.product_skus');
+ $router->get('api/product-parts', 'ProductPartController@parts')->name('api.product_parts');
$router->get('api/coupons', 'CouponController@coupons')->name('api.coupons');
$router->get('api/coupone-send-tasks', 'CouponSendTaskController@tasks')->name('api.coupon_send_tasks');
$router->get('api/orders', 'OrderController@orders')->name('api.orders');
diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/FansController.php b/app/Endpoint/Api/Http/Controllers/Dealer/FansController.php
index 3d1dcb0a..a1a18362 100644
--- a/app/Endpoint/Api/Http/Controllers/Dealer/FansController.php
+++ b/app/Endpoint/Api/Http/Controllers/Dealer/FansController.php
@@ -3,6 +3,7 @@
namespace App\Endpoint\Api\Http\Controllers\Dealer;
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
+use App\Actions\Dealer\CalculateUnsettledPurchaseAmount;
use App\Endpoint\Api\Http\Controllers\Controller;
use App\Endpoint\Api\Http\Resources\Dealer\DealerFansResource;
use App\Helpers\Paginator as PaginatorHelper;
@@ -15,18 +16,21 @@ class FansController extends Controller
* 统计当前信息
*
* @param Request $request
+ * @param CalculateUnsettledPurchaseAmount $calculateUnsettledPurchaseAmount
* @param CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
- *
*/
public function statistics(
Request $request,
+ CalculateUnsettledPurchaseAmount $calculateUnsettledPurchaseAmount,
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
) {
$user = $request->user();
return response()->json([
'fans_num'=> $user->fans()->count(),
- 'total_purchase_amount'=> $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
+ // 未完成的业绩
+ 'unsettled_purchase_amount' => $calculateUnsettledPurchaseAmount->handle($user->dealer),
+ 'current_period_purchase_amount'=> $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
]);
}
diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/ManageSubsidyController.php b/app/Endpoint/Api/Http/Controllers/Dealer/ManageSubsidyController.php
new file mode 100644
index 00000000..a0099bc9
--- /dev/null
+++ b/app/Endpoint/Api/Http/Controllers/Dealer/ManageSubsidyController.php
@@ -0,0 +1,34 @@
+user();
+
+ return response()->json([
+ // 未结算的管理津贴
+ 'unsettled_manage_subsidies' => $calculateUnsettledManageSubsidies->handle($user->dealer),
+ // 本期已结算的管理津贴
+ 'current_period_manage_subsidies'=> $calculateManageSubsidiesOfCurrentPeriod->handle($user->dealer),
+ ]);
+ }
+}
diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/ManageSubsidyLogController.php b/app/Endpoint/Api/Http/Controllers/Dealer/ManageSubsidyLogController.php
new file mode 100644
index 00000000..098742fe
--- /dev/null
+++ b/app/Endpoint/Api/Http/Controllers/Dealer/ManageSubsidyLogController.php
@@ -0,0 +1,49 @@
+input('is_completed');
+
+ $perPage = Paginator::resolvePerPage('per_page', 20, 50);
+
+ $manageSubsidyLogs = DealerManageSubsidyLog::with(['product', 'order'])
+ ->when($isComplted, function ($query) {
+ $tz = now();
+
+ if ($tz->day >= 20) {
+ // 结算当月20号开始的管理津贴
+ $startAt = $tz->copy()->setDay(20)->startOfDay();
+ } elseif ($tz->day >= 5) {
+ // 结算当月5号开始的管理津贴
+ $startAt = $tz->copy()->setDay(5)->startOfDay();
+ } else {
+ // 结算上月20号开始的管理津贴
+ $startAt = $tz->copy()->subMonthNoOverflow()->setDay(20)->startOfDay();
+ }
+
+ $query->where('order_completed_at', '>=', $startAt)->latest('order_completed_at');
+ }, function ($query) {
+ $query->whereNull('order_completed_at')->latest('id');
+ })
+ ->where('user_id', $request->user()->id)
+ ->simplePaginate($perPage);
+
+ return DealerManageSubsidyLogResource::collection($manageSubsidyLogs);
+ }
+}
diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/UserController.php b/app/Endpoint/Api/Http/Controllers/Dealer/UserController.php
index 57543d3d..5f78bab4 100644
--- a/app/Endpoint/Api/Http/Controllers/Dealer/UserController.php
+++ b/app/Endpoint/Api/Http/Controllers/Dealer/UserController.php
@@ -2,7 +2,10 @@
namespace App\Endpoint\Api\Http\Controllers\Dealer;
+use App\Actions\Dealer\CalculateManageSubsidiesOfCurrentPeriod;
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
+use App\Actions\Dealer\CalculateUnsettledManageSubsidies;
+use App\Actions\Dealer\CalculateUnsettledPurchaseAmount;
use App\Endpoint\Api\Http\Controllers\Controller;
use App\Endpoint\Api\Http\Resources\Dealer\DealerResource;
use App\Endpoint\Api\Http\Resources\Dealer\UserInfoResource;
@@ -14,22 +17,39 @@ class UserController extends Controller
* 个人信息
*
* @param \Illuminate\Http\Request $request
+ * @param \App\Actions\Dealer\CalculateUnsettledManageSubsidies $calculateNotCompletedManageSubsidies
+ * @param \App\Actions\Dealer\CalculateManageSubsidiesOfCurrentPeriod $calculateManageSubsidiesOfCurrentPeriod
+ * @param \App\Actions\Dealer\CalculateUnsettledPurchaseAmount $calculateNotCompletedPurchaseAmount
* @param \App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
* @return \Illuminate\Http\JsonResponse
*/
public function show(
Request $request,
+ CalculateUnsettledManageSubsidies $calculateUnsettledManageSubsidies,
+ CalculateManageSubsidiesOfCurrentPeriod $calculateManageSubsidiesOfCurrentPeriod,
+ CalculateUnsettledPurchaseAmount $calculateUnsettledPurchaseAmount,
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
) {
$user = $request->user();
- $dealer = DealerResource::make($user->dealer)->toArray($request);
- $dealer['current_purchase_amount'] = $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer);
+ $user->dealer->setRelation('userInfo', $user->userInfo);
+
+ $dealerResource = DealerResource::make($user->dealer)->toArray($request);
+ $dealerResource['guanli_values'] = bcadd(
+ $calculateUnsettledManageSubsidies->handle($user->dealer),
+ $calculateManageSubsidiesOfCurrentPeriod->handle($user->dealer),
+ 2
+ );
+ $dealerResource['total_purchase_amount'] = bcadd(
+ $calculateUnsettledPurchaseAmount->handle($user->dealer),
+ $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
+ 2
+ );
return response()->json([
'id' => $user->id,
'phone' => $user->phone,
- 'dealer'=> $dealer,
+ 'dealer'=> $dealerResource,
'dealer_wallet' => $user->dealerWallet?->balance,
'user_info' => UserInfoResource::make($user->userInfo),
'has_password' => (bool) $user->wallet?->password,
diff --git a/app/Endpoint/Api/Http/Controllers/UserController.php b/app/Endpoint/Api/Http/Controllers/UserController.php
new file mode 100644
index 00000000..0945124f
--- /dev/null
+++ b/app/Endpoint/Api/Http/Controllers/UserController.php
@@ -0,0 +1,28 @@
+first();
+
+ if ($user === null) {
+ throw new BizException('用户未找到');
+ }
+
+ return response()->json([
+ 'nickname' => (string) $user->userInfo->nickname,
+ ]);
+ }
+}
diff --git a/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningResource.php b/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningResource.php
index fa00dfa2..df0d5b12 100644
--- a/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningResource.php
+++ b/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningResource.php
@@ -17,7 +17,7 @@ class DealerEarningResource extends JsonResource
$purchaseSubsidyLogs = $this->getPurchaseSubsidyLogs();
return [
'id' => $this->id,
- 'type' => $this->type_name,
+ 'type' => $this->earningable_type_text,
'created_at' => $this->created_at->toDateTimeString(),
'settle_at' => $this->settle_at?->toDateTimeString(),
'total_amount' => $this->total_amount,
diff --git a/app/Endpoint/Api/Http/Resources/Dealer/DealerManageSubsidyLogResource.php b/app/Endpoint/Api/Http/Resources/Dealer/DealerManageSubsidyLogResource.php
new file mode 100644
index 00000000..3f2e7542
--- /dev/null
+++ b/app/Endpoint/Api/Http/Resources/Dealer/DealerManageSubsidyLogResource.php
@@ -0,0 +1,24 @@
+ OrderSimpleResource::make($this->whenLoaded('order')),
+ 'product' => ProductSimpleResource::make($this->whenLoaded('product')),
+ 'sales_volume' => $this->sales_volume,
+ 'total_amount' => $this->total_amount,
+ ];
+ }
+}
diff --git a/app/Endpoint/Api/Http/Resources/Dealer/DealerResource.php b/app/Endpoint/Api/Http/Resources/Dealer/DealerResource.php
index b1bce8f2..2297d458 100644
--- a/app/Endpoint/Api/Http/Resources/Dealer/DealerResource.php
+++ b/app/Endpoint/Api/Http/Resources/Dealer/DealerResource.php
@@ -23,7 +23,6 @@ class DealerResource extends JsonResource
'team_sales_value' => $this->team_sales_value, // 团队业绩
'pay_info'=>$this->pay_info ?: null,
'can_withdraw'=> $this->canWithdraw(),
- 'total_purchase_amount'=> bcdiv($this->total_purchase_amount, '1', 2), // 总进货业绩
];
}
}
diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php
index 0a994d12..85e53985 100644
--- a/app/Endpoint/Api/routes.php
+++ b/app/Endpoint/Api/routes.php
@@ -186,6 +186,8 @@ Route::group([
Route::post('order/orders/{order}/cancel', [OrderController::class, 'cancel']);
Route::get('order/orders/{order}/packages', [OrderController::class, 'orderPackages']);
Route::get('order/orders/{package}/shipping-info', [OrderController::class, 'shippingInfo']);
+
+ Route::get('users/{phone}', [\App\Endpoint\Api\Http\Controllers\UserController::class, 'show']);
});
Route::group([
@@ -300,6 +302,10 @@ Route::group([
Route::get('purchase-subsidies', [Dealer\PurchaseSubsidyController::class, 'index']);
// 进货补贴流水
Route::get('purchase-subsidies/{purchase_subsidy}/logs', [Dealer\PurchaseSubsidyLogController::class, 'index']);
+ // 管理津贴统计
+ Route::get('manage-subsidy-statistics', [Dealer\ManageSubsidyController::class, 'statistics']);
+ // 管理津贴流水
+ Route::get('manage-subsidy-logs', [Dealer\ManageSubsidyLogController::class, 'index']);
// 云仓库
Route::get('delivery-bills', [Dealer\DealerDeliveryBillController::class, 'index']);
diff --git a/app/Listeners/SendCoupons.php b/app/Listeners/SendCoupons.php
index b9ed978f..efcf22bf 100644
--- a/app/Listeners/SendCoupons.php
+++ b/app/Listeners/SendCoupons.php
@@ -3,7 +3,12 @@
namespace App\Listeners;
use App\Events\OrderPaid;
+use App\Models\ActivityProductPart;
+use App\Models\OrderActivity;
+use App\Models\ProductPartSku;
+use App\Models\UserCoupon;
use App\Services\CouponService;
+use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
use Throwable;
@@ -34,23 +39,62 @@ class SendCoupons
// 处理购买分区商品送券
try {
DB::beginTransaction();
-
- $products = $order->products()->with('sku.parts')->get();
-
- // 整理订单商品的分区
- $inValidParts = [];
-
- foreach ($products->pluck('sku.parts') as $parts) {
- foreach ($parts as $part) {
- if ($part->is_show) {
- // 分区去重
- $inValidParts[$part->id] = $part;
- }
+ $products = $order->products()->where('is_gift', false)->get()->toArray();
+ $_products = array_column($products, 'total_amount', 'sku_id');
+ $partSkus = ProductPartSku::with('part')->whereIn('sku_id', array_keys($_products))->get();
+ foreach ($partSkus as $partSku) {
+ if ($partSku->part?->is_show) {
+ $inValidParts[$partSku->part_id][$partSku->sku_id] = $_products[$partSku->sku_id] ?? 0;
+ // if (isset($inValidParts[$partSku->part_id])) {
+ // $inValidParts[$partSku->part_id] += $_products[$partSku->sku_id] ?? 0;
+ // } else {
+ // $inValidParts[$partSku->part_id] = $_products[$partSku->sku_id] ?? 0;
+ // }
}
}
+ // dd($inValidParts);
+ //根据分区获取活动
+ $partActivities = ActivityProductPart::with(['activity', 'activity.coupons'])->whereHas('activity', function (Builder $query) {
+ return $query->where('is_use', true)->where('started_at', '<', now())->where('ended_at', '>=', now());
+ })->whereIn('part_id', array_keys($inValidParts))->get();
+ $activityArr = [];
+ $partActivities->each(function ($item) use (&$activityArr) {
+ $activityArr[$item->activity_id][] = $item->part_id;
+ });
+ $sendedActivities = [];
+ foreach ($partActivities as $partActivity) {
+ //判断该活动是否已处理
+ if (in_array($partActivity->activity_id, $sendedActivities)) {
+ continue;
+ }
+ $sendedActivities[] = $partActivity->activity_id;
+ //获取活动的赠品赠送规则
+ $_couponsRule = $partActivity->activity?->coupons_rule;
+ //判断是否首单:times=0为仅首单赠送, 1为不限
+ if ($_couponsRule['times'] == 0 && UserCoupon::where([
+ 'activity_id' => $partActivity->activity_id,
+ 'user_id' => $order->user_id,
+ ])->exists()) {
+ continue;//提前结束本次循环
+ }
+ //判断是否满足门槛
+ $inValidGoods = [];
+ foreach ($inValidParts as $key => $part) {
+ if (in_array($key, $activityArr[$partActivity->activity_id])) {
+ $inValidGoods = array_merge($inValidGoods, $part);
+ }
+ }
+ if (bcmul($_couponsRule['value'], 100) > array_sum($inValidGoods)) {
+ continue;//提前结束本次循环
+ }
+ //赠券
+ (new CouponService())->receiveActivityCoupons($partActivity->activity, $order->user);
- foreach ($inValidParts as $inValidPart) {
- $this->couponService->receivePartCoupon($inValidPart, $order->user);
+ //记录订单参与活动信息
+ OrderActivity::firstOrCreate([
+ 'order_id'=>$order->id,
+ 'activity_id'=>$partActivity->activity_id,
+ ]);
}
DB::commit();
diff --git a/app/Models/Activity.php b/app/Models/Activity.php
new file mode 100644
index 00000000..92df503f
--- /dev/null
+++ b/app/Models/Activity.php
@@ -0,0 +1,49 @@
+ 'bool',
+ 'coupons_rule'=> JsonArray::class,
+ 'gifts_rule'=> JsonArray::class,
+ ];
+
+ protected $fillable = [
+ 'title', 'cover', 'content', 'is_use', 'coupons_rule', 'gifts_rule',
+ ];
+
+ public function couponSet()
+ {
+ return $this->hasMany(ActivityCoupon::class);
+ }
+
+ public function giftSet()
+ {
+ return $this->hasMany(ActivityGift::class);
+ }
+
+ public function parts()
+ {
+ return $this->belongsToMany(ProductPart::class, 'activity_product_parts', 'activity_id', 'part_id');
+ }
+
+ public function coupons()
+ {
+ return $this->belongsToMany(Coupon::class, 'activity_coupons', 'activity_id', 'coupon_id')->withPivot('qty');
+ }
+
+ public function gifts()
+ {
+ return $this->belongsToMany(ProductSku::class, 'activity_gifts', 'activity_id', 'sku_id')->withPivot('qty');
+ }
+}
diff --git a/app/Models/ActivityCoupon.php b/app/Models/ActivityCoupon.php
new file mode 100644
index 00000000..d6bd6e35
--- /dev/null
+++ b/app/Models/ActivityCoupon.php
@@ -0,0 +1,17 @@
+belongsTo(Part::class, 'part_id');
+ }
+
+ public function activity()
+ {
+ return $this->belongsTo(Activity::class, 'activity_id');
+ }
+}
diff --git a/app/Models/Dealer.php b/app/Models/Dealer.php
index 5acc6e50..58f2cc0c 100644
--- a/app/Models/Dealer.php
+++ b/app/Models/Dealer.php
@@ -6,7 +6,6 @@ use App\Casts\JsonArray;
use App\Enums\DealerLvl;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
-use Illuminate\Support\Facades\Cache;
class Dealer extends Model
{
@@ -95,43 +94,6 @@ class Dealer extends Model
return $this->lvl->text();
}
- /**
- * 获取已结算的进货业绩
- *
- * @return string
- */
- public function getTotalPurchaseAmountAttribute()
- {
- return Cache::remember('dealer_total_purchase_amount:'.$this->user_id, 3600, function () {
- return $this->purchaseSubsidies()->sum('total_purchase_amount');
- });
- }
-
- /**
- * 实时管理津贴
- *
- * @return void
- */
- public function getCalculateTotalAmountAttribute()
- {
- $tz = now();
-
- if ($tz->day >= 20) {
- // 结算当月20号开始的管理津贴
- $startAt = $tz->copy()->setDay(20)->startOfDay();
- } elseif ($tz->day >= 5) {
- // 结算当月5号开始的管理津贴
- $startAt = $tz->copy()->setDay(5)->startOfDay();
- } else {
- // 结算上月20号开始的管理津贴
- $startAt = $tz->copy()->subMonthNoOverflow()->setDay(20)->startOfDay();
- }
-
- return DealerManageSubsidyLog::where(
- 'user_id', $this->user_id
- )->where('order_completed_at', '>=', $startAt)->sum('total_amount');
- }
-
/**
* 确认此经销商是否是金牌经销商
*
diff --git a/app/Models/DealerEarning.php b/app/Models/DealerEarning.php
index b53befe9..efc2e305 100644
--- a/app/Models/DealerEarning.php
+++ b/app/Models/DealerEarning.php
@@ -5,9 +5,11 @@ namespace App\Models;
use App\Casts\JsonArray;
use App\Enums\DealerEarningStatus;
use App\Enums\DealerLvl;
+use App\Enums\PayWay;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use EloquentFilter\Filterable;
use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\Relation;
class DealerEarning extends Model
{
@@ -24,6 +26,7 @@ class DealerEarning extends Model
protected $casts = [
'lvl' => DealerLvl::class,
'status' => DealerEarningStatus::class,
+ 'pay_way' => PayWay::class,
'pay_at' => 'datetime',
'settle_at'=> 'datetime',
'pay_info' => JsonArray::class,
@@ -180,25 +183,32 @@ class DealerEarning extends Model
return $this->settle_at ? $this->status->value : -1;
}
- public function getTypeNameAttribute()
+ public function getEarningableTypeTextAttribute()
{
- $name = '未知';
- switch ($this->attributes['earningable_type']) {
- case (new DealerManagerSubsidy())->getMorphClass():
- $name = '管理者津贴';
+ $text = '其它';
+
+ switch (Relation::getMorphedModel($this->attributes['earningable_type'])) {
+ // 管理津贴
+ case DealerManageSubsidy::class:
+ $text = '管理津贴';
break;
- case (new DealerManageSubsidy())->getMorphClass():
- $name = '管理津贴';
+
+ // 管理者津贴
+ case DealerManagerSubsidy::class:
+ $text = '管理者津贴';
break;
- case (new DealerChannelSubsidyLog())->getMorphClass():
- $name = '渠道补贴';
+
+ // 进货津贴
+ case DealerPurchaseSubsidy::class:
+ $text = '进货补贴';
break;
- default:
- $name = '进货补贴';
+
+ case DealerChannelSubsidyLog::class:
+ $text = '渠道补贴';
break;
}
- return $name;
+ return $text;
}
/**
diff --git a/app/Models/OrderActivity.php b/app/Models/OrderActivity.php
new file mode 100644
index 00000000..66c0b986
--- /dev/null
+++ b/app/Models/OrderActivity.php
@@ -0,0 +1,22 @@
+belongsTo(Activity::class);
+ }
+}
diff --git a/app/Models/OrderActivityInfo.php b/app/Models/OrderActivityInfo.php
new file mode 100644
index 00000000..f5ea351b
--- /dev/null
+++ b/app/Models/OrderActivityInfo.php
@@ -0,0 +1,14 @@
+ 'json',
+ 'is_gift'=>'boolean',
];
/**
@@ -38,6 +39,8 @@ class OrderProduct extends Model
'after_sale_state',
'after_expire_at',
'remain_quantity',
+ 'is_gift',
+ 'activity_id',
];
public function packageProducts()
@@ -97,7 +100,7 @@ class OrderProduct extends Model
*/
public function isGift()
{
- return $this->gift_for_sku_id !== null;
+ return $this->gift_for_sku_id !== null || $this->is_gift == true;
}
/**
diff --git a/app/Models/UserCoupon.php b/app/Models/UserCoupon.php
index 3b80e851..ece65ab8 100644
--- a/app/Models/UserCoupon.php
+++ b/app/Models/UserCoupon.php
@@ -42,6 +42,7 @@ class UserCoupon extends Model
'is_use',
'created_at',
'updated_at',
+ 'activity_id',
];
/**
diff --git a/app/Services/AfterSaleService.php b/app/Services/AfterSaleService.php
index ca6319e9..f06b0af4 100644
--- a/app/Services/AfterSaleService.php
+++ b/app/Services/AfterSaleService.php
@@ -150,15 +150,16 @@ class AfterSaleService
* @param string $remarks
* @return void
*/
- public function verify(AfterSale $afterSale, string $remarks, int $amount)
+ public function verify(AfterSale $afterSale, string $remarks, int $amount, ?int $num = null)
{
if ($this->isWaitVerify($afterSale)) {
switch ($afterSale->type) {
case AfterSale::TYPE_REFUND_AND_RETURN:
$afterSale->update([
- 'amount' => $amount,
- 'state' => $afterSale::STATE_AGREE,
- 'remarks' => $remarks,
+ 'num' => $num,
+ 'amount' => $amount,
+ 'state' => $afterSale::STATE_AGREE,
+ 'remarks' => $remarks,
]);
AfterSaleLog::create([
'after_sale_id' => $afterSale->id,
@@ -168,9 +169,10 @@ class AfterSaleService
break;
case AfterSale::TYPE_REFUND:
$afterSale->update([
- 'amount' => $amount,
- 'state' => $afterSale::STATE_AGREE,
- 'remarks' => $remarks,
+ 'num' => $num,
+ 'amount' => $amount,
+ 'state' => $afterSale::STATE_AGREE,
+ 'remarks' => $remarks,
]);
AfterSaleLog::create([
'after_sale_id' => $afterSale->id,
@@ -180,8 +182,10 @@ class AfterSaleService
break;
case AfterSale::TYPE_CHANGE:
$afterSale->update([
- 'state' => $afterSale::STATE_AGREE,
- 'remarks' => $remarks,
+ 'num' => $num,
+ 'amount' => $amount,
+ 'state' => $afterSale::STATE_AGREE,
+ 'remarks' => $remarks,
]);
AfterSaleLog::create([
'after_sale_id' => $afterSale->id,
@@ -191,8 +195,10 @@ class AfterSaleService
break;
case AfterSale::TYPE_FILL:
$afterSale->update([
- 'state' => $afterSale::STATE_AGREE,
- 'remarks' => $remarks,
+ 'num' => $num,
+ 'amount' => $amount,
+ 'state' => $afterSale::STATE_AGREE,
+ 'remarks' => $remarks,
]);
AfterSaleLog::create([
'after_sale_id' => $afterSale->id,
@@ -470,6 +476,8 @@ class AfterSaleService
OrderProduct::create([
'user_id' => $changeOrder->user_id,
'order_id' => $changeOrder->id,
+ 'is_gift' => $afterSaleProduct->is_gift,
+ 'activity_id' => $afterSaleProduct->activity_id,
'gift_for_sku_id' => $afterSaleProduct->gift_for_sku_id,
'spu_id' => $afterSaleProduct->spu_id,
'sku_id' => $afterSaleProduct->sku_id,
diff --git a/app/Services/CouponService.php b/app/Services/CouponService.php
index ce428aff..dcae3adb 100644
--- a/app/Services/CouponService.php
+++ b/app/Services/CouponService.php
@@ -2,11 +2,13 @@
namespace App\Services;
+use App\Models\Activity;
use App\Models\Coupon;
use App\Models\ProductPart;
use App\Models\ReceivePartCouponLog;
use App\Models\User;
use App\Models\UserCoupon;
+use Illuminate\Database\QueryException;
class CouponService
{
@@ -84,6 +86,23 @@ class CouponService
ReceivePartCouponLog::create(['user_id'=>$user->id, 'part_id'=>$part->id]);
}
+ /**
+ * 根据活动领取优惠券
+ *
+ * @return void
+ */
+ public function receiveActivityCoupons(Activity $activity, User $user)
+ {
+ $someCoupons = [];
+ foreach ($activity->coupons as $coupon) {
+ $someCoupons[] = [
+ 'coupon'=>$coupon,
+ 'num'=>$coupon->pivot->qty,
+ ];
+ }
+ $this->receiveSomeCoupons($user, $someCoupons, $activity->id);
+ }
+
/**
* 领取一批券
*
@@ -91,20 +110,30 @@ class CouponService
* @param array $coupons
* @return void
*/
- protected function receiveSomeCoupons(User $user, array $coupons)
+ protected function receiveSomeCoupons(User $user, array $coupons, ?int $activityId = null)
{
$userCoupons = [];
- foreach ($coupons as $coupon) {
- for ($i=0; $i<$coupon['num']; $i++) {
- $userCoupons[] = self::createUserCouponData($user->id, $coupon['coupon']);
- }
+ foreach ($coupons as $key=> $coupon) {
//更新对应券发送量,余量;
- $coupon['coupon']->increment('sent', $coupon['num']);
- if ($coupon['coupon']->limit > 0) {//限量才减少余量
- $coupon['coupon']->decrement('stock', $coupon['num']);
+ try {
+ $canSent = true;
+ if ($coupon['coupon']->limit > 0) {//限量才减少余量
+ $coupon['coupon']->decrement('stock', $coupon['num']);
+ }
+ } catch (QueryException $e) {
+ if (strpos($e->getMessage(), 'Numeric value out of range') !== false) {
+ $canSent = false;
+ } else {
+ throw new $e();
+ }
+ }
+ if ($canSent) {
+ for ($i = 0; $i < $coupon['num']; $i++) {
+ $userCoupons[] = self::createUserCouponData($user->id, $coupon['coupon'], $activityId ?? null);
+ }
+ $coupon['coupon']->increment('sent', $coupon['num']);
}
}
-
UserCoupon::insert($userCoupons);
}
@@ -126,7 +155,7 @@ class CouponService
*
* @return array
*/
- public static function createUserCouponData(int $userId, Coupon $coupon)
+ public static function createUserCouponData(int $userId, Coupon $coupon, ?int $activityId = null)
{
//如果userId小于等于0,直接退出
if ($userId <= 0) {
@@ -150,6 +179,7 @@ class CouponService
'use_end_at' => $useEndAt,
'created_at' => now(),
'updated_at' => now(),
+ 'activity_id' => $activityId ?? null,
];
}
}
diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php
index 99fa04cf..cda3edac 100644
--- a/app/Services/OrderService.php
+++ b/app/Services/OrderService.php
@@ -10,16 +10,20 @@ use App\Enums\SocialiteType;
use App\Enums\WxpayTradeType;
use App\Exceptions\BizException;
use App\Exceptions\ShippingNotSupportedException;
+use App\Models\ActivityProductPart;
use App\Models\DistributionPreIncomeJob;
use App\Models\Order;
+use App\Models\OrderActivity;
use App\Models\OrderProduct;
use App\Models\ProductGift;
+use App\Models\ProductPartSku;
use App\Models\ProductSku;
use App\Models\ShippingAddress;
use App\Models\SocialiteUser;
use App\Models\User;
use App\Models\UserCoupon;
use App\Services\Payment\WxpayService;
+use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\DB;
@@ -240,6 +244,8 @@ class OrderService
$orderProducts[] = [
'gift_for_sku_id' => null,
+ 'activity_id'=>null,
+ 'is_gift'=> false,
'user_id' => $order->user_id,
'order_id' => $order->id,
'spu_id' => $sku->spu_id,
@@ -261,42 +267,19 @@ class OrderService
'updated_at' => $order->updated_at,
];
- // 将赠品加入订单中
- $gifts = $this->deductProduct($sku, $qty);
-
- foreach ($gifts as $gift) {
- $giftSku = $gift['sku'];
-
- $orderProducts[] = [
- 'gift_for_sku_id' => $sku->id,
- 'user_id' => $order->user_id,
- 'order_id' => $order->id,
- 'spu_id' => $giftSku->spu_id,
- 'sku_id' => $giftSku->id,
- 'category_id' => $giftSku->category_id,
- 'name' => $giftSku->name,
- 'specs' => json_encode($giftSku->specs),
- 'cover' => $giftSku->cover,
- 'weight' => $giftSku->weight,
- 'sell_price' => $giftSku->sell_price,
- 'vip_price' => $giftSku->vip_price,
- 'sales_value' => 0, // 赠品不算销售值
- 'quantity' => $gift['num'],
- 'remain_quantity' => $gift['num'], // 剩余发货数量
- 'coupon_discount_amount' => 0,
- 'vip_discount_amount' => 0,
- 'total_amount' => 0,
- 'created_at' => $order->created_at,
- 'updated_at' => $order->updated_at,
- ];
- }
+ // 扣除商品库存
+ $this->deductProduct($sku, $qty);
}
+ //根据订单参加的活动添加赠品;
+ $gifts = $this->activityGifts($order, $orderProducts);
+ $orderProducts = array_merge($orderProducts, $gifts);
OrderProduct::insert($orderProducts);
}
/**
- * 扣商品的库存和赠品数量
+ * 扣商品的库存
+ * 03-04取消根据商品赠送赠品
*
* @param \App\Models\ProductSku $sku
* @param int $qty
@@ -312,16 +295,16 @@ class OrderService
$sku->spu?->increment('sales', $qty);
- // 如果是因为赠品库存不足引起的异常,则需重试
- do {
- try {
- return $this->deductGifts($sku, $qty);
- } catch (QueryException $e) {
- if (strpos($e->getMessage(), 'Numeric value out of range') === false) {
- throw $e;
- }
- }
- } while (true);
+ // // 如果是因为赠品库存不足引起的异常,则需重试
+ // do {
+ // try {
+ // return $this->deductGifts($sku, $qty);
+ // } catch (QueryException $e) {
+ // if (strpos($e->getMessage(), 'Numeric value out of range') === false) {
+ // throw $e;
+ // }
+ // }
+ // } while (true);
}
/**
@@ -382,6 +365,114 @@ class OrderService
return $gifts;
}
+ /**
+ * Undocumented function
+ *
+ * @param Order $order
+ * @param [type] $products
+ * @return array $gifts
+ */
+ protected function activityGifts(Order $order, $products)
+ {
+ $_products = array_column($products, 'total_amount', 'sku_id');
+
+ $inValidParts = [];
+ // 整理订单商品的分区
+ $partSkus = ProductPartSku::with('part')->whereIn('sku_id', array_keys($_products))->get();
+ foreach ($partSkus as $partSku) {
+ if ($partSku->part?->is_show) {
+ $inValidParts[$partSku->part_id][$partSku->sku_id] = $_products[$partSku->sku_id] ?? 0;
+ // if (isset($inValidParts[$partSku->part_id])) {
+ // $inValidParts[$partSku->part_id] += $_products[$partSku->sku_id] ?? 0;
+ // } else {
+ // $inValidParts[$partSku->part_id] = $_products[$partSku->sku_id] ?? 0;
+ // }
+ }
+ }
+ // dd($inValidParts);
+ //根据分区获取活动
+ $partActivities = ActivityProductPart::with(['activity', 'activity.gifts'])->whereHas('activity', function (Builder $query) {
+ return $query->where('is_use', true)->where('started_at', '<', now())->where('ended_at', '>=', now());
+ })->whereIn('part_id', array_keys($inValidParts))->get();
+ $activityArr = [];
+ $partActivities->each(function ($item) use (&$activityArr) {
+ $activityArr[$item->activity_id][] = $item->part_id;
+ });
+ $giveGifts = [];
+ $sendedActivities = [];
+ foreach ($partActivities as $partActivity) {
+ //判断该活动是否已处理
+ if (in_array($partActivity->activity_id, $sendedActivities)) {
+ continue;
+ }
+ $sendedActivities[] = $partActivity->activity_id;
+ //获取活动的赠品赠送规则
+ $_giftsRule = $partActivity->activity?->gifts_rule;
+ //判断是否首单:times=0为仅首单赠送, 1为不限
+ if ($_giftsRule['times'] == 0 && OrderProduct::where([
+ 'activity_id' => $partActivity->activity_id,
+ 'user_id' => $order->user_id,
+ ])->whereHas('order', function ($query) {//除取消外的订单
+ return $query->where('status', '<>', Order::STATUS_CANCELLED);
+ })->exists()) {
+ continue;//提前结束本次循环
+ }
+ //判断是否满足门槛
+ $inValidGoods = [];
+ foreach ($inValidParts as $key => $part) {
+ if (in_array($key, $activityArr[$partActivity->activity_id])) {
+ $inValidGoods = array_merge($inValidGoods, $part);
+ }
+ }
+ if (bcmul($_giftsRule['value'], 100) > array_sum($inValidGoods)) {
+ continue;//提前结束本次循环
+ }
+ //返回赠品
+ $_gifts = $partActivity->activity->gifts;
+ $_num = 0;
+ foreach ($_gifts as $_gift) {
+ if (($_gift->stock - $_gift->pivot->qty) >= 0) {
+ $_num += $_gift->pivot->qty;
+ $giveGifts[] = [
+ 'gift_for_sku_id'=> null,
+ 'user_id' => $order->user_id,
+ 'order_id' => $order->id,
+ 'spu_id' => $_gift->spu_id,
+ 'sku_id' => $_gift->id,
+ 'category_id' => $_gift->category_id,
+ 'name' => $_gift->name,
+ 'specs' => json_encode($_gift->specs),
+ 'cover' => $_gift->cover,
+ 'weight' => $_gift->weight,
+ 'sell_price' => $_gift->sell_price,
+ 'vip_price' => $_gift->vip_price,
+ 'sales_value' => 0, // 赠品不算销售值
+ 'quantity' => $_gift->pivot->qty,
+ 'remain_quantity' => $_gift->pivot->qty, // 剩余发货数量
+ 'coupon_discount_amount' => 0,
+ 'vip_discount_amount' => 0,
+ 'total_amount' => 0,
+ 'created_at' => $order->created_at,
+ 'updated_at' => $order->updated_at,
+ 'is_gift'=> true,
+ 'activity_id'=>$partActivity->activity_id,
+ ];
+ // 扣除商品库存
+ $this->deductProduct($_gift, $_gift->pivot->qty);
+ }
+ }
+ if ($_num > 0) {
+ //记录订单参与活动信息
+ OrderActivity::firstOrCreate([
+ 'order_id'=>$order->id,
+ 'activity_id'=>$partActivity->activity_id,
+ ]);
+ }
+ }
+
+ return $giveGifts;
+ }
+
/**
* 确认快速下单
*
@@ -923,21 +1014,32 @@ class OrderService
continue;
}
- $gift = ProductGift::where('sku_id', $product->gift_for_sku_id)
- ->where('gift_sku_id', $product->sku_id)
- ->first();
+ //原赠品
+ if ($product->gift_for_sku_id) {
+ $gift = ProductGift::where('sku_id', $product->gift_for_sku_id)
+ ->where('gift_sku_id', $product->sku_id)
+ ->first();
- if ($gift === null) {
+ if ($gift === null) {
+ continue;
+ }
+
+ if ($gift->isLimit()) {
+ $gift->update([
+ 'remaining' => DB::raw("remaining+{$product->quantity}"),
+ 'sent' => DB::raw("sent-{$product->quantity}"),
+ ]);
+ } else {
+ $gift->decrement('sent', $product->quantity);
+ }
continue;
- }
-
- if ($gift->isLimit()) {
- $gift->update([
- 'remaining' => DB::raw("remaining+{$product->quantity}"),
- 'sent' => DB::raw("sent-{$product->quantity}"),
+ } else {//新赠品, 则直接增加商品库存
+ $product->spu?->increment('sales', -$product->quantity);
+ $product->sku?->update([
+ 'stock' => DB::Raw("stock + {$product->quantity}"),
+ 'sales' => DB::Raw("sales - {$product->quantity}"),
]);
- } else {
- $gift->decrement('sent', $product->quantity);
+ continue;
}
}
diff --git a/database/migrations/2022_03_03_103127_create_activities_table.php b/database/migrations/2022_03_03_103127_create_activities_table.php
new file mode 100644
index 00000000..d3cc430f
--- /dev/null
+++ b/database/migrations/2022_03_03_103127_create_activities_table.php
@@ -0,0 +1,39 @@
+id();
+ $table->string('title')->comment('标题');
+ $table->string('cover')->nullable()->comment('封面图');
+ $table->text('content')->nullable()->comment('内容');
+ $table->unsignedTinyInteger('is_use')->default(0)->comment('是否上架');
+ $table->timestamp('started_at')->nullable()->comment('开始时间');
+ $table->timestamp('ended_at')->nullable()->comment('结束时间');
+ $table->json('coupons_rule')->nullable()->comment('优惠券规则');
+ $table->json('gifts_rule')->nullable()->comment('赠品规则');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('activities');
+ }
+}
diff --git a/database/migrations/2022_03_03_110558_create_activity_product_parts_table.php b/database/migrations/2022_03_03_110558_create_activity_product_parts_table.php
new file mode 100644
index 00000000..84f8ab8f
--- /dev/null
+++ b/database/migrations/2022_03_03_110558_create_activity_product_parts_table.php
@@ -0,0 +1,34 @@
+id();
+ $table->unsignedBigInteger('activity_id')->comment('活动ID');
+ $table->unsignedBigInteger('part_id')->comment('商品分区ID');
+
+ $table->index(['activity_id', 'part_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('activity_product_parts');
+ }
+}
diff --git a/database/migrations/2022_03_03_110634_create_activity_coupons_table.php b/database/migrations/2022_03_03_110634_create_activity_coupons_table.php
new file mode 100644
index 00000000..9838f6c6
--- /dev/null
+++ b/database/migrations/2022_03_03_110634_create_activity_coupons_table.php
@@ -0,0 +1,35 @@
+id();
+ $table->unsignedBigInteger('activity_id')->comment('活动ID');
+ $table->unsignedBigInteger('coupon_id')->comment('优惠券ID');
+ $table->unsignedInteger('qty')->comment('数量');
+
+ $table->index(['activity_id', 'coupon_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('activity_coupons');
+ }
+}
diff --git a/database/migrations/2022_03_03_110649_create_activity_gifts_table.php b/database/migrations/2022_03_03_110649_create_activity_gifts_table.php
new file mode 100644
index 00000000..f2545c32
--- /dev/null
+++ b/database/migrations/2022_03_03_110649_create_activity_gifts_table.php
@@ -0,0 +1,35 @@
+id();
+ $table->unsignedBigInteger('activity_id')->comment('活动ID');
+ $table->unsignedBigInteger('sku_id')->comment('赠品ID');
+ $table->unsignedInteger('qty')->comment('数量');
+
+ $table->index(['activity_id', 'sku_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('activity_gifts');
+ }
+}
diff --git a/database/migrations/2022_03_17_111153_add_is_gift_to_order_products_table.php b/database/migrations/2022_03_17_111153_add_is_gift_to_order_products_table.php
new file mode 100644
index 00000000..4b379634
--- /dev/null
+++ b/database/migrations/2022_03_17_111153_add_is_gift_to_order_products_table.php
@@ -0,0 +1,35 @@
+unsignedTinyInteger('is_gift')->nullable()->default(0)->comment('是否赠品');
+ $table->unsignedBigInteger('activity_id')->nullable()->comment('参与活动ID');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('order_products', function (Blueprint $table) {
+ //
+ $table->dropColumn(['is_gift', 'activity_id']);
+ });
+ }
+}
diff --git a/database/migrations/2022_03_17_145215_add_activity_id_to_user_coupons_table.php b/database/migrations/2022_03_17_145215_add_activity_id_to_user_coupons_table.php
new file mode 100644
index 00000000..f1ed1f77
--- /dev/null
+++ b/database/migrations/2022_03_17_145215_add_activity_id_to_user_coupons_table.php
@@ -0,0 +1,34 @@
+unsignedBigInteger('activity_id')->nullable()->comment('参与活动ID');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('user_coupons', function (Blueprint $table) {
+ //
+ $table->dropColumn(['activity_id']);
+ });
+ }
+}
diff --git a/database/migrations/2022_03_18_094929_create_order_activities_table.php b/database/migrations/2022_03_18_094929_create_order_activities_table.php
new file mode 100644
index 00000000..8ee4ee31
--- /dev/null
+++ b/database/migrations/2022_03_18_094929_create_order_activities_table.php
@@ -0,0 +1,35 @@
+id();
+ $table->unsignedBigInteger('order_id');
+ $table->unsignedBigInteger('activity_id');
+ $table->timestamps();
+
+ $table->unique(['order_id', 'activity_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('order_activities');
+ }
+}
diff --git a/database/seeders/AdminMenuSeeder.php b/database/seeders/AdminMenuSeeder.php
index dc141fb4..60dc9814 100644
--- a/database/seeders/AdminMenuSeeder.php
+++ b/database/seeders/AdminMenuSeeder.php
@@ -119,6 +119,11 @@ class AdminMenuSeeder extends Seeder
'icon' => 'fa fa-paw',
'uri'=>'',
'children'=>[
+ [
+ 'title' => '活动管理',
+ 'icon'=>'',
+ 'uri' =>'activities',
+ ],
[
'title' =>'商品分区',
'icon' => '',
@@ -294,6 +299,11 @@ class AdminMenuSeeder extends Seeder
'icon' => '',
'uri' => 'dealer-users',
],
+ [
+ 'title' =>'经销商资金明细',
+ 'icon'=>'',
+ 'uri' => 'dealer-earnings',
+ ],
[
'title' =>'商品管理',
'icon' => '',
@@ -314,26 +324,15 @@ class AdminMenuSeeder extends Seeder
'icon' => '',
'uri' => 'dealer-delivery-bills',
],
- // [
- // 'title' =>'用户资金',
- // 'icon'=>'',
- // 'uri' => 'dealer-earnings',
- // ],
[
- 'title' =>'渠道补贴',
+ 'title' =>'签约渠道补贴',
'icon'=>'',
- 'uri' => 'dealer-earnings-channel?filter-earningable_type[]=dealer_channel_subsidy_log',
+ 'uri' => 'dealer-channel-subsidies',
],
- // [
- // 'title' =>'签约渠道补贴',
- // 'icon'=>'',
- // 'uri' => 'dealer-channel-subsidies',
- // ],
[
'title' =>'进货补贴',
'icon' => '',
- 'uri' => 'dealer-earnings-purchase?filter-earningable_type[]=dealer_purchase_subsidy',
- // 'uri' => 'dealer-purchase-subsidies',
+ 'uri' => 'dealer-purchase-subsidies',
],
[
'title' =>'进货补贴明细',
@@ -343,8 +342,7 @@ class AdminMenuSeeder extends Seeder
[
'title'=>'管理津贴',
'icon' => '',
- 'uri' => 'dealer-earnings-manage?filter-earningable_type[]=dealer_manage_subsidy',
- // 'uri' => 'dealer-manage-subsidies',
+ 'uri' => 'dealer-manage-subsidies',
],
[
'title' =>'管理津贴明细',
@@ -354,8 +352,7 @@ class AdminMenuSeeder extends Seeder
[
'title'=>'管理者津贴',
'icon' => '',
- 'uri' => 'dealer-earnings-manage?filter-earningable_type[]=dealer_manager_subsidy',
- // 'uri' => 'dealer-manager-subsidies',
+ 'uri' => 'dealer-manager-subsidies',
],
[
'title'=>'管理者津贴明细',
diff --git a/database/seeders/AdminPermissionSeeder.php b/database/seeders/AdminPermissionSeeder.php
index c52c47c2..fc5e274f 100644
--- a/database/seeders/AdminPermissionSeeder.php
+++ b/database/seeders/AdminPermissionSeeder.php
@@ -410,6 +410,10 @@ class AdminPermissionSeeder extends Seeder
'verify'=>['name' =>'提现审核'],
],
],
+ 'activities'=>[
+ 'name' =>'活动管理',
+ 'curd' => true,
+ ],
];
// try {
// DB::begintransaction();
diff --git a/database/seeders/AdminSeeder.php b/database/seeders/AdminSeeder.php
index ca0a4ff1..de34b5bb 100644
--- a/database/seeders/AdminSeeder.php
+++ b/database/seeders/AdminSeeder.php
@@ -14,7 +14,7 @@ class AdminSeeder extends Seeder
public function run()
{
$this->call([
- AdminMenuSeeder::class,
+ // AdminMenuSeeder::class,
AdminPermissionSeeder::class,
]);
}
diff --git a/dcat_admin_ide_helper.php b/dcat_admin_ide_helper.php
index d1d1dab1..93bb1676 100644
--- a/dcat_admin_ide_helper.php
+++ b/dcat_admin_ide_helper.php
@@ -7,131 +7,131 @@
*
* @author jqh <841324345@qq.com>
*/
+
namespace Dcat\Admin {
use Illuminate\Support\Collection;
/**
- * @property Grid\Column|Collection width
- * @property Grid\Column|Collection content
- * @property Grid\Column|Collection coupons_rule
- * @property Grid\Column|Collection cover
- * @property Grid\Column|Collection created_at
- * @property Grid\Column|Collection ended_at
- * @property Grid\Column|Collection gifts_rule
* @property Grid\Column|Collection id
+ * @property Grid\Column|Collection cover
+ * @property Grid\Column|Collection content
* @property Grid\Column|Collection is_use
* @property Grid\Column|Collection started_at
+ * @property Grid\Column|Collection ended_at
+ * @property Grid\Column|Collection coupons_rule
+ * @property Grid\Column|Collection gifts_rule
+ * @property Grid\Column|Collection created_at
* @property Grid\Column|Collection updated_at
* @property Grid\Column|Collection activity_id
* @property Grid\Column|Collection coupon_id
* @property Grid\Column|Collection qty
* @property Grid\Column|Collection sku_id
* @property Grid\Column|Collection part_id
- * @property Grid\Column|Collection dimensions
- * @property Grid\Column|Collection is_show
* @property Grid\Column|Collection key
* @property Grid\Column|Collection name
- * @property Grid\Column|Collection detail
+ * @property Grid\Column|Collection dimensions
+ * @property Grid\Column|Collection is_show
* @property Grid\Column|Collection type
* @property Grid\Column|Collection version
+ * @property Grid\Column|Collection detail
* @property Grid\Column|Collection is_enabled
- * @property Grid\Column|Collection extension
- * @property Grid\Column|Collection icon
- * @property Grid\Column|Collection order
* @property Grid\Column|Collection parent_id
+ * @property Grid\Column|Collection order
+ * @property Grid\Column|Collection icon
* @property Grid\Column|Collection uri
- * @property Grid\Column|Collection menu_id
+ * @property Grid\Column|Collection extension
* @property Grid\Column|Collection permission_id
+ * @property Grid\Column|Collection menu_id
+ * @property Grid\Column|Collection slug
* @property Grid\Column|Collection http_method
* @property Grid\Column|Collection http_path
- * @property Grid\Column|Collection slug
* @property Grid\Column|Collection role_id
* @property Grid\Column|Collection user_id
* @property Grid\Column|Collection value
- * @property Grid\Column|Collection avatar
- * @property Grid\Column|Collection password
- * @property Grid\Column|Collection remember_token
* @property Grid\Column|Collection username
+ * @property Grid\Column|Collection password
+ * @property Grid\Column|Collection avatar
+ * @property Grid\Column|Collection remember_token
* @property Grid\Column|Collection address_id
* @property Grid\Column|Collection image
- * @property Grid\Column|Collection jump_link
- * @property Grid\Column|Collection jump_type
- * @property Grid\Column|Collection remarks
* @property Grid\Column|Collection sort
+ * @property Grid\Column|Collection jump_type
+ * @property Grid\Column|Collection jump_link
+ * @property Grid\Column|Collection remarks
* @property Grid\Column|Collection after_sale_id
* @property Grid\Column|Collection desc
* @property Grid\Column|Collection images
- * @property Grid\Column|Collection amount
- * @property Grid\Column|Collection num
* @property Grid\Column|Collection order_id
- * @property Grid\Column|Collection order_product_id
- * @property Grid\Column|Collection sales_value
* @property Grid\Column|Collection sn
+ * @property Grid\Column|Collection order_product_id
+ * @property Grid\Column|Collection num
+ * @property Grid\Column|Collection amount
* @property Grid\Column|Collection state
* @property Grid\Column|Collection tracking_number
+ * @property Grid\Column|Collection sales_value
* @property Grid\Column|Collection before_agent_level
* @property Grid\Column|Collection change_agent_level
* @property Grid\Column|Collection remark
- * @property Grid\Column|Collection apk_link
- * @property Grid\Column|Collection cate
- * @property Grid\Column|Collection context
- * @property Grid\Column|Collection is_force
* @property Grid\Column|Collection v
+ * @property Grid\Column|Collection cate
+ * @property Grid\Column|Collection is_force
+ * @property Grid\Column|Collection context
+ * @property Grid\Column|Collection apk_link
* @property Grid\Column|Collection wgt_link
+ * @property Grid\Column|Collection is_recommend
* @property Grid\Column|Collection _lft
* @property Grid\Column|Collection _rgt
- * @property Grid\Column|Collection is_recommend
* @property Grid\Column|Collection article_id
- * @property Grid\Column|Collection author_name
* @property Grid\Column|Collection category_id
- * @property Grid\Column|Collection likes
- * @property Grid\Column|Collection media_content
- * @property Grid\Column|Collection media_type
- * @property Grid\Column|Collection points
+ * @property Grid\Column|Collection author_name
* @property Grid\Column|Collection subtitle
+ * @property Grid\Column|Collection points
+ * @property Grid\Column|Collection likes
+ * @property Grid\Column|Collection media_type
+ * @property Grid\Column|Collection media_content
+ * @property Grid\Column|Collection loggable_type
+ * @property Grid\Column|Collection loggable_id
* @property Grid\Column|Collection action
* @property Grid\Column|Collection before_balance
* @property Grid\Column|Collection change_balance
- * @property Grid\Column|Collection loggable_id
- * @property Grid\Column|Collection loggable_type
* @property Grid\Column|Collection balance
- * @property Grid\Column|Collection is_frozen
* @property Grid\Column|Collection total_expenses
* @property Grid\Column|Collection total_revenue
* @property Grid\Column|Collection transferable
+ * @property Grid\Column|Collection is_frozen
* @property Grid\Column|Collection continue_click_times
* @property Grid\Column|Collection last_click_at
- * @property Grid\Column|Collection is_enable
* @property Grid\Column|Collection ranges
+ * @property Grid\Column|Collection is_enable
* @property Grid\Column|Collection administrator_id
* @property Grid\Column|Collection status
* @property Grid\Column|Collection task_id
+ * @property Grid\Column|Collection threshold
* @property Grid\Column|Collection limit
* @property Grid\Column|Collection sent
* @property Grid\Column|Collection stock
- * @property Grid\Column|Collection threshold
* @property Grid\Column|Collection use_day
- * @property Grid\Column|Collection use_end_at
* @property Grid\Column|Collection use_start_at
+ * @property Grid\Column|Collection use_end_at
* @property Grid\Column|Collection lvl
- * @property Grid\Column|Collection order_completed_at
* @property Grid\Column|Collection total_amount
- * @property Grid\Column|Collection earningable_id
+ * @property Grid\Column|Collection order_completed_at
* @property Grid\Column|Collection earningable_type
+ * @property Grid\Column|Collection earningable_id
+ * @property Grid\Column|Collection total_earnings
* @property Grid\Column|Collection fee
* @property Grid\Column|Collection fee_rate
- * @property Grid\Column|Collection pay_at
- * @property Grid\Column|Collection pay_image
- * @property Grid\Column|Collection pay_info
- * @property Grid\Column|Collection pay_way
* @property Grid\Column|Collection payer_id
+ * @property Grid\Column|Collection pay_info
+ * @property Grid\Column|Collection pay_at
* @property Grid\Column|Collection settle_at
- * @property Grid\Column|Collection total_earnings
- * @property Grid\Column|Collection end_at
+ * @property Grid\Column|Collection pay_image
+ * @property Grid\Column|Collection pay_way
* @property Grid\Column|Collection is_manager
- * @property Grid\Column|Collection is_settle
* @property Grid\Column|Collection real_amount
* @property Grid\Column|Collection start_at
+ * @property Grid\Column|Collection end_at
+ * @property Grid\Column|Collection is_settle
* @property Grid\Column|Collection product_id
* @property Grid\Column|Collection sales_volume
* @property Grid\Column|Collection last_consignor_id
@@ -139,122 +139,122 @@ namespace Dcat\Admin {
* @property Grid\Column|Collection price
* @property Grid\Column|Collection sale_price
* @property Grid\Column|Collection reason
- * @property Grid\Column|Collection allocated_at
- * @property Grid\Column|Collection consignee_address
+ * @property Grid\Column|Collection consignor_id
+ * @property Grid\Column|Collection settle_state
* @property Grid\Column|Collection consignee_name
* @property Grid\Column|Collection consignee_telephone
* @property Grid\Column|Collection consignee_zone
- * @property Grid\Column|Collection consignor_id
- * @property Grid\Column|Collection out_trade_no
- * @property Grid\Column|Collection paied_time
- * @property Grid\Column|Collection pay_sn
+ * @property Grid\Column|Collection consignee_address
* @property Grid\Column|Collection pay_time
- * @property Grid\Column|Collection settle_state
+ * @property Grid\Column|Collection paied_time
* @property Grid\Column|Collection shipping_time
* @property Grid\Column|Collection shippinged_time
+ * @property Grid\Column|Collection allocated_at
+ * @property Grid\Column|Collection pay_sn
+ * @property Grid\Column|Collection out_trade_no
* @property Grid\Column|Collection min_order_amount
* @property Grid\Column|Collection price_1st
* @property Grid\Column|Collection price_2st
* @property Grid\Column|Collection price_3st
- * @property Grid\Column|Collection is_sale
- * @property Grid\Column|Collection manager_subsidy
* @property Grid\Column|Collection sales_count
+ * @property Grid\Column|Collection is_sale
* @property Grid\Column|Collection unit
+ * @property Grid\Column|Collection manager_subsidy
* @property Grid\Column|Collection path
- * @property Grid\Column|Collection subsidy_rate
* @property Grid\Column|Collection total_purchase_amount
+ * @property Grid\Column|Collection subsidy_rate
* @property Grid\Column|Collection total_subsidy
- * @property Grid\Column|Collection change_amount
- * @property Grid\Column|Collection change_from_purchase_subsidy_id
* @property Grid\Column|Collection purchase_subsidy_id
+ * @property Grid\Column|Collection change_from_purchase_subsidy_id
+ * @property Grid\Column|Collection change_amount
* @property Grid\Column|Collection change_sales_value
+ * @property Grid\Column|Collection sell_price
* @property Grid\Column|Collection dealer_price
* @property Grid\Column|Collection quantity
- * @property Grid\Column|Collection sell_price
* @property Grid\Column|Collection before_lvl
* @property Grid\Column|Collection change_lvl
* @property Grid\Column|Collection revoke_id
- * @property Grid\Column|Collection account_amount
* @property Grid\Column|Collection rate
* @property Grid\Column|Collection service_amount
+ * @property Grid\Column|Collection account_amount
* @property Grid\Column|Collection withdrawable
- * @property Grid\Column|Collection bonds
* @property Grid\Column|Collection contracted_lvl_at
+ * @property Grid\Column|Collection bonds
* @property Grid\Column|Collection self_sales_value
* @property Grid\Column|Collection team_sales_value
- * @property Grid\Column|Collection failed_reason
- * @property Grid\Column|Collection jobable_id
* @property Grid\Column|Collection jobable_type
- * @property Grid\Column|Collection change_revenue
+ * @property Grid\Column|Collection jobable_id
+ * @property Grid\Column|Collection failed_reason
* @property Grid\Column|Collection pre_income_id
* @property Grid\Column|Collection pre_income_job_id
+ * @property Grid\Column|Collection change_revenue
* @property Grid\Column|Collection agent_level
- * @property Grid\Column|Collection completed_at
- * @property Grid\Column|Collection rule
* @property Grid\Column|Collection total_sales_value
+ * @property Grid\Column|Collection rule
+ * @property Grid\Column|Collection completed_at
+ * @property Grid\Column|Collection uuid
* @property Grid\Column|Collection connection
+ * @property Grid\Column|Collection queue
+ * @property Grid\Column|Collection payload
* @property Grid\Column|Collection exception
* @property Grid\Column|Collection failed_at
- * @property Grid\Column|Collection payload
- * @property Grid\Column|Collection queue
- * @property Grid\Column|Collection uuid
* @property Grid\Column|Collection job_id
- * @property Grid\Column|Collection fails
* @property Grid\Column|Collection file
* @property Grid\Column|Collection success
+ * @property Grid\Column|Collection fails
* @property Grid\Column|Collection code
* @property Grid\Column|Collection info
* @property Grid\Column|Collection ext
* @property Grid\Column|Collection is_push
* @property Grid\Column|Collection message_id
* @property Grid\Column|Collection order_package_id
- * @property Grid\Column|Collection checked_at
- * @property Grid\Column|Collection is_failed
- * @property Grid\Column|Collection last_news
- * @property Grid\Column|Collection shipping_code
* @property Grid\Column|Collection shipping_company
+ * @property Grid\Column|Collection shipping_code
* @property Grid\Column|Collection shipping_number
- * @property Grid\Column|Collection after_expire_at
- * @property Grid\Column|Collection after_sale_state
- * @property Grid\Column|Collection coupon_discount_amount
- * @property Grid\Column|Collection gift_for_sku_id
- * @property Grid\Column|Collection reduced_amount
- * @property Grid\Column|Collection remain_quantity
- * @property Grid\Column|Collection specs
+ * @property Grid\Column|Collection is_failed
+ * @property Grid\Column|Collection checked_at
+ * @property Grid\Column|Collection last_news
* @property Grid\Column|Collection spu_id
- * @property Grid\Column|Collection vip_discount_amount
- * @property Grid\Column|Collection vip_price
+ * @property Grid\Column|Collection specs
* @property Grid\Column|Collection weight
+ * @property Grid\Column|Collection vip_price
+ * @property Grid\Column|Collection coupon_discount_amount
+ * @property Grid\Column|Collection vip_discount_amount
+ * @property Grid\Column|Collection reduced_amount
+ * @property Grid\Column|Collection after_sale_state
+ * @property Grid\Column|Collection after_expire_at
+ * @property Grid\Column|Collection remain_quantity
+ * @property Grid\Column|Collection gift_for_sku_id
* @property Grid\Column|Collection max
- * @property Grid\Column|Collection auto_complete_at
- * @property Grid\Column|Collection is_change
- * @property Grid\Column|Collection is_settlable
- * @property Grid\Column|Collection note
- * @property Grid\Column|Collection products_total_amount
* @property Grid\Column|Collection shipping_fee
- * @property Grid\Column|Collection shipping_state
+ * @property Grid\Column|Collection products_total_amount
+ * @property Grid\Column|Collection note
* @property Grid\Column|Collection user_coupon_id
- * @property Grid\Column|Collection payable_id
+ * @property Grid\Column|Collection shipping_state
+ * @property Grid\Column|Collection is_change
+ * @property Grid\Column|Collection auto_complete_at
+ * @property Grid\Column|Collection is_settlable
* @property Grid\Column|Collection payable_type
+ * @property Grid\Column|Collection payable_id
+ * @property Grid\Column|Collection tokenable_type
+ * @property Grid\Column|Collection tokenable_id
+ * @property Grid\Column|Collection token
* @property Grid\Column|Collection abilities
* @property Grid\Column|Collection last_used_at
- * @property Grid\Column|Collection token
- * @property Grid\Column|Collection tokenable_id
- * @property Grid\Column|Collection tokenable_type
* @property Grid\Column|Collection old_points
* @property Grid\Column|Collection gift_sku_id
* @property Grid\Column|Collection remaining
* @property Grid\Column|Collection attrs
* @property Grid\Column|Collection applicant_id
* @property Grid\Column|Collection reviewer_id
- * @property Grid\Column|Collection buynote_id
- * @property Grid\Column|Collection cost_price
* @property Grid\Column|Collection market_price
+ * @property Grid\Column|Collection cost_price
* @property Grid\Column|Collection media
- * @property Grid\Column|Collection release_at
* @property Grid\Column|Collection sales
- * @property Grid\Column|Collection shipping_template_id
+ * @property Grid\Column|Collection release_at
* @property Grid\Column|Collection verify_state
+ * @property Grid\Column|Collection buynote_id
+ * @property Grid\Column|Collection shipping_template_id
* @property Grid\Column|Collection feature_id
* @property Grid\Column|Collection items
* @property Grid\Column|Collection view_date
@@ -262,180 +262,179 @@ namespace Dcat\Admin {
* @property Grid\Column|Collection message_type
* @property Grid\Column|Collection change_quota
* @property Grid\Column|Collection order_user_id
- * @property Grid\Column|Collection size
* @property Grid\Column|Collection x
* @property Grid\Column|Collection y
- * @property Grid\Column|Collection address
+ * @property Grid\Column|Collection size
+ * @property Grid\Column|Collection zone_id
* @property Grid\Column|Collection consignee
- * @property Grid\Column|Collection is_default
* @property Grid\Column|Collection telephone
* @property Grid\Column|Collection zone
- * @property Grid\Column|Collection zone_id
+ * @property Grid\Column|Collection address
+ * @property Grid\Column|Collection is_default
* @property Grid\Column|Collection rule_id
* @property Grid\Column|Collection template_id
* @property Grid\Column|Collection zones
- * @property Grid\Column|Collection expires_at
* @property Grid\Column|Collection phone
- * @property Grid\Column|Collection socialite_id
+ * @property Grid\Column|Collection expires_at
* @property Grid\Column|Collection socialite_type
+ * @property Grid\Column|Collection socialite_id
* @property Grid\Column|Collection tag_id
* @property Grid\Column|Collection taggable_id
* @property Grid\Column|Collection taggable_type
- * @property Grid\Column|Collection bank_description
- * @property Grid\Column|Collection bank_name
+ * @property Grid\Column|Collection real_name
* @property Grid\Column|Collection bank_number
+ * @property Grid\Column|Collection bank_name
+ * @property Grid\Column|Collection bank_description
* @property Grid\Column|Collection is_edited
* @property Grid\Column|Collection old_real_name
- * @property Grid\Column|Collection real_name
- * @property Grid\Column|Collection m_cid
* @property Grid\Column|Collection u_cid
- * @property Grid\Column|Collection coupon_amount
+ * @property Grid\Column|Collection m_cid
* @property Grid\Column|Collection coupon_name
- * @property Grid\Column|Collection coupon_threshold
* @property Grid\Column|Collection coupon_type
+ * @property Grid\Column|Collection coupon_amount
+ * @property Grid\Column|Collection coupon_threshold
+ * @property Grid\Column|Collection inviter_id
+ * @property Grid\Column|Collection nickname
+ * @property Grid\Column|Collection gender
* @property Grid\Column|Collection birthday
* @property Grid\Column|Collection bonusable
* @property Grid\Column|Collection depth
- * @property Grid\Column|Collection gender
- * @property Grid\Column|Collection group_sales_value
- * @property Grid\Column|Collection growth_value
- * @property Grid\Column|Collection inviter_id
- * @property Grid\Column|Collection nickname
- * @property Grid\Column|Collection pre_growth_value
- * @property Grid\Column|Collection quota_v1
* @property Grid\Column|Collection quota_v2
+ * @property Grid\Column|Collection quota_v1
+ * @property Grid\Column|Collection growth_value
+ * @property Grid\Column|Collection group_sales_value
+ * @property Grid\Column|Collection pre_growth_value
* @property Grid\Column|Collection real_inviter_id
* @property Grid\Column|Collection vip_id
+ * @property Grid\Column|Collection phone_verified_at
* @property Grid\Column|Collection email
* @property Grid\Column|Collection email_verified_at
- * @property Grid\Column|Collection last_login_at
* @property Grid\Column|Collection last_login_ip
- * @property Grid\Column|Collection old_password
- * @property Grid\Column|Collection phone_verified_at
+ * @property Grid\Column|Collection last_login_at
* @property Grid\Column|Collection register_ip
* @property Grid\Column|Collection status_remark
+ * @property Grid\Column|Collection old_password
*
- * @method Grid\Column|Collection width(string $label = null)
- * @method Grid\Column|Collection content(string $label = null)
- * @method Grid\Column|Collection coupons_rule(string $label = null)
- * @method Grid\Column|Collection cover(string $label = null)
- * @method Grid\Column|Collection created_at(string $label = null)
- * @method Grid\Column|Collection ended_at(string $label = null)
- * @method Grid\Column|Collection gifts_rule(string $label = null)
* @method Grid\Column|Collection id(string $label = null)
+ * @method Grid\Column|Collection cover(string $label = null)
+ * @method Grid\Column|Collection content(string $label = null)
* @method Grid\Column|Collection is_use(string $label = null)
* @method Grid\Column|Collection started_at(string $label = null)
+ * @method Grid\Column|Collection ended_at(string $label = null)
+ * @method Grid\Column|Collection coupons_rule(string $label = null)
+ * @method Grid\Column|Collection gifts_rule(string $label = null)
+ * @method Grid\Column|Collection created_at(string $label = null)
* @method Grid\Column|Collection updated_at(string $label = null)
* @method Grid\Column|Collection activity_id(string $label = null)
* @method Grid\Column|Collection coupon_id(string $label = null)
* @method Grid\Column|Collection qty(string $label = null)
* @method Grid\Column|Collection sku_id(string $label = null)
* @method Grid\Column|Collection part_id(string $label = null)
- * @method Grid\Column|Collection dimensions(string $label = null)
- * @method Grid\Column|Collection is_show(string $label = null)
* @method Grid\Column|Collection key(string $label = null)
* @method Grid\Column|Collection name(string $label = null)
- * @method Grid\Column|Collection detail(string $label = null)
+ * @method Grid\Column|Collection dimensions(string $label = null)
+ * @method Grid\Column|Collection is_show(string $label = null)
* @method Grid\Column|Collection type(string $label = null)
* @method Grid\Column|Collection version(string $label = null)
+ * @method Grid\Column|Collection detail(string $label = null)
* @method Grid\Column|Collection is_enabled(string $label = null)
- * @method Grid\Column|Collection extension(string $label = null)
- * @method Grid\Column|Collection icon(string $label = null)
- * @method Grid\Column|Collection order(string $label = null)
* @method Grid\Column|Collection parent_id(string $label = null)
+ * @method Grid\Column|Collection order(string $label = null)
+ * @method Grid\Column|Collection icon(string $label = null)
* @method Grid\Column|Collection uri(string $label = null)
- * @method Grid\Column|Collection menu_id(string $label = null)
+ * @method Grid\Column|Collection extension(string $label = null)
* @method Grid\Column|Collection permission_id(string $label = null)
+ * @method Grid\Column|Collection menu_id(string $label = null)
+ * @method Grid\Column|Collection slug(string $label = null)
* @method Grid\Column|Collection http_method(string $label = null)
* @method Grid\Column|Collection http_path(string $label = null)
- * @method Grid\Column|Collection slug(string $label = null)
* @method Grid\Column|Collection role_id(string $label = null)
* @method Grid\Column|Collection user_id(string $label = null)
* @method Grid\Column|Collection value(string $label = null)
- * @method Grid\Column|Collection avatar(string $label = null)
- * @method Grid\Column|Collection password(string $label = null)
- * @method Grid\Column|Collection remember_token(string $label = null)
* @method Grid\Column|Collection username(string $label = null)
+ * @method Grid\Column|Collection password(string $label = null)
+ * @method Grid\Column|Collection avatar(string $label = null)
+ * @method Grid\Column|Collection remember_token(string $label = null)
* @method Grid\Column|Collection address_id(string $label = null)
* @method Grid\Column|Collection image(string $label = null)
- * @method Grid\Column|Collection jump_link(string $label = null)
- * @method Grid\Column|Collection jump_type(string $label = null)
- * @method Grid\Column|Collection remarks(string $label = null)
* @method Grid\Column|Collection sort(string $label = null)
+ * @method Grid\Column|Collection jump_type(string $label = null)
+ * @method Grid\Column|Collection jump_link(string $label = null)
+ * @method Grid\Column|Collection remarks(string $label = null)
* @method Grid\Column|Collection after_sale_id(string $label = null)
* @method Grid\Column|Collection desc(string $label = null)
* @method Grid\Column|Collection images(string $label = null)
- * @method Grid\Column|Collection amount(string $label = null)
- * @method Grid\Column|Collection num(string $label = null)
* @method Grid\Column|Collection order_id(string $label = null)
- * @method Grid\Column|Collection order_product_id(string $label = null)
- * @method Grid\Column|Collection sales_value(string $label = null)
* @method Grid\Column|Collection sn(string $label = null)
+ * @method Grid\Column|Collection order_product_id(string $label = null)
+ * @method Grid\Column|Collection num(string $label = null)
+ * @method Grid\Column|Collection amount(string $label = null)
* @method Grid\Column|Collection state(string $label = null)
* @method Grid\Column|Collection tracking_number(string $label = null)
+ * @method Grid\Column|Collection sales_value(string $label = null)
* @method Grid\Column|Collection before_agent_level(string $label = null)
* @method Grid\Column|Collection change_agent_level(string $label = null)
* @method Grid\Column|Collection remark(string $label = null)
- * @method Grid\Column|Collection apk_link(string $label = null)
- * @method Grid\Column|Collection cate(string $label = null)
- * @method Grid\Column|Collection context(string $label = null)
- * @method Grid\Column|Collection is_force(string $label = null)
* @method Grid\Column|Collection v(string $label = null)
+ * @method Grid\Column|Collection cate(string $label = null)
+ * @method Grid\Column|Collection is_force(string $label = null)
+ * @method Grid\Column|Collection context(string $label = null)
+ * @method Grid\Column|Collection apk_link(string $label = null)
* @method Grid\Column|Collection wgt_link(string $label = null)
+ * @method Grid\Column|Collection is_recommend(string $label = null)
* @method Grid\Column|Collection _lft(string $label = null)
* @method Grid\Column|Collection _rgt(string $label = null)
- * @method Grid\Column|Collection is_recommend(string $label = null)
* @method Grid\Column|Collection article_id(string $label = null)
- * @method Grid\Column|Collection author_name(string $label = null)
* @method Grid\Column|Collection category_id(string $label = null)
- * @method Grid\Column|Collection likes(string $label = null)
- * @method Grid\Column|Collection media_content(string $label = null)
- * @method Grid\Column|Collection media_type(string $label = null)
- * @method Grid\Column|Collection points(string $label = null)
+ * @method Grid\Column|Collection author_name(string $label = null)
* @method Grid\Column|Collection subtitle(string $label = null)
+ * @method Grid\Column|Collection points(string $label = null)
+ * @method Grid\Column|Collection likes(string $label = null)
+ * @method Grid\Column|Collection media_type(string $label = null)
+ * @method Grid\Column|Collection media_content(string $label = null)
+ * @method Grid\Column|Collection loggable_type(string $label = null)
+ * @method Grid\Column|Collection loggable_id(string $label = null)
* @method Grid\Column|Collection action(string $label = null)
* @method Grid\Column|Collection before_balance(string $label = null)
* @method Grid\Column|Collection change_balance(string $label = null)
- * @method Grid\Column|Collection loggable_id(string $label = null)
- * @method Grid\Column|Collection loggable_type(string $label = null)
* @method Grid\Column|Collection balance(string $label = null)
- * @method Grid\Column|Collection is_frozen(string $label = null)
* @method Grid\Column|Collection total_expenses(string $label = null)
* @method Grid\Column|Collection total_revenue(string $label = null)
* @method Grid\Column|Collection transferable(string $label = null)
+ * @method Grid\Column|Collection is_frozen(string $label = null)
* @method Grid\Column|Collection continue_click_times(string $label = null)
* @method Grid\Column|Collection last_click_at(string $label = null)
- * @method Grid\Column|Collection is_enable(string $label = null)
* @method Grid\Column|Collection ranges(string $label = null)
+ * @method Grid\Column|Collection is_enable(string $label = null)
* @method Grid\Column|Collection administrator_id(string $label = null)
* @method Grid\Column|Collection status(string $label = null)
* @method Grid\Column|Collection task_id(string $label = null)
+ * @method Grid\Column|Collection threshold(string $label = null)
* @method Grid\Column|Collection limit(string $label = null)
* @method Grid\Column|Collection sent(string $label = null)
* @method Grid\Column|Collection stock(string $label = null)
- * @method Grid\Column|Collection threshold(string $label = null)
* @method Grid\Column|Collection use_day(string $label = null)
- * @method Grid\Column|Collection use_end_at(string $label = null)
* @method Grid\Column|Collection use_start_at(string $label = null)
+ * @method Grid\Column|Collection use_end_at(string $label = null)
* @method Grid\Column|Collection lvl(string $label = null)
- * @method Grid\Column|Collection order_completed_at(string $label = null)
* @method Grid\Column|Collection total_amount(string $label = null)
- * @method Grid\Column|Collection earningable_id(string $label = null)
+ * @method Grid\Column|Collection order_completed_at(string $label = null)
* @method Grid\Column|Collection earningable_type(string $label = null)
+ * @method Grid\Column|Collection earningable_id(string $label = null)
+ * @method Grid\Column|Collection total_earnings(string $label = null)
* @method Grid\Column|Collection fee(string $label = null)
* @method Grid\Column|Collection fee_rate(string $label = null)
- * @method Grid\Column|Collection pay_at(string $label = null)
- * @method Grid\Column|Collection pay_image(string $label = null)
- * @method Grid\Column|Collection pay_info(string $label = null)
- * @method Grid\Column|Collection pay_way(string $label = null)
* @method Grid\Column|Collection payer_id(string $label = null)
+ * @method Grid\Column|Collection pay_info(string $label = null)
+ * @method Grid\Column|Collection pay_at(string $label = null)
* @method Grid\Column|Collection settle_at(string $label = null)
- * @method Grid\Column|Collection total_earnings(string $label = null)
- * @method Grid\Column|Collection end_at(string $label = null)
+ * @method Grid\Column|Collection pay_image(string $label = null)
+ * @method Grid\Column|Collection pay_way(string $label = null)
* @method Grid\Column|Collection is_manager(string $label = null)
- * @method Grid\Column|Collection is_settle(string $label = null)
* @method Grid\Column|Collection real_amount(string $label = null)
* @method Grid\Column|Collection start_at(string $label = null)
+ * @method Grid\Column|Collection end_at(string $label = null)
+ * @method Grid\Column|Collection is_settle(string $label = null)
* @method Grid\Column|Collection product_id(string $label = null)
* @method Grid\Column|Collection sales_volume(string $label = null)
* @method Grid\Column|Collection last_consignor_id(string $label = null)
@@ -443,122 +442,122 @@ namespace Dcat\Admin {
* @method Grid\Column|Collection price(string $label = null)
* @method Grid\Column|Collection sale_price(string $label = null)
* @method Grid\Column|Collection reason(string $label = null)
- * @method Grid\Column|Collection allocated_at(string $label = null)
- * @method Grid\Column|Collection consignee_address(string $label = null)
+ * @method Grid\Column|Collection consignor_id(string $label = null)
+ * @method Grid\Column|Collection settle_state(string $label = null)
* @method Grid\Column|Collection consignee_name(string $label = null)
* @method Grid\Column|Collection consignee_telephone(string $label = null)
* @method Grid\Column|Collection consignee_zone(string $label = null)
- * @method Grid\Column|Collection consignor_id(string $label = null)
- * @method Grid\Column|Collection out_trade_no(string $label = null)
- * @method Grid\Column|Collection paied_time(string $label = null)
- * @method Grid\Column|Collection pay_sn(string $label = null)
+ * @method Grid\Column|Collection consignee_address(string $label = null)
* @method Grid\Column|Collection pay_time(string $label = null)
- * @method Grid\Column|Collection settle_state(string $label = null)
+ * @method Grid\Column|Collection paied_time(string $label = null)
* @method Grid\Column|Collection shipping_time(string $label = null)
* @method Grid\Column|Collection shippinged_time(string $label = null)
+ * @method Grid\Column|Collection allocated_at(string $label = null)
+ * @method Grid\Column|Collection pay_sn(string $label = null)
+ * @method Grid\Column|Collection out_trade_no(string $label = null)
* @method Grid\Column|Collection min_order_amount(string $label = null)
* @method Grid\Column|Collection price_1st(string $label = null)
* @method Grid\Column|Collection price_2st(string $label = null)
* @method Grid\Column|Collection price_3st(string $label = null)
- * @method Grid\Column|Collection is_sale(string $label = null)
- * @method Grid\Column|Collection manager_subsidy(string $label = null)
* @method Grid\Column|Collection sales_count(string $label = null)
+ * @method Grid\Column|Collection is_sale(string $label = null)
* @method Grid\Column|Collection unit(string $label = null)
+ * @method Grid\Column|Collection manager_subsidy(string $label = null)
* @method Grid\Column|Collection path(string $label = null)
- * @method Grid\Column|Collection subsidy_rate(string $label = null)
* @method Grid\Column|Collection total_purchase_amount(string $label = null)
+ * @method Grid\Column|Collection subsidy_rate(string $label = null)
* @method Grid\Column|Collection total_subsidy(string $label = null)
- * @method Grid\Column|Collection change_amount(string $label = null)
- * @method Grid\Column|Collection change_from_purchase_subsidy_id(string $label = null)
* @method Grid\Column|Collection purchase_subsidy_id(string $label = null)
+ * @method Grid\Column|Collection change_from_purchase_subsidy_id(string $label = null)
+ * @method Grid\Column|Collection change_amount(string $label = null)
* @method Grid\Column|Collection change_sales_value(string $label = null)
+ * @method Grid\Column|Collection sell_price(string $label = null)
* @method Grid\Column|Collection dealer_price(string $label = null)
* @method Grid\Column|Collection quantity(string $label = null)
- * @method Grid\Column|Collection sell_price(string $label = null)
* @method Grid\Column|Collection before_lvl(string $label = null)
* @method Grid\Column|Collection change_lvl(string $label = null)
* @method Grid\Column|Collection revoke_id(string $label = null)
- * @method Grid\Column|Collection account_amount(string $label = null)
* @method Grid\Column|Collection rate(string $label = null)
* @method Grid\Column|Collection service_amount(string $label = null)
+ * @method Grid\Column|Collection account_amount(string $label = null)
* @method Grid\Column|Collection withdrawable(string $label = null)
- * @method Grid\Column|Collection bonds(string $label = null)
* @method Grid\Column|Collection contracted_lvl_at(string $label = null)
+ * @method Grid\Column|Collection bonds(string $label = null)
* @method Grid\Column|Collection self_sales_value(string $label = null)
* @method Grid\Column|Collection team_sales_value(string $label = null)
- * @method Grid\Column|Collection failed_reason(string $label = null)
- * @method Grid\Column|Collection jobable_id(string $label = null)
* @method Grid\Column|Collection jobable_type(string $label = null)
- * @method Grid\Column|Collection change_revenue(string $label = null)
+ * @method Grid\Column|Collection jobable_id(string $label = null)
+ * @method Grid\Column|Collection failed_reason(string $label = null)
* @method Grid\Column|Collection pre_income_id(string $label = null)
* @method Grid\Column|Collection pre_income_job_id(string $label = null)
+ * @method Grid\Column|Collection change_revenue(string $label = null)
* @method Grid\Column|Collection agent_level(string $label = null)
- * @method Grid\Column|Collection completed_at(string $label = null)
- * @method Grid\Column|Collection rule(string $label = null)
* @method Grid\Column|Collection total_sales_value(string $label = null)
+ * @method Grid\Column|Collection rule(string $label = null)
+ * @method Grid\Column|Collection completed_at(string $label = null)
+ * @method Grid\Column|Collection uuid(string $label = null)
* @method Grid\Column|Collection connection(string $label = null)
+ * @method Grid\Column|Collection queue(string $label = null)
+ * @method Grid\Column|Collection payload(string $label = null)
* @method Grid\Column|Collection exception(string $label = null)
* @method Grid\Column|Collection failed_at(string $label = null)
- * @method Grid\Column|Collection payload(string $label = null)
- * @method Grid\Column|Collection queue(string $label = null)
- * @method Grid\Column|Collection uuid(string $label = null)
* @method Grid\Column|Collection job_id(string $label = null)
- * @method Grid\Column|Collection fails(string $label = null)
* @method Grid\Column|Collection file(string $label = null)
* @method Grid\Column|Collection success(string $label = null)
+ * @method Grid\Column|Collection fails(string $label = null)
* @method Grid\Column|Collection code(string $label = null)
* @method Grid\Column|Collection info(string $label = null)
* @method Grid\Column|Collection ext(string $label = null)
* @method Grid\Column|Collection is_push(string $label = null)
* @method Grid\Column|Collection message_id(string $label = null)
* @method Grid\Column|Collection order_package_id(string $label = null)
- * @method Grid\Column|Collection checked_at(string $label = null)
- * @method Grid\Column|Collection is_failed(string $label = null)
- * @method Grid\Column|Collection last_news(string $label = null)
- * @method Grid\Column|Collection shipping_code(string $label = null)
* @method Grid\Column|Collection shipping_company(string $label = null)
+ * @method Grid\Column|Collection shipping_code(string $label = null)
* @method Grid\Column|Collection shipping_number(string $label = null)
- * @method Grid\Column|Collection after_expire_at(string $label = null)
- * @method Grid\Column|Collection after_sale_state(string $label = null)
- * @method Grid\Column|Collection coupon_discount_amount(string $label = null)
- * @method Grid\Column|Collection gift_for_sku_id(string $label = null)
- * @method Grid\Column|Collection reduced_amount(string $label = null)
- * @method Grid\Column|Collection remain_quantity(string $label = null)
- * @method Grid\Column|Collection specs(string $label = null)
+ * @method Grid\Column|Collection is_failed(string $label = null)
+ * @method Grid\Column|Collection checked_at(string $label = null)
+ * @method Grid\Column|Collection last_news(string $label = null)
* @method Grid\Column|Collection spu_id(string $label = null)
- * @method Grid\Column|Collection vip_discount_amount(string $label = null)
- * @method Grid\Column|Collection vip_price(string $label = null)
+ * @method Grid\Column|Collection specs(string $label = null)
* @method Grid\Column|Collection weight(string $label = null)
+ * @method Grid\Column|Collection vip_price(string $label = null)
+ * @method Grid\Column|Collection coupon_discount_amount(string $label = null)
+ * @method Grid\Column|Collection vip_discount_amount(string $label = null)
+ * @method Grid\Column|Collection reduced_amount(string $label = null)
+ * @method Grid\Column|Collection after_sale_state(string $label = null)
+ * @method Grid\Column|Collection after_expire_at(string $label = null)
+ * @method Grid\Column|Collection remain_quantity(string $label = null)
+ * @method Grid\Column|Collection gift_for_sku_id(string $label = null)
* @method Grid\Column|Collection max(string $label = null)
- * @method Grid\Column|Collection auto_complete_at(string $label = null)
- * @method Grid\Column|Collection is_change(string $label = null)
- * @method Grid\Column|Collection is_settlable(string $label = null)
- * @method Grid\Column|Collection note(string $label = null)
- * @method Grid\Column|Collection products_total_amount(string $label = null)
* @method Grid\Column|Collection shipping_fee(string $label = null)
- * @method Grid\Column|Collection shipping_state(string $label = null)
+ * @method Grid\Column|Collection products_total_amount(string $label = null)
+ * @method Grid\Column|Collection note(string $label = null)
* @method Grid\Column|Collection user_coupon_id(string $label = null)
- * @method Grid\Column|Collection payable_id(string $label = null)
+ * @method Grid\Column|Collection shipping_state(string $label = null)
+ * @method Grid\Column|Collection is_change(string $label = null)
+ * @method Grid\Column|Collection auto_complete_at(string $label = null)
+ * @method Grid\Column|Collection is_settlable(string $label = null)
* @method Grid\Column|Collection payable_type(string $label = null)
+ * @method Grid\Column|Collection payable_id(string $label = null)
+ * @method Grid\Column|Collection tokenable_type(string $label = null)
+ * @method Grid\Column|Collection tokenable_id(string $label = null)
+ * @method Grid\Column|Collection token(string $label = null)
* @method Grid\Column|Collection abilities(string $label = null)
* @method Grid\Column|Collection last_used_at(string $label = null)
- * @method Grid\Column|Collection token(string $label = null)
- * @method Grid\Column|Collection tokenable_id(string $label = null)
- * @method Grid\Column|Collection tokenable_type(string $label = null)
* @method Grid\Column|Collection old_points(string $label = null)
* @method Grid\Column|Collection gift_sku_id(string $label = null)
* @method Grid\Column|Collection remaining(string $label = null)
* @method Grid\Column|Collection attrs(string $label = null)
* @method Grid\Column|Collection applicant_id(string $label = null)
* @method Grid\Column|Collection reviewer_id(string $label = null)
- * @method Grid\Column|Collection buynote_id(string $label = null)
- * @method Grid\Column|Collection cost_price(string $label = null)
* @method Grid\Column|Collection market_price(string $label = null)
+ * @method Grid\Column|Collection cost_price(string $label = null)
* @method Grid\Column|Collection media(string $label = null)
- * @method Grid\Column|Collection release_at(string $label = null)
* @method Grid\Column|Collection sales(string $label = null)
- * @method Grid\Column|Collection shipping_template_id(string $label = null)
+ * @method Grid\Column|Collection release_at(string $label = null)
* @method Grid\Column|Collection verify_state(string $label = null)
+ * @method Grid\Column|Collection buynote_id(string $label = null)
+ * @method Grid\Column|Collection shipping_template_id(string $label = null)
* @method Grid\Column|Collection feature_id(string $label = null)
* @method Grid\Column|Collection items(string $label = null)
* @method Grid\Column|Collection view_date(string $label = null)
@@ -566,185 +565,188 @@ namespace Dcat\Admin {
* @method Grid\Column|Collection message_type(string $label = null)
* @method Grid\Column|Collection change_quota(string $label = null)
* @method Grid\Column|Collection order_user_id(string $label = null)
- * @method Grid\Column|Collection size(string $label = null)
* @method Grid\Column|Collection x(string $label = null)
* @method Grid\Column|Collection y(string $label = null)
- * @method Grid\Column|Collection address(string $label = null)
+ * @method Grid\Column|Collection size(string $label = null)
+ * @method Grid\Column|Collection zone_id(string $label = null)
* @method Grid\Column|Collection consignee(string $label = null)
- * @method Grid\Column|Collection is_default(string $label = null)
* @method Grid\Column|Collection telephone(string $label = null)
* @method Grid\Column|Collection zone(string $label = null)
- * @method Grid\Column|Collection zone_id(string $label = null)
+ * @method Grid\Column|Collection address(string $label = null)
+ * @method Grid\Column|Collection is_default(string $label = null)
* @method Grid\Column|Collection rule_id(string $label = null)
* @method Grid\Column|Collection template_id(string $label = null)
* @method Grid\Column|Collection zones(string $label = null)
- * @method Grid\Column|Collection expires_at(string $label = null)
* @method Grid\Column|Collection phone(string $label = null)
- * @method Grid\Column|Collection socialite_id(string $label = null)
+ * @method Grid\Column|Collection expires_at(string $label = null)
* @method Grid\Column|Collection socialite_type(string $label = null)
+ * @method Grid\Column|Collection socialite_id(string $label = null)
* @method Grid\Column|Collection tag_id(string $label = null)
* @method Grid\Column|Collection taggable_id(string $label = null)
* @method Grid\Column|Collection taggable_type(string $label = null)
- * @method Grid\Column|Collection bank_description(string $label = null)
- * @method Grid\Column|Collection bank_name(string $label = null)
+ * @method Grid\Column|Collection real_name(string $label = null)
* @method Grid\Column|Collection bank_number(string $label = null)
+ * @method Grid\Column|Collection bank_name(string $label = null)
+ * @method Grid\Column|Collection bank_description(string $label = null)
* @method Grid\Column|Collection is_edited(string $label = null)
* @method Grid\Column|Collection old_real_name(string $label = null)
- * @method Grid\Column|Collection real_name(string $label = null)
- * @method Grid\Column|Collection m_cid(string $label = null)
* @method Grid\Column|Collection u_cid(string $label = null)
- * @method Grid\Column|Collection coupon_amount(string $label = null)
+ * @method Grid\Column|Collection m_cid(string $label = null)
* @method Grid\Column|Collection coupon_name(string $label = null)
- * @method Grid\Column|Collection coupon_threshold(string $label = null)
* @method Grid\Column|Collection coupon_type(string $label = null)
+ * @method Grid\Column|Collection coupon_amount(string $label = null)
+ * @method Grid\Column|Collection coupon_threshold(string $label = null)
+ * @method Grid\Column|Collection inviter_id(string $label = null)
+ * @method Grid\Column|Collection nickname(string $label = null)
+ * @method Grid\Column|Collection gender(string $label = null)
* @method Grid\Column|Collection birthday(string $label = null)
* @method Grid\Column|Collection bonusable(string $label = null)
* @method Grid\Column|Collection depth(string $label = null)
- * @method Grid\Column|Collection gender(string $label = null)
- * @method Grid\Column|Collection group_sales_value(string $label = null)
- * @method Grid\Column|Collection growth_value(string $label = null)
- * @method Grid\Column|Collection inviter_id(string $label = null)
- * @method Grid\Column|Collection nickname(string $label = null)
- * @method Grid\Column|Collection pre_growth_value(string $label = null)
- * @method Grid\Column|Collection quota_v1(string $label = null)
* @method Grid\Column|Collection quota_v2(string $label = null)
+ * @method Grid\Column|Collection quota_v1(string $label = null)
+ * @method Grid\Column|Collection growth_value(string $label = null)
+ * @method Grid\Column|Collection group_sales_value(string $label = null)
+ * @method Grid\Column|Collection pre_growth_value(string $label = null)
* @method Grid\Column|Collection real_inviter_id(string $label = null)
* @method Grid\Column|Collection vip_id(string $label = null)
+ * @method Grid\Column|Collection phone_verified_at(string $label = null)
* @method Grid\Column|Collection email(string $label = null)
* @method Grid\Column|Collection email_verified_at(string $label = null)
- * @method Grid\Column|Collection last_login_at(string $label = null)
* @method Grid\Column|Collection last_login_ip(string $label = null)
- * @method Grid\Column|Collection old_password(string $label = null)
- * @method Grid\Column|Collection phone_verified_at(string $label = null)
+ * @method Grid\Column|Collection last_login_at(string $label = null)
* @method Grid\Column|Collection register_ip(string $label = null)
* @method Grid\Column|Collection status_remark(string $label = null)
+ * @method Grid\Column|Collection old_password(string $label = null)
*/
- class Grid {}
+ class Grid
+ {
+ }
- class MiniGrid extends Grid {}
+ class MiniGrid extends Grid
+ {
+ }
/**
- * @property Show\Field|Collection width
- * @property Show\Field|Collection content
- * @property Show\Field|Collection coupons_rule
- * @property Show\Field|Collection cover
- * @property Show\Field|Collection created_at
- * @property Show\Field|Collection ended_at
- * @property Show\Field|Collection gifts_rule
* @property Show\Field|Collection id
+ * @property Show\Field|Collection cover
+ * @property Show\Field|Collection content
* @property Show\Field|Collection is_use
* @property Show\Field|Collection started_at
+ * @property Show\Field|Collection ended_at
+ * @property Show\Field|Collection coupons_rule
+ * @property Show\Field|Collection gifts_rule
+ * @property Show\Field|Collection created_at
* @property Show\Field|Collection updated_at
* @property Show\Field|Collection activity_id
* @property Show\Field|Collection coupon_id
* @property Show\Field|Collection qty
* @property Show\Field|Collection sku_id
* @property Show\Field|Collection part_id
- * @property Show\Field|Collection dimensions
- * @property Show\Field|Collection is_show
* @property Show\Field|Collection key
* @property Show\Field|Collection name
- * @property Show\Field|Collection detail
+ * @property Show\Field|Collection dimensions
+ * @property Show\Field|Collection is_show
* @property Show\Field|Collection type
* @property Show\Field|Collection version
+ * @property Show\Field|Collection detail
* @property Show\Field|Collection is_enabled
- * @property Show\Field|Collection extension
- * @property Show\Field|Collection icon
- * @property Show\Field|Collection order
* @property Show\Field|Collection parent_id
+ * @property Show\Field|Collection order
+ * @property Show\Field|Collection icon
* @property Show\Field|Collection uri
- * @property Show\Field|Collection menu_id
+ * @property Show\Field|Collection extension
* @property Show\Field|Collection permission_id
+ * @property Show\Field|Collection menu_id
+ * @property Show\Field|Collection slug
* @property Show\Field|Collection http_method
* @property Show\Field|Collection http_path
- * @property Show\Field|Collection slug
* @property Show\Field|Collection role_id
* @property Show\Field|Collection user_id
* @property Show\Field|Collection value
- * @property Show\Field|Collection avatar
- * @property Show\Field|Collection password
- * @property Show\Field|Collection remember_token
* @property Show\Field|Collection username
+ * @property Show\Field|Collection password
+ * @property Show\Field|Collection avatar
+ * @property Show\Field|Collection remember_token
* @property Show\Field|Collection address_id
* @property Show\Field|Collection image
- * @property Show\Field|Collection jump_link
- * @property Show\Field|Collection jump_type
- * @property Show\Field|Collection remarks
* @property Show\Field|Collection sort
+ * @property Show\Field|Collection jump_type
+ * @property Show\Field|Collection jump_link
+ * @property Show\Field|Collection remarks
* @property Show\Field|Collection after_sale_id
* @property Show\Field|Collection desc
* @property Show\Field|Collection images
- * @property Show\Field|Collection amount
- * @property Show\Field|Collection num
* @property Show\Field|Collection order_id
- * @property Show\Field|Collection order_product_id
- * @property Show\Field|Collection sales_value
* @property Show\Field|Collection sn
+ * @property Show\Field|Collection order_product_id
+ * @property Show\Field|Collection num
+ * @property Show\Field|Collection amount
* @property Show\Field|Collection state
* @property Show\Field|Collection tracking_number
+ * @property Show\Field|Collection sales_value
* @property Show\Field|Collection before_agent_level
* @property Show\Field|Collection change_agent_level
* @property Show\Field|Collection remark
- * @property Show\Field|Collection apk_link
- * @property Show\Field|Collection cate
- * @property Show\Field|Collection context
- * @property Show\Field|Collection is_force
* @property Show\Field|Collection v
+ * @property Show\Field|Collection cate
+ * @property Show\Field|Collection is_force
+ * @property Show\Field|Collection context
+ * @property Show\Field|Collection apk_link
* @property Show\Field|Collection wgt_link
+ * @property Show\Field|Collection is_recommend
* @property Show\Field|Collection _lft
* @property Show\Field|Collection _rgt
- * @property Show\Field|Collection is_recommend
* @property Show\Field|Collection article_id
- * @property Show\Field|Collection author_name
* @property Show\Field|Collection category_id
- * @property Show\Field|Collection likes
- * @property Show\Field|Collection media_content
- * @property Show\Field|Collection media_type
- * @property Show\Field|Collection points
+ * @property Show\Field|Collection author_name
* @property Show\Field|Collection subtitle
+ * @property Show\Field|Collection points
+ * @property Show\Field|Collection likes
+ * @property Show\Field|Collection media_type
+ * @property Show\Field|Collection media_content
+ * @property Show\Field|Collection loggable_type
+ * @property Show\Field|Collection loggable_id
* @property Show\Field|Collection action
* @property Show\Field|Collection before_balance
* @property Show\Field|Collection change_balance
- * @property Show\Field|Collection loggable_id
- * @property Show\Field|Collection loggable_type
* @property Show\Field|Collection balance
- * @property Show\Field|Collection is_frozen
* @property Show\Field|Collection total_expenses
* @property Show\Field|Collection total_revenue
* @property Show\Field|Collection transferable
+ * @property Show\Field|Collection is_frozen
* @property Show\Field|Collection continue_click_times
* @property Show\Field|Collection last_click_at
- * @property Show\Field|Collection is_enable
* @property Show\Field|Collection ranges
+ * @property Show\Field|Collection is_enable
* @property Show\Field|Collection administrator_id
* @property Show\Field|Collection status
* @property Show\Field|Collection task_id
+ * @property Show\Field|Collection threshold
* @property Show\Field|Collection limit
* @property Show\Field|Collection sent
* @property Show\Field|Collection stock
- * @property Show\Field|Collection threshold
* @property Show\Field|Collection use_day
- * @property Show\Field|Collection use_end_at
* @property Show\Field|Collection use_start_at
+ * @property Show\Field|Collection use_end_at
* @property Show\Field|Collection lvl
- * @property Show\Field|Collection order_completed_at
* @property Show\Field|Collection total_amount
- * @property Show\Field|Collection earningable_id
+ * @property Show\Field|Collection order_completed_at
* @property Show\Field|Collection earningable_type
+ * @property Show\Field|Collection earningable_id
+ * @property Show\Field|Collection total_earnings
* @property Show\Field|Collection fee
* @property Show\Field|Collection fee_rate
- * @property Show\Field|Collection pay_at
- * @property Show\Field|Collection pay_image
- * @property Show\Field|Collection pay_info
- * @property Show\Field|Collection pay_way
* @property Show\Field|Collection payer_id
+ * @property Show\Field|Collection pay_info
+ * @property Show\Field|Collection pay_at
* @property Show\Field|Collection settle_at
- * @property Show\Field|Collection total_earnings
- * @property Show\Field|Collection end_at
+ * @property Show\Field|Collection pay_image
+ * @property Show\Field|Collection pay_way
* @property Show\Field|Collection is_manager
- * @property Show\Field|Collection is_settle
* @property Show\Field|Collection real_amount
* @property Show\Field|Collection start_at
+ * @property Show\Field|Collection end_at
+ * @property Show\Field|Collection is_settle
* @property Show\Field|Collection product_id
* @property Show\Field|Collection sales_volume
* @property Show\Field|Collection last_consignor_id
@@ -752,122 +754,122 @@ namespace Dcat\Admin {
* @property Show\Field|Collection price
* @property Show\Field|Collection sale_price
* @property Show\Field|Collection reason
- * @property Show\Field|Collection allocated_at
- * @property Show\Field|Collection consignee_address
+ * @property Show\Field|Collection consignor_id
+ * @property Show\Field|Collection settle_state
* @property Show\Field|Collection consignee_name
* @property Show\Field|Collection consignee_telephone
* @property Show\Field|Collection consignee_zone
- * @property Show\Field|Collection consignor_id
- * @property Show\Field|Collection out_trade_no
- * @property Show\Field|Collection paied_time
- * @property Show\Field|Collection pay_sn
+ * @property Show\Field|Collection consignee_address
* @property Show\Field|Collection pay_time
- * @property Show\Field|Collection settle_state
+ * @property Show\Field|Collection paied_time
* @property Show\Field|Collection shipping_time
* @property Show\Field|Collection shippinged_time
+ * @property Show\Field|Collection allocated_at
+ * @property Show\Field|Collection pay_sn
+ * @property Show\Field|Collection out_trade_no
* @property Show\Field|Collection min_order_amount
* @property Show\Field|Collection price_1st
* @property Show\Field|Collection price_2st
* @property Show\Field|Collection price_3st
- * @property Show\Field|Collection is_sale
- * @property Show\Field|Collection manager_subsidy
* @property Show\Field|Collection sales_count
+ * @property Show\Field|Collection is_sale
* @property Show\Field|Collection unit
+ * @property Show\Field|Collection manager_subsidy
* @property Show\Field|Collection path
- * @property Show\Field|Collection subsidy_rate
* @property Show\Field|Collection total_purchase_amount
+ * @property Show\Field|Collection subsidy_rate
* @property Show\Field|Collection total_subsidy
- * @property Show\Field|Collection change_amount
- * @property Show\Field|Collection change_from_purchase_subsidy_id
* @property Show\Field|Collection purchase_subsidy_id
+ * @property Show\Field|Collection change_from_purchase_subsidy_id
+ * @property Show\Field|Collection change_amount
* @property Show\Field|Collection change_sales_value
+ * @property Show\Field|Collection sell_price
* @property Show\Field|Collection dealer_price
* @property Show\Field|Collection quantity
- * @property Show\Field|Collection sell_price
* @property Show\Field|Collection before_lvl
* @property Show\Field|Collection change_lvl
* @property Show\Field|Collection revoke_id
- * @property Show\Field|Collection account_amount
* @property Show\Field|Collection rate
* @property Show\Field|Collection service_amount
+ * @property Show\Field|Collection account_amount
* @property Show\Field|Collection withdrawable
- * @property Show\Field|Collection bonds
* @property Show\Field|Collection contracted_lvl_at
+ * @property Show\Field|Collection bonds
* @property Show\Field|Collection self_sales_value
* @property Show\Field|Collection team_sales_value
- * @property Show\Field|Collection failed_reason
- * @property Show\Field|Collection jobable_id
* @property Show\Field|Collection jobable_type
- * @property Show\Field|Collection change_revenue
+ * @property Show\Field|Collection jobable_id
+ * @property Show\Field|Collection failed_reason
* @property Show\Field|Collection pre_income_id
* @property Show\Field|Collection pre_income_job_id
+ * @property Show\Field|Collection change_revenue
* @property Show\Field|Collection agent_level
- * @property Show\Field|Collection completed_at
- * @property Show\Field|Collection rule
* @property Show\Field|Collection total_sales_value
+ * @property Show\Field|Collection rule
+ * @property Show\Field|Collection completed_at
+ * @property Show\Field|Collection uuid
* @property Show\Field|Collection connection
+ * @property Show\Field|Collection queue
+ * @property Show\Field|Collection payload
* @property Show\Field|Collection exception
* @property Show\Field|Collection failed_at
- * @property Show\Field|Collection payload
- * @property Show\Field|Collection queue
- * @property Show\Field|Collection uuid
* @property Show\Field|Collection job_id
- * @property Show\Field|Collection fails
* @property Show\Field|Collection file
* @property Show\Field|Collection success
+ * @property Show\Field|Collection fails
* @property Show\Field|Collection code
* @property Show\Field|Collection info
* @property Show\Field|Collection ext
* @property Show\Field|Collection is_push
* @property Show\Field|Collection message_id
* @property Show\Field|Collection order_package_id
- * @property Show\Field|Collection checked_at
- * @property Show\Field|Collection is_failed
- * @property Show\Field|Collection last_news
- * @property Show\Field|Collection shipping_code
* @property Show\Field|Collection shipping_company
+ * @property Show\Field|Collection shipping_code
* @property Show\Field|Collection shipping_number
- * @property Show\Field|Collection after_expire_at
- * @property Show\Field|Collection after_sale_state
- * @property Show\Field|Collection coupon_discount_amount
- * @property Show\Field|Collection gift_for_sku_id
- * @property Show\Field|Collection reduced_amount
- * @property Show\Field|Collection remain_quantity
- * @property Show\Field|Collection specs
+ * @property Show\Field|Collection is_failed
+ * @property Show\Field|Collection checked_at
+ * @property Show\Field|Collection last_news
* @property Show\Field|Collection spu_id
- * @property Show\Field|Collection vip_discount_amount
- * @property Show\Field|Collection vip_price
+ * @property Show\Field|Collection specs
* @property Show\Field|Collection weight
+ * @property Show\Field|Collection vip_price
+ * @property Show\Field|Collection coupon_discount_amount
+ * @property Show\Field|Collection vip_discount_amount
+ * @property Show\Field|Collection reduced_amount
+ * @property Show\Field|Collection after_sale_state
+ * @property Show\Field|Collection after_expire_at
+ * @property Show\Field|Collection remain_quantity
+ * @property Show\Field|Collection gift_for_sku_id
* @property Show\Field|Collection max
- * @property Show\Field|Collection auto_complete_at
- * @property Show\Field|Collection is_change
- * @property Show\Field|Collection is_settlable
- * @property Show\Field|Collection note
- * @property Show\Field|Collection products_total_amount
* @property Show\Field|Collection shipping_fee
- * @property Show\Field|Collection shipping_state
+ * @property Show\Field|Collection products_total_amount
+ * @property Show\Field|Collection note
* @property Show\Field|Collection user_coupon_id
- * @property Show\Field|Collection payable_id
+ * @property Show\Field|Collection shipping_state
+ * @property Show\Field|Collection is_change
+ * @property Show\Field|Collection auto_complete_at
+ * @property Show\Field|Collection is_settlable
* @property Show\Field|Collection payable_type
+ * @property Show\Field|Collection payable_id
+ * @property Show\Field|Collection tokenable_type
+ * @property Show\Field|Collection tokenable_id
+ * @property Show\Field|Collection token
* @property Show\Field|Collection abilities
* @property Show\Field|Collection last_used_at
- * @property Show\Field|Collection token
- * @property Show\Field|Collection tokenable_id
- * @property Show\Field|Collection tokenable_type
* @property Show\Field|Collection old_points
* @property Show\Field|Collection gift_sku_id
* @property Show\Field|Collection remaining
* @property Show\Field|Collection attrs
* @property Show\Field|Collection applicant_id
* @property Show\Field|Collection reviewer_id
- * @property Show\Field|Collection buynote_id
- * @property Show\Field|Collection cost_price
* @property Show\Field|Collection market_price
+ * @property Show\Field|Collection cost_price
* @property Show\Field|Collection media
- * @property Show\Field|Collection release_at
* @property Show\Field|Collection sales
- * @property Show\Field|Collection shipping_template_id
+ * @property Show\Field|Collection release_at
* @property Show\Field|Collection verify_state
+ * @property Show\Field|Collection buynote_id
+ * @property Show\Field|Collection shipping_template_id
* @property Show\Field|Collection feature_id
* @property Show\Field|Collection items
* @property Show\Field|Collection view_date
@@ -875,180 +877,179 @@ namespace Dcat\Admin {
* @property Show\Field|Collection message_type
* @property Show\Field|Collection change_quota
* @property Show\Field|Collection order_user_id
- * @property Show\Field|Collection size
* @property Show\Field|Collection x
* @property Show\Field|Collection y
- * @property Show\Field|Collection address
+ * @property Show\Field|Collection size
+ * @property Show\Field|Collection zone_id
* @property Show\Field|Collection consignee
- * @property Show\Field|Collection is_default
* @property Show\Field|Collection telephone
* @property Show\Field|Collection zone
- * @property Show\Field|Collection zone_id
+ * @property Show\Field|Collection address
+ * @property Show\Field|Collection is_default
* @property Show\Field|Collection rule_id
* @property Show\Field|Collection template_id
* @property Show\Field|Collection zones
- * @property Show\Field|Collection expires_at
* @property Show\Field|Collection phone
- * @property Show\Field|Collection socialite_id
+ * @property Show\Field|Collection expires_at
* @property Show\Field|Collection socialite_type
+ * @property Show\Field|Collection socialite_id
* @property Show\Field|Collection tag_id
* @property Show\Field|Collection taggable_id
* @property Show\Field|Collection taggable_type
- * @property Show\Field|Collection bank_description
- * @property Show\Field|Collection bank_name
+ * @property Show\Field|Collection real_name
* @property Show\Field|Collection bank_number
+ * @property Show\Field|Collection bank_name
+ * @property Show\Field|Collection bank_description
* @property Show\Field|Collection is_edited
* @property Show\Field|Collection old_real_name
- * @property Show\Field|Collection real_name
- * @property Show\Field|Collection m_cid
* @property Show\Field|Collection u_cid
- * @property Show\Field|Collection coupon_amount
+ * @property Show\Field|Collection m_cid
* @property Show\Field|Collection coupon_name
- * @property Show\Field|Collection coupon_threshold
* @property Show\Field|Collection coupon_type
+ * @property Show\Field|Collection coupon_amount
+ * @property Show\Field|Collection coupon_threshold
+ * @property Show\Field|Collection inviter_id
+ * @property Show\Field|Collection nickname
+ * @property Show\Field|Collection gender
* @property Show\Field|Collection birthday
* @property Show\Field|Collection bonusable
* @property Show\Field|Collection depth
- * @property Show\Field|Collection gender
- * @property Show\Field|Collection group_sales_value
- * @property Show\Field|Collection growth_value
- * @property Show\Field|Collection inviter_id
- * @property Show\Field|Collection nickname
- * @property Show\Field|Collection pre_growth_value
- * @property Show\Field|Collection quota_v1
* @property Show\Field|Collection quota_v2
+ * @property Show\Field|Collection quota_v1
+ * @property Show\Field|Collection growth_value
+ * @property Show\Field|Collection group_sales_value
+ * @property Show\Field|Collection pre_growth_value
* @property Show\Field|Collection real_inviter_id
* @property Show\Field|Collection vip_id
+ * @property Show\Field|Collection phone_verified_at
* @property Show\Field|Collection email
* @property Show\Field|Collection email_verified_at
- * @property Show\Field|Collection last_login_at
* @property Show\Field|Collection last_login_ip
- * @property Show\Field|Collection old_password
- * @property Show\Field|Collection phone_verified_at
+ * @property Show\Field|Collection last_login_at
* @property Show\Field|Collection register_ip
* @property Show\Field|Collection status_remark
+ * @property Show\Field|Collection old_password
*
- * @method Show\Field|Collection width(string $label = null)
- * @method Show\Field|Collection content(string $label = null)
- * @method Show\Field|Collection coupons_rule(string $label = null)
- * @method Show\Field|Collection cover(string $label = null)
- * @method Show\Field|Collection created_at(string $label = null)
- * @method Show\Field|Collection ended_at(string $label = null)
- * @method Show\Field|Collection gifts_rule(string $label = null)
* @method Show\Field|Collection id(string $label = null)
+ * @method Show\Field|Collection cover(string $label = null)
+ * @method Show\Field|Collection content(string $label = null)
* @method Show\Field|Collection is_use(string $label = null)
* @method Show\Field|Collection started_at(string $label = null)
+ * @method Show\Field|Collection ended_at(string $label = null)
+ * @method Show\Field|Collection coupons_rule(string $label = null)
+ * @method Show\Field|Collection gifts_rule(string $label = null)
+ * @method Show\Field|Collection created_at(string $label = null)
* @method Show\Field|Collection updated_at(string $label = null)
* @method Show\Field|Collection activity_id(string $label = null)
* @method Show\Field|Collection coupon_id(string $label = null)
* @method Show\Field|Collection qty(string $label = null)
* @method Show\Field|Collection sku_id(string $label = null)
* @method Show\Field|Collection part_id(string $label = null)
- * @method Show\Field|Collection dimensions(string $label = null)
- * @method Show\Field|Collection is_show(string $label = null)
* @method Show\Field|Collection key(string $label = null)
* @method Show\Field|Collection name(string $label = null)
- * @method Show\Field|Collection detail(string $label = null)
+ * @method Show\Field|Collection dimensions(string $label = null)
+ * @method Show\Field|Collection is_show(string $label = null)
* @method Show\Field|Collection type(string $label = null)
* @method Show\Field|Collection version(string $label = null)
+ * @method Show\Field|Collection detail(string $label = null)
* @method Show\Field|Collection is_enabled(string $label = null)
- * @method Show\Field|Collection extension(string $label = null)
- * @method Show\Field|Collection icon(string $label = null)
- * @method Show\Field|Collection order(string $label = null)
* @method Show\Field|Collection parent_id(string $label = null)
+ * @method Show\Field|Collection order(string $label = null)
+ * @method Show\Field|Collection icon(string $label = null)
* @method Show\Field|Collection uri(string $label = null)
- * @method Show\Field|Collection menu_id(string $label = null)
+ * @method Show\Field|Collection extension(string $label = null)
* @method Show\Field|Collection permission_id(string $label = null)
+ * @method Show\Field|Collection menu_id(string $label = null)
+ * @method Show\Field|Collection slug(string $label = null)
* @method Show\Field|Collection http_method(string $label = null)
* @method Show\Field|Collection http_path(string $label = null)
- * @method Show\Field|Collection slug(string $label = null)
* @method Show\Field|Collection role_id(string $label = null)
* @method Show\Field|Collection user_id(string $label = null)
* @method Show\Field|Collection value(string $label = null)
- * @method Show\Field|Collection avatar(string $label = null)
- * @method Show\Field|Collection password(string $label = null)
- * @method Show\Field|Collection remember_token(string $label = null)
* @method Show\Field|Collection username(string $label = null)
+ * @method Show\Field|Collection password(string $label = null)
+ * @method Show\Field|Collection avatar(string $label = null)
+ * @method Show\Field|Collection remember_token(string $label = null)
* @method Show\Field|Collection address_id(string $label = null)
* @method Show\Field|Collection image(string $label = null)
- * @method Show\Field|Collection jump_link(string $label = null)
- * @method Show\Field|Collection jump_type(string $label = null)
- * @method Show\Field|Collection remarks(string $label = null)
* @method Show\Field|Collection sort(string $label = null)
+ * @method Show\Field|Collection jump_type(string $label = null)
+ * @method Show\Field|Collection jump_link(string $label = null)
+ * @method Show\Field|Collection remarks(string $label = null)
* @method Show\Field|Collection after_sale_id(string $label = null)
* @method Show\Field|Collection desc(string $label = null)
* @method Show\Field|Collection images(string $label = null)
- * @method Show\Field|Collection amount(string $label = null)
- * @method Show\Field|Collection num(string $label = null)
* @method Show\Field|Collection order_id(string $label = null)
- * @method Show\Field|Collection order_product_id(string $label = null)
- * @method Show\Field|Collection sales_value(string $label = null)
* @method Show\Field|Collection sn(string $label = null)
+ * @method Show\Field|Collection order_product_id(string $label = null)
+ * @method Show\Field|Collection num(string $label = null)
+ * @method Show\Field|Collection amount(string $label = null)
* @method Show\Field|Collection state(string $label = null)
* @method Show\Field|Collection tracking_number(string $label = null)
+ * @method Show\Field|Collection sales_value(string $label = null)
* @method Show\Field|Collection before_agent_level(string $label = null)
* @method Show\Field|Collection change_agent_level(string $label = null)
* @method Show\Field|Collection remark(string $label = null)
- * @method Show\Field|Collection apk_link(string $label = null)
- * @method Show\Field|Collection cate(string $label = null)
- * @method Show\Field|Collection context(string $label = null)
- * @method Show\Field|Collection is_force(string $label = null)
* @method Show\Field|Collection v(string $label = null)
+ * @method Show\Field|Collection cate(string $label = null)
+ * @method Show\Field|Collection is_force(string $label = null)
+ * @method Show\Field|Collection context(string $label = null)
+ * @method Show\Field|Collection apk_link(string $label = null)
* @method Show\Field|Collection wgt_link(string $label = null)
+ * @method Show\Field|Collection is_recommend(string $label = null)
* @method Show\Field|Collection _lft(string $label = null)
* @method Show\Field|Collection _rgt(string $label = null)
- * @method Show\Field|Collection is_recommend(string $label = null)
* @method Show\Field|Collection article_id(string $label = null)
- * @method Show\Field|Collection author_name(string $label = null)
* @method Show\Field|Collection category_id(string $label = null)
- * @method Show\Field|Collection likes(string $label = null)
- * @method Show\Field|Collection media_content(string $label = null)
- * @method Show\Field|Collection media_type(string $label = null)
- * @method Show\Field|Collection points(string $label = null)
+ * @method Show\Field|Collection author_name(string $label = null)
* @method Show\Field|Collection subtitle(string $label = null)
+ * @method Show\Field|Collection points(string $label = null)
+ * @method Show\Field|Collection likes(string $label = null)
+ * @method Show\Field|Collection media_type(string $label = null)
+ * @method Show\Field|Collection media_content(string $label = null)
+ * @method Show\Field|Collection loggable_type(string $label = null)
+ * @method Show\Field|Collection loggable_id(string $label = null)
* @method Show\Field|Collection action(string $label = null)
* @method Show\Field|Collection before_balance(string $label = null)
* @method Show\Field|Collection change_balance(string $label = null)
- * @method Show\Field|Collection loggable_id(string $label = null)
- * @method Show\Field|Collection loggable_type(string $label = null)
* @method Show\Field|Collection balance(string $label = null)
- * @method Show\Field|Collection is_frozen(string $label = null)
* @method Show\Field|Collection total_expenses(string $label = null)
* @method Show\Field|Collection total_revenue(string $label = null)
* @method Show\Field|Collection transferable(string $label = null)
+ * @method Show\Field|Collection is_frozen(string $label = null)
* @method Show\Field|Collection continue_click_times(string $label = null)
* @method Show\Field|Collection last_click_at(string $label = null)
- * @method Show\Field|Collection is_enable(string $label = null)
* @method Show\Field|Collection ranges(string $label = null)
+ * @method Show\Field|Collection is_enable(string $label = null)
* @method Show\Field|Collection administrator_id(string $label = null)
* @method Show\Field|Collection status(string $label = null)
* @method Show\Field|Collection task_id(string $label = null)
+ * @method Show\Field|Collection threshold(string $label = null)
* @method Show\Field|Collection limit(string $label = null)
* @method Show\Field|Collection sent(string $label = null)
* @method Show\Field|Collection stock(string $label = null)
- * @method Show\Field|Collection threshold(string $label = null)
* @method Show\Field|Collection use_day(string $label = null)
- * @method Show\Field|Collection use_end_at(string $label = null)
* @method Show\Field|Collection use_start_at(string $label = null)
+ * @method Show\Field|Collection use_end_at(string $label = null)
* @method Show\Field|Collection lvl(string $label = null)
- * @method Show\Field|Collection order_completed_at(string $label = null)
* @method Show\Field|Collection total_amount(string $label = null)
- * @method Show\Field|Collection earningable_id(string $label = null)
+ * @method Show\Field|Collection order_completed_at(string $label = null)
* @method Show\Field|Collection earningable_type(string $label = null)
+ * @method Show\Field|Collection earningable_id(string $label = null)
+ * @method Show\Field|Collection total_earnings(string $label = null)
* @method Show\Field|Collection fee(string $label = null)
* @method Show\Field|Collection fee_rate(string $label = null)
- * @method Show\Field|Collection pay_at(string $label = null)
- * @method Show\Field|Collection pay_image(string $label = null)
- * @method Show\Field|Collection pay_info(string $label = null)
- * @method Show\Field|Collection pay_way(string $label = null)
* @method Show\Field|Collection payer_id(string $label = null)
+ * @method Show\Field|Collection pay_info(string $label = null)
+ * @method Show\Field|Collection pay_at(string $label = null)
* @method Show\Field|Collection settle_at(string $label = null)
- * @method Show\Field|Collection total_earnings(string $label = null)
- * @method Show\Field|Collection end_at(string $label = null)
+ * @method Show\Field|Collection pay_image(string $label = null)
+ * @method Show\Field|Collection pay_way(string $label = null)
* @method Show\Field|Collection is_manager(string $label = null)
- * @method Show\Field|Collection is_settle(string $label = null)
* @method Show\Field|Collection real_amount(string $label = null)
* @method Show\Field|Collection start_at(string $label = null)
+ * @method Show\Field|Collection end_at(string $label = null)
+ * @method Show\Field|Collection is_settle(string $label = null)
* @method Show\Field|Collection product_id(string $label = null)
* @method Show\Field|Collection sales_volume(string $label = null)
* @method Show\Field|Collection last_consignor_id(string $label = null)
@@ -1056,122 +1057,122 @@ namespace Dcat\Admin {
* @method Show\Field|Collection price(string $label = null)
* @method Show\Field|Collection sale_price(string $label = null)
* @method Show\Field|Collection reason(string $label = null)
- * @method Show\Field|Collection allocated_at(string $label = null)
- * @method Show\Field|Collection consignee_address(string $label = null)
+ * @method Show\Field|Collection consignor_id(string $label = null)
+ * @method Show\Field|Collection settle_state(string $label = null)
* @method Show\Field|Collection consignee_name(string $label = null)
* @method Show\Field|Collection consignee_telephone(string $label = null)
* @method Show\Field|Collection consignee_zone(string $label = null)
- * @method Show\Field|Collection consignor_id(string $label = null)
- * @method Show\Field|Collection out_trade_no(string $label = null)
- * @method Show\Field|Collection paied_time(string $label = null)
- * @method Show\Field|Collection pay_sn(string $label = null)
+ * @method Show\Field|Collection consignee_address(string $label = null)
* @method Show\Field|Collection pay_time(string $label = null)
- * @method Show\Field|Collection settle_state(string $label = null)
+ * @method Show\Field|Collection paied_time(string $label = null)
* @method Show\Field|Collection shipping_time(string $label = null)
* @method Show\Field|Collection shippinged_time(string $label = null)
+ * @method Show\Field|Collection allocated_at(string $label = null)
+ * @method Show\Field|Collection pay_sn(string $label = null)
+ * @method Show\Field|Collection out_trade_no(string $label = null)
* @method Show\Field|Collection min_order_amount(string $label = null)
* @method Show\Field|Collection price_1st(string $label = null)
* @method Show\Field|Collection price_2st(string $label = null)
* @method Show\Field|Collection price_3st(string $label = null)
- * @method Show\Field|Collection is_sale(string $label = null)
- * @method Show\Field|Collection manager_subsidy(string $label = null)
* @method Show\Field|Collection sales_count(string $label = null)
+ * @method Show\Field|Collection is_sale(string $label = null)
* @method Show\Field|Collection unit(string $label = null)
+ * @method Show\Field|Collection manager_subsidy(string $label = null)
* @method Show\Field|Collection path(string $label = null)
- * @method Show\Field|Collection subsidy_rate(string $label = null)
* @method Show\Field|Collection total_purchase_amount(string $label = null)
+ * @method Show\Field|Collection subsidy_rate(string $label = null)
* @method Show\Field|Collection total_subsidy(string $label = null)
- * @method Show\Field|Collection change_amount(string $label = null)
- * @method Show\Field|Collection change_from_purchase_subsidy_id(string $label = null)
* @method Show\Field|Collection purchase_subsidy_id(string $label = null)
+ * @method Show\Field|Collection change_from_purchase_subsidy_id(string $label = null)
+ * @method Show\Field|Collection change_amount(string $label = null)
* @method Show\Field|Collection change_sales_value(string $label = null)
+ * @method Show\Field|Collection sell_price(string $label = null)
* @method Show\Field|Collection dealer_price(string $label = null)
* @method Show\Field|Collection quantity(string $label = null)
- * @method Show\Field|Collection sell_price(string $label = null)
* @method Show\Field|Collection before_lvl(string $label = null)
* @method Show\Field|Collection change_lvl(string $label = null)
* @method Show\Field|Collection revoke_id(string $label = null)
- * @method Show\Field|Collection account_amount(string $label = null)
* @method Show\Field|Collection rate(string $label = null)
* @method Show\Field|Collection service_amount(string $label = null)
+ * @method Show\Field|Collection account_amount(string $label = null)
* @method Show\Field|Collection withdrawable(string $label = null)
- * @method Show\Field|Collection bonds(string $label = null)
* @method Show\Field|Collection contracted_lvl_at(string $label = null)
+ * @method Show\Field|Collection bonds(string $label = null)
* @method Show\Field|Collection self_sales_value(string $label = null)
* @method Show\Field|Collection team_sales_value(string $label = null)
- * @method Show\Field|Collection failed_reason(string $label = null)
- * @method Show\Field|Collection jobable_id(string $label = null)
* @method Show\Field|Collection jobable_type(string $label = null)
- * @method Show\Field|Collection change_revenue(string $label = null)
+ * @method Show\Field|Collection jobable_id(string $label = null)
+ * @method Show\Field|Collection failed_reason(string $label = null)
* @method Show\Field|Collection pre_income_id(string $label = null)
* @method Show\Field|Collection pre_income_job_id(string $label = null)
+ * @method Show\Field|Collection change_revenue(string $label = null)
* @method Show\Field|Collection agent_level(string $label = null)
- * @method Show\Field|Collection completed_at(string $label = null)
- * @method Show\Field|Collection rule(string $label = null)
* @method Show\Field|Collection total_sales_value(string $label = null)
+ * @method Show\Field|Collection rule(string $label = null)
+ * @method Show\Field|Collection completed_at(string $label = null)
+ * @method Show\Field|Collection uuid(string $label = null)
* @method Show\Field|Collection connection(string $label = null)
+ * @method Show\Field|Collection queue(string $label = null)
+ * @method Show\Field|Collection payload(string $label = null)
* @method Show\Field|Collection exception(string $label = null)
* @method Show\Field|Collection failed_at(string $label = null)
- * @method Show\Field|Collection payload(string $label = null)
- * @method Show\Field|Collection queue(string $label = null)
- * @method Show\Field|Collection uuid(string $label = null)
* @method Show\Field|Collection job_id(string $label = null)
- * @method Show\Field|Collection fails(string $label = null)
* @method Show\Field|Collection file(string $label = null)
* @method Show\Field|Collection success(string $label = null)
+ * @method Show\Field|Collection fails(string $label = null)
* @method Show\Field|Collection code(string $label = null)
* @method Show\Field|Collection info(string $label = null)
* @method Show\Field|Collection ext(string $label = null)
* @method Show\Field|Collection is_push(string $label = null)
* @method Show\Field|Collection message_id(string $label = null)
* @method Show\Field|Collection order_package_id(string $label = null)
- * @method Show\Field|Collection checked_at(string $label = null)
- * @method Show\Field|Collection is_failed(string $label = null)
- * @method Show\Field|Collection last_news(string $label = null)
- * @method Show\Field|Collection shipping_code(string $label = null)
* @method Show\Field|Collection shipping_company(string $label = null)
+ * @method Show\Field|Collection shipping_code(string $label = null)
* @method Show\Field|Collection shipping_number(string $label = null)
- * @method Show\Field|Collection after_expire_at(string $label = null)
- * @method Show\Field|Collection after_sale_state(string $label = null)
- * @method Show\Field|Collection coupon_discount_amount(string $label = null)
- * @method Show\Field|Collection gift_for_sku_id(string $label = null)
- * @method Show\Field|Collection reduced_amount(string $label = null)
- * @method Show\Field|Collection remain_quantity(string $label = null)
- * @method Show\Field|Collection specs(string $label = null)
+ * @method Show\Field|Collection is_failed(string $label = null)
+ * @method Show\Field|Collection checked_at(string $label = null)
+ * @method Show\Field|Collection last_news(string $label = null)
* @method Show\Field|Collection spu_id(string $label = null)
- * @method Show\Field|Collection vip_discount_amount(string $label = null)
- * @method Show\Field|Collection vip_price(string $label = null)
+ * @method Show\Field|Collection specs(string $label = null)
* @method Show\Field|Collection weight(string $label = null)
+ * @method Show\Field|Collection vip_price(string $label = null)
+ * @method Show\Field|Collection coupon_discount_amount(string $label = null)
+ * @method Show\Field|Collection vip_discount_amount(string $label = null)
+ * @method Show\Field|Collection reduced_amount(string $label = null)
+ * @method Show\Field|Collection after_sale_state(string $label = null)
+ * @method Show\Field|Collection after_expire_at(string $label = null)
+ * @method Show\Field|Collection remain_quantity(string $label = null)
+ * @method Show\Field|Collection gift_for_sku_id(string $label = null)
* @method Show\Field|Collection max(string $label = null)
- * @method Show\Field|Collection auto_complete_at(string $label = null)
- * @method Show\Field|Collection is_change(string $label = null)
- * @method Show\Field|Collection is_settlable(string $label = null)
- * @method Show\Field|Collection note(string $label = null)
- * @method Show\Field|Collection products_total_amount(string $label = null)
* @method Show\Field|Collection shipping_fee(string $label = null)
- * @method Show\Field|Collection shipping_state(string $label = null)
+ * @method Show\Field|Collection products_total_amount(string $label = null)
+ * @method Show\Field|Collection note(string $label = null)
* @method Show\Field|Collection user_coupon_id(string $label = null)
- * @method Show\Field|Collection payable_id(string $label = null)
+ * @method Show\Field|Collection shipping_state(string $label = null)
+ * @method Show\Field|Collection is_change(string $label = null)
+ * @method Show\Field|Collection auto_complete_at(string $label = null)
+ * @method Show\Field|Collection is_settlable(string $label = null)
* @method Show\Field|Collection payable_type(string $label = null)
+ * @method Show\Field|Collection payable_id(string $label = null)
+ * @method Show\Field|Collection tokenable_type(string $label = null)
+ * @method Show\Field|Collection tokenable_id(string $label = null)
+ * @method Show\Field|Collection token(string $label = null)
* @method Show\Field|Collection abilities(string $label = null)
* @method Show\Field|Collection last_used_at(string $label = null)
- * @method Show\Field|Collection token(string $label = null)
- * @method Show\Field|Collection tokenable_id(string $label = null)
- * @method Show\Field|Collection tokenable_type(string $label = null)
* @method Show\Field|Collection old_points(string $label = null)
* @method Show\Field|Collection gift_sku_id(string $label = null)
* @method Show\Field|Collection remaining(string $label = null)
* @method Show\Field|Collection attrs(string $label = null)
* @method Show\Field|Collection applicant_id(string $label = null)
* @method Show\Field|Collection reviewer_id(string $label = null)
- * @method Show\Field|Collection buynote_id(string $label = null)
- * @method Show\Field|Collection cost_price(string $label = null)
* @method Show\Field|Collection market_price(string $label = null)
+ * @method Show\Field|Collection cost_price(string $label = null)
* @method Show\Field|Collection media(string $label = null)
- * @method Show\Field|Collection release_at(string $label = null)
* @method Show\Field|Collection sales(string $label = null)
- * @method Show\Field|Collection shipping_template_id(string $label = null)
+ * @method Show\Field|Collection release_at(string $label = null)
* @method Show\Field|Collection verify_state(string $label = null)
+ * @method Show\Field|Collection buynote_id(string $label = null)
+ * @method Show\Field|Collection shipping_template_id(string $label = null)
* @method Show\Field|Collection feature_id(string $label = null)
* @method Show\Field|Collection items(string $label = null)
* @method Show\Field|Collection view_date(string $label = null)
@@ -1179,84 +1180,94 @@ namespace Dcat\Admin {
* @method Show\Field|Collection message_type(string $label = null)
* @method Show\Field|Collection change_quota(string $label = null)
* @method Show\Field|Collection order_user_id(string $label = null)
- * @method Show\Field|Collection size(string $label = null)
* @method Show\Field|Collection x(string $label = null)
* @method Show\Field|Collection y(string $label = null)
- * @method Show\Field|Collection address(string $label = null)
+ * @method Show\Field|Collection size(string $label = null)
+ * @method Show\Field|Collection zone_id(string $label = null)
* @method Show\Field|Collection consignee(string $label = null)
- * @method Show\Field|Collection is_default(string $label = null)
* @method Show\Field|Collection telephone(string $label = null)
* @method Show\Field|Collection zone(string $label = null)
- * @method Show\Field|Collection zone_id(string $label = null)
+ * @method Show\Field|Collection address(string $label = null)
+ * @method Show\Field|Collection is_default(string $label = null)
* @method Show\Field|Collection rule_id(string $label = null)
* @method Show\Field|Collection template_id(string $label = null)
* @method Show\Field|Collection zones(string $label = null)
- * @method Show\Field|Collection expires_at(string $label = null)
* @method Show\Field|Collection phone(string $label = null)
- * @method Show\Field|Collection socialite_id(string $label = null)
+ * @method Show\Field|Collection expires_at(string $label = null)
* @method Show\Field|Collection socialite_type(string $label = null)
+ * @method Show\Field|Collection socialite_id(string $label = null)
* @method Show\Field|Collection tag_id(string $label = null)
* @method Show\Field|Collection taggable_id(string $label = null)
* @method Show\Field|Collection taggable_type(string $label = null)
- * @method Show\Field|Collection bank_description(string $label = null)
- * @method Show\Field|Collection bank_name(string $label = null)
+ * @method Show\Field|Collection real_name(string $label = null)
* @method Show\Field|Collection bank_number(string $label = null)
+ * @method Show\Field|Collection bank_name(string $label = null)
+ * @method Show\Field|Collection bank_description(string $label = null)
* @method Show\Field|Collection is_edited(string $label = null)
* @method Show\Field|Collection old_real_name(string $label = null)
- * @method Show\Field|Collection real_name(string $label = null)
- * @method Show\Field|Collection m_cid(string $label = null)
* @method Show\Field|Collection u_cid(string $label = null)
- * @method Show\Field|Collection coupon_amount(string $label = null)
+ * @method Show\Field|Collection m_cid(string $label = null)
* @method Show\Field|Collection coupon_name(string $label = null)
- * @method Show\Field|Collection coupon_threshold(string $label = null)
* @method Show\Field|Collection coupon_type(string $label = null)
+ * @method Show\Field|Collection coupon_amount(string $label = null)
+ * @method Show\Field|Collection coupon_threshold(string $label = null)
+ * @method Show\Field|Collection inviter_id(string $label = null)
+ * @method Show\Field|Collection nickname(string $label = null)
+ * @method Show\Field|Collection gender(string $label = null)
* @method Show\Field|Collection birthday(string $label = null)
* @method Show\Field|Collection bonusable(string $label = null)
* @method Show\Field|Collection depth(string $label = null)
- * @method Show\Field|Collection gender(string $label = null)
- * @method Show\Field|Collection group_sales_value(string $label = null)
- * @method Show\Field|Collection growth_value(string $label = null)
- * @method Show\Field|Collection inviter_id(string $label = null)
- * @method Show\Field|Collection nickname(string $label = null)
- * @method Show\Field|Collection pre_growth_value(string $label = null)
- * @method Show\Field|Collection quota_v1(string $label = null)
* @method Show\Field|Collection quota_v2(string $label = null)
+ * @method Show\Field|Collection quota_v1(string $label = null)
+ * @method Show\Field|Collection growth_value(string $label = null)
+ * @method Show\Field|Collection group_sales_value(string $label = null)
+ * @method Show\Field|Collection pre_growth_value(string $label = null)
* @method Show\Field|Collection real_inviter_id(string $label = null)
* @method Show\Field|Collection vip_id(string $label = null)
+ * @method Show\Field|Collection phone_verified_at(string $label = null)
* @method Show\Field|Collection email(string $label = null)
* @method Show\Field|Collection email_verified_at(string $label = null)
- * @method Show\Field|Collection last_login_at(string $label = null)
* @method Show\Field|Collection last_login_ip(string $label = null)
- * @method Show\Field|Collection old_password(string $label = null)
- * @method Show\Field|Collection phone_verified_at(string $label = null)
+ * @method Show\Field|Collection last_login_at(string $label = null)
* @method Show\Field|Collection register_ip(string $label = null)
* @method Show\Field|Collection status_remark(string $label = null)
+ * @method Show\Field|Collection old_password(string $label = null)
*/
- class Show {}
+ class Show
+ {
+ }
/**
* @method \App\Admin\Extensions\Form\Product\SelectAttr selectAttr(...$params)
* @method \App\Admin\Extensions\Form\Product\SelectSpec selectSpec(...$params)
*/
- class Form {}
+ class Form
+ {
+ }
}
namespace Dcat\Admin\Grid {
/**
-
+
*/
- class Column {}
+ class Column
+ {
+ }
/**
-
+
*/
- class Filter {}
+ class Filter
+ {
+ }
}
namespace Dcat\Admin\Show {
/**
* @method $this showLabel(...$params)
*/
- class Field {}
+ class Field
+ {
+ }
}
diff --git a/deploy/config/deploy/staging.rb b/deploy/config/deploy/staging.rb
index 59323fec..fcb531bf 100644
--- a/deploy/config/deploy/staging.rb
+++ b/deploy/config/deploy/staging.rb
@@ -32,7 +32,7 @@ server "47.108.227.246", user: "deployer", roles: %w{admin supervisor}
# http://capistranorb.com/documentation/getting-started/configuration/
# Feel free to add new variables to customise your setup.
-set :branch, "1.x"
+set :branch, "develop"
set :deploy_to, "/www/wwwroot/test.zichunsheng.cn"
diff --git a/resources/lang/zh_CN/activity.php b/resources/lang/zh_CN/activity.php
new file mode 100644
index 00000000..789651c1
--- /dev/null
+++ b/resources/lang/zh_CN/activity.php
@@ -0,0 +1,20 @@
+ [
+ 'Activity' => '活动管理',
+ 'activity' => '活动管理',
+ ],
+ 'fields' => [
+ 'title' => '标题',
+ 'cover' => '封面图',
+ 'content' => '内容',
+ 'is_use' => '状态',
+ 'started_at' => '开始时间',
+ 'ended_at' => '结束时间',
+ 'coupons_rule' => '优惠券规则',
+ 'gifts_rule' => '赠品规则',
+ ],
+ 'options' => [
+ ],
+];