|
@@ -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();
|
|
|
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) {
|
|
|
$res["is_member"] = 2; // 是否为派对成员
|
|
|
+ $res["guild_status"] = isset($guildInfo['status']) ? (int)$guildInfo['status'] : -2; // 是否为派对成员
|
|
|
$this->success("获取成功!",$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")
|
|
|
->field("a.user_id,a.role,u.nickname,u.avatar")
|
|
|
->join("hx_user u","a.user_id = u.id")
|
|
|
->where(["a.guild_id"=>$guild_id])->limit(5)->order("a.role","desc")->select();
|
|
|
if(!$guildInfo || !$guildMemberInfo) $this->error("公会信息获取失败!");
|
|
|
+ $guildStatus = (int)$guildInfo['status'];
|
|
|
// 获取公会成员总数
|
|
|
$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;
|
|
|
// 派对类型
|
|
|
$partyTypeName = "普通房";
|
|
|
- if($partyInfo["party_type"]) {
|
|
|
+ if(isset($partyInfo["party_type"])) {
|
|
|
$partyTypeName = \app\common\model\PartyType::where(["id"=>$partyInfo["party_type"]])->value("name");
|
|
|
}
|
|
|
$mod = isset($partyInfo["party_type"])?intval($partyInfo["party_type"])%5:1;
|
|
@@ -130,6 +134,7 @@ class Guild extends Api
|
|
|
$res["guildMemberCount"] = $guildMemberCount; // 成员总数
|
|
|
//$res["guilderInfo"] = $guilderInfo; // 会长
|
|
|
$res["is_member"] = $is_member; // 是否为派对成员
|
|
|
+ $res['guild_status'] = $guildStatus; //家族状态
|
|
|
$this->success("获取成功!",$res);
|
|
|
}
|
|
|
|
|
@@ -137,35 +142,71 @@ class Guild extends Api
|
|
|
* 更新公会基本信息
|
|
|
*/
|
|
|
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 = \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) $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());
|
|
|
}
|
|
|
}
|
|
|
|