Guild.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use think\Db;
  5. use Redis;
  6. use app\api\controller\Tenim;
  7. /**
  8. * 公会控制器
  9. */
  10. class Guild extends Api
  11. {
  12. protected $noNeedLogin = ['getGuildList'];
  13. protected $noNeedRight = ['*'];
  14. /**
  15. * 获取公会信息
  16. */
  17. public function getGuildInfo() {
  18. $guild_id = $this->request->request("guild_id"); //公会ID
  19. $is_member = 0;
  20. if($guild_id <= 0) {
  21. $is_member = 1;
  22. $user_id = $this->auth->id;
  23. // 获取当前用户是否是公会成员
  24. $idcardfind = \app\common\model\GuildJoinin::where(["user_id"=>$user_id,"status"=>0])->find();
  25. if($idcardfind) $this->error("您存在加入公会的申请,正在审核中,请耐心等待!");
  26. $memberfind = \app\common\model\GuildMember::where(["user_id"=>$user_id,"status"=>1,"sign_time"=>["gt",time()]])->find();
  27. if($memberfind) $guild_id = $memberfind->guild_id;
  28. if(!$guild_id) {
  29. $res["is_member"] = 2; // 是否为派对成员
  30. $this->success("获取成功!",$res);
  31. }
  32. }
  33. $res = [];
  34. $guildInfo = \app\common\model\Guild::field("id,image,name,g_id,user_id,party_id,desc,notice")->where(["id"=>$guild_id])->find();
  35. // 获取公会成员信息
  36. $guildMemberInfo = \app\common\model\GuildMember::alias("a")
  37. ->field("a.user_id,a.role,u.nickname,u.avatar,u.gender,u.age")
  38. ->join("hx_user u","a.user_id = u.id")
  39. ->where(["a.guild_id"=>$guild_id])->limit(5)->order("a.role","desc")->select();
  40. if(!$guildInfo || !$guildMemberInfo) $this->error("公会信息获取失败!");
  41. // 获取公会成员总数
  42. $guildMemberCount = \app\common\model\GuildMember::where(["guild_id"=>$guild_id])->count("id");
  43. // 获取会长信息
  44. $guilderInfo = \app\common\model\User::field("avatar,nickname,u_id")->where(["id"=>$guildInfo->user_id])->find();
  45. // 获取房间信息
  46. $partyInfo = \app\common\model\Party::field("party_logo,party_type,is_online,party_name,party_notice_detail")->where(["id"=>$guildInfo->party_id])->find();
  47. // 派对类型
  48. $partyTypeName = "普通房";
  49. if($partyInfo["party_type"]) {
  50. $partyTypeName = \app\common\model\PartyType::where(["id"=>$partyInfo["party_type"]])->value("name");
  51. }
  52. $mod = isset($partyInfo["party_type"])?intval($partyInfo["party_type"])%5:1;
  53. $partyInfo["party_type_color"] = $mod == 0?5:$mod;
  54. $partyInfo["type_name"] = $partyTypeName;
  55. // 返回参数拼接
  56. $res["guildInfo"] = $guildInfo; // 公会基本信息
  57. $res["guildMemberInfo"] = $guildMemberInfo; // 成员列表
  58. $res["guildMemberCount"] = $guildMemberCount; // 成员总数
  59. $res["guilderInfo"] = $guilderInfo; // 会长
  60. $res["partyInfo"] = $partyInfo; // 派对悉尼下
  61. $res["is_member"] = $is_member; // 是否为派对成员
  62. $this->success("获取成功!",$res);
  63. }
  64. /**
  65. * 更新公会基本信息
  66. */
  67. public function guildSaveInfo() {
  68. $guild_id = $this->request->request("guild_id"); //公会id
  69. $guild_name = $this->request->request("guild_name"); //公会简介
  70. $guild_image = $this->request->request("guild_image"); //公会简介
  71. $guild_desc = $this->request->request("guild_desc"); //公会简介
  72. $guild_notice = $this->request->request("guild_notice"); //公会公告
  73. if(!$guild_id) $this->error("参数错误!");
  74. if(!$guild_name && !$guild_image && !$guild_desc && !$guild_notice) $this->error("请输入要修改的内容!");
  75. $user_id = $this->auth->id;
  76. // 获取公会信息
  77. $guildInfo = \app\common\model\Guild::where(["id"=>$guild_id])->find();
  78. // 验证更新条件
  79. if($user_id !== $guildInfo->user_id) $this->error("身份验证失败!您不是公会长,无权限更改!");
  80. $guild_name && $guildInfo->name = $guild_name;
  81. $guild_image && $guildInfo->image = $guild_image;
  82. $guild_desc && $guildInfo->desc = $guild_desc;
  83. $guild_notice && $guildInfo->notice = $guild_notice;
  84. $res = $guildInfo->save();
  85. if($res !== false) {
  86. $this->success("更新成功!");
  87. } else {
  88. $this->error("网络错误,请稍后重试!");
  89. }
  90. }
  91. /**
  92. * 获取搜索公会列表
  93. */
  94. public function getGuildList() {
  95. $search = $this->request->request("search","","string"); //搜索的字段 公会名称/公会ID
  96. if(!$search) $this->error("请输入要搜索的公会名称或公会ID");
  97. global $whereOr;
  98. $where = [];$whereOr = [];
  99. $where['status'] = 1;
  100. $whereOr['name'] = array('like', '%' . $search . '%');
  101. $whereOr['g_id'] = $search;
  102. $res = \app\common\model\Guild::field("id,g_id,name,image")
  103. ->where($where)
  104. ->where(function ($query) {
  105. global $whereOr;
  106. $query->whereOr($whereOr);
  107. })
  108. ->select();
  109. $this->success("获取成功!",$res);
  110. }
  111. /**
  112. * 公会申请页面信息
  113. */
  114. public function guildApplyInfo() {
  115. $guild_id = $this->request->request("guild_id"); //公会ID
  116. if($guild_id <= 0) $this->error("参数缺失!");
  117. $guildInfo = \app\common\model\Guild::alias("a")
  118. ->join("hx_user u","u.id = a.user_id","inner")
  119. ->field("a.id,a.image,a.name,a.g_id,a.user_id,u.avatar,u.nickname,u.u_id")
  120. ->where(["a.id"=>$guild_id])
  121. ->find();
  122. $guildInfo["status"] = 0;
  123. // 获取申请用户是否已经有正在申请的记录
  124. $user_id = $this->auth->id;
  125. $joinStatus = \app\common\model\GuildJoinin::where(["user_id"=>$user_id])->value("status");
  126. if($joinStatus === 0) $guildInfo["status"] = 1;
  127. $Member = \app\common\model\GuildMember::where(["user_id"=>$user_id,"status"=>1,"sign_time"=>["gt",time()]])->value("id");
  128. if($Member > 0) $guildInfo["status"] = 2;
  129. $this->success("获取成功!",$guildInfo);
  130. }
  131. /**
  132. * 开厅申请
  133. */
  134. public function guildApply() {
  135. $user_id = $this->auth->id;
  136. // 获取用户实名认证信息
  137. $authUserRealname = \app\common\model\UserAuth::where(["user_id"=>$user_id])->value("realname");
  138. if(!$authUserRealname) $this->error("未查询到实名认证信息,请实名认证先!");
  139. // 获取用户信息
  140. $userInfo = \app\common\model\User::field("id,mobile,nickname")->where(["id"=>$user_id])->find();
  141. $data = [];
  142. $data["user_id"] = $user_id;
  143. // 查看是否申请过
  144. $applyInfo = \app\common\model\GuildApply::where($data)->find();
  145. if($applyInfo && $applyInfo->status>=0) $this->error("您已经发送过开厅申请了,请勿重复发送!");
  146. // 查看是否有加入公会的申请
  147. $joinInfo = \app\common\model\GuildJoinin::where(["user_id"=>$user_id,"status"=>0])->find();
  148. if($joinInfo) $this->error("您存在申请加入公会信息,请联系工会长处理完毕后方可申请开厅!");
  149. // 查看是已经是公会成员
  150. $memberInfo = \app\common\model\GuildMember::where(["user_id"=>$user_id,"status"=>1,"sign_time"=>["gt",time()]])->find();
  151. if($memberInfo) $this->error("您已存在签约中的公会,无法开新厅!");
  152. Db::startTrans();
  153. try{
  154. $data["user_name"] = $authUserRealname;
  155. $data["user_nickname"] = $userInfo->nickname;
  156. $data["user_mobile"] = $userInfo->mobile;
  157. $data["createtime"] = time();
  158. $res1 = \app\common\model\GuildApply::insert($data);
  159. // 更新用户状态
  160. $userInfo->is_guild = 1;
  161. $res2 = $userInfo->save();
  162. if($res1 && $res2) {
  163. Db::commit();
  164. $this->success("申请发送成功!");
  165. } else {
  166. $this->error("网络错误,请稍后重试!");
  167. }
  168. }catch (ValidateException $e) {
  169. Db::rollback();
  170. $this->error($e->getMessage());
  171. } catch (PDOException $e) {
  172. Db::rollback();
  173. $this->error($e->getMessage());
  174. } catch (Exception $e) {
  175. Db::rollback();
  176. $this->error($e->getMessage());
  177. }
  178. }
  179. /**
  180. * 公会签约申请
  181. */
  182. public function guildJoinin() {
  183. $join_time = $this->request->request("join_time"); //签约时长:1=3个月,2=6个月,3=12个月
  184. $guild_id = $this->request->request("guild_id"); //公会ID
  185. if(!in_array($join_time,[1,2,3]) || !$guild_id) $this->error("参数错误!");
  186. // 一个身份证号只能申请一次
  187. $user_id = $this->auth->id;
  188. // 实名认证
  189. $userAuthInfo = \app\common\model\UserAuth::where(["user_id"=>$user_id])->find();
  190. if($userAuthInfo) {
  191. if($userAuthInfo->status == 0) {
  192. $this->error("您的实名认证还在这审核中...,请耐心等待!");
  193. } elseif($userAuthInfo->status == 2) {
  194. $this->error("您的实名认证审核未通过,请重新审核!");
  195. }
  196. } else {
  197. $this->error("请先申请实名认证!");
  198. }
  199. // 获取用户实名认证信息
  200. $authUserIdcard = \app\common\model\UserAuth::where(["user_id"=>$user_id])->value("idcard");
  201. // 搜索签约申请中是否有此身份证号
  202. $idcardfind = \app\common\model\GuildJoinin::where(["user_id"=>$user_id,"status"=>0])->find();
  203. if($idcardfind) $this->error("当前账号正在审核,请耐心等待!");
  204. $memberfind = \app\common\model\GuildMember::where(["user_id"=>$user_id,"status"=>1,"sign_time"=>["gt",time()]])->find();
  205. if($memberfind) $this->error("一个账号只能加入一个公会哟!");
  206. // 查看是否申请过
  207. $applyInfo = \app\common\model\GuildApply::where(["user_id"=>$user_id,"status"=>0])->find();
  208. if($applyInfo && $applyInfo->status>=0) $this->error("您已经发送过开厅申请了,请勿重复发送!");
  209. // // 获取公会信息
  210. // $guildInfo = \app\common\model\Guild::where(["user_id"=>$user_id,"status"=>1])->find();
  211. // // 验证更新条件
  212. // if($guildInfo) $this->error("您存在公会会长身份,请先解散相应的公会才可申请");
  213. // 获取公会信息
  214. $guildName = \app\common\model\Guild::where(["id"=>$guild_id])->value("name");
  215. // 获取用户信息
  216. $userInfo = \app\common\model\User::field("id,avatar,nickname")->where(["id"=>$user_id])->find();
  217. // 添加数据
  218. $data = [];
  219. $data["user_id"] = $user_id;
  220. $data["guild_id"] = $guild_id;
  221. $data["join_time"] = $join_time;
  222. $data["user_avatar"] = $userInfo->avatar;
  223. $data["user_idcard"] = $authUserIdcard;
  224. $data["user_nickname"] = $userInfo->nickname;
  225. $data["guild_name"] = $guildName;
  226. $data["createtime"] = time();
  227. $res = \app\common\model\GuildJoinin::insert($data);
  228. if($res) {
  229. // +message
  230. // \app\common\model\Message::addMessage($user_id,"公会消息","申请加入公会消息");
  231. $this->success("申请发送成功!");
  232. } else {
  233. $this->error("网络错误,请稍后重试!");
  234. }
  235. }
  236. /**
  237. * 公会签约申请审核
  238. */
  239. public function guildJoininExamine() {
  240. $joinin_id = $this->request->request("joinin_id"); // 申请加入的申请ID
  241. $is_pass = $this->request->request("is_pass"); // 是否通过:1=通过,-1=拒绝
  242. if(!in_array($is_pass,[1,-1]) || !$joinin_id) $this->error("参数错误!");
  243. $user_id = $this->auth->id;
  244. // 获取申请信息
  245. $joininInfo = \app\common\model\GuildJoinin::where(["id"=>$joinin_id])->find();
  246. // 获取公会信息
  247. $guildInfo = \app\common\model\Guild::where(["id"=>$joininInfo->guild_id])->find();
  248. // 验证更新条件
  249. if($user_id !== $guildInfo->user_id) $this->error("身份验证失败!您不是公会长,无权限更改!");
  250. // 获取用户信息
  251. $userInfo = \app\common\model\User::field("id,u_id,mobile,nickname")->where(["id"=>$joininInfo->user_id])->find();
  252. // 计算签约时间段
  253. $join_time = $joininInfo->join_time;
  254. $timeArr = [1=>3,2=>6,3=>12];
  255. $endtime = strtotime('+'.$timeArr[$join_time].' month');
  256. $sign_time_slot = date("Y.m.d")."-".date('Y.m.d',$endtime);
  257. Db::startTrans();
  258. try{
  259. $data = [];
  260. $data["user_id"] = $joininInfo->user_id;
  261. $data["operator"] = $user_id;
  262. $data["user_nickname"] = $userInfo->nickname;
  263. $data["user_u_id"] = $userInfo->u_id;
  264. $data["guild_id"] = $guildInfo->id;
  265. $data["guild_name"] = $guildInfo->name;
  266. $data["guild_g_id"] = $guildInfo->g_id;
  267. $data["sign_time_slot"] = $sign_time_slot;
  268. $data["status"] = $is_pass;
  269. $data["createtime"] = time();
  270. $res1 = \app\common\model\GuildJoininLog::insert($data);
  271. // 更新申请状态
  272. $joininInfo->status = $is_pass;
  273. $joininInfo->updatetime = time();
  274. $res2 = $joininInfo->save();
  275. if($is_pass == 1) {
  276. // 同意后 加入公会成员
  277. $data = [];
  278. $data["guild_id"] = $guildInfo->id;
  279. $data["user_id"] = $joininInfo->user_id;
  280. $data["role"] = 0;
  281. $data["sign_type"] = $join_time; // 签约类型:1=三个月,2=半年,3=一年
  282. $data["sign_time"] = $endtime;
  283. $data["status"] = 1;
  284. $data["createtime"] = time();
  285. $res3 = \app\common\model\GuildMember::insert($data);
  286. $res4 = \app\common\model\Guild::where(["id"=>$guildInfo->id])->setInc("member");
  287. if($res1 && $res2 && $res3 && $res4) {
  288. // +message
  289. \app\common\model\Message::addMessage($joininInfo->user_id,"公会审核通知","恭喜,您的加入公会审核通过啦!公会ID:".$guildInfo->g_id);
  290. Db::commit();
  291. $this->success("已审核通过!");
  292. }
  293. } else {
  294. if($res1 && $res2) {
  295. // +message
  296. \app\common\model\Message::addMessage($joininInfo->user_id,"公会审核通知","您的公会加入申请,公会长审核失败,没关系,调整姿势再来一遍!");
  297. Db::commit();
  298. $this->success("已审核拒绝!");
  299. }
  300. }
  301. $this->error("网络错误,请稍后重试!");
  302. }catch (ValidateException $e) {
  303. Db::rollback();
  304. $this->error($e->getMessage());
  305. } catch (PDOException $e) {
  306. Db::rollback();
  307. $this->error($e->getMessage());
  308. } catch (Exception $e) {
  309. Db::rollback();
  310. $this->error($e->getMessage());
  311. }
  312. }
  313. /**
  314. * 公会助手列表
  315. */
  316. public function guildAssistantList() {
  317. $user_id = $this->auth->id;
  318. // 获取公会信息
  319. $guildInfo = \app\common\model\Guild::where(["user_id"=>$user_id])->find();
  320. if(!$guildInfo) $this->error("公会信息获取失败!");
  321. // 先获取申请列表
  322. $where = [];
  323. $where["guild_id"] = $guildInfo->id;
  324. $where["status"] = 0;
  325. $joinList = \app\common\model\GuildJoinin::field("id,user_avatar,user_nickname,guild_name,createtime")->where($where)->order("createtime","desc")->select();
  326. if($joinList) foreach($joinList as $k => $v) {
  327. $joinList[$k]["createtime"] = date("Y-m-d H:i",$v["createtime"]);
  328. }
  329. // 再获取审核记录
  330. $where = [];
  331. $where["a.guild_id"] = $guildInfo->id;
  332. $where["a.user_id"] = $user_id;
  333. $joinlogList = \app\common\model\GuildJoininLog::alias("a")
  334. ->field("a.id,a.user_nickname,a.user_u_id,a.guild_name,a.guild_g_id,a.sign_time_slot,a.status,u.nickname as operator,a.createtime")
  335. ->join("hx_user u","a.operator = u.id")
  336. ->whereOr($where)
  337. ->order("a.createtime","desc")
  338. ->select();
  339. if($joinlogList) foreach($joinlogList as $k => $v) {
  340. $joinlogList[$k]["createtime"] = date("Y-m-d H:i",$v["createtime"]);
  341. }
  342. $res = [];
  343. $res["joinList"] = $joinList;
  344. $res["joinlogList"] = $joinlogList;
  345. $this->success("获取成功!",$res);
  346. }
  347. /**
  348. * 公会成员列表
  349. */
  350. public function guildMember() {
  351. $guild_id = $this->request->request("guild_id",0,"intval"); //公会ID
  352. $page = $this->request->request('page',1); // 分页
  353. $pageNum = $this->request->request('pageNum',10); // 分页
  354. // 分页搜索构建
  355. $pageStart = ($page-1)*$pageNum;
  356. if($guild_id <= 0) $this->error("参数错误!");
  357. $where = [];
  358. $where["a.guild_id"] = $guild_id;
  359. $where["a.status"] = 1;
  360. $where["a.sign_time"] = ["gt",time()];
  361. // 获取公会成员总数
  362. $guildMemberCount = \app\common\model\GuildMember::alias("a")->where($where)->count("id");
  363. // 获取公会成员列表
  364. $guildMemberList = \app\common\model\GuildMember::alias("a")
  365. ->field("a.id,u.avatar,u.nickname,u.gender,u.age,a.role")
  366. ->join("hx_user u","a.user_id = u.id")
  367. ->where($where)
  368. ->limit($pageStart,$pageNum)
  369. ->order("a.role","desc")
  370. ->select();
  371. $role = ["","管理","会长"];
  372. if($guildMemberList) foreach($guildMemberList as $k => &$v) {
  373. $v["role"] = $role[$v["role"]];
  374. }
  375. $res = [];
  376. $res["memberCount"] = $guildMemberCount;
  377. $res["memberList"] = $guildMemberList;
  378. $this->success("获取成功!",$res);
  379. }
  380. /**
  381. * 获取公会成员信息
  382. */
  383. public function getGuildMemberInfo() {
  384. $member_id = $this->request->request("member_id",0,"intval"); //公会成员ID
  385. if($member_id <= 0) $this->error("参数错误!");
  386. $memberInfo = \app\common\model\GuildMember::alias("a")
  387. ->join("hx_user u","u.id = a.user_id")
  388. ->field("u.id,u.avatar,u.nickname,u.gender,u.age,a.wealth,a.charm,a.gift_num,a.role,a.guild_id,a.createtime,u.logintime")
  389. ->find($member_id);
  390. if(!$memberInfo) $this->error("用户信息获取失败!");
  391. $memberInfo["createtime"] = date("Y-m-d",$memberInfo["createtime"]);
  392. $memberInfo["logintime"] = date("Y-m-d",$memberInfo["logintime"]);
  393. $memberInfo["my_role"] = \app\common\model\GuildMember::where(["user_id"=>$this->auth->id,"guild_id"=>$memberInfo->guild_id])->value("role");
  394. $this->success("获取成功!",$memberInfo);
  395. }
  396. /**
  397. * 公会管理-设为管理员
  398. */
  399. public function guildSetManage() {
  400. $guild_id = $this->request->request("guild_id",0,"intval"); //公会ID
  401. $member_user_id = $this->request->request("member_user_id",0,"intval"); //成员用户ID
  402. $type = $this->request->request("type",1); // 设置类型:1=设为管理员,2=取消管理员
  403. if(!$guild_id || !$member_user_id || !in_array($type,[1,2])) $this->error("参数缺失!");
  404. // 先判断是否为公会会长
  405. $user_id = $this->auth->id;
  406. // 获取公会信息
  407. $guildInfo = \app\common\model\Guild::where(["id"=>$guild_id])->find();
  408. // 验证更新条件
  409. if($user_id !== $guildInfo->user_id) $this->error("身份验证失败!您不是公会长,无权限更改!");
  410. $memberInfo = \app\common\model\GuildMember::where(["user_id"=>$member_user_id])->find();
  411. if(!$memberInfo) $this->error("会员信息查询失败!");
  412. if($type == 2) {
  413. $memberInfo->role = 0;
  414. $memberInfo->updatetime = time();
  415. $res = $memberInfo->save();
  416. if($res) {
  417. $this->success("取消成功!");
  418. } else {
  419. $this->error("网络错误,请稍后重试!");
  420. }
  421. }
  422. $memberInfo->role = 1;
  423. $memberInfo->updatetime = time();
  424. $res = $memberInfo->save();
  425. if($res) {
  426. // 获取房间id
  427. $party_id = $guildInfo->party_id;
  428. // 添加房间管理员
  429. $redis = new Redis();
  430. $redisconfig = config("redis");
  431. $redis->connect($redisconfig["host"], $redisconfig["port"]);
  432. if ($redisconfig['redis_pwd']) {
  433. $redis->auth(config('redis_pwd'));
  434. }
  435. if($redisconfig['redis_selectdb'] > 0){
  436. $redis->select(config('redis_selectdb'));
  437. }
  438. // 获取成员用户信息
  439. $memberuserInfo = \app\common\model\User::field("id,avatar,nickname,gender,level")->find($member_user_id);
  440. $data = [];
  441. $data["user_id"] = $memberuserInfo->id;
  442. $data["avatar"] = $memberuserInfo->avatar;
  443. $data["nickname"] = $memberuserInfo->nickname;
  444. $data["gender"] = $memberuserInfo->gender;
  445. $data["level"] = $memberuserInfo->level;
  446. $data["item"] = 1;
  447. $data["time"] = 0;
  448. $data["createtime"] = time();
  449. $redis->hSet("party_manage_".$party_id,$memberuserInfo->id."-1",serialize($data));
  450. // 腾讯im设置管理员
  451. $tenim = new Tenim();
  452. $tenim->setImManage($member_user_id,$party_id);
  453. $this->success("设置成功!");
  454. } else {
  455. $this->error("网络错误,请稍后重试!");
  456. }
  457. }
  458. /**
  459. * 公会管理-踢出公会
  460. */
  461. public function guildDelMember() {
  462. $guild_id = $this->request->request("guild_id",0,"intval"); //公会ID
  463. $member_user_id = $this->request->request("member_user_id",0,"intval"); //成员用户ID
  464. if(!$guild_id || !$member_user_id) $this->error("参数缺失!");
  465. // 先判断是否为公会会长
  466. $user_id = $this->auth->id;
  467. // 获取公会信息
  468. $guildInfo = \app\common\model\Guild::where(["id"=>$guild_id])->find();
  469. // 验证更新条件
  470. if($user_id !== $guildInfo->user_id) $this->error("身份验证失败!您不是公会长,无权限更改!");
  471. $memberInfo = \app\common\model\GuildMember::where(["user_id"=>$member_user_id])->find();
  472. if(!$memberInfo) $this->error("会员信息查询失败!");
  473. Db::startTrans();
  474. try{
  475. $res1 = $memberInfo->delete();
  476. $res2 = \app\common\model\Guild::where(["id"=>$guild_id])->setDec("member");
  477. if($res1 && $res2) {
  478. Db::commit();
  479. $this->success("踢出成功!");
  480. } else {
  481. $this->error("网络错误,请稍后重试!");
  482. }
  483. }catch (ValidateException $e) {
  484. Db::rollback();
  485. $this->error($e->getMessage());
  486. } catch (PDOException $e) {
  487. Db::rollback();
  488. $this->error($e->getMessage());
  489. } catch (Exception $e) {
  490. Db::rollback();
  491. $this->error($e->getMessage());
  492. }
  493. }
  494. }