From 7e2abd7dc0cd36ab85bd2e9a3db525cd117d279c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=AF=E7=AB=8B?= Date: Thu, 25 Mar 2021 15:03:02 +0800 Subject: [PATCH] Update OrderService.php --- app/data/service/OrderService.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/app/data/service/OrderService.php b/app/data/service/OrderService.php index 8f6f73ab8..d02239139 100644 --- a/app/data/service/OrderService.php +++ b/app/data/service/OrderService.php @@ -97,17 +97,22 @@ class OrderService extends Service /** * 获取级别折扣比例 - * @param integer $disId 折扣方案ID - * @param integer $vipCode 等级序号 + * @param int $disId 折扣方案ID + * @param int $vipCode 等级序号 + * @param float $disRate 折扣比例 * @return array [方案ID, 等级序号] */ - public function discount(int $disId, int $vipCode): array + public function discount(int $disId, int $vipCode, float $disRate = 100.00): array { - [$map, $rate] = ['id' => $disId, ['status' => 1, 'deleted' => 0], 100.00]; - if ($disId > 0 && ($discount = $this->app->db->name('DataUserDiscount')->where($map)->value('items'))) { - foreach (json_decode($discount, true) as $vo) if ($vo['level'] == $vipCode) $rate = round($vo['discount']); + if ($disId > 0) { + $map = ['id' => $disId, 'status' => 1, 'deleted' => 0]; + $discount = $this->app->db->name('DataUserDiscount')->where($map)->value('items'); + $disitems = json_decode($discount ?: '[]', true) ?: []; + if (is_array($disitems) && count($disitems) > 0) foreach ($disitems as $vo) { + if ($vo['level'] == $vipCode) $disRate = round($vo['discount']); + } } - return [$disId, $rate]; + return [$disId, $disRate]; } /**