shish 1 жил өмнө
parent
commit
9e9b3dc4c0

+ 57 - 0
biz-hd/shop/classes/ShopExtClass.php

@@ -0,0 +1,57 @@
+<?php
+
+namespace bizHd\shop\classes;
+
+use biz\shop\classes\ShopClass;
+use biz\sj\classes\SjClass;
+use common\components\printUtil;
+use common\components\util;
+use Yii;
+use bizHd\base\classes\BaseClass;
+
+class ShopExtClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\shop\models\ShopExt';
+
+    //订单取消前三分钟打印通知商家 ssh 20250221
+    public static function beforeCancelPrint($shopId, $order)
+    {
+        $shop = ShopClass::getById($shopId, true);
+
+        $orderSn = $order->orderSn ?? '';
+        $actPrice = $order->actPrice ?? 0;
+        $sjId = $shop->sjId ?? 0;
+        $sj = SjClass::getById($sjId, true);
+        $sjName = $sj->name ?? '';
+        $shopName = $shop->shopName ?? '';
+        $currentName = $shopName == '首店' ? $sjName : $sjName . ' ' . $shopName;
+
+        $content = "<CB>" . $currentName . "</CB>";
+        $content .= "<CB>订单即将过期</CB><BR><BR>";
+
+        $content .= '--------------------------------<BR>';
+        $content .= '<CB>订单号</CB><BR>';
+        $content .= '<CB>' . $orderSn . '</CB><BR>';
+        $content .= "<CB>订单金额:{$actPrice}</CB><BR>";
+        $content .= '--------------------------------<BR>';
+
+        $content .= '<B>买家信息:</B><BR><BR>';
+        $content .= '<B>' . $order->customName . '</B><BR>';
+        $content .= '<B>' . $order->customMobile . '</B><BR>';
+        $content .= '--------------------------------<BR>';
+        $content .= "<BR>";
+        $content .= "<BR>";
+        $content .= "<CB>此单未付款,2分钟后自动取消,如有必要,请跟客户电话确认</CB><BR>";
+        $content .= "<BR>";
+        $content .= '<AUDIO-CANCEL>';
+        $ext = self::getByCondition(['shopId' => $shopId]);
+        $printSn = $ext['printSn'] ?? '';
+        if (!empty($printSn)) {
+            $p = new printUtil($printSn);
+            $p->printMsg($content, $shop, $orderSn);
+        }
+
+    }
+
+}

+ 13 - 0
biz-hd/shop/models/ShopExt.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizHd\shop\models;
+use bizHd\base\models\Base;
+
+class ShopExt extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhShopExt';
+    }
+
+}

+ 58 - 0
console/controllers/PurchaseController.php

@@ -2,9 +2,11 @@
 
 namespace console\controllers;
 
+use bizGhs\order\classes\OrderClass;
 use bizHd\purchase\classes\PurchaseClass;
 use bizHd\purchase\models\Purchase;
 use bizHd\purchase\services\PurchaseService;
+use bizHd\shop\classes\ShopExtClass;
 use common\components\dict;
 use common\components\noticeUtil;
 use yii\console\Controller;
@@ -16,6 +18,8 @@ class PurchaseController extends Controller
     //采购订单过期变更 ssh 2021.5.14
     public function actionExpireOrder()
     {
+        ini_set('memory_limit', '2045M');
+        set_time_limit(0);
 
         //采购单由花店发起的!!!!!
         $hdInvite = dict::getDict('cgStyle', 'hd');
@@ -67,6 +71,60 @@ class PurchaseController extends Controller
 
     }
 
+    //采购单没付款的,到期前三分钟提醒商家
+    public function actionExpireRemind()
+    {
+        ini_set('memory_limit', '2045M');
+        set_time_limit(0);
+
+        $query = new \yii\db\Query();
+        $query->from(Purchase::tableName());
+        $date = date("Y-m-d H:i:s");
+        //找出一个星期内可以标记为过期的订单
+        $startDate = date("Y-m-d H:i:s", strtotime('-7 days'));
+        $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->andWhere(['>', 'deadline', $startDate])->andWhere(['<=', 'deadline', $date]);
+        $query->orderBy('deadline ASC');
+
+        Yii::$app->params['ptStyle'] = dict::getDict('ptStyle', 'hd');
+
+        //如果有报错,抛出异常
+        Yii::$app->params['errorReport'] = 1;
+
+        $arr = [];
+        foreach ($query->batch() as $purchases) {
+
+            foreach ($purchases as $purchase) {
+                $connection = Yii::$app->db;
+                $transaction = $connection->beginTransaction();
+                $id = $purchase['id'] ?? 0;
+                $orderSn = $purchase['orderSn'] ?? '';
+                try {
+                    $cg = PurchaseClass::getById($id, true);
+                    $deadline = $cg->deadline ?? '';
+                    //if (!empty($deadline)) {
+                        $currentDead = date("Y-m-d H:i", strtotime($deadline));
+                        $current = date('Y-m-d H:i');
+                        $tow = 120;
+                        $totalTime = $current + $tow;
+                        //if ($totalTime == $current) {
+                            $saleId = $cg->saleId ?? 0;
+                            $order = OrderClass::getById($saleId, true);
+                            $shopId = $order->shopId ?? 0;
+                            ShopExtClass::beforeCancelPrint($shopId,$order);
+                        //}
+                        die;
+                    //}
+                    //$transaction->commit();
+                } catch (\Exception $e) {
+                    $transaction->rollBack();
+                    $msg = $e->getMessage();
+                    noticeUtil::push("采购单过期前通知报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347');
+                }
+            }
+        }
+
+    }
+
     //待付款订单自动变成欠款订单
     public function actionSetDebtOrder()
     {