From 100e44ad02f5f2b7cdadb0f9f92180b9e5c00270 Mon Sep 17 00:00:00 2001 From: ctexthuang Date: Tue, 8 Apr 2025 09:24:08 +0800 Subject: [PATCH] feat : order list --- app/Service/Admin/System/DriverService.php | 57 ++++++++++++++-------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/app/Service/Admin/System/DriverService.php b/app/Service/Admin/System/DriverService.php index 5b2b4e9..b974740 100644 --- a/app/Service/Admin/System/DriverService.php +++ b/app/Service/Admin/System/DriverService.php @@ -124,20 +124,27 @@ class DriverService extends BaseService $list = $this->driverSequenceModel->whereIn('driver_id',$driverArr)->pluck('driver_num','driver_id')->toArray(); - $updateArr = []; +// $updateArr = []; - foreach ($driverArr as $key => $one) { - $oneSequence = $key + 1; - $updateArr[] = [ - 'driver_id' => $one, - 'sequence' => $oneSequence, - 'driver_num' => $list[$one] ?? 0, - ]; - } +// foreach ($driverArr as $key => $one) { +// $oneSequence = $key + 1; +// $updateArr[] = [ +// 'driver_id' => $one, +// 'sequence' => $oneSequence, +// 'driver_num' => $list[$one] ?? 0, +// ]; +// } - if (!empty($updateArr)) { - Db::table('driver_sequence')->upsert($updateArr,['driver_id']); - } + Db::transaction(function () use ($driverArr,$list) { + foreach ($driverArr as $key => $one) { + $update = $this->driverSequenceModel->where('driver_id', $one)->update([ + 'sequence' => $key + 1, + 'driver_num' => $list[$one] ?? 0, + ]); + + if (!$update) throw new ErrException('设置失败,数据回滚'); + } + }); return $this->return->success(); } @@ -197,16 +204,24 @@ class DriverService extends BaseService if (count($list->toArray()) != count($siteArr)) throw new ErrException('站点数据不对,刷新后重新设置'); - $updateArr = []; - foreach ($siteArr as $key => $one) { - $updateArr[] = [ - 'id' => $one, - 'sequence' => $key + 1, - ]; - } +// $updateArr = []; +// foreach ($siteArr as $key => $one) { +// $updateArr[] = [ +// 'id' => $one, +// 'sequence' => $key + 1, +// ]; +// } - $updateHandle = (new Site)->update($updateArr); - if (!$updateHandle) throw new ErrException('设置失败'); + Db::transaction(function () use ($siteArr) { + foreach ($siteArr as $key => $one) { + $update = $this->siteModel->where('id', $one)->update(['sequence' => $key + 1]); + + if (!$update) throw new ErrException('设置失败,数据回滚'); + } + }); + +// $updateHandle = (new Site)->update($updateArr); +// if (!$updateHandle) throw new ErrException('设置失败'); return $this->return->success(); }