Project.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Models\Service;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Support\Facades\DB;
  6. class Project extends Model
  7. {
  8. use HasFactory;
  9. protected $table = 'service_project';
  10. protected $guarded = [];
  11. protected $appends = [];
  12. protected $casts = [
  13. 'isAdd' => 'bool',
  14. 'isStore' => 'bool',
  15. 'isDoor' => 'bool'
  16. ];
  17. public function getCoachProjectStatus($coach_id)
  18. {
  19. $status = DB::table('service_project_has_coach')->where('project_id', $this->attributes['id'])
  20. ->where('coach_id', $coach_id)->value('status');
  21. return $status ?: 0;
  22. }
  23. public function updateCoachProjectStatus(int $coach_id, int $status): void
  24. {
  25. $model = DB::table('service_project_has_coach');
  26. $project_id = $model->where('project_id', $this->attributes['id'])
  27. ->where('coach_id', $coach_id)->value('id');
  28. if($project_id)
  29. $model->where('id',$project_id)->update(['status' => $status]);
  30. else
  31. $model->insert(['project_id' => $this->attributes['id'], 'coach_id' => $coach_id, 'status' => $status]);
  32. }
  33. // 关联服务项目所属分类
  34. public function saveCategory(array $category_ids)
  35. {
  36. $data = collect($category_ids)->map(fn($category_id) => ['project_id' => $this->attributes['id'], 'category_id' => $category_id]);
  37. DB::table('service_project_has_category')->insert($data->all());
  38. }
  39. // 获取服务项目所属分类
  40. public function getCategory()
  41. {
  42. return DB::table('service_project_has_category')->where('project_id', $this->attributes['id'])->pluck('category_id');
  43. }
  44. public function deleteCategory()
  45. {
  46. return DB::table('service_project_has_category')->where('project_id', $this->attributes['id'])->delete();
  47. }
  48. // public function hasCoach()
  49. // {
  50. // return $this->hasOne(\App\Models\Coach\User::class,'user_id');
  51. //
  52. // }
  53. }