|  | @@ -88,20 +88,24 @@ class Guild extends Api
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              $memberfind = \app\common\model\GuildMember::where(["user_id"=>$user_id,"status"=>1,"sign_time"=>["gt",time()]])->find();
 |  |              $memberfind = \app\common\model\GuildMember::where(["user_id"=>$user_id,"status"=>1,"sign_time"=>["gt",time()]])->find();
 | 
											
												
													
														|  |              if($memberfind) $guild_id = $memberfind->guild_id;
 |  |              if($memberfind) $guild_id = $memberfind->guild_id;
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +            $guildWhere['user_id'] = $user_id;
 | 
											
												
													
														|  | 
 |  | +            $guildWhere['status'] = ['in',[0,1]];
 | 
											
												
													
														|  | 
 |  | +            $guildInfo = \app\common\model\Guild::field("id,image,name,g_id,user_id,party_id,desc,notice,status")->where($guildWhere)->find();
 | 
											
												
													
														|  |              if(!$guild_id) {
 |  |              if(!$guild_id) {
 | 
											
												
													
														|  |                  $res["is_member"] = 2; // 是否为派对成员
 |  |                  $res["is_member"] = 2; // 是否为派对成员
 | 
											
												
													
														|  | 
 |  | +                $res["guild_status"] = isset($guildInfo['status']) ? (int)$guildInfo['status'] : -2; // 是否为派对成员
 | 
											
												
													
														|  |                  $this->success("获取成功!",$res);
 |  |                  $this->success("获取成功!",$res);
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          $res = [];
 |  |          $res = [];
 | 
											
												
													
														|  | -        $guildInfo = \app\common\model\Guild::field("id,image,name,g_id,user_id,party_id,desc,notice")->where(["id"=>$guild_id])->find();
 |  | 
 | 
											
												
													
														|  | 
 |  | +        $guildInfo = \app\common\model\Guild::field("id,image,name,g_id,user_id,party_id,desc,notice,status")->where(["id"=>$guild_id])->find();
 | 
											
												
													
														|  |          // 获取公会成员信息
 |  |          // 获取公会成员信息
 | 
											
												
													
														|  |          $guildMemberInfo = \app\common\model\GuildMember::alias("a")
 |  |          $guildMemberInfo = \app\common\model\GuildMember::alias("a")
 | 
											
												
													
														|  |              ->field("a.user_id,a.role,u.nickname,u.avatar")
 |  |              ->field("a.user_id,a.role,u.nickname,u.avatar")
 | 
											
												
													
														|  |              ->join("hx_user u","a.user_id = u.id")
 |  |              ->join("hx_user u","a.user_id = u.id")
 | 
											
												
													
														|  |              ->where(["a.guild_id"=>$guild_id])->limit(5)->order("a.role","desc")->select();
 |  |              ->where(["a.guild_id"=>$guild_id])->limit(5)->order("a.role","desc")->select();
 | 
											
												
													
														|  |          if(!$guildInfo || !$guildMemberInfo) $this->error("公会信息获取失败!");
 |  |          if(!$guildInfo || !$guildMemberInfo) $this->error("公会信息获取失败!");
 | 
											
												
													
														|  | 
 |  | +        $guildStatus = (int)$guildInfo['status'];
 | 
											
												
													
														|  |          // 获取公会成员总数
 |  |          // 获取公会成员总数
 | 
											
												
													
														|  |          $guildMemberCount = \app\common\model\GuildMember::where(["guild_id"=>$guild_id])->count("id");
 |  |          $guildMemberCount = \app\common\model\GuildMember::where(["guild_id"=>$guild_id])->count("id");
 | 
											
												
													
														|  |          // 获取会长信息
 |  |          // 获取会长信息
 | 
											
										
											
												
													
														|  | @@ -116,7 +120,7 @@ class Guild extends Api
 | 
											
												
													
														|  |          $partyInfo['online_num'] = isset($onlineData['online_num']) ? $onlineData['online_num'] : 0;
 |  |          $partyInfo['online_num'] = isset($onlineData['online_num']) ? $onlineData['online_num'] : 0;
 | 
											
												
													
														|  |          // 派对类型
 |  |          // 派对类型
 | 
											
												
													
														|  |          $partyTypeName = "普通房";
 |  |          $partyTypeName = "普通房";
 | 
											
												
													
														|  | -        if($partyInfo["party_type"]) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if(isset($partyInfo["party_type"])) {
 | 
											
												
													
														|  |              $partyTypeName = \app\common\model\PartyType::where(["id"=>$partyInfo["party_type"]])->value("name");
 |  |              $partyTypeName = \app\common\model\PartyType::where(["id"=>$partyInfo["party_type"]])->value("name");
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          $mod = isset($partyInfo["party_type"])?intval($partyInfo["party_type"])%5:1;
 |  |          $mod = isset($partyInfo["party_type"])?intval($partyInfo["party_type"])%5:1;
 | 
											
										
											
												
													
														|  | @@ -130,6 +134,7 @@ class Guild extends Api
 | 
											
												
													
														|  |          $res["guildMemberCount"] = $guildMemberCount; // 成员总数
 |  |          $res["guildMemberCount"] = $guildMemberCount; // 成员总数
 | 
											
												
													
														|  |          //$res["guilderInfo"] = $guilderInfo; // 会长
 |  |          //$res["guilderInfo"] = $guilderInfo; // 会长
 | 
											
												
													
														|  |          $res["is_member"] = $is_member; // 是否为派对成员
 |  |          $res["is_member"] = $is_member; // 是否为派对成员
 | 
											
												
													
														|  | 
 |  | +        $res['guild_status'] = $guildStatus; //家族状态
 | 
											
												
													
														|  |          $this->success("获取成功!",$res);
 |  |          $this->success("获取成功!",$res);
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -137,35 +142,71 @@ class Guild extends Api
 | 
											
												
													
														|  |       * 更新公会基本信息
 |  |       * 更新公会基本信息
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      public function guildSaveInfo() {
 |  |      public function guildSaveInfo() {
 | 
											
												
													
														|  | -        $guild_id = $this->request->request("guild_id"); //公会id
 |  | 
 | 
											
												
													
														|  | -        $guild_name = $this->request->request("guild_name"); //公会简介
 |  | 
 | 
											
												
													
														|  | -        $guild_image = $this->request->request("guild_image"); //公会简介
 |  | 
 | 
											
												
													
														|  | -        $guild_desc = $this->request->request("guild_desc"); //公会简介
 |  | 
 | 
											
												
													
														|  | -        $guild_notice = $this->request->request("guild_notice"); //公会公告
 |  | 
 | 
											
												
													
														|  | 
 |  | +        Db::startTrans();
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            $guild_id = $this->request->request("guild_id"); //公会id
 | 
											
												
													
														|  | 
 |  | +            $guild_name = $this->request->request("guild_name"); //公会简介
 | 
											
												
													
														|  | 
 |  | +            $guild_image = $this->request->request("guild_image"); //公会简介
 | 
											
												
													
														|  | 
 |  | +            $guild_desc = $this->request->request("guild_desc"); //公会简介
 | 
											
												
													
														|  | 
 |  | +            $guild_notice = $this->request->request("guild_notice"); //公会公告
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -        if(!$guild_name && !$guild_image && !$guild_desc && !$guild_notice) $this->error("请输入要修改的内容!");
 |  | 
 | 
											
												
													
														|  | -        $user_id = $this->auth->id;
 |  | 
 | 
											
												
													
														|  | -        if (empty($guild_id)) {
 |  | 
 | 
											
												
													
														|  | -            $guildInfo = new \app\common\model\Guild();
 |  | 
 | 
											
												
													
														|  | -            $guildInfo->user_id = $user_id;
 |  | 
 | 
											
												
													
														|  | -            $ids = Guild::column("g_id");
 |  | 
 | 
											
												
													
														|  | -            $guildInfo->g_id = $this->getUinqueId(4, [$ids]);
 |  | 
 | 
											
												
													
														|  | -            $guildInfo->status = 0;
 |  | 
 | 
											
												
													
														|  | -        } else {
 |  | 
 | 
											
												
													
														|  | -            // 获取公会信息
 |  | 
 | 
											
												
													
														|  | -            $guildInfo = \app\common\model\Guild::where(["id"=>$guild_id])->find();
 |  | 
 | 
											
												
													
														|  | -            // 验证更新条件
 |  | 
 | 
											
												
													
														|  | -            if($user_id !== $guildInfo->user_id) $this->error("身份验证失败!您不是公会长,无权限更改!");
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -        $guild_name && $guildInfo->name = $guild_name;
 |  | 
 | 
											
												
													
														|  | -        $guild_image && $guildInfo->image = $guild_image;
 |  | 
 | 
											
												
													
														|  | -        $guild_desc && $guildInfo->desc = $guild_desc;
 |  | 
 | 
											
												
													
														|  | -        $guild_notice && $guildInfo->notice = $guild_notice;
 |  | 
 | 
											
												
													
														|  | -        $res = $guildInfo->save();
 |  | 
 | 
											
												
													
														|  | -        if($res !== false) {
 |  | 
 | 
											
												
													
														|  | -            $this->success("操作成功!");
 |  | 
 | 
											
												
													
														|  | -        } else {
 |  | 
 | 
											
												
													
														|  | -            $this->error("网络错误,请稍后重试!");
 |  | 
 | 
											
												
													
														|  | 
 |  | +            if(!$guild_name && !$guild_image && !$guild_desc && !$guild_notice) throw new Exception("请输入要修改的内容!");
 | 
											
												
													
														|  | 
 |  | +            $user_id = $this->auth->id;
 | 
											
												
													
														|  | 
 |  | +            if (empty($guild_id)) {
 | 
											
												
													
														|  | 
 |  | +                $guildWhere['user_id'] = $user_id;
 | 
											
												
													
														|  | 
 |  | +                $guildWhere['status'] = ['in',[0,1]];
 | 
											
												
													
														|  | 
 |  | +                $guildData = model('Guild')->where($guildWhere)->find();
 | 
											
												
													
														|  | 
 |  | +                if (!empty($guildData)) {
 | 
											
												
													
														|  | 
 |  | +                    throw new Exception('您已创建过家族!');
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +                $guildInfo = new \app\common\model\Guild();
 | 
											
												
													
														|  | 
 |  | +                $guildInfo->user_id = $user_id;
 | 
											
												
													
														|  | 
 |  | +                $ids = \app\common\model\Guild::column("g_id");
 | 
											
												
													
														|  | 
 |  | +                $guildInfo->g_id = getUinqueId(4, [$ids]);
 | 
											
												
													
														|  | 
 |  | +                $guildInfo->status = 0;
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +                // 获取公会信息
 | 
											
												
													
														|  | 
 |  | +                $guildInfo = \app\common\model\Guild::where(["id"=>$guild_id])->find();
 | 
											
												
													
														|  | 
 |  | +                // 验证更新条件
 | 
											
												
													
														|  | 
 |  | +                if($user_id !== $guildInfo->user_id) throw new Exception("身份验证失败!您不是公会长,无权限更改!");
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            $guild_name && $guildInfo->name = $guild_name;
 | 
											
												
													
														|  | 
 |  | +            $guild_image && $guildInfo->image = $guild_image;
 | 
											
												
													
														|  | 
 |  | +            $guild_desc && $guildInfo->desc = $guild_desc;
 | 
											
												
													
														|  | 
 |  | +            $guild_notice && $guildInfo->notice = $guild_notice;
 | 
											
												
													
														|  | 
 |  | +            $res = $guildInfo->save();
 | 
											
												
													
														|  | 
 |  | +            if($res !== false) {
 | 
											
												
													
														|  | 
 |  | +                if (empty($guild_id)) {
 | 
											
												
													
														|  | 
 |  | +                    $guildMemberData = [
 | 
											
												
													
														|  | 
 |  | +                        'guild_id' => $guildInfo->id,
 | 
											
												
													
														|  | 
 |  | +                        'user_id' => $user_id,
 | 
											
												
													
														|  | 
 |  | +                        'role' => 2,
 | 
											
												
													
														|  | 
 |  | +                        'sign_type' => 3,
 | 
											
												
													
														|  | 
 |  | +                        'sign_time' => 0,
 | 
											
												
													
														|  | 
 |  | +                        'status' => 1,
 | 
											
												
													
														|  | 
 |  | +                        'createtime' => time(),
 | 
											
												
													
														|  | 
 |  | +                    ];
 | 
											
												
													
														|  | 
 |  | +                    $guildRes = model('GuildMember')->insertGetId($guildMemberData);
 | 
											
												
													
														|  | 
 |  | +                    if (!$guildRes) {
 | 
											
												
													
														|  | 
 |  | +                        throw new Exception('生成成员失败');
 | 
											
												
													
														|  | 
 |  | +                    }
 | 
											
												
													
														|  | 
 |  | +                    $userWhere['id'] = $user_id;
 | 
											
												
													
														|  | 
 |  | +                    $user = model('User')->where($userWhere)->find();
 | 
											
												
													
														|  | 
 |  | +                    if (!empty($user) && $user['guild_id'] != $guildInfo->id) {
 | 
											
												
													
														|  | 
 |  | +                        $userRes = model('User')->where($userWhere)->update(['is_guild'=>3,'guild_id'=>$guildInfo->id]);
 | 
											
												
													
														|  | 
 |  | +                        if (!$userRes) {
 | 
											
												
													
														|  | 
 |  | +                            throw new Exception('用户绑定家族失败');
 | 
											
												
													
														|  | 
 |  | +                        }
 | 
											
												
													
														|  | 
 |  | +                    }
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +                Db::commit();
 | 
											
												
													
														|  | 
 |  | +                $this->success("操作成功!");
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +                throw new Exception("网络错误,请稍后重试!");
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception $e) {
 | 
											
												
													
														|  | 
 |  | +            Db::rollback();
 | 
											
												
													
														|  | 
 |  | +            $this->error($e->getMessage());
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 |