shish 3 лет назад
Родитель
Сommit
68e147ddbd

+ 50 - 4
app-hd/controllers/CgRefundController.php

@@ -15,6 +15,31 @@ class CgRefundController extends BaseController
 
     public $guestAccess = ['list', 'get-refund-data'];
 
+    //取消退款申请 ssh 20230808
+    public function actionCancelRefund()
+    {
+        $get = Yii::$app->request->get();
+        $id = isset($get['id']) ? $get['id'] : 0;
+        $refund = CgRefundClass::getById($id, true);
+        if (empty($refund)) {
+            util::fail('没有找到退款单');
+        }
+        if ($refund->mainId != $this->mainId) {
+            util::fail('没有权限操作');
+        }
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+            CgRefundService::cancelRefundApply($refund);
+            $transaction->commit();
+            util::complete('取消成功');
+        } catch (\Exception $exception) {
+            $transaction->rollBack();
+            Yii::info("取消出错了,报错信息:" . $exception->getMessage());
+            util::fail('取消失败');
+        }
+    }
+
     //申请退款 ssh 20230807
     public function actionCreateRefund()
     {
@@ -95,14 +120,35 @@ class CgRefundController extends BaseController
     public function actionGetRefundData()
     {
         $id = Yii::$app->request->get('id', 0);
-        $refund = CgRefundClass::getById($id, true);
+        $refund = CgRefundClass::getById($id);
+        if (empty($refund)) {
+            util::fail('没有找到退款信息');
+        }
+        $imgString = $refund['imgList'] ?? '';
+        if (!empty($imgString)) {
+            $imgArr = json_decode($imgString, true);
+            $smallImgList = [];
+            $bigImgList = [];
+            if (!empty($imgArr)) {
+                foreach ($imgArr as $image) {
+                    $smallImg = imgUtil::groupImg($image) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
+                    $bigImg = imgUtil::groupImg($image) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
+                    $smallImgList[] = $smallImg;
+                    $bigImgList[] = $bigImg;
+                }
+            }
+            $refund['imgList'] = $imgArr;
+            $refund['smallImgList'] = $smallImgList;
+            $refund['bigImgList'] = $bigImgList;
+        }
+        //未登录用户也需要查看,暂时先注释
         //CgRefundClass::valid($refund, $this->mainId);
-        $cgId = $refund->cgId ?? 0;
-        $cg = PurchaseClass::getById($cgId, true);
+        $cgId = $refund['cgId'] ?? 0;
+        $cg = PurchaseClass::getById($cgId);
         if (empty($refund)) {
             util::fail('没有退款信息');
         }
-        $orderSn = $refund->orderSn ?? '';
+        $orderSn = $refund['orderSn'] ?? '';
         $cgItemList = CgRefundItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*');
         if (!empty($cgItemList)) {
             foreach ($cgItemList as $key => $item) {

+ 19 - 2
biz-ghs/order/classes/RefundOrderClass.php

@@ -19,12 +19,29 @@ class RefundOrderClass extends BaseClass
     use OrderTrait;
     public static $baseFile = '\bizGhs\order\models\RefundOrder';
 
-    const STATUS_UN_COMPLETE = 0; //退款处理中
-    const STATUS_COMPLETE = 1; //已完成
+    const STATUS_UN_COMPLETE = 0; //待审核
+    const STATUS_COMPLETE = 1; //已通过
+    const STATUS_REJECT = 2; //已驳回
+    const STATUS_CANCEL = 3; //已取消
 
     const REFUND_TYPE_MONEY_GOOD = 1; //退款退货
     const REFUND_TYPE_MONEY = 2; // 仅退款
 
+    public static function cancelRefund($refund)
+    {
+        if ($refund->status == self::STATUS_COMPLETE) {
+            util::fail('退款已通过');
+        }
+        if ($refund->status == self::STATUS_REJECT) {
+            util::fail('退款已驳回');
+        }
+        if ($refund->status == self::STATUS_CANCEL) {
+            util::fail('退款已取消');
+        }
+        $refund->status = self::STATUS_CANCEL;
+        $refund->save();
+    }
+
     //验证信息 ssh 20220401
     public static function valid($refund, $mainId)
     {

+ 1 - 0
biz-ghs/order/services/RefundOrderService.php

@@ -117,6 +117,7 @@ class RefundOrderService extends BaseService
 
         }
         $data['customId'] = $order->customId ?? 0;
+        $data['imgList'] = $post['imgList'] ?? '';
         $data['remark'] = $post['remark'] ?? '';
         $data['refundPrice'] = $refundPrice;
         $data['refundType'] = $post['refundType'] ?? 0;

+ 20 - 2
biz-hd/cg/classes/CgRefundClass.php

@@ -13,12 +13,30 @@ class CgRefundClass extends BaseClass
     use OrderTrait;
     public static $baseFile = '\bizHd\cg\models\CgRefund';
 
-    const STATUS_UN_COMPLETE = 0;//退款处理中
-    const STATUS_COMPLETE = 1;//已完成
+    const STATUS_UN_COMPLETE = 0;//待审核
+    const STATUS_COMPLETE = 1;//已通过
+    const STATUS_REJECT = 2;//已驳回
+    const STATUS_CANCEL = 3;//已取消
 
     const REFUND_TYPE_MONEY_GOOD = 1; //退款退货
     const REFUND_TYPE_MONEY = 2; // 仅退款
 
+    //取消退款 ssh 20230808
+    public static function cancelRefund($refund)
+    {
+        if ($refund->status == self::STATUS_COMPLETE) {
+            util::fail('申请已通过');
+        }
+        if ($refund->status == self::STATUS_REJECT) {
+            util::fail('申请已驳回');
+        }
+        if ($refund->status == self::STATUS_CANCEL) {
+            util::fail('申请已取消');
+        }
+        $refund->status = self::STATUS_CANCEL;
+        $refund->save();
+    }
+
     public static function valid($refund, $mainId)
     {
         if (isset($refund->mainId) == false || $refund->mainId != $mainId) {

+ 20 - 1
biz-hd/cg/services/CgRefundService.php

@@ -8,6 +8,7 @@ use biz\shop\classes\ShopCapitalClass;
 use biz\shop\classes\ShopClass;
 use biz\wx\classes\WxMessageClass;
 use bizGhs\order\classes\OrderClass;
+use bizGhs\order\classes\RefundOrderClass;
 use bizGhs\order\services\RefundOrderService;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stock\classes\StockRecordClass;
@@ -30,6 +31,17 @@ class CgRefundService extends BaseService
 
     public static $baseFile = '\bizHd\cg\classes\CgRefundClass';
 
+    public static function cancelRefundApply($refund)
+    {
+        CgRefundClass::cancelRefund($refund);
+        $saleRefundId = $refund->saleRefundId ?? 0;
+        $saleRefund = RefundOrderClass::getById($saleRefundId, true);
+        if (empty($saleRefund)) {
+            util::fail('退款信息缺失');
+        }
+        RefundOrderClass::cancelRefund($saleRefund);
+    }
+
     public static function createOrder($cgData, $cg)
     {
         $respond = self::addRefund($cgData, $cg);
@@ -102,7 +114,13 @@ class CgRefundService extends BaseService
             'mainId' => $mainId,
             'product' => $newProductList,
         ];
-        RefundOrderService::addRefund($orderData, $order);
+        $cgRefundId = $respond->id ?? 0;
+        $saleRefund = RefundOrderService::addRefund($orderData, $order);
+        $saleRefund->cgRefundId = $cgRefundId;
+        $saleRefund->save();
+        $saleRefundId = $saleRefund->id ?? 0;
+        $respond->saleRefundId = $saleRefundId;
+        $respond->save();
         return $respond;
     }
 
@@ -143,6 +161,7 @@ class CgRefundService extends BaseService
         $data['refundType'] = $refundType;
         $data['refundPrice'] = $refundPrice;
         $data['remark'] = $post['remark'];
+        $data['imgList'] = $post['imgList'] ?? '';
         $data['status'] = CgRefundClass::STATUS_UN_COMPLETE;
 
         //花材列表结构