|
|
@@ -93,7 +93,6 @@ class OrderClass extends BaseClass
|
|
|
const SEND_STATUS_COMPLETED = 2; //已送达
|
|
|
const SEND_STATUS_CANCEL = 3; //取消
|
|
|
|
|
|
-
|
|
|
//订单总流程数
|
|
|
const TOTAL_FLOW = 3;
|
|
|
|
|
|
@@ -3135,19 +3134,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]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|