CompanyItem.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace app\user\model;
  3. use think\Model;
  4. class CompanyItem extends Base
  5. {
  6. //设置字段信息
  7. protected $schema = [
  8. 'id' =>'bigint',//
  9. 'companyNo' =>'varchar',//所属企业
  10. 'name' =>'varchar',//部门/公司名称
  11. 'pid' =>'bigint',//父级id
  12. 'level' =>'bigint',//部门层级
  13. 'weight' =>'int',//排序权重
  14. 'depart_link' =>'varchar',//快速查询
  15. 'is_del' =>'int',//是否删除
  16. 'addtime' =>'datetime',//
  17. 'updatetime' =>'datetime',//
  18. 'status' =>'int',//状态 0禁用1启用
  19. ];
  20. protected $updateTime='updatetime';
  21. protected $createTime='addtime';
  22. public function companyInfo(){
  23. return $this->belongsTo(Headquarters::class,"companyNo","code")->bind(["companyName"=>"name"]);
  24. }
  25. public function getDepartLinkAttr($v){
  26. return $this->where("id","in",array_filter(explode("-",$v)))->column("id,name");
  27. }
  28. public function SetDepartLinkAttr($v){
  29. return implode('-',$v);
  30. }
  31. public static function onAfterWrite(Model $model) : void{
  32. $id =$model->id;
  33. $depart = array_filter(array_column($model->depart_link,'id'));
  34. if(!in_array($id,$depart)){
  35. array_push($depart,$id);
  36. $model->depart_link = $depart;
  37. $model->level = count($depart);
  38. $model->save();
  39. }
  40. }
  41. }