Преглед на файлове

Merge branch 'moreShare' into dev

shish преди 2 месеца
родител
ревизия
9addbfdad4

+ 2 - 0
app-ghs/controllers/OrderController.php

@@ -2648,6 +2648,8 @@ class OrderController extends BaseController
 
             //找到当前订单客户的账单日期为 $date 的所有订单,然后更新同天内的所有订单的 sameTimeIds(加此次要改变的订单的订单号$id),有多处调用,关键词 update_same_ids
             OrderClass::updateSameTimeIds($order, $date);
+            OrderClass::updateMergeOrder($order, 1);
+            PurchaseClass::updateMergeCg($cg, 1);
 
             $transaction->commit();
             util::complete('修改成功');

+ 0 - 14
biz-ghs/cg/classes/CgMergeClass.php

@@ -1,14 +0,0 @@
-<?php
-
-namespace bizGhs\cg\classes;
-
-use bizGhs\base\classes\BaseClass;
-use common\components\util;
-use Yii;
-
-class CgMergeClass extends BaseClass
-{
-
-    public static $baseFile = '\bizGhs\cg\models\CgMerge';
-
-}

+ 0 - 14
biz-ghs/cg/classes/CgMergeSnClass.php

@@ -1,14 +0,0 @@
-<?php
-
-namespace bizGhs\cg\classes;
-
-use bizGhs\base\classes\BaseClass;
-use common\components\util;
-use Yii;
-
-class CgMergeSnClass extends BaseClass
-{
-
-    public static $baseFile = '\bizGhs\cg\models\CgMergeSn';
-
-}

+ 0 - 13
biz-ghs/cg/models/CgMerge.php

@@ -1,13 +0,0 @@
-<?php
-namespace bizGhs\cg\models;
-use bizGhs\base\models\Base;
-
-class CgMerge extends Base
-{
-
-    public static function tableName()
-    {
-        return 'xhGhsCgMerge';
-    }
-
-}

+ 0 - 13
biz-ghs/cg/models/CgMergeSn.php

@@ -1,13 +0,0 @@
-<?php
-namespace bizGhs\cg\models;
-use bizGhs\base\models\Base;
-
-class CgMergeSn extends Base
-{
-
-    public static function tableName()
-    {
-        return 'xhGhsCgMergeSn';
-    }
-
-}

+ 49 - 3
biz-ghs/order/classes/OrderClass.php

@@ -3153,9 +3153,9 @@ XL;
             $remark .= $orderItem->remark;
         }
         if (!empty($order->remark)) {
-            if(!empty($remark)){
-                $remark .= ' '.$order->remark;
-            }else{
+            if (!empty($remark)) {
+                $remark .= ' ' . $order->remark;
+            } else {
                 $remark .= $order->remark;
             }
         }
@@ -3171,6 +3171,52 @@ XL;
         return true;
     }
 
+    //更新客户同一天的订单 $update 0 添加 1 修改
+    public static function updateMergeOrder($order, $update = 0)
+    {
+        $date = substr($order->payTime, 0, 10);
+        $customId = $order->customId ?? 0;
+        $mainId = $order->mainId ?? 0;
+        //找到当前订单客户的账单日期为 $date 的所有订单
+        $startTime = $date . ' 00:00:00';
+        $endTime = $date . ' 23:59:59';
+        $dayOrders = self::getAllByCondition([
+            'mainId' => $mainId,
+            'customId' => $customId,
+            'payTime' => ['between', [$startTime, $endTime]]
+        ], 'id ASC', 'id');
+        if (!empty($dayOrders)) {
+            return false;
+        }
+        $ids = array_column($dayOrders, 'id');
+        $count = count($ids);
+        if ($update == 0) {
+            if ($count <= 1) {
+                //新增,如果当天只有一个订单,不需要操作
+                return false;
+            }
+        } else {
+            //修改
+            $oldMergeId = $order->mergeId ?? 0;
+            $oldMerge = OrderMergeSnClass::getById($oldMergeId, true);
+            $oldDate = $oldMerge->mergeDate ?? '';
+            if ($oldDate == $date) {
+                //修改前后日期一样,不需要调整
+                return false;
+            }
+        }
+        OrderMergeClass::deleteByCondition(['id' => ['in', $ids]]);
+
+        $mergeData = ['mergeDate' => $date, 'customId' => $customId, 'mainId' => $mainId];
+        $mergeId = orderSn::getGhsOrderMergeId($mergeData);
+        self::updateByIds($ids, ['mergeId' => $mergeId]);
+        $addData = [];
+        foreach ($ids as $currentId) {
+            $addData[] = ['mergeId' => $mergeId, 'orderId' => $currentId, 'mergeDate' => $date];
+        }
+        OrderMergeClass::batchAdd($addData);
+        return true;
+    }
 
     // 更新同天内的所有订单的 sameTimeIds
     public static function updateSameTimeIds($order, $date)

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

@@ -904,6 +904,7 @@ class OrderService extends BaseService
         //当天同个人同地址的订单汇总
         $prefixDate = substr($order->payTime, 0, 10);
         OrderClass::updateSameTimeIds($order, $prefixDate);
+        OrderClass::updateMergeOrder($order,0);
     }
 
     //发起退款

+ 29 - 0
biz-hd/cg/classes/CgMergeClass.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace bizHd\cg\classes;
+
+use biz\shop\classes\ShopCapitalClass;
+use biz\shop\classes\ShopExtClass;
+use bizHd\ghs\classes\GhsClass;
+use bizHd\purchase\classes\PurchaseClass;
+use bizHd\purchase\classes\PurchaseItemClass;
+use bizHd\shop\classes\MainClass;
+use bizGhs\stock\classes\StockRecordClass;
+use bizHd\shop\classes\ShopClass;
+use bizHd\wx\classes\WxOpenClass;
+use common\components\dict;
+use common\components\noticeUtil;
+use common\components\orderSn;
+use common\components\util;
+use Yii;
+use bizGhs\base\classes\BaseClass;
+use bizGhs\order\traits\OrderTrait;
+use bizGhs\product\classes\ProductClass;
+use common\components\lakala\Lakala;
+
+class CgMergeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\cg\models\CgMerge';
+
+}

+ 29 - 0
biz-hd/cg/classes/CgMergeSnClass.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace bizHd\cg\classes;
+
+use biz\shop\classes\ShopCapitalClass;
+use biz\shop\classes\ShopExtClass;
+use bizHd\ghs\classes\GhsClass;
+use bizHd\purchase\classes\PurchaseClass;
+use bizHd\purchase\classes\PurchaseItemClass;
+use bizHd\shop\classes\MainClass;
+use bizGhs\stock\classes\StockRecordClass;
+use bizHd\shop\classes\ShopClass;
+use bizHd\wx\classes\WxOpenClass;
+use common\components\dict;
+use common\components\noticeUtil;
+use common\components\orderSn;
+use common\components\util;
+use Yii;
+use bizGhs\base\classes\BaseClass;
+use bizGhs\order\traits\OrderTrait;
+use bizGhs\product\classes\ProductClass;
+use common\components\lakala\Lakala;
+
+class CgMergeSnClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\cg\models\CgMergeSn';
+
+}

+ 15 - 0
biz-hd/cg/models/CgMerge.php

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

+ 15 - 0
biz-hd/cg/models/CgMergeSn.php

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

+ 49 - 1
biz-hd/purchase/classes/PurchaseClass.php

@@ -19,6 +19,8 @@ use bizGhs\order\traits\OrderTrait;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stock\classes\OnStockRecordClass;
 use bizGhs\stock\classes\StockRecordClass;
+use bizHd\cg\classes\CgMergeClass;
+use bizHd\cg\classes\CgMergeSnClass;
 use bizHd\cg\classes\CgRefundClass;
 use bizHd\cg\classes\CgTreeClass;
 use bizHd\cg\classes\CgXjClass;
@@ -64,6 +66,52 @@ class PurchaseClass extends BaseClass
     const REFUND_NO = 1;
     const REFUND_YES = 2;
 
+    public static function updateMergeCg($cg, $update = 0)
+    {
+        $date = substr($cg->payTime, 0, 10);
+        $ghsId = $cg->ghsId ?? 0;
+        $mainId = $cg->mainId ?? 0;
+        //找到当前订单客户的账单日期为 $date 的所有订单
+        $startTime = $date . ' 00:00:00';
+        $endTime = $date . ' 23:59:59';
+        $dayOrders = self::getAllByCondition([
+            'mainId' => $mainId,
+            'ghsId' => $ghsId,
+            'payTime' => ['between', [$startTime, $endTime]]
+        ], 'id ASC', 'id');
+        if (!empty($dayOrders)) {
+            return false;
+        }
+        $ids = array_column($dayOrders, 'id');
+        $count = count($ids);
+        if ($update == 0) {
+            if ($count <= 1) {
+                //新增,如果当天只有一个订单,不需要操作
+                return false;
+            }
+        } else {
+            //修改
+            $oldMergeId = $cg->mergeId ?? 0;
+            $oldMerge = CgMergeSnClass::getById($oldMergeId, true);
+            $oldDate = $oldMerge->mergeDate ?? '';
+            if ($oldDate == $date) {
+                //修改前后日期一样,不需要调整
+                return false;
+            }
+        }
+        CgMergeClass::deleteByCondition(['id' => ['in', $ids]]);
+
+        $mergeData = ['mergeDate' => $date, 'ghsId' => $ghsId, 'mainId' => $mainId];
+        $mergeId = orderSn::getGhsOrderMergeId($mergeData);
+        self::updateByIds($ids, ['mergeId' => $mergeId]);
+        $addData = [];
+        foreach ($ids as $currentId) {
+            $addData[] = ['mergeId' => $mergeId, 'orderId' => $currentId, 'mergeDate' => $date];
+        }
+        CgMergeClass::batchAdd($addData);
+        return true;
+    }
+
     //获取打包费
     public static function getKmPackCost($mainId)
     {
@@ -1102,7 +1150,7 @@ class PurchaseClass extends BaseClass
             }
             if (!empty($data['treeData'][$currentPtItemId])) {
                 $myTreeData = $data['treeData'][$currentPtItemId];
-                foreach($myTreeData as $treeItem) {
+                foreach ($myTreeData as $treeItem) {
                     $treeNum = $treeItem['num'] ?? 0;
                     $treeParams = [
                         'orderSn' => $orderSn,

+ 2 - 1
biz-hd/purchase/services/PurchaseService.php

@@ -488,7 +488,8 @@ class PurchaseService extends BaseService
         $ghs->expendAmount = bcadd($ghs->expendAmount, $actPrice, 2);
         $ghs->expendNum += 1;
         $ghs->save();
-    }
 
+        PurchaseClass::updateMergeCg($info, 0);
+    }
 
 }

+ 24 - 0
common/components/orderSn.php

@@ -12,7 +12,9 @@ use bizGhs\ghs\classes\GhsRechargeSnClass;
 use bizGhs\live\classes\LiveOrderSnClass;
 use bizGhs\order\classes\GiveSnClass;
 use bizGhs\order\classes\OrderClass;
+use bizGhs\order\classes\OrderMergeSnClass;
 use bizHd\cg\classes\AcceptSnClass;
+use bizHd\cg\classes\CgMergeSnClass;
 use bizHd\cg\classes\CgRefundSnClass;
 use bizHd\common\classes\MobileSnClass;
 use bizHd\express\classes\ExpressSnClass;
@@ -39,6 +41,28 @@ use yii\imagine\Image;
 class orderSn
 {
 
+    public static function getGhsOrderMergeId($data)
+    {
+        $data['id'] = null;
+        $respond = OrderMergeSnClass::add($data);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('单号没有生成');
+        }
+        return $id;
+    }
+
+    public static function getCgMergeId($data)
+    {
+        $data['id'] = null;
+        $respond = CgMergeSnClass::add($data);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('单号没有生成');
+        }
+        return $id;
+    }
+
     public static function getGhsExpressSn($data)
     {
         $prefix = 'EX_CS';