1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- namespace App\Services\Client;
- use App\Models\CoachUser;
- use App\Models\ShopCoachService;
- use App\Models\Project;
- use Illuminate\Support\Facades\DB;
- class ProjectService
- {
- /**
- * 获取项目详情
- */
- public function getProjectDetail($projectId, $areaCode)
- {
- // 根据区域代码获取代理商
- $agent = AgentInfo::where('business_area', 'like', "%{$areaCode}%")
- ->where('state', 'enable')
- ->first();
-
- if (!$agent) {
- throw new \Exception('该区域暂无代理商');
- }
- // 获取项目详情
- $project = Project::where('id', $projectId)
- ->where('state', 'enable')
- ->where(function($query) use ($areaCode) {
- // 根据区域地址过滤项目
- $query->where('area_code', $areaCode);
- })
- ->with([
- 'category:id,name',
- 'agent' => function($query) use ($agent) {
- $query->where('id', $agent->id);
- }
- ])
- ->firstOrFail();
- return $project;
- }
-
- /**
- * 获取技师开通的项目列表
- */
- public function getCoachProjectList($coachId, $areaCode)
- {
- // 查询技师信息
- $coach = CoachUser::where('id', $coachId)
- ->where('state', 'enable')
- ->where('auth_state', 'passed')
- ->firstOrFail();
- // 获取技师开通的项目ID列表
- $projectIds = ShopCoachService::where('coach_id', $coachId)
- ->where('state', 'enable')
- ->pluck('shop_service_id');
- // 查询项目列表
- $projects = Project::whereIn('id', $projectIds)
- ->where('state', 'enable')
- ->where(function($query) use ($areaCode) {
- // TODO: 根据区域地址过滤项目
- $query->where('area_code', $areaCode);
- })
- ->with([
- 'category:id,name',
- // 其他关联
- ])
- ->orderBy('sort', 'desc')
- ->paginate(10);
- return $projects;
- }
- }
|