<?php
|
|
namespace app\common\model\plus\business;
|
use app\common\model\BaseModel;
|
use app\common\model\settings\Region;
|
|
/**
|
* 名片管理模型
|
*/
|
class Business extends BaseModel
|
{
|
protected $name='business_card';
|
/**
|
* 追加字段
|
* @var string[]
|
*/
|
protected $append = ['region'];
|
|
/**
|
* 地区名称
|
* @param $value
|
* @param $data
|
* @return array
|
*/
|
public function getRegionAttr($value, $data)
|
{
|
return [
|
'province' => Region::getNameById($data['province_id']),
|
'city' => Region::getNameById($data['city_id']),
|
'region' => $data['region_id'] == 0 ? '' : Region::getNameById($data['region_id']),
|
];
|
}
|
public function getSexAttr($value){
|
$data=[10=>'未知',20=>'男',30=>'女'];
|
return $data[$value];
|
}
|
/**
|
* 关联用户
|
* @return \think\model\relation\HasOne
|
*/
|
public function user(){
|
$model=self::getCalledModule()?:'common';
|
return $this->hasOne("app\\$model\\model\\user\\User",'user_id','user_id');
|
}
|
|
/**
|
* 头像
|
* @return \think\model\relation\HasOne
|
*/
|
public function image(){
|
$model=self::getCalledModule()?:'common';
|
return $this->hasOne("app\\$model\\model\\file\\UploadFile",'file_id','file_id')->bind(['file_path']);
|
}
|
/**
|
* logo
|
* @return \think\model\relation\HasOne
|
*/
|
public function logoImage(){
|
$model=self::getCalledModule()?:'common';
|
return $this->hasOne("app\\$model\\model\\file\\UploadFile",'file_id','logo')->bind(['file_path']);
|
}
|
/**
|
* 添加
|
* @param $data
|
* @return false|int
|
*/
|
public function add($data){
|
$data['app_id']=self::$app_id;
|
$data['grade_id']=(new Grade())->getDefaultGradeId();
|
return $this->save($data);
|
}
|
public function getUnitAttr($name)
|
{
|
return json_decode($name);
|
}
|
public function getDutiesAttr($name)
|
{
|
return json_decode($name);
|
}
|
public function getAddressAttr($name)
|
{
|
return json_decode($name);
|
}
|
public function getPositionAttr($name)
|
{
|
return $name?json_decode($name):[];
|
}
|
|
/**
|
* 获取名片列表
|
* @param $param
|
* @return \think\Paginator
|
* @throws \think\db\exception\DbException
|
*/
|
public function getList($param=[]){
|
$paramr=array_merge(['listRow'=>15],$param);
|
$where=[];
|
!empty($paramr['name'])&&$where['name']=['like','%'.$paramr['name'].'%'];
|
!empty($paramr['search'])&&$where['name|duties|unit']=['like','%'.$paramr['search'].'%'];
|
!empty($paramr['user_id'])&&$where['user_id']=$paramr['user_id'];
|
if(!empty($paramr['sort'])){
|
if($paramr['sort']=='name'){
|
$order=['name'=>"asc"];
|
}else if($paramr['sort']=='time'){
|
$order=['create_time'=>"asc"];
|
}else{
|
$order=['unit'=>"asc"];
|
}
|
}else{
|
$order=['is_default'=>'desc','create_time'=>'desc'];
|
}
|
return $this->with(['user','image','logoImage'])->order($order)->where($where)->paginate($paramr);
|
}
|
/**
|
* 获取名片详情
|
* @param $business_card_id
|
* @return array|false|\think\Model|null
|
* @throws \think\db\exception\DbException
|
*/
|
public function detail($business_card_id){
|
return $this->with(['user','image','logoImage'])->where(['business_card_id'=>$business_card_id])->find();
|
}
|
}
|