|
|
@@ -3139,19 +3139,28 @@ 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
|
|
|
- $newSameTimeIdsArr = explode(',', $oldSameTimeIds);
|
|
|
- if (in_array($id, $newSameTimeIdsArr)) {
|
|
|
- $newSameTimeIdsArr = array_diff($newSameTimeIdsArr, [$id]);
|
|
|
- $newSameTimeIdsStr = implode(',', $newSameTimeIdsArr);
|
|
|
- if (!empty($newSameTimeIdsArr)) {
|
|
|
- self::updateByIds($newSameTimeIdsArr, ['sameTimeIds' => $newSameTimeIdsStr]);
|
|
|
+
|
|
|
+ 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]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|