瀏覽代碼

1.ghsApp下的createOrder接口也有更新账单日期的业务 2.把更新账单日期的方法封装到 OrderClass.php 文件下

shizhongqi 6 月之前
父節點
當前提交
9d531e54f4
共有 3 個文件被更改,包括 46 次插入37 次删除
  1. 2 36
      app-ghs/controllers/OrderController.php
  2. 39 0
      biz-ghs/order/classes/OrderClass.php
  3. 5 1
      biz-ghs/order/services/OrderService.php

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

@@ -2470,45 +2470,11 @@ class OrderController extends BaseController
             $order->save();
             $cg->payTime = $new;
             $cg->save();
-            //有修改账单日期需要更新到欠款变动明细,财务好对账,多个地方要同步修改,关键词to_change_custom_debt_pay_time
+            //有修改账单日期需要更新到欠款变动明细,财务好对账,多个地方要同步修改,关键词 to_change_custom_debt_pay_time
             CustomDebtChangeClass::updateByCondition(['capitalType' => 10, 'relateId' => $id], ['payTime' => $new]);
 
             //找到当前订单客户的账单日期为 $date 的所有订单,然后更新同天内的所有订单的 sameTimeIds(加此次要改变的订单的订单号$id)
-            $customId = $order->customId;
-            $startTime = $date . ' 00:00:00';
-            $endTime = $date . ' 23:59:59';
-            $dayOrders = OrderClass::getAllByCondition([
-                'customId' => $customId,
-                'payTime' => ['between', [$startTime, $endTime]]
-            ], 'id ASC', 'id, sameTimeIds');
-
-            $ids = [];
-            if (!empty($dayOrders)) {
-                $ids = array_column($dayOrders, 'id');
-            }
-            // 确保当前订单ID在列表中
-            if (!in_array($id, $ids)) {
-                $ids[] = $id;
-            }
-            // 排序并去重
-            sort($ids);
-            $ids = array_unique($ids);
-            $sameTimeIdsStr = implode(',', $ids);
-            // 更新所有相关订单
-            if (!empty($ids)) {
-                OrderClass::updateByIds($ids, ['sameTimeIds' => $sameTimeIdsStr]);
-            }
-
-            //从原先同天内的订单中删除此次要改变的订单的订单号$id
-            $oldSameTimeIds = $order->sameTimeIds;
-            $oldSameTimeIdsArr = explode(',', $oldSameTimeIds);
-            if (in_array($id, $oldSameTimeIdsArr)) {
-                $oldSameTimeIdsArr = array_diff($oldSameTimeIdsArr, [$id]);
-                $oldSameTimeIdsStr = implode(',', $oldSameTimeIdsArr);
-                if (!empty($oldSameTimeIdsArr)) {
-                    OrderClass::updateByIds($oldSameTimeIdsArr, ['sameTimeIds' => $oldSameTimeIdsStr]);
-                }
-            }
+            OrderClass::updateSameTimeIds($id, $order->customId, $date, $order->sameTimeIds);
 
             $transaction->commit();
             util::complete('修改成功');

+ 39 - 0
biz-ghs/order/classes/OrderClass.php

@@ -3021,4 +3021,43 @@ XL;
         return true;
     }
 
+    // 更新同天内的所有订单的 sameTimeIds
+    public static function updateSameTimeIds($id, $customId, $date, $oldSameTimeIds)
+    {
+        //找到当前订单客户的账单日期为 $date 的所有订单,然后更新同天内的所有订单的 sameTimeIds(加此次要改变的订单的订单号$id)
+        $startTime = $date . ' 00:00:00';
+        $endTime = $date . ' 23:59:59';
+        $dayOrders = self::getAllByCondition([
+            'customId' => $customId,
+            'payTime' => ['between', [$startTime, $endTime]]
+        ], 'id ASC', 'id, sameTimeIds');
+
+        $ids = [];
+        if (!empty($dayOrders)) {
+            $ids = array_column($dayOrders, 'id');
+        }
+        // 确保当前订单ID在列表中
+        if (!in_array($id, $ids)) {
+            $ids[] = $id;
+        }
+        // 排序并去重
+        sort($ids);
+        $ids = array_unique($ids);
+        $sameTimeIdsStr = implode(',', $ids);
+        // 更新所有相关订单
+        if (!empty($ids)) {
+            self::updateByIds($ids, ['sameTimeIds' => $sameTimeIdsStr]);
+        }
+
+        //从原先同天内的订单中删除此次要改变的订单的订单号$id
+        $oldSameTimeIdsArr = explode(',', $oldSameTimeIds);
+        if (in_array($id, $oldSameTimeIdsArr)) {
+            $oldSameTimeIdsArr = array_diff($oldSameTimeIdsArr, [$id]);
+            $oldSameTimeIdsStr = implode(',', $oldSameTimeIdsArr);
+            if (!empty($oldSameTimeIdsArr)) {
+                self::updateByIds($oldSameTimeIdsArr, ['sameTimeIds' => $oldSameTimeIdsStr]);
+            }
+        }
+    }
+
 }

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

@@ -300,9 +300,13 @@ class OrderService extends BaseService
                 $currentPayTime = $historyDate . ' 12:00:00';
                 $purchase->payTime = $currentPayTime;
                 $purchase->save();
+
+                //找到当前订单客户的账单日期为 $date 的所有订单,然后更新同天内的所有订单的 sameTimeIds(加此次要改变的订单的订单号$id)
+                OrderClass::updateSameTimeIds($returnOrder->id, $returnOrder->customId, $historyDate, $returnOrder->sameTimeIds);
+                
                 $returnOrder->payTime = $currentPayTime;
                 $returnOrder->save();
-                //有修改账单日期需要更新到欠款变动明细,财务好对账,多个地方要同步修改,关键词to_change_custom_debt_pay_time
+                //有修改账单日期需要更新到欠款变动明细,财务好对账,多个地方要同步修改,关键词 to_change_custom_debt_pay_time
                 CustomDebtChangeClass::updateByCondition(['capitalType' => 10, 'relateId' => $returnOrder->id], ['payTime' => $currentPayTime]);
             }