From b41b6aa57fa1ebd736a4ba8830e1dd4a42d86908 Mon Sep 17 00:00:00 2001 From: twinh Date: Tue, 6 Jun 2023 23:16:43 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=A0=A1=E9=AA=8C=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E6=94=BE=E5=88=B0=20`validate`=20=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/admin-api/logistics-addresses/[id].php | 2 +- pages/admin-api/shipping-tpls/[id].php | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pages/admin-api/logistics-addresses/[id].php b/pages/admin-api/logistics-addresses/[id].php index a5dd79f..bd6b54c 100644 --- a/pages/admin-api/logistics-addresses/[id].php +++ b/pages/admin-api/logistics-addresses/[id].php @@ -25,7 +25,7 @@ public function get() public function patch() { return UpdateAction::new() - ->beforeSave(function (LogisticsAddressModel $address, $req) { + ->validate(function (LogisticsAddressModel $address, $req) { $v = V::defaultOptional(); $v->setModel($address); $v->modelColumn('name', '联系人姓名')->required($address->isNew())->notBlank(); diff --git a/pages/admin-api/shipping-tpls/[id].php b/pages/admin-api/shipping-tpls/[id].php index 3a63841..b165e0b 100644 --- a/pages/admin-api/shipping-tpls/[id].php +++ b/pages/admin-api/shipping-tpls/[id].php @@ -4,6 +4,7 @@ use Miaoxing\Plugin\BaseController; use Miaoxing\Services\Page\ItemTrait; use Miaoxing\Services\Service\UpdateAction; +use Wei\Req; use Wei\V; return new class () extends BaseController { @@ -16,15 +17,13 @@ public function patch() { return UpdateAction::new() - ->beforeSave(function (ShippingTplModel $shippingTpl, $req) { - $shippingTpl->serviceIds = array_filter(array_unique(array_column((array) $req['rules'], 'serviceId'))); - + ->validate(function (ShippingTplModel $shippingTpl, $req) { $v = V::defaultOptional(); $v->setModel($shippingTpl); $v->modelColumn('name', '名称')->required($shippingTpl->isNew())->notBlank(); $v->modelColumn('isFreeShipping', '是否包邮'); $v->inConst('valuationType', '计价方式', ShippingTplModel::class, 'VALUATION_TYPE'); - $v->array('rules', '运费规则')->required($this->isRulesRequired($shippingTpl))->each(function (V $v) { + $v->array('rules', '运费规则')->required($this->isRulesRequired($shippingTpl, $req))->each(function (V $v) { $isDefault = $v->getData()['isDefault'] ?? false; $v->uDefaultInt('serviceId', '服务编号'); $v->array('regionIds', '地区', $isDefault ? null : 1)->required(!$isDefault); @@ -36,6 +35,9 @@ public function patch() $v->modelColumn('sort', '顺序'); return $v->check($req); }) + ->beforeSave(function (ShippingTplModel $shippingTpl, $req) { + $shippingTpl->serviceIds = array_filter(array_unique(array_column((array) $req['rules'], 'serviceId'))); + }) ->afterSave(function (ShippingTplModel $shippingTpl, $req) { if ($req['rules']) { $shippingTpl->rules()->saveRelation($req['rules']); @@ -44,10 +46,10 @@ public function patch() ->exec($this); } - private function isRulesRequired(ShippingTplModel $shippingTpl): bool + private function isRulesRequired(ShippingTplModel $shippingTpl, Req $req): bool { // 包邮时总是可以不传规则 - if ($shippingTpl->isFreeShipping) { + if ($req['isFreeShipping']) { return false; }