Project.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Models;
  3. use Illuminate\Database\Eloquent\Builder;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\Relations\BelongsToMany;
  6. use Illuminate\Database\Eloquent\Relations\HasOne;
  7. class Project extends Model
  8. {
  9. public function permissions(): BelongsToMany
  10. {
  11. return $this->belongsToMany(
  12. Permission::class,
  13. 'project_has_permissions',
  14. 'project_id',
  15. 'permission_id'
  16. );
  17. }
  18. public function info(): HasOne
  19. {
  20. return $this->hasOne(
  21. ProjectInfo::class,
  22. 'project_id',
  23. 'id'
  24. );
  25. }
  26. public function ae(): HasOne
  27. {
  28. return $this->hasOne(
  29. User::class,
  30. 'id',
  31. 'ae_id'
  32. );
  33. }
  34. public function scopeProject(Builder $query, $projectIds = null)
  35. {
  36. if ($projectIds === null) {
  37. return $query;
  38. }
  39. return $query->where('id', $projectIds);
  40. }
  41. public function serialNo()
  42. {
  43. return sprintf('R%s-%s', date('Y'), $this->newQuery()->count());
  44. }
  45. const COMPANY_TYPE = [
  46. [
  47. 'key' => 1,
  48. 'title' => '中小型企业'
  49. ],
  50. [
  51. 'key' => 2,
  52. 'title' => '国企/上市公司'
  53. ]
  54. ];
  55. }