MeetingModel.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2017~2021 LARAVEL研发中心
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://www.laravel.cn
  8. // +----------------------------------------------------------------------
  9. // | Author: laravel开发员 <laravel.qq.com>
  10. // +----------------------------------------------------------------------
  11. namespace App\Models;
  12. /**
  13. * 会议-模型
  14. * @author laravel开发员
  15. * @since 2020/11/11
  16. * @package App\Models
  17. */
  18. class MeetingModel extends BaseModel
  19. {
  20. // 设置数据表
  21. protected $table = 'meetings';
  22. protected $appends = ['city','time_text'];
  23. public function getThumbAttribute($value)
  24. {
  25. return $value? get_image_url($value) : '';
  26. }
  27. // 时间
  28. public function getTimeTextAttribute()
  29. {
  30. $startTime = $this->start_at? strtotime($this->start_at) : 0;
  31. $endTime = $this->end_at? strtotime($this->end_at) : time();
  32. $startAt = $this->start_at? datetime($this->start_at,'m月d日 H:i') : '';
  33. $formatType = 'm月d日 H:i';
  34. if($endTime && $endTime <= $startTime+86400){
  35. $formatType = 'H:i';
  36. }
  37. $endAt = date($formatType,$endTime);
  38. return $startAt.' - '.$endAt;
  39. }
  40. /**
  41. * @return array
  42. */
  43. public function getCutyAttribute()
  44. {
  45. return [$this->province_id,$this->city_id,$this->district_id];
  46. }
  47. /**
  48. * 推荐组织人
  49. */
  50. public function member()
  51. {
  52. return $this->hasOne(MemberModel::class, 'id','user_id')
  53. ->where(['mark'=>1])
  54. ->select(['id', 'nickname','avatar', 'realname','position','company','department','is_auth', 'mobile', 'status']);
  55. }
  56. /**
  57. * 城市
  58. */
  59. public function city()
  60. {
  61. return $this->hasOne(CityModel::class, 'id','city_id')
  62. ->where(['mark'=>1]);
  63. }
  64. /**
  65. * 区县
  66. */
  67. public function district()
  68. {
  69. return $this->hasOne(CityModel::class, 'id','district_id')
  70. ->where(['mark'=>1]);
  71. }
  72. /**
  73. * 签到记录
  74. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  75. */
  76. public function records()
  77. {
  78. return $this->hasMany(MeetingRecordsModel::class, 'meeting_id','id')
  79. ->where(['mark'=>1]);
  80. }
  81. }