浏览代码

获取家族信息调整

zhangxiaobin 1 年之前
父节点
当前提交
2cabd6a19c
共有 2 个文件被更改,包括 68 次插入11 次删除
  1. 22 11
      application/api/controller/Guild.php
  2. 46 0
      application/common/service/UserService.php

+ 22 - 11
application/api/controller/Guild.php

@@ -3,6 +3,7 @@
 namespace app\api\controller;
 
 use app\common\controller\Api;
+use app\common\service\UserService;
 use fast\Random;
 use think\Db;
 use think\Exception;
@@ -79,9 +80,9 @@ class Guild extends Api
     public function getGuildInfoNew() {
         $guild_id = $this->request->request("guild_id"); //公会ID
         $is_member = 0;
+        $user_id = $this->auth->id;
         if($guild_id <= 0) {
             $is_member = 1;
-            $user_id = $this->auth->id;
             // 获取当前用户是否是公会成员
             $idcardfind = \app\common\model\GuildJoinin::where(["user_id"=>$user_id,"status"=>0])->find();
             if($idcardfind) $this->error("您存在加入公会的申请,正在审核中,请耐心等待!");
@@ -116,17 +117,26 @@ class Guild extends Api
         $roomService = new RoomService();
         $partyOnlineRes = $roomService->getPartyUserList($partyParams);
         $onlineData = isset($partyOnlineRes['data']) ? $partyOnlineRes['data'] : [];
-        $partyInfo['user_list'] = isset($onlineData['user_list']) ? $onlineData['user_list'] : [];
-        $partyInfo['online_num'] = isset($onlineData['online_num']) ? $onlineData['online_num'] : 0;
-        // 派对类型
-        $partyTypeName = "普通房";
-        if(isset($partyInfo["party_type"])) {
-            $partyTypeName = \app\common\model\PartyType::where(["id"=>$partyInfo["party_type"]])->value("name");
+        if (!empty($partyInfo)) {
+            $partyInfo['user_list'] = isset($onlineData['user_list']) ? $onlineData['user_list'] : [];
+            $partyInfo['online_num'] = isset($onlineData['online_num']) ? $onlineData['online_num'] : 0;
+            // 派对类型
+            $partyTypeName = "普通房";
+            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;
+            $partyInfo["party_type_color"] = $mod == 0?5:$mod;
+            $partyInfo["type_name"] = $partyTypeName;
         }
-        $mod = isset($partyInfo["party_type"])?intval($partyInfo["party_type"])%5:1;
-        $partyInfo["party_type_color"] = $mod == 0?5:$mod;
-        $partyInfo["type_name"] = $partyTypeName;
-
+        //获取家族角色
+        $userService =  new UserService();
+        $userParams = [
+            'user_id' => $user_id,
+            'guild_id' => $guild_id,
+        ];
+        $userRes = $userService->getGuildRole($userParams);
+        $guildStatus = isset($userRes['data']['guild_role']) ? $userRes['data']['guild_role'] : 4;
         // 返回参数拼接
         $res["guildInfo"] = $guildInfo; // 公会基本信息
         $res["partyInfo"] = $partyInfo; // 派对悉尼下
@@ -135,6 +145,7 @@ class Guild extends Api
         $res["guilderInfo"] = $guilderInfo; // 会长
         $res["is_member"] = $is_member; // 是否为派对成员
         $res['guild_status'] = $guildStatus; //家族状态
+        $res['guild_role'] = $guildStatus; //家族角色:1组长,2副族长,3成员,4非成员
         $this->success("获取成功!",$res);
     }
 

+ 46 - 0
application/common/service/UserService.php

@@ -184,4 +184,50 @@ class UserService
         }
         return $result;
     }
+
+    /**
+     * 获取用户家族角色
+     * @return void
+     */
+    public function getGuildRole($params=[])
+    {
+        $result = [
+            'status' => 1,
+            'msg' => '操作成功',
+            'data' => [],
+        ];
+        try {
+            $userId = isset($params['user_id']) ? $params['user_id'] : 0;
+            $guildId = isset($params['guild_id']) ? $params['guild_id'] : 0;
+            if (empty($userId) || empty($guildId)) {
+                throw new Exception('参数错误');
+            }
+            $guildWhere['id'] = $guildId;
+            $guild = model('Guild')->where($guildWhere)->find();
+            if (empty($guild)) {
+                throw new Exception('未找到家族信息');
+            }
+            $guildRole = 4;//家族角色:1组长,2副族长,3成员,4非成员
+            if ($userId == $guild['user_id']) {
+                $guildRole = 1;
+            }
+            $guildMemberWhere['guild_id'] = $guildId;
+            $guildMemberWhere['user_id'] = $userId;
+            $guildMember = model('GuildMember')->field('id,role')->where($guildMemberWhere)->find();
+            if (!empty($guildMember)) {
+                if ($guildMember['role'] == 0) {
+                    $guildRole = 3;
+                } elseif ($guildMember['role'] == 1) {
+                    $guildRole = 2;
+                }
+            }
+            $result['data'] = [
+                'guild_role' => $guildRole,
+            ];
+        } catch (Exception $e) {
+            $result['status'] = 0;
+            $result['msg'] = $e->getMessage();
+        }
+        return $result;
+    }
 }