diff --git a/app/common/exception/Tool.php b/app/common/exception/Tool.php index e4ccb50..db01983 100644 --- a/app/common/exception/Tool.php +++ b/app/common/exception/Tool.php @@ -368,9 +368,9 @@ class Tool //当前数据原信息 $original_oreder_find = $model->where($guld_field, $guid)->find(); if (!$original_oreder_find) throwErrorMsg('Tool::sortEditProc() : 找不到该数据原排序号', 444); - //查找当前数据所想更换的新排序号是否已有数据占用 + //查找当前数据所想更换的新排序号是否已有数据占用(排除自己) //已被占用,则将它们的排序号互换 - if ($model->where($order_field_name, $order)->where($extra_wheres)->find()) { + if ($model->where($order_field_name, $order)->where($guld_field, '<>', $guid)->where($extra_wheres)->find()) { $update_data = [$order_field_name => $original_oreder_find[$order_field_name]]; if (isset($model->parent_guid_field)) { $update_data[$model->parent_guid_field] = $original_oreder_find[$model->parent_guid_field]; @@ -399,7 +399,7 @@ class Tool //排序字段名 $order_field_name = $model->order_field; //新增数据的所属排序号已有数据占用,则腾位处理(已占用的数据及其后面所有数据一起排序号腾位+1) - if ($model->where($order)->where($wheres)->value($order_field_name) !== null) { + if ($model->where($order_field_name, $order)->where($wheres)->value($order_field_name) !== null) { Db::name($table_name) ->where($wheres) ->where($order_field_name, '>=', $order)