From b05c228d4a1b1f1a6addfef6dfce7a689a3bc07a Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Wed, 26 Aug 2020 19:45:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=A1=E9=AA=8C=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/OrderController.php | 6 +++-- app/Request/OnlineCancelRequest.php | 40 +++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 app/Request/OnlineCancelRequest.php diff --git a/app/Controller/OrderController.php b/app/Controller/OrderController.php index 0af4184..5aa7160 100644 --- a/app/Controller/OrderController.php +++ b/app/Controller/OrderController.php @@ -7,6 +7,7 @@ use App\Constants\LogLabel; use App\Model\OrderMain; use App\Request\OrderOfflineRequest; use App\Request\OrderOnlineRequest; +use App\Request\OnlineCancelRequest; use App\Request\UserOrdersRequest; use App\Service\SeparateAccountsServiceInterface; use Hyperf\DbConnection\Db; @@ -101,9 +102,10 @@ class OrderController extends BaseController /** * 用户取消订单 + * @param OnlineCancelRequest $request */ - public function onlineCancel(){ - $orderId = $this->request->input('order_id'); + public function onlineCancel(OnlineCancelRequest $request){ + $orderId = $request->input('order_id'); $orderMain = OrderMain::where('id',$orderId) ->select('global_order_id') ->first(); diff --git a/app/Request/OnlineCancelRequest.php b/app/Request/OnlineCancelRequest.php new file mode 100644 index 0000000..5cea6d8 --- /dev/null +++ b/app/Request/OnlineCancelRequest.php @@ -0,0 +1,40 @@ + 'required|nonempty|integer|exists:ims_cjdc_order_main,id', + ]; + } + + public function messages(): array + { + return [ + 'order_id.*' => ':attribute信息不正确', + ]; + } + + public function attributes(): array + { + return [ + 'order_id' => '订单号', + ]; + } +} From d95945d27f2cbed7b9761c47b741a8429277e972 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Wed, 26 Aug 2020 21:17:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=A2=E5=8D=95=20?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=20=E7=89=B9=E4=BB=B7=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E8=B6=85=E8=BF=87=E4=B8=80=E4=B8=AA=E6=8B=A6?= =?UTF-8?q?=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/PurchaseLimitController.php | 2 +- app/Service/OrderService.php | 6 ++++++ app/Service/PurchaseLimitService.php | 14 ++++++++++++++ app/Service/PurchaseLimitServiceInterface.php | 2 ++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/Controller/PurchaseLimitController.php b/app/Controller/PurchaseLimitController.php index 32fca1f..4e9e3fe 100644 --- a/app/Controller/PurchaseLimitController.php +++ b/app/Controller/PurchaseLimitController.php @@ -36,7 +36,7 @@ class PurchaseLimitController extends BaseController public function test() { - $res = $this->purchaseLimitService->test($this->request->all()); + $res = $this->purchaseLimitService->PurchaseLimit($this->request->input('global_order_id')); return $this->success($res); } diff --git a/app/Service/OrderService.php b/app/Service/OrderService.php index 3b0e76a..a02634e 100644 --- a/app/Service/OrderService.php +++ b/app/Service/OrderService.php @@ -300,6 +300,12 @@ class OrderService implements OrderServiceInterface Db::rollBack(); return '订单商品异常'; } + //判断是否有购买多个特价商品 + $result = $this->purchaseLimitService->PurchaseLimit($orderGoods); + if(!$result){ + Db::rollBack(); + return '同一个订单不能购买多个特价商品'; + } //判断是否有购买特价商品 $this->purchaseLimitService->ssdbPurchaseRecord($orderGoods,$data['user_id'],$dataMain['global_order_id']); diff --git a/app/Service/PurchaseLimitService.php b/app/Service/PurchaseLimitService.php index 3c10a5a..cfb41ef 100644 --- a/app/Service/PurchaseLimitService.php +++ b/app/Service/PurchaseLimitService.php @@ -78,6 +78,20 @@ class PurchaseLimitService implements PurchaseLimitServiceInterface return true; } + public function PurchaseLimit($orderGoods) + { + foreach ($orderGoods as $goods){ + $sum = 0; + if($goods['money'] == 0.01){ + if($sum > 0){ + return false; + } + $sum++; + } + } + return true; + } + public function test($params) { $ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); diff --git a/app/Service/PurchaseLimitServiceInterface.php b/app/Service/PurchaseLimitServiceInterface.php index f5e415b..da0f536 100644 --- a/app/Service/PurchaseLimitServiceInterface.php +++ b/app/Service/PurchaseLimitServiceInterface.php @@ -12,5 +12,7 @@ interface PurchaseLimitServiceInterface public function delSsdbPurchaseRecord($global_order_id); + public function PurchaseLimit($orderGoods); + public function test($params); } \ No newline at end of file