From 6041ab67ba4da331692f43d82f867f2efa8b7110 Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Tue, 26 Sep 2023 14:07:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BF=9D=E8=AF=81=E9=87=91?= =?UTF-8?q?=E7=BC=B4=E7=BA=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/store/merchant/Merchant.php | 15 +++++++++++++-- app/listener/paySuccessMargin.php | 11 +++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/controller/api/store/merchant/Merchant.php b/app/controller/api/store/merchant/Merchant.php index 1539d9fd..4040929a 100644 --- a/app/controller/api/store/merchant/Merchant.php +++ b/app/controller/api/store/merchant/Merchant.php @@ -262,10 +262,21 @@ class Merchant extends BaseController { $id = $this->request->param('id'); if(empty($id)){ + return app('json')->fail('参数不能为空'); + } + $merchantInfo = Db::name('merchant')->where('mer_id',$id)->field('uid,mer_id,type_id,mer_name,margin,paid_margin,is_margin,first_margin_status')->find(); + if(empty($merchantInfo)){ return app('json')->fail('参数错误'); } - $data = Db::name('merchant')->where('mer_id',$id)->field('uid,mer_id,mer_name,margin,paid_margin,is_margin')->find(); - return app('json')->success($data); + $merchantTypeInfo = Db::name('merchant_type')->where('mer_type_id', $merchantInfo['type_id'])->find(); + if ($merchantTypeInfo['first_margin'] > 0) { + if ($merchantInfo['first_margin_status']) { + $merchantInfo['margin'] = bcsub($merchantInfo['margin'], $merchantTypeInfo['first_margin'], 2); + } else { + $merchantInfo['margin'] = $merchantTypeInfo['first_margin']; + } + } + return app('json')->success($merchantInfo); } public function apply($merId){ diff --git a/app/listener/paySuccessMargin.php b/app/listener/paySuccessMargin.php index 1980fc0e..f80812cd 100644 --- a/app/listener/paySuccessMargin.php +++ b/app/listener/paySuccessMargin.php @@ -22,6 +22,7 @@ class paySuccessMargin 'pay_time' => date('Y-m-d H:i:s') ]); $merchantInfo = Db::name('merchant')->where('mer_id', $marginInfo['mer_id'] ?? 0)->where('uid', $marginInfo['uid'] ?? 0)->find(); + $paidMarginAmount = (float)$merchantInfo['paid_margin'] + (float)$marginInfo['total_price']; Db::name('merchant')->where('mer_id', $marginInfo['mer_id'] ?? 0)->where('uid', $marginInfo['uid'] ?? 0)->update([ 'paid_margin' => $paidMarginAmount @@ -30,6 +31,16 @@ class paySuccessMargin Db::name('merchant')->where('mer_id', $marginInfo['mer_id'] ?? 0)->where('uid', $marginInfo['uid'] ?? 0)->update([ 'margin' => $marginAmount ]); + + $merchantTypeInfo = Db::name('merchant_type')->where('mer_type_id', $merchantInfo['type_id'])->find(); + if ($merchantTypeInfo['first_margin'] > 0) { + if (!$merchantInfo['first_margin_status'] && ($marginInfo['total_price'] <= $merchantInfo['first_margin'])) { + Db::name('merchant')->where('mer_id', $marginInfo['mer_id'] ?? 0)->where('uid', $marginInfo['uid'] ?? 0)->update([ + 'first_margin_status' => 1 + ]); + } + } + if ($marginAmount <= 0) { Db::name('merchant')->where('mer_id', $marginInfo['mer_id'] ?? 0)->where('uid', $marginInfo['uid'] ?? 0)->update([ 'is_margin' => 10