|
@@ -1020,55 +1020,39 @@ class OrderService
|
|
|
{
|
|
|
|
|
|
return DB::transaction(function () use ($userId, $data) {
|
|
|
- try {
|
|
|
- // 获取技师信息
|
|
|
- $user = MemberUser::with(['coach'])->findOrFail($userId);
|
|
|
- $coach = $user->coach;
|
|
|
- abort_if(! $coach, 404, '技师信息不存在');
|
|
|
|
|
|
- // 获取订单配置分组
|
|
|
- $settingGroup = SettingGroup::where('code', 'order')->first();
|
|
|
- abort_if(! $settingGroup, 404, '订单配置分组不存在');
|
|
|
-
|
|
|
- // 获取距离配置项
|
|
|
- $distanceSettingItem = $settingGroup->items()->where('code', 'distance')->first();
|
|
|
- abort_if(! $distanceSettingItem, 404, '距离配置项不存在');
|
|
|
-
|
|
|
- // 检查服务距离是否存在,并且是否大于0
|
|
|
- if (isset($data['distance']) && $data['distance'] > 0) {
|
|
|
- // 从全局配置中验证服务距离的合理范围
|
|
|
- abort_if($data['distance'] > $distanceSettingItem->max_value, 422, '服务距离不能超过' . $distanceSettingItem->max_value . '公里');
|
|
|
-
|
|
|
- // 更新技师服务距离配置
|
|
|
- $coach->settingValues()->updateOrCreate(
|
|
|
- ['item_id' => $distanceSettingItem->id],
|
|
|
- ['value' => $data['distance']],
|
|
|
- ['object_type' => $coach::class],
|
|
|
- ['object_id' => $coach->id],
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- // 记录日志
|
|
|
- Log::info('订单设置更新成功', [
|
|
|
- 'coach_id' => $coach->id,
|
|
|
- 'settings' => $data,
|
|
|
- ]);
|
|
|
-
|
|
|
- return [
|
|
|
- 'message' => '订单设置更新成功',
|
|
|
- 'coach_id' => $coach->id,
|
|
|
- 'settings' => $data,
|
|
|
- ];
|
|
|
- } catch (\Exception $e) {
|
|
|
- Log::error('订单设置更新失败', [
|
|
|
- 'user_id' => $userId,
|
|
|
- 'data' => $data,
|
|
|
- 'error' => $e->getMessage(),
|
|
|
- 'file' => $e->getFile(),
|
|
|
- 'line' => $e->getLine(),
|
|
|
- ]);
|
|
|
- throw $e;
|
|
|
+ // 获取技师信息
|
|
|
+ $user = MemberUser::with(['coach'])->findOrFail($userId);
|
|
|
+ $coach = $user->coach;
|
|
|
+ abort_if(! $coach, 404, '技师信息不存在');
|
|
|
+
|
|
|
+ // 获取订单配置分组
|
|
|
+ $settingGroup = SettingGroup::where('code', 'order')->first();
|
|
|
+ abort_if(! $settingGroup, 404, '订单配置分组不存在');
|
|
|
+
|
|
|
+ // 获取距离配置项
|
|
|
+ $distanceSettingItem = $settingGroup->items()->where('code', 'distance')->first();
|
|
|
+ abort_if(! $distanceSettingItem, 404, '距离配置项不存在');
|
|
|
+
|
|
|
+ // 检查服务距离是否存在,并且是否大于0
|
|
|
+ if (isset($data['distance']) && $data['distance'] > 0) {
|
|
|
+ // 从全局配置中验证服务距离的合理范围
|
|
|
+ abort_if($data['distance'] > $distanceSettingItem->max_value, 422, '服务距离不能超过' . $distanceSettingItem->max_value . '公里');
|
|
|
+
|
|
|
+ // 更新技师服务距离配置
|
|
|
+ $coach->settingValues()->updateOrCreate(
|
|
|
+ ['item_id' => $distanceSettingItem->id],
|
|
|
+ ['value' => $data['distance']],
|
|
|
+ ['object_type' => $coach::class],
|
|
|
+ ['object_id' => $coach->id],
|
|
|
+ );
|
|
|
}
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'message' => '订单设置更新成功',
|
|
|
+ 'coach_id' => $coach->id,
|
|
|
+ 'settings' => $data,
|
|
|
+ ];
|
|
|
});
|
|
|
}
|
|
|
|