Invite.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Models;
  3. use Auth;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\SoftDeletes;
  6. use Illuminate\Database\Query\Builder;
  7. /**
  8. * 邀请码
  9. *
  10. * @property int $id
  11. * @property int $uid 邀请人ID
  12. * @property int $fuid 受邀人ID
  13. * @property string $code 邀请码
  14. * @property int $status 邀请码状态:0-未使用、1-已使用、2-已过期
  15. * @property string|null $dateline 有效期至
  16. * @property \Illuminate\Support\Carbon|null $created_at
  17. * @property \Illuminate\Support\Carbon|null $updated_at
  18. * @property \Illuminate\Support\Carbon|null $deleted_at 删除时间
  19. * @property-read \App\Models\User|null $generator
  20. * @property-read mixed $status_label
  21. * @property-read \App\Models\User|null $user
  22. * @method static \Illuminate\Database\Eloquent\Builder|Invite newModelQuery()
  23. * @method static \Illuminate\Database\Eloquent\Builder|Invite newQuery()
  24. * @method static Builder|Invite onlyTrashed()
  25. * @method static \Illuminate\Database\Eloquent\Builder|Invite query()
  26. * @method static \Illuminate\Database\Eloquent\Builder|Invite uid()
  27. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereCode($value)
  28. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereCreatedAt($value)
  29. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereDateline($value)
  30. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereDeletedAt($value)
  31. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereFuid($value)
  32. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereId($value)
  33. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereStatus($value)
  34. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereUid($value)
  35. * @method static \Illuminate\Database\Eloquent\Builder|Invite whereUpdatedAt($value)
  36. * @method static Builder|Invite withTrashed()
  37. * @method static Builder|Invite withoutTrashed()
  38. * @mixin \Eloquent
  39. */
  40. class Invite extends Model {
  41. use SoftDeletes;
  42. protected $table = 'invite';
  43. protected $primaryKey = 'id';
  44. protected $dates = ['deleted_at'];
  45. function scopeUid($query) {
  46. return $query->whereUid(Auth::id());
  47. }
  48. function generator() {
  49. return $this->hasOne(User::class, 'id', 'uid');
  50. }
  51. function user() {
  52. return $this->hasOne(User::class, 'id', 'fuid');
  53. }
  54. function getStatusLabelAttribute() {
  55. switch($this->attributes['status']){
  56. case 0:
  57. $status_label = '<span class="badge badge-success">'.trans('home.invite_code_table_status_un').'</span>';
  58. break;
  59. case 1:
  60. $status_label = '<span class="badge badge-danger">'.trans('home.invite_code_table_status_yes').'</span>';
  61. break;
  62. case 2:
  63. $status_label = '<span class="badge badge-default">'.trans('home.invite_code_table_status_expire').'</span>';
  64. break;
  65. default:
  66. $status_label = '<span class="badge badge-default"> 未知 </span>';
  67. }
  68. return $status_label;
  69. }
  70. }