|
|
@@ -3113,6 +3113,7 @@ XL;
|
|
|
$id = $order->id ?? 0;
|
|
|
$customId = $order->customId ?? 0;
|
|
|
$mainId = $order->mainId ?? 0;
|
|
|
+ $showAddress = $order->showAddress ?? '';
|
|
|
$oldSameTimeIds = $order->sameTimeIds ?? '';
|
|
|
|
|
|
//找到当前订单客户的账单日期为 $date 的所有订单,然后更新同天内的所有订单的 sameTimeIds(加此次要改变的订单的订单号$id)
|
|
|
@@ -3121,6 +3122,7 @@ XL;
|
|
|
$dayOrders = self::getAllByCondition([
|
|
|
'mainId' => $mainId,
|
|
|
'customId' => $customId,
|
|
|
+ 'showAddress' => $showAddress,
|
|
|
'payTime' => ['between', [$startTime, $endTime]]
|
|
|
], 'id ASC', 'id, sameTimeIds');
|
|
|
|
|
|
@@ -3135,19 +3137,27 @@ XL;
|
|
|
// 排序并去重
|
|
|
sort($ids);
|
|
|
$ids = array_unique($ids);
|
|
|
+
|
|
|
+ // 限制最多 90 单,避免 someTimeIds 过长(兼容原先业务逻辑限制)
|
|
|
+ if (count($ids) > 90) {
|
|
|
+ $ids = array_slice($ids, 0, 90);
|
|
|
+ }
|
|
|
+
|
|
|
$sameTimeIdsStr = implode(',', $ids);
|
|
|
// 更新所有相关订单
|
|
|
- if (!empty($ids)) {
|
|
|
+ if (!empty($ids) && in_array($id, $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]);
|
|
|
+ if (!empty($oldSameTimeIds) && $oldSameTimeIds != $sameTimeIdsStr) {
|
|
|
+ $oldSameTimeIdsArr = explode(',', $oldSameTimeIds);
|
|
|
+ if (in_array($id, $oldSameTimeIdsArr)) {
|
|
|
+ $oldSameTimeIdsArr = array_diff($oldSameTimeIdsArr, [$id]);
|
|
|
+ $oldSameTimeIdsStr = implode(',', $oldSameTimeIdsArr);
|
|
|
+ if (!empty($oldSameTimeIdsArr)) {
|
|
|
+ self::updateByIds($oldSameTimeIdsArr, ['sameTimeIds' => $oldSameTimeIdsStr]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|