GroupUser.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * raingad IM [ThinkPHP6]
  4. * @author xiekunyu <raingad@foxmail.com>
  5. */
  6. namespace app\enterprise\model;
  7. use app\BaseModel;
  8. use think\facade\Db;
  9. class GroupUser extends BaseModel
  10. {
  11. protected $pk="id";
  12. // 编辑团队信息
  13. public static function editGroupUser($map,$data){
  14. return self::where($map)->update($data);
  15. }
  16. // 获取团队成员列表
  17. public static function getGroupUser($map,$listRows,$pageSize=1){
  18. if($listRows){
  19. $list=self::where($map)->order('role asc')->paginate(['list_rows'=>$listRows,'page'=>$pageSize]);
  20. $data=$list->toArray()['data'];
  21. }else{
  22. $data=self::where($map)->order('role asc')->select();
  23. }
  24. return User::matchAllUser($data,true,'user_id');
  25. }
  26. // 验证权限
  27. public static function checkAuth($map,$role=1){
  28. $info=self::where($map)->find()->toArray();
  29. if($info['role']<=$role){
  30. return true;
  31. }else{
  32. return false;
  33. }
  34. }
  35. // 加入群聊,发送加入消息
  36. public static function joinGroup($uid,$inviteId,$groupInfo,$action='joinGroup'){
  37. $group_id=$groupInfo['group_id'];
  38. GroupUser::create([
  39. 'user_id'=>$uid,
  40. 'invite_id'=>$inviteId,
  41. 'status'=>1,
  42. 'role'=>$action=='autoCreateGroup' ? 1 : 3,
  43. 'group_id'=>$group_id,
  44. ]);
  45. event('GroupChange', ['action' => $action, 'group_id' => $group_id, 'param' => $groupInfo]);
  46. queuePush(['action'=>'createAvatar','group_id'=>$group_id]);
  47. return true;
  48. }
  49. // 获取群管理
  50. public static function getGroupManage($group_id){
  51. $list=self::where([['group_id','=',$group_id],['role','<',3],['status','=',1]])->select()->toArray();
  52. $data=[];
  53. foreach($list as $k=>$v){
  54. $data[$v['user_id']]=$v['role'];
  55. }
  56. return $data;
  57. }
  58. /**
  59. * 群成员
  60. * @return \think\model\relation\HasOne
  61. */
  62. public function userInfo()
  63. {
  64. return $this->hasOne(User::class, 'user_id', 'user_id');
  65. }
  66. }