| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- <?php
 
- namespace app\common\model;
 
- use think\facade\Db;
 
- use app\common\model\Contract;
 
- use app\common\model\ProjectSchedule;
 
- class Project extends Base
 
- {
 
-     protected $schema = [
 
-         'id'     => 'int',       
 
-         'create_time'    => 'datetime',  
 
-         'update_time'    => 'datetime',  
 
-         'delete_time'    => 'datetime',  
 
-         'name'   => 'varchar',   
 
-         'responsibility_person_id'    => 'int',       
 
-         'desc'   => 'text',      
 
-         'source'         => 'varchar',   
 
-         'estimated_amount'       => 'int',       
 
-         'status'         => 'varchar',   
 
-         'project_start_date'     => 'date',      
 
-         'project_end_date'       => 'date',      
 
-         'dev_start_date'         => 'date',      
 
-         'dev_end_date'   => 'date',      
 
-         'pre_dev_time'   => 'int',       
 
-         'maintain_start_date'    => 'date',      
 
-         'maintain_end_date'      => 'date',      
 
-         'pre_maintain_time'      => 'int',       
 
-         'participants_id'   => 'json',      
 
-     ];
 
-     protected $type = [
 
-         'participants_id' => 'array'
 
-     ];
 
-     public function responsibilityPersonName()
 
-     {
 
-         return $this->belongsTo(Admin::class, 'responsibility_person_id', 'id');
 
-     }
 
-     public function contracts()
 
-     {
 
-         return $this->hasMany(Contract::class);
 
-     }
 
-     public function schedules()
 
-     {
 
-         return $this->hasMany(ProjectSchedule::class)
 
-             ->field('s.*')
 
-             ->field('a.real_name as updater')
 
-             ->alias('s')
 
-             ->order('s.start_date asc')
 
-             ->join('admin a', 'a.id = s.updater_id', 'LEFT');
 
-     }
 
-     public function getParticipantsAttr($value, $data) {
 
-         return (new Admin)->where('id', 'in', $this->participants_id)->select()->map(fn($admin) => $admin->real_name);
 
-     }
 
- }
 
 
  |