You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
2.5 KiB

3 years ago
<?php
namespace App\Models;
3 years ago
use EasyWeChat\Factory;
3 years ago
class Visit extends SoftDeletesModel
{
protected $guarded = ['id'];
3 years ago
protected $appends = ['type_text', 'audit_status_text', 'file_detail'];
3 years ago
protected $casts = [
'follw_people' => 'array',
3 years ago
'cars' => 'array',
3 years ago
'file' => 'array',
'person_no' => 'array',
'car_no' => 'array'
3 years ago
];
3 years ago
public function getFileDetailAttribute()
{
if (empty($this->file)) {
return [];
}
return Upload::whereIn('id', $this->file)->get();
}
3 years ago
public function getTypeTextAttribute()
{
$array = [1 => '普通访客', 2 => '施工访客', 3 => '物流访客'];
return $array[$this->type] ?? '';
}
public function getAuditStatusTextAttribute()
{
3 years ago
$array = ['-1' => '待学习', '0' => '待审核', '1' => '通过', '2' => '驳回', '3' => '已进厂', '4' => '已离厂', '5' => '已取消'];
3 years ago
return $array[$this->audit_status] ?? '';
3 years ago
}
3 years ago
public function visitTime()
{
return $this->hasOne(VisitTime::class, 'id', 'visit_time_id');
3 years ago
}
3 years ago
public function admin()
{
return $this->hasOne(Admin::class, 'id', 'admin_id');
3 years ago
}
3 years ago
public function acceptAdmin()
{
return $this->hasOne(Admin::class, 'id', 'accept_admin_id');
}
public function acceptGoodsAdmin()
{
return $this->hasOne(Admin::class, 'id', 'accept_goods_admin_id');
}
public function acceptAdminSignFile()
{
return $this->hasOne(Upload::class, 'id', 'accept_admin_sign');
}
3 years ago
public function visitArea()
{
return $this->hasOne(VisitArea::class, 'id', 'visit_area_id');
3 years ago
}
3 years ago
public function audit()
{
return $this->hasMany(VisitAudit::class, 'visit_id', 'id');
}
public function logs()
{
return $this->hasMany(VisitLog::class, 'visit_id', 'id');
3 years ago
}
3 years ago
public function gateLogs()
{
3 years ago
return $this->hasMany(GateLog::class, 'code', 'code');
3 years ago
}
3 years ago
// 小程序订阅消息
3 years ago
public static function subMsg($template_id, $openid, $data,$id)
3 years ago
{
$config = [
'app_id' => \config('app.wechat_appid'),
'secret' => \config('app.wechat_appsecret')
];
$app = Factory::miniProgram($config);
$data = [
'template_id' => $template_id,
'touser' => $openid,
3 years ago
'page' => 'pages/visit/detail?id=' . $id,
3 years ago
'data' => $data
];
return $app->subscribe_message->send($data);
}
3 years ago
}