From 8452a8f77fb29c90edb8fdde79f25df91d0d12f5 Mon Sep 17 00:00:00 2001 From: liapples Date: Thu, 2 Sep 2021 11:02:44 +0800 Subject: [PATCH 1/5] =?UTF-8?q?'rate'=20=3D>=20'=E5=88=86=E6=88=90?= =?UTF-8?q?=E6=AF=94=E4=BE=8B',?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/lang/zh_CN/agent.php | 1 + resources/lang/zh_CN/guide.php | 1 + resources/lang/zh_CN/supplier.php | 1 + 3 files changed, 3 insertions(+) diff --git a/resources/lang/zh_CN/agent.php b/resources/lang/zh_CN/agent.php index c7e3765..5027c61 100644 --- a/resources/lang/zh_CN/agent.php +++ b/resources/lang/zh_CN/agent.php @@ -21,6 +21,7 @@ return [ 'license_pic' => '营业执照', 'director' => '负责人', 'contact_phone' => '联系电话', + 'rate' => '分成比例', 'agentInfo' => trans('agent-info.fields'), ], 'options' => [ diff --git a/resources/lang/zh_CN/guide.php b/resources/lang/zh_CN/guide.php index 268aecd..29d3889 100644 --- a/resources/lang/zh_CN/guide.php +++ b/resources/lang/zh_CN/guide.php @@ -13,6 +13,7 @@ return [ 'license_pic' => '地接资格证件', 'contact_phone' => '联系电话', 'status' => '状态', + 'rate' => '分成比例', ], 'options' => [ ], diff --git a/resources/lang/zh_CN/supplier.php b/resources/lang/zh_CN/supplier.php index 60f1e6e..05149b0 100644 --- a/resources/lang/zh_CN/supplier.php +++ b/resources/lang/zh_CN/supplier.php @@ -15,6 +15,7 @@ return [ 'license_pic' => '营业执照', 'director' => '负责人', 'contact_phone' => '联系电话', + 'rate' => '分成比例', ], 'options' => [ ], From ec23afc66797cd14f0a3640b9f62f5a1111aea6e Mon Sep 17 00:00:00 2001 From: liapples Date: Thu, 2 Sep 2021 11:15:43 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=88=86=E6=88=90=E6=AF=94=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/AgentController.php | 9 ++++++++- app/Admin/Controllers/GuideController.php | 9 ++++++++- app/Admin/Controllers/SupplierController.php | 4 +++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/Admin/Controllers/AgentController.php b/app/Admin/Controllers/AgentController.php index daa3d1e..6a9543b 100644 --- a/app/Admin/Controllers/AgentController.php +++ b/app/Admin/Controllers/AgentController.php @@ -39,8 +39,8 @@ class AgentController extends AdminController $grid->column('license_pic')->image('', 60, 60); $grid->column('director'); $grid->column('contact_phone'); + $grid->column('rate')->editable()->help('分成百分比,如10%,则输入10'); $grid->column('created_at'); - $grid->column('updated_at'); $grid->column('status', '状态') ->if(fn() => $this->status == UserStatus::UNAUDITED) @@ -95,6 +95,7 @@ class AgentController extends AdminController $show->field('license_pic')->image('', 80, 80); $show->field('director'); $show->field('contact_phone'); + $show->field('rate'); $show->field('agentInfo.about', '关于我们') ->unescape() ->as(function ($v) { @@ -154,6 +155,7 @@ class AgentController extends AdminController $form->image('license_pic')->removable(false)->uniqueName(); $form->text('director'); $form->text('contact_phone'); + $form->number('rate')->min(0)->max(100)->help('分成百分比,如10%,则输入10'); $form->editor('agentInfo.about', '关于我们');// 隐藏菜单用:->options(['menubar' => false]); $form->editor('agentInfo.reg_protocol', '注册协议'); $form->editor('agentInfo.buy_protocol', '购买协议'); @@ -165,6 +167,11 @@ class AgentController extends AdminController } } + //分成比例 + if ($form->rate < 0 || $form->rate > 100) { + return $form->response()->error('分成比例在 0 ~ 100 之间'); + } + //不允许编辑的字段 if ($form->isEditing()) { $form->ignore(['id', 'username', 'created_at', 'updated_at', 'deleted_at']); diff --git a/app/Admin/Controllers/GuideController.php b/app/Admin/Controllers/GuideController.php index 119e872..925c6a9 100644 --- a/app/Admin/Controllers/GuideController.php +++ b/app/Admin/Controllers/GuideController.php @@ -34,8 +34,8 @@ class GuideController extends AdminController $grid->column('photo')->image('', 60, 60); $grid->column('license_pic')->image('', 60, 60); $grid->column('contact_phone'); + $grid->column('rate')->editable()->help('分成百分比,如10%,则输入10'); $grid->column('created_at'); - $grid->column('updated_at'); $grid->column('status', '状态') ->if(fn() => $this->status == UserStatus::UNAUDITED) @@ -82,6 +82,7 @@ class GuideController extends AdminController $show->field('photo')->image('', 80, 80); $show->field('license_pic')->image('', 80, 80); $show->field('contact_phone'); + $show->field('rate'); $show->field('created_at'); $show->field('updated_at'); }); @@ -113,6 +114,7 @@ class GuideController extends AdminController $form->image('photo')->removable(false)->uniqueName(); $form->image('license_pic')->removable(false)->uniqueName(); $form->text('contact_phone'); + $form->number('rate')->min(0)->max(100)->help('分成百分比,如10%,则输入10'); })->saving(function (Form $form) { //判断账号是否唯一 if ($form->isCreating()) { @@ -121,6 +123,11 @@ class GuideController extends AdminController } } + //分成比例 + if ($form->rate < 0 || $form->rate > 100) { + return $form->response()->error('分成比例在 0 ~ 100 之间'); + } + //不允许编辑的字段 if ($form->isEditing()) { $form->ignore(['id', 'username', 'created_at', 'updated_at', 'deleted_at']); diff --git a/app/Admin/Controllers/SupplierController.php b/app/Admin/Controllers/SupplierController.php index 0c2c2bc..116aca5 100644 --- a/app/Admin/Controllers/SupplierController.php +++ b/app/Admin/Controllers/SupplierController.php @@ -41,8 +41,8 @@ class SupplierController extends AdminController $grid->column('license_pic')->image('', 60,60); $grid->column('director'); $grid->column('contact_phone'); + $grid->column('rate')->editable()->help('分成百分比,如10%,则输入10'); $grid->column('created_at'); - $grid->column('updated_at'); $grid->column('status', '状态') ->if(fn() => $this->status == UserStatus::UNAUDITED) @@ -91,6 +91,7 @@ class SupplierController extends AdminController $show->field('license_pic')->image('', 60, 60); $show->field('director'); $show->field('contact_phone'); + $show->field('rate'); $show->field('created_at'); $show->field('updated_at'); }); @@ -128,6 +129,7 @@ class SupplierController extends AdminController $form->image('license_pic')->removable(false)->uniqueName(); $form->text('director'); $form->mobile('contact_phone'); + $form->number('rate')->min(0)->max(100)->help('分成百分比,如10%,则输入10'); })->saving(function (Form $form) { //判断账号是否唯一 if ($form->isCreating()) { From d129e72c5048c3026eec2f328b71d7d384fd7bdb Mon Sep 17 00:00:00 2001 From: liapples Date: Thu, 2 Sep 2021 13:03:46 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=84=E5=90=88?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E9=9C=80=E8=A6=81=E5=AE=A1=E6=A0=B8=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9AgentProductItem=E7=9A=84=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AgentProductController.php | 72 +++++++++---------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/app/AdminAgent/Controllers/AgentProductController.php b/app/AdminAgent/Controllers/AgentProductController.php index f862210..bf2bb55 100644 --- a/app/AdminAgent/Controllers/AgentProductController.php +++ b/app/AdminAgent/Controllers/AgentProductController.php @@ -163,6 +163,7 @@ class AgentProductController extends AdminController $form->radio('type') ->options(['单品销售', '组合销售']) ->default(0)->required() + ->help('单品销售无需审核,组合销售需要审核才能上架') ->when(0, function (Form $form) { /** 单品销售 **/ $form->selectTable('product_id', '选择产品') @@ -186,8 +187,6 @@ class AgentProductController extends AdminController $form->editor('know'); $form->editor('content'); }); - $form->text('title', '产品名称'); - $form->text('price')->required(); $form->text('original_price')->required(); $form->text('sale')->default(0); @@ -226,10 +225,10 @@ class AgentProductController extends AdminController ->model(Guide::class, 'id', 'name'); } - $form->text('earnest')->default(0)->help('单位:元。不输入或输入 0 则不支持定金支付,必须和定金超时时间同时设置才会生效'); - $form->text('earnest_timeout')->default(0)->help('单位:分钟。超过这个时间未支付,订单将自动关闭'); - $form->text('deposit')->default(0)->help('单位:元。不输入或输入 0 则不支持订金支付,必须和订金超时时间同时设置才会生效'); - $form->text('deposit_timeout')->default(0)->help('单位:分钟。超过这个时间未支付,订单将自动关闭'); + $form->number('earnest')->width(2)->default(0)->help('单位:元。不输入或输入 0 则不支持定金支付,必须和定金超时时间同时设置才会生效'); + $form->number('earnest_timeout')->width(2)->default(0)->help('单位:分钟。超过这个时间未支付,订单将自动关闭'); + $form->number('deposit')->default(0)->help('单位:元。不输入或输入 0 则不支持订金支付,必须和订金超时时间同时设置才会生效'); + $form->number('deposit_timeout')->default(0)->help('单位:分钟。超过这个时间未支付,订单将自动关闭'); })->saving(function (Form $form) { //不允许修改非自己的数据 if ($form->isEditing() && $form->model()->agent_id != Admin::user()->id) { @@ -329,12 +328,15 @@ class AgentProductController extends AdminController //处理特殊字段 $form->hidden(['agent_id', 'status']); //表单没有的字段,必须加这句才能够重写 $form->agent_id = $agent_id; - if (array_key_exists('status', $form->input())) { - $form->status = $form->status == ProductStatus::ON_SALE ? ProductStatus::ON_SALE : ProductStatus::SOLD_OUT; - } if (array_key_exists('guide_id', $form->input())) { $form->guide_id = $form->guide_id ?? 0; } + //组合销售需要审核,编辑时是否需要审核在saved里面判断 + if ($form->isCreating() && $form->type == 1) { + $form->status = ProductStatus::UNAUDITED; + } else { + $form->status = $form->status == ProductStatus::ON_SALE ? ProductStatus::ON_SALE : ProductStatus::SOLD_OUT; + } //订金 if ($form->earnest <= 0 || $form->earnest_timeout <= 0) { @@ -370,40 +372,36 @@ class AgentProductController extends AdminController })->saved(function (Form $form) { /** 保存到组合产品明细,先查询出之前明细,再跟新的比较,若没有则删除,新的产品原来明细表没有的,则插入 **/ $product_ids = explode(',', $form->product_ids); - $product = Product::whereIn('id', $product_ids)->orderBy('id')->get(['id', 'supplier_id'])->toArray(); - $agent_product_id = $form->getKey(); - $insert_data = []; - foreach ($product as $k => &$v) { - $insert_data[$v['id']] = [ - 'agent_product_id' => $agent_product_id, - 'agent_id' => Admin::user()->id, - 'supplier_id' => $v['supplier_id'], - 'product_id' => $v['id'], - ]; + + $product = Product::whereIn('id', $product_ids)->orderBy('id') + ->get(['id AS product_id', 'supplier_id'])->toArray(); + + $insert_data = array_map(function ($v) use ($agent_product_id) { + $v['agent_product_id'] = $agent_product_id; + $v['agent_id'] = Admin::user()->id; + return $v; + }, $product); + + //组合产品编辑关键字段需要审核 + if ($form->isEditing() && $form->model()->wasChanged(['title', 'pictures', 'know', 'content'])) { + $form->model()->update(['status' => ProductStatus::UNAUDITED]); } if ($form->isCreating()) { AgentProductItem::insert($insert_data); } else if ($form->isEditing()) { - //先查出来原来的数据 - $old_data = AgentProductItem::where('agent_product_id', $agent_product_id)->pluck('id', 'product_id')->toArray(); - - //新ID在原来数据里面没有的,删除掉 - foreach ($old_data as $k => $v) { - //删除已经删除掉的product_id - if (!in_array($k, $product_ids)) { - AgentProductItem::query()->find($v)->delete(); - } - //将新数据和旧数据中都存在的product_id unset掉 - if (array_key_exists($k, $insert_data)) { - unset($insert_data[$k]); - } - } - - //将剩余(新增)的product_id保存 - if ($insert_data) { - AgentProductItem::insert($insert_data); + //删除原来有,但现在没有的数据 + AgentProductItem::query() + ->where('agent_product_id', $agent_product_id) + ->whereNotIn('product_id', $product_ids)->delete(); + + //插入原来没有,但是现在有的数据 + foreach ($insert_data as $v) { + AgentProductItem::query()->firstOrCreate( + ['agent_product_id' => $agent_product_id, 'product_id' => $v['product_id']], + $v + ); } } })->deleting(function (Form $form) { From 224b323f581af73966620eccd771c816e8a802bc Mon Sep 17 00:00:00 2001 From: liapples Date: Thu, 2 Sep 2021 15:32:56 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E7=BB=84=E5=90=88=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=80=BB=E5=90=8E=E5=8F=B0=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AgentProductController.php | 140 ++++++ .../Extensions/Grid/AuditAgentProduct.php | 56 +++ app/Admin/Repositories/AgentProduct.php | 16 + app/Admin/routes.php | 2 + .../Controllers/AgentProductController.php | 37 +- dcat_admin_ide_helper.php | 436 ++++++++++-------- resources/lang/zh_CN/agent-product.php | 3 + 7 files changed, 487 insertions(+), 203 deletions(-) create mode 100644 app/Admin/Controllers/AgentProductController.php create mode 100644 app/Admin/Extensions/Grid/AuditAgentProduct.php create mode 100644 app/Admin/Repositories/AgentProduct.php diff --git a/app/Admin/Controllers/AgentProductController.php b/app/Admin/Controllers/AgentProductController.php new file mode 100644 index 0000000..5d32633 --- /dev/null +++ b/app/Admin/Controllers/AgentProductController.php @@ -0,0 +1,140 @@ +disableCreateButton(); + $grid->disableRowSelector(); + $grid->disableEditButton(); + //如果是审核页面,多加where条件判断 + if (strpos(Route::current()->uri, 'audit')) { + $grid->model()->where('status', ProductStatus::UNAUDITED); + } + + $grid->model()->where('type', 1); + + $grid->column('id')->sortable(); + $grid->column('agent.name'); + $grid->column('title')->limit(15); + $grid->column('picture')->image('', 60, 60); + $grid->column('price'); + $grid->column('original_price'); + $grid->column('sale'); + $grid->column('stock'); + $grid->column('guide.name'); + $grid->column('status') + ->if(fn() => $this->status == ProductStatus::UNAUDITED) + ->display('') + ->then(function ($column) { + $column->append((new AuditAgentProduct(null, 1))->setKey($this->id))->append(' '); + $column->append((new AuditAgentProduct(null, 2))->setKey($this->id)); + }) + ->else() + ->using(ProductStatus::array()) + ->dot([ + ProductStatus::ON_SALE => 'success', + ProductStatus::UNAUDITED => '', + ProductStatus::REFUSE => 'danger', + ProductStatus::SOLD_OUT => 'warning', + ], 'primary'); + $grid->column('created_at'); + + $grid->filter(function (Grid\Filter $filter) { + $filter->panel(); + + $filter->equal('id')->width(2); + $filter->like('title')->width(3); + $filter->equal('status')->width(2)->select(ProductStatus::array()); + }); + }); + } + + /** + * Make a show builder. + * + * @param mixed $id + * + * @return Show + */ + protected function detail($id) + { + return Show::make($id, new AgentProduct(['agent:id,name', 'guide:id,name']), function (Show $show) { + $show->disableEditButton(); + + $show->field('id'); + $show->field('agent.name'); + $show->field('title'); + $show->field('pictures')->image('', 80, 80); + $show->field('price'); + $show->field('original_price'); + $show->field('sale'); + $show->field('stock'); + $show->field('guide.name'); + $show->field('status')->using(ProductStatus::array()); + $show->field('deposit'); + $show->field('deposit_timeout'); + $show->field('earnest'); + $show->field('earnest_timeout'); + $show->field('know')->unescape()->as(fn($v) => preg_replace('/.*?<\/script>/is', '', $v)); + $show->field('content')->unescape()->as(fn($v) => preg_replace('/.*?<\/script>/is', '', $v)); + $show->field('created_at'); + $show->field('updated_at'); + }); + } + + /** + * Make a form builder. + * + * @return Form + */ + protected function form() + { + return Form::make(new AgentProduct(), function (Form $form) { + $form->disableFooter(); + + $form->display('id'); + $form->display('agent_id'); + $form->display('title'); + $form->multipleImage('pictures'); + $form->display('price'); + $form->display('original_price'); + $form->display('sale'); + $form->display('stock'); + $form->display('guide_id'); + $form->display('status'); + $form->display('know'); + $form->display('content'); + $form->display('deposit'); + $form->display('deposit_timeout'); + $form->display('earnest'); + $form->display('earnest_timeout'); + + $form->display('created_at'); + $form->display('updated_at'); + })->saving(function (Form $form) { + if ($form->isEditing() && $form->status !== null && array_key_exists($form->status, ProductStatus::array())) { + $form->model()->update(['status' => $form->status]); + return $form->response()->success('审核成功!')->refresh(); + } + return $form->response()->error('操作禁止'); + }); + } +} diff --git a/app/Admin/Extensions/Grid/AuditAgentProduct.php b/app/Admin/Extensions/Grid/AuditAgentProduct.php new file mode 100644 index 0000000..7c4f637 --- /dev/null +++ b/app/Admin/Extensions/Grid/AuditAgentProduct.php @@ -0,0 +1,56 @@ +action = $action; //$action:1=通过;2=拒绝 + $this->title = $action == 1 ? '通过' : '拒绝'; + } + + protected function html() + { + $class = $this->action == 1 ? 'btn btn-sm btn-success' : 'btn btn-sm btn-danger'; + $this->appendHtmlAttribute('class', $class); + $this->defaultHtmlAttribute('href', 'javascript:;'); + + return "formatHtmlAttributes()}>{$this->title}"; + } + + public function handle(Request $request) + { + try { + $user = AgentProduct::find($this->getKey()); + $user->status = $request->action == 1 ? ProductStatus::ON_SALE : ProductStatus::REFUSE; + $user->save(); + + return $this->response()->success("审核成功")->refresh(); + } catch (\Exception $e) { + return $this->response()->error($e->getMessage()); + } + } + + public function confirm() + { + return ['确定要'.$this->title.'该产品吗?', '']; + } + + public function parameters() + { + return ['action' => $this->action]; + } +} diff --git a/app/Admin/Repositories/AgentProduct.php b/app/Admin/Repositories/AgentProduct.php new file mode 100644 index 0000000..1c5eec7 --- /dev/null +++ b/app/Admin/Repositories/AgentProduct.php @@ -0,0 +1,16 @@ +resource('category/list', 'CategoryController'); $router->resource('product/list', 'ProductController'); $router->resource('product/audit', 'ProductController'); + $router->resource('agent_product/list', 'AgentProductController'); + $router->resource('agent_product/audit', 'AgentProductController'); $router->resource('demand/product', 'DemandProductController'); }); diff --git a/app/AdminAgent/Controllers/AgentProductController.php b/app/AdminAgent/Controllers/AgentProductController.php index bf2bb55..f7d1529 100644 --- a/app/AdminAgent/Controllers/AgentProductController.php +++ b/app/AdminAgent/Controllers/AgentProductController.php @@ -68,9 +68,12 @@ class AgentProductController extends AdminController return Table::make($titles, $data); });*/ - $grid->column('status') + $grid->column('status')->help('切换开关可改变上下架状态') + ->if(fn() => in_array($this->status, [ProductStatus::SOLD_OUT, ProductStatus::ON_SALE])) ->using([ProductStatus::SOLD_OUT => 0, ProductStatus::ON_SALE => 1]) - ->switch(); + ->switch() + ->else() + ->using(ProductStatus::array()); $grid->column('is_rec')->switch()->help('推荐后将在“我的”页面下方显示'); $grid->column('updated_at'); @@ -200,13 +203,17 @@ class AgentProductController extends AdminController ->options(array_slice($options, 1, null, true)) ->required(); - $form->radio('status') - ->default(ProductStatus::ON_SALE) - ->options([ - ProductStatus::ON_SALE => '上架', - ProductStatus::SOLD_OUT => '下架', - ]) - ->required(); + if ($form->isEditing() && in_array($form->model()->status, [ProductStatus::UNAUDITED, ProductStatus::REFUSE])) { + $form->display('status')->customFormat(fn($v) => ProductStatus::array()[$form->model()->status]); + } else { + $form->radio('status') + ->default(ProductStatus::ON_SALE) + ->options([ + ProductStatus::ON_SALE => '上架', + ProductStatus::SOLD_OUT => '下架', + ]) + ->required(); + } $form->switch('is_rec')->help('推荐后将在“我的”页面下方显示'); //$form->selectTable('verifier') // ->title('选择核销人员') @@ -259,6 +266,10 @@ class AgentProductController extends AdminController } //上下架状态按钮开关 if ($form->status !== null) { + //待审核和拒绝的状态不允许修改 + if (in_array($form->model()->status, [ProductStatus::UNAUDITED, ProductStatus::REFUSE])) { + return $form->response()->error('产品待审核或审核拒绝,不允许修改!'); + } $form->model()->status = $form->status == 1 ? ProductStatus::ON_SALE : ProductStatus::SOLD_OUT; $form->model()->save(); return $form->response()->success('更新成功!'); @@ -332,8 +343,12 @@ class AgentProductController extends AdminController $form->guide_id = $form->guide_id ?? 0; } //组合销售需要审核,编辑时是否需要审核在saved里面判断 - if ($form->isCreating() && $form->type == 1) { - $form->status = ProductStatus::UNAUDITED; + if ($form->type == 1) { + if ($form->isCreating()) { + $form->status = ProductStatus::UNAUDITED; + } else if ($form->isEditing() && in_array($form->model()->status, [ProductStatus::UNAUDITED, ProductStatus::REFUSE])) { + $form->deleteInput('status'); //待审核和拒绝的状态不允许修改 + } } else { $form->status = $form->status == ProductStatus::ON_SALE ? ProductStatus::ON_SALE : ProductStatus::SOLD_OUT; } diff --git a/dcat_admin_ide_helper.php b/dcat_admin_ide_helper.php index 36fa2cd..c44c581 100644 --- a/dcat_admin_ide_helper.php +++ b/dcat_admin_ide_helper.php @@ -11,438 +11,490 @@ namespace Dcat\Admin { use Illuminate\Support\Collection; /** - * @property Grid\Column|Collection agent_id - * @property Grid\Column|Collection created_at - * @property Grid\Column|Collection desc * @property Grid\Column|Collection id - * @property Grid\Column|Collection name + * @property Grid\Column|Collection agent_id * @property Grid\Column|Collection picture + * @property Grid\Column|Collection name * @property Grid\Column|Collection tag + * @property Grid\Column|Collection desc + * @property Grid\Column|Collection created_at * @property Grid\Column|Collection updated_at - * @property Grid\Column|Collection content - * @property Grid\Column|Collection know * @property Grid\Column|Collection product_id - * @property Grid\Column|Collection detail + * @property Grid\Column|Collection know + * @property Grid\Column|Collection content * @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 username * @property Grid\Column|Collection password + * @property Grid\Column|Collection avatar * @property Grid\Column|Collection remember_token - * @property Grid\Column|Collection username - * @property Grid\Column|Collection display - * @property Grid\Column|Collection sort * @property Grid\Column|Collection status + * @property Grid\Column|Collection sort * @property Grid\Column|Collection url + * @property Grid\Column|Collection display * @property Grid\Column|Collection about - * @property Grid\Column|Collection buy_protocol * @property Grid\Column|Collection reg_protocol - * @property Grid\Column|Collection agent_product_id + * @property Grid\Column|Collection buy_protocol * @property Grid\Column|Collection supplier_id - * @property Grid\Column|Collection category_id - * @property Grid\Column|Collection channel_id - * @property Grid\Column|Collection deleted_at - * @property Grid\Column|Collection guide_id - * @property Grid\Column|Collection is_rec - * @property Grid\Column|Collection original_price - * @property Grid\Column|Collection pictures - * @property Grid\Column|Collection price + * @property Grid\Column|Collection agent_product_id * @property Grid\Column|Collection product_ids + * @property Grid\Column|Collection price + * @property Grid\Column|Collection original_price * @property Grid\Column|Collection sale * @property Grid\Column|Collection stock + * @property Grid\Column|Collection channel_id + * @property Grid\Column|Collection category_id + * @property Grid\Column|Collection guide_id * @property Grid\Column|Collection verifier - * @property Grid\Column|Collection address + * @property Grid\Column|Collection is_rec + * @property Grid\Column|Collection pictures + * @property Grid\Column|Collection deposit + * @property Grid\Column|Collection deposit_timeout + * @property Grid\Column|Collection earnest + * @property Grid\Column|Collection earnest_timeout + * @property Grid\Column|Collection deleted_at + * @property Grid\Column|Collection setting * @property Grid\Column|Collection appid * @property Grid\Column|Collection appsecret - * @property Grid\Column|Collection company_name - * @property Grid\Column|Collection contact_phone - * @property Grid\Column|Collection director - * @property Grid\Column|Collection license_pic - * @property Grid\Column|Collection logo * @property Grid\Column|Collection mchid * @property Grid\Column|Collection mchkey + * @property Grid\Column|Collection company_name + * @property Grid\Column|Collection logo + * @property Grid\Column|Collection address + * @property Grid\Column|Collection license_pic + * @property Grid\Column|Collection director + * @property Grid\Column|Collection contact_phone * @property Grid\Column|Collection rate * @property Grid\Column|Collection author * @property Grid\Column|Collection image + * @property Grid\Column|Collection agent_product_ids * @property Grid\Column|Collection pid * @property Grid\Column|Collection template - * @property Grid\Column|Collection end_at * @property Grid\Column|Collection start_at - * @property Grid\Column|Collection bidding_id - * @property Grid\Column|Collection bidding_user_id - * @property Grid\Column|Collection bidding_user_type + * @property Grid\Column|Collection end_at * @property Grid\Column|Collection comment * @property Grid\Column|Collection deadline - * @property Grid\Column|Collection images - * @property Grid\Column|Collection publisher_id * @property Grid\Column|Collection publisher_type + * @property Grid\Column|Collection publisher_id * @property Grid\Column|Collection state + * @property Grid\Column|Collection bidding_user_type + * @property Grid\Column|Collection bidding_user_id + * @property Grid\Column|Collection bidding_id + * @property Grid\Column|Collection images * @property Grid\Column|Collection demand_id + * @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 photo - * @property Grid\Column|Collection coupon_id - * @property Grid\Column|Collection mobile - * @property Grid\Column|Collection num + * @property Grid\Column|Collection order_id * @property Grid\Column|Collection order_no - * @property Grid\Column|Collection paid_at - * @property Grid\Column|Collection paid_money + * @property Grid\Column|Collection num + * @property Grid\Column|Collection mobile * @property Grid\Column|Collection pay_type + * @property Grid\Column|Collection coupon_id + * @property Grid\Column|Collection paid_money + * @property Grid\Column|Collection paid_at * @property Grid\Column|Collection refund_info * @property Grid\Column|Collection verify_code + * @property Grid\Column|Collection timeout * @property Grid\Column|Collection email * @property Grid\Column|Collection token + * @property Grid\Column|Collection verify_mobile * @property Grid\Column|Collection channels * @property Grid\Column|Collection money - * @property Grid\Column|Collection order_id * @property Grid\Column|Collection transaction_id - * @property Grid\Column|Collection is_verify * @property Grid\Column|Collection nickname * @property Grid\Column|Collection openid * @property Grid\Column|Collection unionid + * @property Grid\Column|Collection country + * @property Grid\Column|Collection province + * @property Grid\Column|Collection city + * @property Grid\Column|Collection gender + * @property Grid\Column|Collection language + * @property Grid\Column|Collection is_verify * - * @method Grid\Column|Collection agent_id(string $label = null) - * @method Grid\Column|Collection created_at(string $label = null) - * @method Grid\Column|Collection desc(string $label = null) * @method Grid\Column|Collection id(string $label = null) - * @method Grid\Column|Collection name(string $label = null) + * @method Grid\Column|Collection agent_id(string $label = null) * @method Grid\Column|Collection picture(string $label = null) + * @method Grid\Column|Collection name(string $label = null) * @method Grid\Column|Collection tag(string $label = null) + * @method Grid\Column|Collection desc(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 content(string $label = null) - * @method Grid\Column|Collection know(string $label = null) * @method Grid\Column|Collection product_id(string $label = null) - * @method Grid\Column|Collection detail(string $label = null) + * @method Grid\Column|Collection know(string $label = null) + * @method Grid\Column|Collection content(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 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 username(string $label = null) - * @method Grid\Column|Collection display(string $label = null) - * @method Grid\Column|Collection sort(string $label = null) * @method Grid\Column|Collection status(string $label = null) + * @method Grid\Column|Collection sort(string $label = null) * @method Grid\Column|Collection url(string $label = null) + * @method Grid\Column|Collection display(string $label = null) * @method Grid\Column|Collection about(string $label = null) - * @method Grid\Column|Collection buy_protocol(string $label = null) * @method Grid\Column|Collection reg_protocol(string $label = null) - * @method Grid\Column|Collection agent_product_id(string $label = null) + * @method Grid\Column|Collection buy_protocol(string $label = null) * @method Grid\Column|Collection supplier_id(string $label = null) - * @method Grid\Column|Collection category_id(string $label = null) - * @method Grid\Column|Collection channel_id(string $label = null) - * @method Grid\Column|Collection deleted_at(string $label = null) - * @method Grid\Column|Collection guide_id(string $label = null) - * @method Grid\Column|Collection is_rec(string $label = null) - * @method Grid\Column|Collection original_price(string $label = null) - * @method Grid\Column|Collection pictures(string $label = null) - * @method Grid\Column|Collection price(string $label = null) + * @method Grid\Column|Collection agent_product_id(string $label = null) * @method Grid\Column|Collection product_ids(string $label = null) + * @method Grid\Column|Collection price(string $label = null) + * @method Grid\Column|Collection original_price(string $label = null) * @method Grid\Column|Collection sale(string $label = null) * @method Grid\Column|Collection stock(string $label = null) + * @method Grid\Column|Collection channel_id(string $label = null) + * @method Grid\Column|Collection category_id(string $label = null) + * @method Grid\Column|Collection guide_id(string $label = null) * @method Grid\Column|Collection verifier(string $label = null) - * @method Grid\Column|Collection address(string $label = null) + * @method Grid\Column|Collection is_rec(string $label = null) + * @method Grid\Column|Collection pictures(string $label = null) + * @method Grid\Column|Collection deposit(string $label = null) + * @method Grid\Column|Collection deposit_timeout(string $label = null) + * @method Grid\Column|Collection earnest(string $label = null) + * @method Grid\Column|Collection earnest_timeout(string $label = null) + * @method Grid\Column|Collection deleted_at(string $label = null) + * @method Grid\Column|Collection setting(string $label = null) * @method Grid\Column|Collection appid(string $label = null) * @method Grid\Column|Collection appsecret(string $label = null) - * @method Grid\Column|Collection company_name(string $label = null) - * @method Grid\Column|Collection contact_phone(string $label = null) - * @method Grid\Column|Collection director(string $label = null) - * @method Grid\Column|Collection license_pic(string $label = null) - * @method Grid\Column|Collection logo(string $label = null) * @method Grid\Column|Collection mchid(string $label = null) * @method Grid\Column|Collection mchkey(string $label = null) + * @method Grid\Column|Collection company_name(string $label = null) + * @method Grid\Column|Collection logo(string $label = null) + * @method Grid\Column|Collection address(string $label = null) + * @method Grid\Column|Collection license_pic(string $label = null) + * @method Grid\Column|Collection director(string $label = null) + * @method Grid\Column|Collection contact_phone(string $label = null) * @method Grid\Column|Collection rate(string $label = null) * @method Grid\Column|Collection author(string $label = null) * @method Grid\Column|Collection image(string $label = null) + * @method Grid\Column|Collection agent_product_ids(string $label = null) * @method Grid\Column|Collection pid(string $label = null) * @method Grid\Column|Collection template(string $label = null) - * @method Grid\Column|Collection end_at(string $label = null) * @method Grid\Column|Collection start_at(string $label = null) - * @method Grid\Column|Collection bidding_id(string $label = null) - * @method Grid\Column|Collection bidding_user_id(string $label = null) - * @method Grid\Column|Collection bidding_user_type(string $label = null) + * @method Grid\Column|Collection end_at(string $label = null) * @method Grid\Column|Collection comment(string $label = null) * @method Grid\Column|Collection deadline(string $label = null) - * @method Grid\Column|Collection images(string $label = null) - * @method Grid\Column|Collection publisher_id(string $label = null) * @method Grid\Column|Collection publisher_type(string $label = null) + * @method Grid\Column|Collection publisher_id(string $label = null) * @method Grid\Column|Collection state(string $label = null) + * @method Grid\Column|Collection bidding_user_type(string $label = null) + * @method Grid\Column|Collection bidding_user_id(string $label = null) + * @method Grid\Column|Collection bidding_id(string $label = null) + * @method Grid\Column|Collection images(string $label = null) * @method Grid\Column|Collection demand_id(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 photo(string $label = null) - * @method Grid\Column|Collection coupon_id(string $label = null) - * @method Grid\Column|Collection mobile(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_no(string $label = null) - * @method Grid\Column|Collection paid_at(string $label = null) - * @method Grid\Column|Collection paid_money(string $label = null) + * @method Grid\Column|Collection num(string $label = null) + * @method Grid\Column|Collection mobile(string $label = null) * @method Grid\Column|Collection pay_type(string $label = null) + * @method Grid\Column|Collection coupon_id(string $label = null) + * @method Grid\Column|Collection paid_money(string $label = null) + * @method Grid\Column|Collection paid_at(string $label = null) * @method Grid\Column|Collection refund_info(string $label = null) * @method Grid\Column|Collection verify_code(string $label = null) + * @method Grid\Column|Collection timeout(string $label = null) * @method Grid\Column|Collection email(string $label = null) * @method Grid\Column|Collection token(string $label = null) + * @method Grid\Column|Collection verify_mobile(string $label = null) * @method Grid\Column|Collection channels(string $label = null) * @method Grid\Column|Collection money(string $label = null) - * @method Grid\Column|Collection order_id(string $label = null) * @method Grid\Column|Collection transaction_id(string $label = null) - * @method Grid\Column|Collection is_verify(string $label = null) * @method Grid\Column|Collection nickname(string $label = null) * @method Grid\Column|Collection openid(string $label = null) * @method Grid\Column|Collection unionid(string $label = null) + * @method Grid\Column|Collection country(string $label = null) + * @method Grid\Column|Collection province(string $label = null) + * @method Grid\Column|Collection city(string $label = null) + * @method Grid\Column|Collection gender(string $label = null) + * @method Grid\Column|Collection language(string $label = null) + * @method Grid\Column|Collection is_verify(string $label = null) */ class Grid {} class MiniGrid extends Grid {} /** - * @property Show\Field|Collection agent_id - * @property Show\Field|Collection created_at - * @property Show\Field|Collection desc * @property Show\Field|Collection id - * @property Show\Field|Collection name + * @property Show\Field|Collection agent_id * @property Show\Field|Collection picture + * @property Show\Field|Collection name * @property Show\Field|Collection tag + * @property Show\Field|Collection desc + * @property Show\Field|Collection created_at * @property Show\Field|Collection updated_at - * @property Show\Field|Collection content - * @property Show\Field|Collection know * @property Show\Field|Collection product_id - * @property Show\Field|Collection detail + * @property Show\Field|Collection know + * @property Show\Field|Collection content * @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 username * @property Show\Field|Collection password + * @property Show\Field|Collection avatar * @property Show\Field|Collection remember_token - * @property Show\Field|Collection username - * @property Show\Field|Collection display - * @property Show\Field|Collection sort * @property Show\Field|Collection status + * @property Show\Field|Collection sort * @property Show\Field|Collection url + * @property Show\Field|Collection display * @property Show\Field|Collection about - * @property Show\Field|Collection buy_protocol * @property Show\Field|Collection reg_protocol - * @property Show\Field|Collection agent_product_id + * @property Show\Field|Collection buy_protocol * @property Show\Field|Collection supplier_id - * @property Show\Field|Collection category_id - * @property Show\Field|Collection channel_id - * @property Show\Field|Collection deleted_at - * @property Show\Field|Collection guide_id - * @property Show\Field|Collection is_rec - * @property Show\Field|Collection original_price - * @property Show\Field|Collection pictures - * @property Show\Field|Collection price + * @property Show\Field|Collection agent_product_id * @property Show\Field|Collection product_ids + * @property Show\Field|Collection price + * @property Show\Field|Collection original_price * @property Show\Field|Collection sale * @property Show\Field|Collection stock + * @property Show\Field|Collection channel_id + * @property Show\Field|Collection category_id + * @property Show\Field|Collection guide_id * @property Show\Field|Collection verifier - * @property Show\Field|Collection address + * @property Show\Field|Collection is_rec + * @property Show\Field|Collection pictures + * @property Show\Field|Collection deposit + * @property Show\Field|Collection deposit_timeout + * @property Show\Field|Collection earnest + * @property Show\Field|Collection earnest_timeout + * @property Show\Field|Collection deleted_at + * @property Show\Field|Collection setting * @property Show\Field|Collection appid * @property Show\Field|Collection appsecret - * @property Show\Field|Collection company_name - * @property Show\Field|Collection contact_phone - * @property Show\Field|Collection director - * @property Show\Field|Collection license_pic - * @property Show\Field|Collection logo * @property Show\Field|Collection mchid * @property Show\Field|Collection mchkey + * @property Show\Field|Collection company_name + * @property Show\Field|Collection logo + * @property Show\Field|Collection address + * @property Show\Field|Collection license_pic + * @property Show\Field|Collection director + * @property Show\Field|Collection contact_phone * @property Show\Field|Collection rate * @property Show\Field|Collection author * @property Show\Field|Collection image + * @property Show\Field|Collection agent_product_ids * @property Show\Field|Collection pid * @property Show\Field|Collection template - * @property Show\Field|Collection end_at * @property Show\Field|Collection start_at - * @property Show\Field|Collection bidding_id - * @property Show\Field|Collection bidding_user_id - * @property Show\Field|Collection bidding_user_type + * @property Show\Field|Collection end_at * @property Show\Field|Collection comment * @property Show\Field|Collection deadline - * @property Show\Field|Collection images - * @property Show\Field|Collection publisher_id * @property Show\Field|Collection publisher_type + * @property Show\Field|Collection publisher_id * @property Show\Field|Collection state + * @property Show\Field|Collection bidding_user_type + * @property Show\Field|Collection bidding_user_id + * @property Show\Field|Collection bidding_id + * @property Show\Field|Collection images * @property Show\Field|Collection demand_id + * @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 photo - * @property Show\Field|Collection coupon_id - * @property Show\Field|Collection mobile - * @property Show\Field|Collection num + * @property Show\Field|Collection order_id * @property Show\Field|Collection order_no - * @property Show\Field|Collection paid_at - * @property Show\Field|Collection paid_money + * @property Show\Field|Collection num + * @property Show\Field|Collection mobile * @property Show\Field|Collection pay_type + * @property Show\Field|Collection coupon_id + * @property Show\Field|Collection paid_money + * @property Show\Field|Collection paid_at * @property Show\Field|Collection refund_info * @property Show\Field|Collection verify_code + * @property Show\Field|Collection timeout * @property Show\Field|Collection email * @property Show\Field|Collection token + * @property Show\Field|Collection verify_mobile * @property Show\Field|Collection channels * @property Show\Field|Collection money - * @property Show\Field|Collection order_id * @property Show\Field|Collection transaction_id - * @property Show\Field|Collection is_verify * @property Show\Field|Collection nickname * @property Show\Field|Collection openid * @property Show\Field|Collection unionid + * @property Show\Field|Collection country + * @property Show\Field|Collection province + * @property Show\Field|Collection city + * @property Show\Field|Collection gender + * @property Show\Field|Collection language + * @property Show\Field|Collection is_verify * - * @method Show\Field|Collection agent_id(string $label = null) - * @method Show\Field|Collection created_at(string $label = null) - * @method Show\Field|Collection desc(string $label = null) * @method Show\Field|Collection id(string $label = null) - * @method Show\Field|Collection name(string $label = null) + * @method Show\Field|Collection agent_id(string $label = null) * @method Show\Field|Collection picture(string $label = null) + * @method Show\Field|Collection name(string $label = null) * @method Show\Field|Collection tag(string $label = null) + * @method Show\Field|Collection desc(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 content(string $label = null) - * @method Show\Field|Collection know(string $label = null) * @method Show\Field|Collection product_id(string $label = null) - * @method Show\Field|Collection detail(string $label = null) + * @method Show\Field|Collection know(string $label = null) + * @method Show\Field|Collection content(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 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 username(string $label = null) - * @method Show\Field|Collection display(string $label = null) - * @method Show\Field|Collection sort(string $label = null) * @method Show\Field|Collection status(string $label = null) + * @method Show\Field|Collection sort(string $label = null) * @method Show\Field|Collection url(string $label = null) + * @method Show\Field|Collection display(string $label = null) * @method Show\Field|Collection about(string $label = null) - * @method Show\Field|Collection buy_protocol(string $label = null) * @method Show\Field|Collection reg_protocol(string $label = null) - * @method Show\Field|Collection agent_product_id(string $label = null) + * @method Show\Field|Collection buy_protocol(string $label = null) * @method Show\Field|Collection supplier_id(string $label = null) - * @method Show\Field|Collection category_id(string $label = null) - * @method Show\Field|Collection channel_id(string $label = null) - * @method Show\Field|Collection deleted_at(string $label = null) - * @method Show\Field|Collection guide_id(string $label = null) - * @method Show\Field|Collection is_rec(string $label = null) - * @method Show\Field|Collection original_price(string $label = null) - * @method Show\Field|Collection pictures(string $label = null) - * @method Show\Field|Collection price(string $label = null) + * @method Show\Field|Collection agent_product_id(string $label = null) * @method Show\Field|Collection product_ids(string $label = null) + * @method Show\Field|Collection price(string $label = null) + * @method Show\Field|Collection original_price(string $label = null) * @method Show\Field|Collection sale(string $label = null) * @method Show\Field|Collection stock(string $label = null) + * @method Show\Field|Collection channel_id(string $label = null) + * @method Show\Field|Collection category_id(string $label = null) + * @method Show\Field|Collection guide_id(string $label = null) * @method Show\Field|Collection verifier(string $label = null) - * @method Show\Field|Collection address(string $label = null) + * @method Show\Field|Collection is_rec(string $label = null) + * @method Show\Field|Collection pictures(string $label = null) + * @method Show\Field|Collection deposit(string $label = null) + * @method Show\Field|Collection deposit_timeout(string $label = null) + * @method Show\Field|Collection earnest(string $label = null) + * @method Show\Field|Collection earnest_timeout(string $label = null) + * @method Show\Field|Collection deleted_at(string $label = null) + * @method Show\Field|Collection setting(string $label = null) * @method Show\Field|Collection appid(string $label = null) * @method Show\Field|Collection appsecret(string $label = null) - * @method Show\Field|Collection company_name(string $label = null) - * @method Show\Field|Collection contact_phone(string $label = null) - * @method Show\Field|Collection director(string $label = null) - * @method Show\Field|Collection license_pic(string $label = null) - * @method Show\Field|Collection logo(string $label = null) * @method Show\Field|Collection mchid(string $label = null) * @method Show\Field|Collection mchkey(string $label = null) + * @method Show\Field|Collection company_name(string $label = null) + * @method Show\Field|Collection logo(string $label = null) + * @method Show\Field|Collection address(string $label = null) + * @method Show\Field|Collection license_pic(string $label = null) + * @method Show\Field|Collection director(string $label = null) + * @method Show\Field|Collection contact_phone(string $label = null) * @method Show\Field|Collection rate(string $label = null) * @method Show\Field|Collection author(string $label = null) * @method Show\Field|Collection image(string $label = null) + * @method Show\Field|Collection agent_product_ids(string $label = null) * @method Show\Field|Collection pid(string $label = null) * @method Show\Field|Collection template(string $label = null) - * @method Show\Field|Collection end_at(string $label = null) * @method Show\Field|Collection start_at(string $label = null) - * @method Show\Field|Collection bidding_id(string $label = null) - * @method Show\Field|Collection bidding_user_id(string $label = null) - * @method Show\Field|Collection bidding_user_type(string $label = null) + * @method Show\Field|Collection end_at(string $label = null) * @method Show\Field|Collection comment(string $label = null) * @method Show\Field|Collection deadline(string $label = null) - * @method Show\Field|Collection images(string $label = null) - * @method Show\Field|Collection publisher_id(string $label = null) * @method Show\Field|Collection publisher_type(string $label = null) + * @method Show\Field|Collection publisher_id(string $label = null) * @method Show\Field|Collection state(string $label = null) + * @method Show\Field|Collection bidding_user_type(string $label = null) + * @method Show\Field|Collection bidding_user_id(string $label = null) + * @method Show\Field|Collection bidding_id(string $label = null) + * @method Show\Field|Collection images(string $label = null) * @method Show\Field|Collection demand_id(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 photo(string $label = null) - * @method Show\Field|Collection coupon_id(string $label = null) - * @method Show\Field|Collection mobile(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_no(string $label = null) - * @method Show\Field|Collection paid_at(string $label = null) - * @method Show\Field|Collection paid_money(string $label = null) + * @method Show\Field|Collection num(string $label = null) + * @method Show\Field|Collection mobile(string $label = null) * @method Show\Field|Collection pay_type(string $label = null) + * @method Show\Field|Collection coupon_id(string $label = null) + * @method Show\Field|Collection paid_money(string $label = null) + * @method Show\Field|Collection paid_at(string $label = null) * @method Show\Field|Collection refund_info(string $label = null) * @method Show\Field|Collection verify_code(string $label = null) + * @method Show\Field|Collection timeout(string $label = null) * @method Show\Field|Collection email(string $label = null) * @method Show\Field|Collection token(string $label = null) + * @method Show\Field|Collection verify_mobile(string $label = null) * @method Show\Field|Collection channels(string $label = null) * @method Show\Field|Collection money(string $label = null) - * @method Show\Field|Collection order_id(string $label = null) * @method Show\Field|Collection transaction_id(string $label = null) - * @method Show\Field|Collection is_verify(string $label = null) * @method Show\Field|Collection nickname(string $label = null) * @method Show\Field|Collection openid(string $label = null) * @method Show\Field|Collection unionid(string $label = null) + * @method Show\Field|Collection country(string $label = null) + * @method Show\Field|Collection province(string $label = null) + * @method Show\Field|Collection city(string $label = null) + * @method Show\Field|Collection gender(string $label = null) + * @method Show\Field|Collection language(string $label = null) + * @method Show\Field|Collection is_verify(string $label = null) */ class Show {} diff --git a/resources/lang/zh_CN/agent-product.php b/resources/lang/zh_CN/agent-product.php index 28ab890..77541ec 100644 --- a/resources/lang/zh_CN/agent-product.php +++ b/resources/lang/zh_CN/agent-product.php @@ -21,11 +21,14 @@ return [ 'know' => '旅游须知', 'pictures' => '产品图片', 'picture' => '产品图片', + 'guide_id' => '地接ID', 'earnest' => '定金', 'earnest_timeout' => '定金超时时间', 'deposit' => '订金', 'deposit_timeout' => '订金超时时间', 'product' => trans('product.fields'), + 'agent' => trans('agent.fields'), + 'guide' => trans('guide.fields'), ], 'options' => [ ], From 4a33c2fc0cb6c36af04f799a5aed85c10b1f516c Mon Sep 17 00:00:00 2001 From: liapples Date: Thu, 2 Sep 2021 15:53:38 +0800 Subject: [PATCH 5/5] =?UTF-8?q?`order=5Fproduct=5Fitems`=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?num=E5=92=8Cprice=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MySQL_change.sql | 5 +++++ app/Http/Controllers/Api/OrderController.php | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/MySQL_change.sql b/MySQL_change.sql index 0175fdf..5a3a75e 100644 --- a/MySQL_change.sql +++ b/MySQL_change.sql @@ -236,3 +236,8 @@ CREATE TABLE `order_product_items` ( COMMENT='订单对应产品表' COLLATE='utf8_general_ci' ENGINE=InnoDB; + +# 15:44 2021/9/2 +ALTER TABLE `order_product_items` + ADD COLUMN `num` INT(10) NOT NULL COMMENT '购买数量' AFTER `product_id`, + ADD COLUMN `price` DECIMAL(20,2) NOT NULL COMMENT '销售价格' AFTER `num`; diff --git a/app/Http/Controllers/Api/OrderController.php b/app/Http/Controllers/Api/OrderController.php index 1535817..18be8cc 100644 --- a/app/Http/Controllers/Api/OrderController.php +++ b/app/Http/Controllers/Api/OrderController.php @@ -204,18 +204,18 @@ class OrderController extends Controller //存入订单产品表 $supplier_product_info = Product::whereIn('id', $product_ids) - ->orderBy('id')->get(['id AS product_id', 'supplier_id'])->toArray(); + ->orderBy('id')->get(['id AS product_id', 'supplier_id', 'price'])->toArray(); $order_id = $order->id; $agent_id = $this->agent_id; $agent_product_id = $ap->id; - $supplier_product_info = array_map(function ($v) use($order_id, $agent_id, $agent_product_id) { + foreach ($supplier_product_info as &$v) { $v['order_id'] = $order_id; $v['agent_id'] = $agent_id; $v['agent_product_id'] = $agent_product_id; - return $v; - }, $supplier_product_info); + $v['num'] = $formData['num']; + } OrderProductItem::insert($supplier_product_info); DB::commit();