From d9406c5455904cf84c91aea6e9a4013e1c94352f Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Thu, 2 Apr 2026 18:09:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8B=20=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Manager/OrdersController.php | 12 ++++++++-- app/Models/Recharge.php | 6 ++++- app/Models/Refund.php | 22 ++++++++++++++++++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Manager/OrdersController.php b/app/Http/Controllers/Manager/OrdersController.php index 122730f..1fb2b8b 100644 --- a/app/Http/Controllers/Manager/OrdersController.php +++ b/app/Http/Controllers/Manager/OrdersController.php @@ -1673,7 +1673,7 @@ class OrdersController extends CommonController * description="现金或pos刷卡充值", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Parameter(name="id", in="path", @OA\Schema(type="integer"), required=true, description="订单id"), - * @OA\Parameter(name="payment", in="query", @OA\Schema(type="string"), required=true, description="枚举:pos=>pos机刷卡支付, cash=>现金支付"), + * @OA\Parameter(name="payment", in="query", @OA\Schema(type="string"), required=true, description="枚举:pos=>刷卡支付, cash=>现金支付, offline_pos=>线下POS收款, offline_cash=>线下现金收款, offline_qrcode=>线下二维码收款, transfer=>转账"), * @OA\Parameter(name="money", in="query", @OA\Schema(type="number"), required=true, description="金额,非负数"), * @OA\Parameter(name="remark", in="query", @OA\Schema(type="string"), required=false, description="备注信息:现金支付时可以忽略;刷卡支付时,填入回单号或卡号以便财务对账"), * @OA\Response( @@ -1707,6 +1707,10 @@ class OrdersController extends CommonController switch (request()->payment) { case "pos": case "cash": + case "offline_pos": + case "offline_cash": + case "offline_qrcode": + case "transfer": $recharge["remark"] = request()->remark; break; default: @@ -1754,7 +1758,7 @@ class OrdersController extends CommonController * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Parameter(name="id", in="path", @OA\Schema(type="integer"), required=true, description="订单id"), * @OA\Parameter(name="money", in="query", @OA\Schema(type="number"), required=true, description="金额,非负数"), - * @OA\Parameter(name="payment", in="query", @OA\Schema(type="string"), required=true, description="退款方式:枚举cash,weixin,alipay。注意可用的退款方式从支付明细或结单时的交互反馈得出,随意提交金额可能会造成问题"), + * @OA\Parameter(name="payment", in="query", @OA\Schema(type="string"), required=true, description="退款方式:枚举cash,pos,offline_cash,offline_pos,offline_qrcode,transfer,weixin,alipay。注意可用的退款方式从支付明细或结单时的交互反馈得出,随意提交金额可能会造成问题"), * @OA\Parameter(name="recharge_id", in="query", @OA\Schema(type="integer"), required=false, description="相关在线支付的id,用于原路返回。退款方式为weixin或alipay时,必须给出"), * @OA\Parameter(name="remark", in="query", @OA\Schema(type="string"), required=false, description="备注信息"), * @OA\Response( @@ -1780,6 +1784,10 @@ class OrdersController extends CommonController switch (request()->payment) { case "cash": case "pos": + case "offline_cash": + case "offline_pos": + case "offline_qrcode": + case "transfer": $refund["payment"] = request()->payment; $refund["paid_at"] = date("Y-m-d H:i:s"); break; diff --git a/app/Models/Recharge.php b/app/Models/Recharge.php index 5914f5b..8ab9dbf 100755 --- a/app/Models/Recharge.php +++ b/app/Models/Recharge.php @@ -13,7 +13,11 @@ class Recharge extends SoftDeletesModel "cash" => "现金", "weixin" => "微信", "alipay" => "支付宝", - "pos" => "POS机" + "pos" => "POS机", + "offline_pos" => "线下POS", + "offline_cash" => "线下现金", + "offline_qrcode" => "线下二维码", + "transfer" => "转账" ]; public $payment_online_methods = [ "weixin" => "微信", diff --git a/app/Models/Refund.php b/app/Models/Refund.php index 0dbf904..3a938bb 100755 --- a/app/Models/Refund.php +++ b/app/Models/Refund.php @@ -25,6 +25,21 @@ class Refund extends SoftDeletesModel case "cash": $payment_label = "现金"; break; + case "pos": + $payment_label = "POS机"; + break; + case "offline_cash": + $payment_label = "线下现金"; + break; + case "offline_pos": + $payment_label = "线下POS"; + break; + case "offline_qrcode": + $payment_label = "线下二维码"; + break; + case "transfer": + $payment_label = "转账"; + break; } return $payment_label; } @@ -70,7 +85,12 @@ class Refund extends SoftDeletesModel public function autoRefund() { $threshold = 5; - $refunds = $this->with("relatedRecharge")->whereNull("paid_at")->where("payment", "<>", "cash")->where("try_times", "<", $this->tryTimes)->limit($threshold)->get(); + $refunds = $this->with("relatedRecharge") + ->whereNull("paid_at") + ->whereIn("payment", ["weixin", "alipay"]) + ->where("try_times", "<", $this->tryTimes) + ->limit($threshold) + ->get(); foreach ($refunds as $refund) { switch ($refund->relatedRecharge->payment) {