DataGroup.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\admin\model;
  4. use think\Model;
  5. /**
  6. * @mixin \think\Model
  7. */
  8. class DataGroup extends Model
  9. {
  10. protected $schema=[
  11. 'id' => 'integer',
  12. 'title' => 'string',
  13. 'type' => 'integer',
  14. 'remark' => 'string',
  15. 'status' => 'integer',
  16. 'is_del' => 'integer',
  17. 'addtime' => 'datetime',
  18. 'updatetime' => 'datetime',
  19. ];
  20. protected $createTime = 'addtime';
  21. protected $updateTime = 'updatetime';
  22. public static $status_on = 1;//状态:1启用
  23. public static $status_off = 0;//状态:0禁用
  24. public static $delete_n = 0;//0未删除
  25. public static $delete_y = 1;//1删除
  26. public static $type_all = 0;//全部(这个值不在数据表里体现,只在业务逻辑处理中作为配置项)
  27. public static $type_write = 1;//1可编辑
  28. public static $type_read = 2;//2只读
  29. public static $type_noshare = 3;//3不共享
  30. public function userGroup(){
  31. return $this->hasMany(DataGroupUserid::class,'data_group_id','id')->where(["is_del"=>0])->bind(["uid"]);
  32. }
  33. public static function checkDataShare(int $uid = 0,int $level=2){
  34. $data = [0=>[],1 => [$uid], 2=> [$uid],3 => []];
  35. $groupid = DataGroupUserid::GroupIdByUid($uid);
  36. if(!empty($groupid)){
  37. $group = self::where(['id'=> $groupid,'is_del'=>0,'status'=>1])->field("id,type")->select();
  38. if($group->isEmpty()==false){
  39. $groupIdArr = array_column($group,"id");
  40. $uidArr = DataGroupUserid::UidsByGroupId($groupIdArr);
  41. foreach ($group as $item){
  42. $data[$item->type]= array_unique(array_merge($data[$item->type],$uidArr[$item->id]));
  43. }
  44. }
  45. }
  46. }
  47. }