From b3243283a3c5536e2c10500fc4aa2fb211937843 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Tue, 14 Nov 2023 10:10:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8E=92=E5=BA=8F=E9=94=99=E8=AF=AF=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=BD=93=E5=89=8D=E7=A7=AF=E5=88=86=E9=A2=9D=E5=BA=A6?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E4=B8=8E=E4=B8=8A=E4=B8=80=E6=9D=A1=E5=AF=B9?= =?UTF-8?q?=E4=B8=8D=E4=B8=8A=E7=9A=84=E9=97=AE=E9=A2=98=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=EF=BC=9A=E9=80=80=E6=AC=BE=E6=97=B6=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=80=80=E8=BF=98=E8=B5=A0=E9=80=81=E7=A7=AF=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/StoreRefundOrderRepository.php | 31 ++++++++++++++++--- .../repositories/user/UserBillRepository.php | 2 +- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/app/common/repositories/store/order/StoreRefundOrderRepository.php b/app/common/repositories/store/order/StoreRefundOrderRepository.php index d43eabf..d497d0c 100644 --- a/app/common/repositories/store/order/StoreRefundOrderRepository.php +++ b/app/common/repositories/store/order/StoreRefundOrderRepository.php @@ -1182,7 +1182,30 @@ class StoreRefundOrderRepository extends BaseRepository { if ($refundOrder->refund_price > 0 && $refundOrder->order->pay_price > 0) { $userBillRepository = app()->make(UserBillRepository::class); - $bill = $userBillRepository->getWhere(['category' => 'integral', 'type' => 'lock', 'link_id' => $refundOrder->order->group_order_id]); + $bill = $userBillRepository->getWhere(['category' => 'integral', 'type' => 'lock', 'link_id' => $refundOrder->order_id]);// 获取积分赠送记录 + if ($bill) { + // 计算扣除的积分 + if ($refundOrder->order->status == -1) $number = bcsub($bill->number, $userBillRepository->refundIntegral($refundOrder->order_id, $bill->uid), 0); + else $number = ($refundOrder['refund_price'] / $refundOrder->order->pay_price) * $refundOrder->order->give_integral; + if ($number <= 0) return; + // 修改用户持有的总积分 + $make = app()->make(UserRepository::class); + $make->update($refundOrder->uid, ['integral' => Db::raw('integral-' . $number)]); + $userIntegral = $make->get($refundOrder->uid)->integral; + // 添加记录 + $userBillRepository->decBill($bill->uid, 'integral', 'refund_lock', [ + 'link_id' => $refundOrder->order_id, + 'status' => 1, + 'title' => '扣除赠送积分', + 'number' => $number, + 'mark' => '订单退款扣除赠送商户积分' . intval($number), + 'balance' => $userIntegral + ]); + // 赠送的都是商户积分 这里也要退商户积分 + app()->make(IntegralRepository::class)->changeIntegral((int)$refundOrder->uid,(int)$refundOrder->mer_id,(float)sprintf('%.2f',0 - $number)); + } + + /*$bill = $userBillRepository->getWhere(['category' => 'integral', 'type' => 'lock', 'link_id' => $refundOrder->order->group_order_id]); if ($bill && $bill->status != 1) { if ($refundOrder->order->status == -1) { @@ -1201,7 +1224,7 @@ class StoreRefundOrderRepository extends BaseRepository 'mark' => '订单退款扣除赠送积分' . intval($number), 'balance' => $refundOrder->user->integral ]); - } + }*/ } } @@ -1332,11 +1355,11 @@ class StoreRefundOrderRepository extends BaseRepository if((float)$refundOrder->order->use_mer_integral > 0){ // 使用的商户积分 app()->make(IntegralRepository::class)->changeIntegral((int)$refundOrder->uid,(int)$refundOrder->mer_id,(float)sprintf('%.2f',$refundOrder->integral)); - $mark = '订单退款,返还' . intval($refundOrder->integral) . '商户积分'; + $mark = '订单退款,返还积分抵扣使用的' . intval($refundOrder->integral) . '商户积分'; }else{ // 使用的平台积分 app()->make(IntegralRepository::class)->changeIntegral((int)$refundOrder->uid,(int)0,(float)sprintf('%.2f',$refundOrder->integral)); - $mark = '订单退款,返还' . intval($refundOrder->integral) . '平台积分'; + $mark = '订单退款,返还积分抵扣使用的' . intval($refundOrder->integral) . '平台积分'; } diff --git a/app/common/repositories/user/UserBillRepository.php b/app/common/repositories/user/UserBillRepository.php index 9227e57..c853472 100644 --- a/app/common/repositories/user/UserBillRepository.php +++ b/app/common/repositories/user/UserBillRepository.php @@ -96,7 +96,7 @@ class UserBillRepository extends BaseRepository public function getList($where, $page, $limit) { - $query = $this->dao->searchJoin($where)->order('a.create_time DESC'); + $query = $this->dao->searchJoin($where)->order('a.create_time DESC')->order('a.bill_id DESC'); $count = $query->count(); $list = $query->page($page, $limit)->select(); return compact('count', 'list');