1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- namespace app\user\model;
- use think\Model;
- class CompanyItem extends Base
- {
- //设置字段信息
- protected $schema = [
- 'id' =>'bigint',//
- 'companyNo' =>'varchar',//所属企业
- 'name' =>'varchar',//部门/公司名称
- 'pid' =>'bigint',//父级id
- 'level' =>'bigint',//部门层级
- 'weight' =>'int',//排序权重
- 'depart_link' =>'varchar',//快速查询
- 'is_del' =>'int',//是否删除
- 'addtime' =>'datetime',//
- 'updatetime' =>'datetime',//
- 'status' =>'int',//状态 0禁用1启用
- ];
- protected $updateTime='updatetime';
- protected $createTime='addtime';
- public function companyInfo(){
- return $this->belongsTo(Headquarters::class,"companyNo","code")->bind(["companyName"=>"name"]);
- }
-
- public function getDepartLinkAttr($v){
- return $this->where("id","in",array_filter(explode("-",$v)))->column("id,name");
- }
- public function SetDepartLinkAttr($v){
- return implode('-',$v);
- }
- public static function onAfterWrite(Model $model) : void{
- $id =$model->id;
- $depart = array_filter(array_column($model->depart_link,'id'));
- if(!in_array($id,$depart)){
- array_push($depart,$id);
- $model->depart_link = $depart;
- $model->level = count($depart);
- $model->save();
- }
- }
- }
|