Browse Source

取消售后报错,售后状态重整

lizhen_gitee 3 months ago
parent
commit
a62798ab02

+ 12 - 3
addons/shopro/controller/order/Aftersale.php

@@ -256,6 +256,10 @@ class Aftersale extends Common
         if (!$aftersale) {
             $this->error('售后单不存在或不可取消');
         }
+        if ($aftersale['refund_status'] != AftersaleModel::REFUND_STATUS_NOREFUND) {
+            //已经退款
+            $this->error('退款商品已退款');
+        }
 
         $order = OrderModel::where('user_id', $user->id)->find($aftersale['order_id']);
         if (!$order) {
@@ -263,9 +267,14 @@ class Aftersale extends Common
         }
 
         $orderItem = OrderItemModel::find($aftersale['order_item_id']);
-        if (!$orderItem || in_array($orderItem['refund_status'], [OrderItemModel::REFUND_STATUS_AGREE, OrderItemModel::REFUND_STATUS_COMPLETED])) {
-            // 不存在, 或者已经退款
-            $this->error('退款商品不存在或已退款');
+        if (!$orderItem) {
+            // 不存在
+            $this->error('退款商品不存在');
+        }
+        //这里用了两个状态,因为shopro也搞不清是哪个
+        if (in_array($orderItem['refund_status'], [OrderItemModel::REFUND_STATUS_AGREE, OrderItemModel::REFUND_STATUS_COMPLETED])) {
+            //已经退款
+            $this->error('退款商品已退款');
         }
 
         $aftersale = Db::transaction(function () use ($aftersale, $order, $orderItem, $user) {

+ 9 - 6
application/admin/controller/shopro/order/Aftersale.php

@@ -143,7 +143,7 @@ class Aftersale extends Common
                 'images' => []
             ]);
 
-            $orderItem->aftersale_status = OrderItemModel::AFTERSALE_STATUS_COMPLETED;
+            $orderItem->aftersale_status = OrderItemModel::AFTERSALE_STATUS_COMPLETED; // 售后完成
             $orderItem->save();
             OrderActionModel::add($order, $orderItem, $admin, 'admin', '管理员完成售后');
 
@@ -176,7 +176,7 @@ class Aftersale extends Common
         }
 
         $aftersale = Db::transaction(function () use ($aftersale, $order, $orderItem, $admin) {
-            $aftersale->aftersale_status = OrderAftersaleModel::AFTERSALE_STATUS_ING;    // 售后完成
+            $aftersale->aftersale_status = OrderAftersaleModel::AFTERSALE_STATUS_ING;    // 同意并进行中
             $aftersale->save();
             // 增加售后单变动记录、
             OrderAftersaleLogModel::add($order, $aftersale, $admin, 'admin', [
@@ -186,7 +186,7 @@ class Aftersale extends Common
             ]);
 
             //本来就是这个值
-            $orderItem->aftersale_status = OrderItemModel::AFTERSALE_STATUS_ING;
+            $orderItem->aftersale_status = OrderItemModel::AFTERSALE_STATUS_ING; // 同意并进行中
             $orderItem->save();
             OrderActionModel::add($order, $orderItem, $admin, 'admin', '管理员同意售后');
 
@@ -225,6 +225,7 @@ class Aftersale extends Common
 
         $aftersale = Db::transaction(function () use ($aftersale, $order, $orderItem, $params, $admin) {
             $aftersale->aftersale_status = OrderAftersaleModel::AFTERSALE_STATUS_REFUSE;    // 售后拒绝
+//            $aftersale->refund_status = OrderAftersaleModel::REFUND_STATUS_NOREFUND;    // 未退款
             $aftersale->save();
             // 增加售后单变动记录
             OrderAftersaleLogModel::add($order, $aftersale, $admin, 'admin', [
@@ -233,6 +234,7 @@ class Aftersale extends Common
                 'images' => []
             ]);
 
+//            $orderItem->refund_status = OrderItemModel::REFUND_STATUS_NOREFUND;    // 未退款
             $orderItem->aftersale_status = OrderItemModel::AFTERSALE_STATUS_REFUSE;    // 拒绝售后
             $orderItem->save();
 
@@ -300,8 +302,8 @@ class Aftersale extends Common
         }
 
         $aftersale = Db::transaction(function () use ($aftersale, $order, $orderItem, $refund_money, $refund_type, $refund_surplus_money, $admin) {
-            $aftersale->aftersale_status = OrderAftersaleModel::AFTERSALE_STATUS_COMPLETED;    // 售后同意
-            $aftersale->refund_status = OrderAftersaleModel::REFUND_STATUS_AGREE;    // 同意退款
+            $aftersale->aftersale_status = OrderAftersaleModel::AFTERSALE_STATUS_COMPLETED;    // 售后完成
+            $aftersale->refund_status = OrderAftersaleModel::REFUND_STATUS_AGREE;    // 退款
             $aftersale->refund_fee = $refund_money;     // 退款金额
             $aftersale->save();
 
@@ -312,7 +314,8 @@ class Aftersale extends Common
                 'images' => []
             ]);
 
-            $orderItem->aftersale_status = OrderItemModel::AFTERSALE_STATUS_COMPLETED;
+            $orderItem->aftersale_status = OrderItemModel::AFTERSALE_STATUS_COMPLETED;// 售后完成
+            $orderItem->refund_status = OrderItemModel::REFUND_STATUS_COMPLETED;// 退款完成
             $orderItem->save();
             OrderActionModel::add($order, $orderItem, $admin, 'admin', '管理员同意售后退款');
 

+ 2 - 2
application/admin/model/shopro/order/Aftersale.php

@@ -53,13 +53,13 @@ class Aftersale extends Common
     const AFTERSALE_STATUS_CANCEL = -2;       // 已取消
     const AFTERSALE_STATUS_REFUSE = -1;       // 拒绝
     const AFTERSALE_STATUS_NOOPER = 0;       // 未处理
-    const AFTERSALE_STATUS_ING = 1;       // 同意并处理
+    const AFTERSALE_STATUS_ING = 1;       // 同意并售后
     const AFTERSALE_STATUS_COMPLETED = 2;        // 售后完成
 
 
     // 退款状态
     const REFUND_STATUS_NOREFUND = 0;       // 未退款
-    const REFUND_STATUS_AGREE = 1;       // 已同意
+    const REFUND_STATUS_AGREE = 1;       // 已退款
 
     public function typeList()
     {

+ 1 - 1
application/admin/model/shopro/order/OrderItem.php

@@ -47,7 +47,7 @@ class OrderItem extends Common
 
 
     // 退款状态
-    const REFUND_STATUS_NOREFUND = 0;       // 退款
+    const REFUND_STATUS_NOREFUND = 0;       // 退款状态 未申请
     const REFUND_STATUS_AGREE = 1;       // 已同意
     const REFUND_STATUS_COMPLETED = 2;       // 退款完成