admin/business/common/models/Staff.php

106 lines
2.6 KiB
PHP

<?php
/**
* Created by PhpStorm.
*
*
*
* Date: 2021/9/22
* Time: 13:37
*/
namespace business\common\models;
use app\common\models\BaseModel;
use app\common\models\Member;
use business\common\services\SettingService;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletes;
use Yunshop\GroupDevelopUser\common\models\GroupMemberLog;
class Staff extends BaseModel
{
public $table = 'yz_business_staff';
public $timestamps = true;
protected $guarded = [];
protected $appends = ['userid','avatar_mediaid'];
protected $casts = [];
const STATUS_UNCONNECT = 0;
const STATUS_ACTIVE = 1;
const STATUS_BAN = 2;
const STATUS_UNACTIVE = 4;
const STATUS_LEAVE = 5;
const GENDER_DESC = [
'0' => '未知',
'1' => '男',
'2' => '女',
];
const STATUS_DESC = [
self::STATUS_UNCONNECT => '未关联',
self::STATUS_ACTIVE => '已激活',
self::STATUS_BAN => '已禁用',
self::STATUS_UNACTIVE => '未激活',
self::STATUS_LEAVE => '退出企业',
];
use SoftDeletes;
public function getUseridAttribute()
{
return $this->attributes['user_id'];
}
public function getAvatarMediaidAttribute()
{
return $this->attributes['avatar'];
}
public static function business($business_id = 0)
{
$business_id = $business_id ?: SettingService::getBusinessId();
return self::uniacid()->where('business_id', $business_id);
}
public function hasManyDepartmentStaff()
{
return $this->hasMany(DepartmentStaff::class, 'staff_id', 'id');
}
public function hasOneMember()
{
return $this->hasOne(Member::class, 'uid', 'uid');
}
public function hasOneBusiness()
{
return $this->hasOne(Business::class, 'id', 'business_id');
}
public function getQyWxStaff($staff, $department_id_arr = [], $department_order_arr = [], $department_leader_arr = [])
{
if (is_array($staff)) $staff = (Object)$staff;
return [
'userid' => $staff->user_id,
'name' => $staff->name,
'alias' => $staff->alias ?: '',
'mobile' => $staff->mobile,
'department' => $department_id_arr,
'order' => $department_order_arr,
'position' => $staff->position ?: '',
'gender' => in_array($staff->gender, [1, 2]) ? $staff->gender : 0,
'email' => $staff->email ?: '',
'telephone' => $staff->telephone ?: '',
'is_leader_in_dept' => $department_leader_arr,
'address' => $staff->address ?: ''
];
}
}