shish 4 жил өмнө
parent
commit
889fbc53bc

+ 40 - 0
app-hd/controllers/SettleController.php

@@ -0,0 +1,40 @@
+<?php
+
+namespace hd\controllers;
+
+use bizHd\order\classes\OrderClass;
+use bizHd\order\classes\SettleClass;
+use common\components\dict;
+use common\components\util;
+use Yii;
+
+class SettleController extends BaseController
+{
+
+    public $guestAccess = [];
+
+    //结清尾款 ssh 20220708
+    public function actionConfirmSettle()
+    {
+        $get = Yii::$app->request->get();
+        $id = $get['id'] ?? 0;
+        $payWay = $get['payWay'] ?? dict::getDict('payWay', 'wxPay');
+        $order = OrderClass::getById($id, true);
+        if (empty($order)) {
+            util::fail('没有找到订单');
+        }
+        OrderClass::valid($order, $this->mainId);
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+            SettleClass::confirmSettle($order, $payWay);
+            $transaction->commit();
+            util::complete();
+        } catch (\Exception $exception) {
+            $transaction->rollBack();
+            Yii::info("失败:" . $exception->getMessage());
+            util::fail('操作失败');
+        }
+    }
+
+}

+ 51 - 0
biz-hd/order/classes/SettleClass.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace bizHd\order\classes;
+
+use common\components\util;
+use Yii;
+use bizHd\base\classes\BaseClass;
+
+class SettleClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\order\models\Settle';
+
+    //结清尾款 ssh 20220708
+    public static function confirmSettle($order, $payWay)
+    {
+        $orderId = $order->id ?? 0;
+        $settleId = $order->settleId ?? 0;
+        if (!empty($settleId)) {
+            util::fail('已经结清过了');
+        }
+        $remainDebtPrice = $order->remainDebtPrice ?? 0;
+        if ($remainDebtPrice <= 0) {
+            util::fail('尾款已经结清过了');
+        }
+        $shopId = $order->shopId ?? 0;
+        $settleData = [
+            'prePrice' => $remainDebtPrice,
+            'actPrice' => $remainDebtPrice,
+            'realPrice' => $remainDebtPrice,
+            'payWay' => $payWay,
+            'hdShopId' => $shopId,
+            'purchaseIds' => $orderId,
+            'saleIds' => $orderId,
+            'num' => 1,
+            'status' => 2,
+        ];
+        $return = self::addData($settleData);
+        $settleId = $return->id ?? 0;
+        $order->settleId = $settleId;
+        $order->debt = 0;
+        $order->remainDebtPrice = 0;
+        $order->save();
+    }
+
+    public static function addData($data)
+    {
+        return self::add($data, true);
+    }
+
+}

+ 15 - 0
biz-hd/order/models/Settle.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizHd\order\models;
+
+use bizHd\base\models\Base;
+
+class Settle extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhSettle';
+	}
+
+}

+ 15 - 0
biz-hd/order/services/SettleService.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizHd\order\services;
+
+use bizHd\base\services\BaseService;
+use common\components\stringUtil;
+use common\components\util;
+use Yii;
+
+class SettleService extends BaseService
+{
+
+    public static $baseFile = '\bizHd\order\classes\SettleClass';
+
+}