lizhen_gitee 1 år sedan
förälder
incheckning
f4dc0107bd
1 ändrade filer med 69 tillägg och 10 borttagningar
  1. 69 10
      application/api/controller/Family.php

+ 69 - 10
application/api/controller/Family.php

@@ -78,13 +78,24 @@ class Family extends Api
      * 获取公会信息-新
      */
     public function getGuildInfoNew() {
-        $guild_id = input("guild_id"); //公会ID
+        $guild_id = input("guild_id",0); //公会ID
+        $easemob_group_id = input("easemob_group_id",0); //公会群组ID
+
+        if(!$guild_id && !$easemob_group_id){
+            $this->error('不存在的家族');
+        }
 
         //结果
         $res = [];
 
         //公会信息
-        $guildInfo = \app\common\model\Family::field("id,image,name,g_id,user_id,easemob_group_id,desc,notice,status")->where(["id"=>$guild_id])->find();
+        $map = [];
+        if($guild_id){
+            $map['guild_id'] = $guild_id;
+        }else{
+            $map['easemob_group_id'] = $easemob_group_id;
+        }
+        $guildInfo = \app\common\model\Family::field("id,image,name,g_id,user_id,easemob_group_id,desc,notice,status")->where($map)->find();
         if(!$guildInfo) $this->error("家族信息获取失败!");
 
 
@@ -102,7 +113,7 @@ class Family extends Api
 
 
         //获取家族角色 角色:0=成员,1=副会长,2=会长,3=非会员
-        $guildMember = \app\common\model\FamilyMember::field('id,role,status')->where(['guild_id'=>$guild_id,'user_id'=>$this->auth->id,'status'=>1])->find();
+        $guildMember = \app\common\model\FamilyMember::field('id,role,status')->where(['guild_id'=>$guildInfo['id'],'user_id'=>$this->auth->id,'status'=>1])->find();
         if (!empty($guildMember)) {
             $guildRole = $guildMember['role'];
         }else{
@@ -517,8 +528,8 @@ class Family extends Api
         $memberInfo['online_text'] = $onlineText;
 
         //我在这个公会的角色
-        /*$myGuildMember = model('FamilyMember')->field('role')->where(["user_id"=>$this->auth->id,"guild_id"=>$memberInfo['guild_id']])->find();
-        $memberInfo["my_role"] = !empty($myGuildMember) ? $myGuildMember['role'] : 3;*/
+        $myGuildMember = model('FamilyMember')->field('role')->where(["user_id"=>$this->auth->id,"guild_id"=>$memberInfo['guild_id']])->find();
+        $memberInfo["my_role"] = !empty($myGuildMember) ? $myGuildMember['role'] : 3;
 
         //几个比较大的值,改w单位
         $fieldArr = ['wealth','charm','gift_num'];
@@ -591,20 +602,22 @@ class Family extends Api
         $member_id = input("member_id",0,"intval"); //成员ID
         if(!$guild_id || !$member_id) $this->error("参数缺失!");
 
-        // 先判断是否为公会会长
-        $user_id = $this->auth->id;
         // 获取公会信息
         $guildInfo = \app\common\model\Family::where(["id"=>$guild_id])->find();
-        // 验证更新条件
-        if($user_id !== $guildInfo->user_id) $this->error("身份验证失败!您不是族长,无权限更改!");
 
         $memberInfo = \app\common\model\FamilyMember::where(["id"=>$member_id,'guild_id'=>$guild_id])->find();
-        if(!$memberInfo) $this->error("会员信息查询失败!");
+        if(!$memberInfo) {
+            $this->error("会员信息查询失败!");
+        }
 
         if($memberInfo['role'] == 2 || $memberInfo['user_id'] == $guildInfo['user_id']){
             $this->error('族长不能被踢出家族');
         }
 
+        if($memberInfo['role'] == 1 && $this->auth->id !== $guildInfo->user_id) {
+            $this->error("族长才能踢出管理员");
+        }
+
         Db::startTrans();
         try{
             $res1 = $memberInfo->delete();
@@ -631,6 +644,52 @@ class Family extends Api
             $this->error($e->getMessage());
         }
     }
+    /**
+     * 公会管理-自己退出公会
+     */
+    public function guildMemberQuit() {
+        $guild_id = input("guild_id",0,"intval"); //公会ID
+        if(!$guild_id) $this->error("参数缺失!");
+
+        // 获取公会信息
+        $guildInfo = \app\common\model\Family::where(["id"=>$guild_id])->find();
+
+        $memberInfo = \app\common\model\FamilyMember::where(["user_id"=>$this->auth->id,'guild_id'=>$guild_id])->find();
+        if(!$memberInfo) {
+            $this->error("会员信息查询失败!");
+        }
+
+        if($memberInfo['role'] == 2){
+            $this->error('族长不能退出家族');
+        }
+
+
+        Db::startTrans();
+        try{
+            $res1 = $memberInfo->delete();
+            $res2 = \app\common\model\Family::where(["id"=>$guild_id])->setDec("member");
+            if($res1 && $res2) {
+                Db::commit();
+
+                //[环信]移除群组成员
+                $easemob = new Easemob();
+                $easemob->group_removeGroupMember($guildInfo['easemob_group_id'],$memberInfo['user_id']);
+
+                $this->success("退出成功!");
+            } else {
+                $this->error("网络错误,请稍后重试!");
+            }
+        }catch (ValidateException $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        } catch (PDOException $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        } catch (Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        }
+    }
 
     /**
      * 家族贡献榜排行