Sfoglia il codice sorgente

红包退回操作

shish 6 mesi fa
parent
commit
e148cf9c45

+ 2 - 5
app-hd/controllers/RefundController.php

@@ -269,11 +269,8 @@ class RefundController extends BaseController
             $hbId = $order->hbId;
             if ($refundHb == 1 && $hbId > 0) { // 不使用 $hbId =! 0,因为要用负数来表示红包已取消
                 $updatedOrder = OrderClass::getById($id, true, 'id, actPrice, hbId, hbAmount');
-                if($updatedOrder->actPrice == 0.00){
-                    hbClass::hbBack($order['hbId']);
-
-                    $updatedOrder->hbId = -$updatedOrder->hbId; //用负数来表示红包已取消
-                    $updatedOrder->save();
+                if ($updatedOrder->actPrice <= 0.00) {
+                    hbClass::hbBack($updatedOrder);
                 }
             }
 

+ 13 - 20
biz-hd/hb/classes/HbClass.php

@@ -1,4 +1,5 @@
 <?php
+
 namespace bizHd\hb\classes;
 
 use bizHd\base\classes\BaseClass;
@@ -8,7 +9,7 @@ use Yii;
 
 class HbClass extends BaseClass
 {
-	public static $baseFile = Hb::class;
+    public static $baseFile = Hb::class;
 
     public static function getHbList($select, $where)
     {
@@ -19,7 +20,7 @@ class HbClass extends BaseClass
 
         $model = self::getModel();
         $query = $model->conditionQuery($where)->alias('t');
-        $query->joinWith(['shop' => function($q) {
+        $query->joinWith(['shop' => function ($q) {
             $q->alias('s');
         }]);
         $query->select($select);
@@ -30,7 +31,7 @@ class HbClass extends BaseClass
         $data['totalNum'] = $count;
         $data['totalPage'] = $totalPage;
         $data['moreData'] = $totalPage > $page ? 1 : 0;
-        
+
         $list = $query->offset($offset)->limit($pageSize)->orderBy('t.createdAt DESC')->asArray()->all();
         $data['list'] = $list;
 
@@ -39,26 +40,18 @@ class HbClass extends BaseClass
 
     /**
      * 红包退回
-     * @param $id
-     * @param string $returnType 出错时的返回方式:fail - 使用 util::fail(), return - return返回
-     * @return bool
-     * @throws \Exception
      */
-    public static function hbBack($id, $returnType='fail')
+    public static function hbBack($order)
     {
+        $id = $order->hbId;
         $hb = self::getById($id, true);
-        if (empty($hb)) {
-            Yii::error('没有找到红包', __METHOD__);
-            if($returnType == 'fail'){
-                util::fail('没有找到红包');
-            }elseif($returnType == 'return'){
-                return false;
-            }else{
-                new \Exception('没有找到红包' . $id);
-            }
+        if (!empty($hb)) {
+            $hb->status = 0;
+            $hb->orderId = 0;
+            $hb->save();
+            $order->hbId = -$order->hbId;
+            $order->save();
         }
-        $hb->status = 0;
-        $hb->orderId = 0;
-        $hb->save();
     }
+
 }

+ 1 - 7
biz-hd/order/classes/OrderClass.php

@@ -639,14 +639,8 @@ class OrderClass extends BaseClass
         }
 
         // 红包退回
-        if($order->hbId > 0){ // 不使用 $order->hbId =! 0,因为要用负数来表示红包已取消
-            HbClass::hbBack($order->hbId, 'return');
-        }
+        HbClass::hbBack($order);
 
-        // hbId变更为负数,表示红包已退回(取消)
-        if($order->hbId > 0) {
-            $order->hbId = -$order->hbId;
-        }
         $order->status = 5;
         $order->cancelTime = date("Y-m-d H:i:s");
         $order->save();