|
@@ -6,6 +6,8 @@ use App\Models\ShopInfo;
|
|
|
use App\Models\CoachUser;
|
|
|
use App\Enums\OrderStatus;
|
|
|
use App\Models\MemberUser;
|
|
|
+use App\Enums\ProjectStatus;
|
|
|
+use App\Models\CoachProject;
|
|
|
use App\Models\CoachLocation;
|
|
|
use App\Models\CoachSchedule;
|
|
|
use App\Models\CoachStatistic;
|
|
@@ -897,7 +899,7 @@ class AccountService
|
|
|
Redis::del($keys);
|
|
|
}
|
|
|
} catch (\Exception $e) {
|
|
|
- Log::error('清除���间段缓存失败', [
|
|
|
+ Log::error('清除可预约时间段缓存失败', [
|
|
|
'coach_id' => $coachId,
|
|
|
'error' => $e->getMessage(),
|
|
|
]);
|
|
@@ -1518,4 +1520,52 @@ class AccountService
|
|
|
default => '未知等级',
|
|
|
};
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取技师已开通的项目列表
|
|
|
+ *
|
|
|
+ * 业务逻辑:
|
|
|
+ * 1. 获取技师开通的所有项目
|
|
|
+ * 2. 预加载项目基础信息
|
|
|
+ * 3. 格式化返回数据
|
|
|
+ *
|
|
|
+ * @param int $coachId 技师ID
|
|
|
+ * @return array 项目列表数据,包含:
|
|
|
+ * - total: int 总数
|
|
|
+ * - list: array 项目列表
|
|
|
+ */
|
|
|
+ public function getEnabledProjects(int $coachId): array
|
|
|
+ {
|
|
|
+ // 获取技师开通且启用的项目
|
|
|
+ $projects = CoachProject::with(['project', 'project.category'])
|
|
|
+ ->where('coach_id', $coachId)
|
|
|
+ ->where('state', ProjectStatus::OPEN->value)
|
|
|
+ ->get();
|
|
|
+
|
|
|
+ // 格式化项目数据
|
|
|
+ $list = $projects->map(function ($item) {
|
|
|
+ return [
|
|
|
+ 'id' => $item->id,
|
|
|
+ 'project_id' => $item->project_id,
|
|
|
+ 'project_name' => $item->project?->name,
|
|
|
+ 'category_id' => $item->project?->category_id,
|
|
|
+ 'category_name' => $item->project?->category?->name,
|
|
|
+ 'duration' => $item->project?->duration, // 服务时长(分钟)
|
|
|
+ 'price' => $item->project?->price, // 项目价格
|
|
|
+ 'discount_amount' => $item->discount_amount, // 优惠金额
|
|
|
+ 'final_price' => $item->project?->price - $item->discount_amount, // 最终价格
|
|
|
+ 'service_gender' => $item->service_gender, // 服务性别
|
|
|
+ 'service_distance' => $item->service_distance, // 服务距离(米)
|
|
|
+ 'traffic_fee_type' => $item->traffic_fee_type, // 路费类型
|
|
|
+ 'traffic_fee' => $item->traffic_fee, // 路费金额
|
|
|
+ 'created_at' => $item->created_at?->format('Y-m-d H:i:s'),
|
|
|
+ 'updated_at' => $item->updated_at?->format('Y-m-d H:i:s'),
|
|
|
+ ];
|
|
|
+ })->values()->all();
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'total' => count($list),
|
|
|
+ 'list' => $list
|
|
|
+ ];
|
|
|
+ }
|
|
|
}
|