diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 5154841c2..2e4b83d60 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -111,6 +111,7 @@ func main() { groupRouterGroup.POST("/set_group_member_nickname", group.SetGroupMemberNickname) groupRouterGroup.POST("/set_group_member_info", group.SetGroupMemberInfo) groupRouterGroup.POST("/get_group_abstract_info", group.GetGroupAbstractInfo) + groupRouterGroup.POST("/get_groups", group.GetGroups) //groupRouterGroup.POST("/get_group_all_member_list_by_split", group.GetGroupAllMemberListBySplit) } superGroupRouterGroup := r.Group("/super_group") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index bdb4edc69..88a232ef9 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1318,3 +1318,7 @@ func GetGroupAbstractInfo(c *gin.Context) { c.JSON(http.StatusOK, resp) return } + +func GetGroups(c *gin.Context) { + +} \ No newline at end of file diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index bbbfb2f2c..eb2f221dd 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -23,49 +23,6 @@ import ( "github.com/gin-gonic/gin" ) -func DeleteUser(c *gin.Context) { - params := api.DeleteUsersReq{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &rpc.DeleteUsersReq{} - utils.CopyStructFields(req, ¶ms) - - var ok bool - var errInfo string - ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) - if !ok { - errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") - log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - - log.NewInfo(params.OperationID, "DeleteUser args ", req.String()) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := rpc.NewUserClient(etcdConn) - - RpcResp, err := client.DeleteUsers(context.Background(), req) - if err != nil { - log.NewError(req.OperationID, "call delete users rpc server failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"}) - return - } - resp := api.DeleteUsersResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, FailedUserIDList: RpcResp.FailedUserIDList} - if len(RpcResp.FailedUserIDList) == 0 { - resp.FailedUserIDList = []string{} - } - log.NewInfo(req.OperationID, "DeleteUser api return", resp) - c.JSON(http.StatusOK, resp) -} - // @Summary 获取所有用户uid列表 // @Description 获取所有用户uid列表 // @Tags 用户相关 diff --git a/internal/api/user/user.go b/internal/api/user/user.go index f39419f28..410a9dd42 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -463,13 +463,11 @@ func GetUsers(c *gin.Context) { resp api.GetUsersResp reqPb rpc.GetUsersReq ) - if err := c.Bind(&req); err != nil { log.NewError(req.OperationID, "Bind failed ", err.Error(), req) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - var ok bool var errInfo string ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) @@ -479,9 +477,7 @@ func GetUsers(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) return } - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.OperationID = req.OperationID reqPb.UserID = req.UserID reqPb.UserName = req.UserName @@ -499,7 +495,6 @@ func GetUsers(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - utils.CopyStructFields(&resp.Data.UserList, respPb.UserList) resp.CommResp.ErrCode = respPb.CommonResp.ErrCode resp.CommResp.ErrMsg = respPb.CommonResp.ErrMsg diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index a3e58a645..3485fc3f4 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -141,47 +141,6 @@ func GetGroupByName(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, resp) } -func CreateGroup(c *gin.Context) { - var ( - req cms_api_struct.CreateGroupRequest - _ cms_api_struct.CreateGroupResponse - reqPb pbGroup.CreateGroupReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupInfo = &commonPb.GroupInfo{} - reqPb.GroupInfo.GroupName = req.GroupName - reqPb.GroupInfo.CreatorUserID = req.GroupMasterId - reqPb.OwnerUserID = req.GroupMasterId - reqPb.OpUserID = req.GroupMasterId - for _, v := range req.GroupMembers { - reqPb.InitMemberList = append(reqPb.InitMemberList, &pbGroup.GroupAddMemberInfo{ - UserID: v, - RoleLevel: 1, - }) - } - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.CreateGroup(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "CreateGroup failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - func GetGroupMembers(c *gin.Context) { var ( req cms_api_struct.GetGroupMembersRequest @@ -228,177 +187,3 @@ func GetGroupMembers(c *gin.Context) { log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) openIMHttp.RespHttp200(c, constant.OK, resp) } - -func AddGroupMembers(c *gin.Context) { - var ( - req cms_api_struct.RemoveGroupMembersRequest - resp cms_api_struct.RemoveGroupMembersResponse - reqPb pbGroup.AddGroupMembersCMSReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo("", utils.GetSelfFuncName(), "req: ", req) - reqPb.UserIDList = req.Members - reqPb.GroupID = req.GroupId - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - respPb, err := client.AddGroupMembersCMS(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "AddGroupMembersCMS failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - resp.Success = respPb.Success - resp.Failed = respPb.Failed - log.NewInfo("", utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - -func RemoveGroupMembers(c *gin.Context) { - var ( - req cms_api_struct.RemoveGroupMembersRequest - resp cms_api_struct.RemoveGroupMembersResponse - reqPb pbGroup.RemoveGroupMembersCMSReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.UserIDList = req.Members - reqPb.GroupID = req.GroupId - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - respPb, err := client.RemoveGroupMembersCMS(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "RemoveGroupMembersCMS failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - resp.Success = respPb.Success - resp.Failed = respPb.Failed - log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - -func SetGroupOwner(c *gin.Context) { - var ( - req cms_api_struct.SetGroupMasterRequest - _ cms_api_struct.SetGroupMasterResponse - reqPb pbGroup.OperateUserRoleReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupID = req.GroupId - reqPb.UserID = req.UserId - reqPb.RoleLevel = constant.GroupOwner - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.OperateUserRole(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func SetGroupOrdinaryUsers(c *gin.Context) { - var ( - req cms_api_struct.SetGroupMemberRequest - _ cms_api_struct.AdminLoginResponse - reqPb pbGroup.OperateUserRoleReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupID = req.GroupId - reqPb.UserID = req.UserId - reqPb.RoleLevel = constant.GroupOrdinaryUsers - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.OperateUserRole(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func AlterGroupInfo(c *gin.Context) { - var ( - req cms_api_struct.AlterGroupInfoRequest - _ cms_api_struct.SetGroupMasterResponse - reqPb pbGroup.SetGroupInfoReq - ) - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OpUserID = c.MustGet("userID").(string) - reqPb.GroupInfoForSet = &commonPb.GroupInfoForSet{ - GroupID: req.GroupID, - GroupName: req.GroupName, - Introduction: req.Introduction, - Notification: req.Notification, - FaceURL: req.ProfilePhoto, - } - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.SetGroupInfo(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} diff --git a/internal/cms_api/organization/organization.go b/internal/cms_api/organization/organization.go deleted file mode 100644 index f775283ca..000000000 --- a/internal/cms_api/organization/organization.go +++ /dev/null @@ -1,49 +0,0 @@ -package organization - -import ( - "github.com/gin-gonic/gin" -) - -func GetStaffs(c *gin.Context) { - -} - -func GetOrganizations(c *gin.Context) { - -} - -func GetSquads(c *gin.Context) { - -} - -func AlterStaff(c *gin.Context) { - -} - -func AddOrganization(c *gin.Context) { - -} - -func InquireOrganization(g *gin.Context) { - -} - -func AlterOrganization(c *gin.Context) { - -} - -func DeleteOrganization(g *gin.Context) { - -} - -func GetOrganizationSquads(c *gin.Context) { - -} - -func AlterStaffsInfo(c *gin.Context) { - -} - -func AddChildOrganization(c *gin.Context) { - -} diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 9a8cdfc0c..2987bd026 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -40,13 +40,13 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.GET("/get_groups", group.GetGroups) groupRouterGroup.GET("/get_group_by_name", group.GetGroupByName) groupRouterGroup.GET("/get_group_members", group.GetGroupMembers) - groupRouterGroup.POST("/create_group", group.CreateGroup) - groupRouterGroup.POST("/add_members", group.AddGroupMembers) - groupRouterGroup.POST("/remove_members", group.RemoveGroupMembers) - groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) - groupRouterGroup.POST("/set_group_master", group.SetGroupOwner) - groupRouterGroup.POST("/set_group_ordinary_user", group.SetGroupOrdinaryUsers) - groupRouterGroup.POST("/alter_group_info", group.AlterGroupInfo) + // groupRouterGroup.POST("/create_group", group.CreateGroup) + // groupRouterGroup.POST("/add_members", group.AddGroupMembers) + // groupRouterGroup.POST("/remove_members", group.RemoveGroupMembers) + // groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) + // groupRouterGroup.POST("/set_group_master", group.SetGroupOwner) + // groupRouterGroup.POST("/set_group_ordinary_user", group.SetGroupOrdinaryUsers) + // groupRouterGroup.POST("/alter_group_info", group.AlterGroupInfo) } userRouterGroup := r2.Group("/user") { diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index 4afdf5673..99386fd3b 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -3,11 +3,9 @@ package statistics import ( "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pb "Open_IM/pkg/proto/statistics" + admin "Open_IM/pkg/proto/admin_cms" "Open_IM/pkg/utils" "context" "net/http" @@ -20,12 +18,12 @@ func GetMessagesStatistics(c *gin.Context) { var ( req cms_api_struct.GetMessageStatisticsRequest resp cms_api_struct.GetMessageStatisticsResponse - reqPb pb.GetMessageStatisticsReq + reqPb admin.GetMessageStatisticsReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -38,20 +36,20 @@ func GetMessagesStatistics(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetMessageStatistics(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetMessageStatistics failed", err.Error()) - openIMHttp.RespHttp200(c, err, resp) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - // utils.CopyStructFields(&resp, respPb) + resp.GroupMessageNum = int(respPb.GroupMessageNum) resp.PrivateMessageNum = int(respPb.PrivateMessageNum) for _, v := range respPb.PrivateMessageNumList { resp.PrivateMessageNumList = append(resp.PrivateMessageNumList, struct { Date string "json:\"date\"" - MessageNum int "json:\"message_num\"" + MessageNum int "json:\"messageNum\"" }{ Date: v.Date, MessageNum: int(v.Num), @@ -60,26 +58,26 @@ func GetMessagesStatistics(c *gin.Context) { for _, v := range respPb.GroupMessageNumList { resp.GroupMessageNumList = append(resp.GroupMessageNumList, struct { Date string "json:\"date\"" - MessageNum int "json:\"message_num\"" + MessageNum int "json:\"messageNum\"" }{ Date: v.Date, MessageNum: int(v.Num), }) } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetUserStatistics(c *gin.Context) { var ( req cms_api_struct.GetUserStatisticsRequest resp cms_api_struct.GetUserStatisticsResponse - reqPb pb.GetUserStatisticsReq + reqPb admin.GetUserStatisticsReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -92,21 +90,20 @@ func GetUserStatistics(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetUserStatistics(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserStatistics failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserStatistics failed", err.Error(), reqPb.String()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - // utils.CopyStructFields(&resp, respPb) resp.ActiveUserNum = int(respPb.ActiveUserNum) resp.IncreaseUserNum = int(respPb.IncreaseUserNum) resp.TotalUserNum = int(respPb.TotalUserNum) for _, v := range respPb.ActiveUserNumList { resp.ActiveUserNumList = append(resp.ActiveUserNumList, struct { Date string "json:\"date\"" - ActiveUserNum int "json:\"active_user_num\"" + ActiveUserNum int "json:\"activeUserNum\"" }{ Date: v.Date, ActiveUserNum: int(v.Num), @@ -115,7 +112,7 @@ func GetUserStatistics(c *gin.Context) { for _, v := range respPb.IncreaseUserNumList { resp.IncreaseUserNumList = append(resp.IncreaseUserNumList, struct { Date string "json:\"date\"" - IncreaseUserNum int "json:\"increase_user_num\"" + IncreaseUserNum int "json:\"increaseUserNum\"" }{ Date: v.Date, IncreaseUserNum: int(v.Num), @@ -124,26 +121,26 @@ func GetUserStatistics(c *gin.Context) { for _, v := range respPb.TotalUserNumList { resp.TotalUserNumList = append(resp.TotalUserNumList, struct { Date string "json:\"date\"" - TotalUserNum int "json:\"total_user_num\"" + TotalUserNum int "json:\"totalUserNum\"" }{ Date: v.Date, TotalUserNum: int(v.Num), }) } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetGroupStatistics(c *gin.Context) { var ( req cms_api_struct.GetGroupStatisticsRequest resp cms_api_struct.GetGroupStatisticsResponse - reqPb pb.GetGroupStatisticsReq + reqPb admin.GetGroupStatisticsReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -156,11 +153,11 @@ func GetGroupStatistics(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetGroupStatistics(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } // utils.CopyStructFields(&resp, respPb) @@ -170,7 +167,7 @@ func GetGroupStatistics(c *gin.Context) { resp.IncreaseGroupNumList = append(resp.IncreaseGroupNumList, struct { Date string "json:\"date\"" - IncreaseGroupNum int "json:\"increase_group_num\"" + IncreaseGroupNum int "json:\"increaseGroupNum\"" }{ Date: v.Date, IncreaseGroupNum: int(v.Num), @@ -180,7 +177,7 @@ func GetGroupStatistics(c *gin.Context) { resp.TotalGroupNumList = append(resp.TotalGroupNumList, struct { Date string "json:\"date\"" - TotalGroupNum int "json:\"total_group_num\"" + TotalGroupNum int "json:\"totalGroupNum\"" }{ Date: v.Date, TotalGroupNum: int(v.Num), @@ -188,19 +185,19 @@ func GetGroupStatistics(c *gin.Context) { } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetActiveUser(c *gin.Context) { var ( req cms_api_struct.GetActiveUserRequest resp cms_api_struct.GetActiveUserResponse - reqPb pb.GetActiveUserReq + reqPb admin.GetActiveUserReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -213,28 +210,28 @@ func GetActiveUser(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetActiveUser(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetActiveUser failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } utils.CopyStructFields(&resp.ActiveUserList, respPb.Users) log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetActiveGroup(c *gin.Context) { var ( req cms_api_struct.GetActiveGroupRequest resp cms_api_struct.GetActiveGroupResponse - reqPb pb.GetActiveGroupReq + reqPb admin.GetActiveGroupReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -247,18 +244,18 @@ func GetActiveGroup(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetActiveGroup(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetActiveGroup failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } for _, group := range respPb.Groups { resp.ActiveGroupList = append(resp.ActiveGroupList, struct { - GroupName string "json:\"group_name\"" - GroupId string "json:\"group_id\"" - MessageNum int "json:\"message_num\"" + GroupName string "json:\"groupName\"" + GroupId string "json:\"groupID\"" + MessageNum int "json:\"messageNum\"" }{ GroupName: group.GroupName, GroupId: group.GroupId, @@ -266,5 +263,5 @@ func GetActiveGroup(c *gin.Context) { }) } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 73ed0edd5..97dbc66a9 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -54,7 +54,6 @@ func BlockUser(c *gin.Context) { reqPb pb.BlockUserReq ) if err := c.BindJSON(&req); err != nil { - fmt.Println(err) log.NewError("0", "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 34871c135..554259595 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -140,12 +140,12 @@ func (s *adminCMSServer) ReduceUserRegisterAddFriendIDList(_ context.Context, re } } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) - return resp, nil + return resp, nil } func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.GetUserRegisterAddFriendIDListReq) (*pbAdminCMS.GetUserRegisterAddFriendIDListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbAdminCMS.GetUserRegisterAddFriendIDListResp{UserInfoList: []*server_api_params.UserInfo{}} + resp := &pbAdminCMS.GetUserRegisterAddFriendIDListResp{} userIDList, err := imdb.GetRegisterAddFriendList(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) @@ -230,11 +230,11 @@ func (s *adminCMSServer) GetChatLogs(_ context.Context, req *pbAdminCMS.GetChatL continue } pbChatLog.RecvID = group.GroupID - pbChatLog.gr = group.GroupName + pbChatLog.GroupName = group.GroupName } resp.ChatLogs = append(resp.ChatLogs, pbChatLog) } - resp.Pagination = &open_im_sdk.ResponsePagination{ + resp.Pagination = &server_api_params.ResponsePagination{ CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber, } @@ -249,13 +249,13 @@ func (s *adminCMSServer) GetActiveGroup(_ context.Context, req *pbAdminCMS.GetAc fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) + return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveGroups failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } for _, activeGroup := range activeGroups { resp.Groups = append(resp.Groups, @@ -275,13 +275,13 @@ func (s *adminCMSServer) GetActiveUser(_ context.Context, req *pbAdminCMS.GetAct fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUsers failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } for _, activeUser := range activeUsers { resp.Users = append(resp.Users, @@ -388,17 +388,17 @@ func (s *adminCMSServer) GetGroupStatistics(_ context.Context, req *pbAdminCMS.G fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) + return resp, nil } increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum failed", err.Error(), fromTime, toTime) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } totalGroupNum, err := imdb.GetTotalGroupNum() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } resp.IncreaseGroupNum = increaseGroupNum resp.TotalGroupNum = totalGroupNum @@ -441,17 +441,17 @@ func (s *adminCMSServer) GetMessageStatistics(_ context.Context, req *pbAdminCMS log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "times: ", fromTime, toTime) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) + return resp, nil } privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetPrivateMessageNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMessageNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), privateMessageNum, groupMessageNum) resp.PrivateMessageNum = privateMessageNum @@ -493,22 +493,22 @@ func (s *adminCMSServer) GetUserStatistics(_ context.Context, req *pbAdminCMS.Ge fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) + return resp, nil } activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } totalUserNum, err := imdb.GetTotalUserNum() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } resp.ActiveUserNum = activeUserNum resp.TotalUserNum = totalUserNum diff --git a/pkg/cms_api_struct/admin.go b/pkg/cms_api_struct/admin.go index 81048719b..bdd375d1a 100644 --- a/pkg/cms_api_struct/admin.go +++ b/pkg/cms_api_struct/admin.go @@ -1,10 +1,14 @@ package cms_api_struct -import server_api_params "Open_IM/pkg/proto/sdk_ws" +import ( + "Open_IM/pkg/base_info" + server_api_params "Open_IM/pkg/proto/sdk_ws" +) type AdminLoginRequest struct { - AdminName string `json:"admin_name" binding:"required"` - Secret string `json:"secret" binding:"required"` + AdminName string `json:"adminName" binding:"required"` + Secret string `json:"secret" binding:"required"` + OperationID string `json:"operationID" binding:"required"` } type AdminLoginResponse struct { @@ -30,10 +34,10 @@ type ReduceUserRegisterAddFriendIDListResponse struct { type GetUserRegisterAddFriendIDListRequest struct { OperationID string `json:"operationID" binding:"required"` - RequestPaginationBody + base_info.RequestPagination } type GetUserRegisterAddFriendIDListResponse struct { Users []*server_api_params.UserInfo `json:"users"` - ResponsePagination + base_info.ResponsePagination } diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go index 81778a8c8..891e24772 100644 --- a/pkg/cms_api_struct/message_cms.go +++ b/pkg/cms_api_struct/message_cms.go @@ -16,7 +16,7 @@ type GetChatLogsReq struct { } type GetChatLogsResp struct { - ChatLogs []*pbCommon.MsgData `json:"chat_logs"` - ChatLogsNum int `json:"log_nums"` + ChatLogs []*pbCommon.MsgData `json:"chatLogs"` + ChatLogsNum int `json:"logNums"` ResponsePagination } diff --git a/pkg/cms_api_struct/organization.go b/pkg/cms_api_struct/organization.go deleted file mode 100644 index 825d41aa1..000000000 --- a/pkg/cms_api_struct/organization.go +++ /dev/null @@ -1,25 +0,0 @@ -package cms_api_struct - -type GetStaffsResponse struct { - StaffsList []struct { - ProfilePhoto string `json:"profile_photo"` - NickName string `json:"nick_name"` - StaffId int `json:"staff_id"` - Position string `json:"position"` - EntryTime string `json:"entry_time"` - } `json:"staffs_list"` -} - -type GetOrganizationsResponse struct { - OrganizationList []struct { - OrganizationId int `json:"organization_id"` - OrganizationName string `json:"organization_name"` - } `json:"organization_list"` -} - -type SquadResponse struct { - SquadList []struct { - SquadId int `json:"squad_id"` - SquadName string `json:"squad_name"` - } `json:"squad_list"` -} diff --git a/pkg/cms_api_struct/statistics.go b/pkg/cms_api_struct/statistics.go index 2ff1efffa..0fd0eb76b 100644 --- a/pkg/cms_api_struct/statistics.go +++ b/pkg/cms_api_struct/statistics.go @@ -1,8 +1,9 @@ package cms_api_struct type GetStatisticsRequest struct { - From string `form:"from" binding:"required"` - To string `form:"to" binding:"required"` + From string `json:"from" binding:"required"` + To string `json:"to" binding:"required"` + OperationID string `json:"operationID" binding:"required"` } type GetMessageStatisticsRequest struct { @@ -10,16 +11,16 @@ type GetMessageStatisticsRequest struct { } type GetMessageStatisticsResponse struct { - PrivateMessageNum int `json:"private_message_num"` - GroupMessageNum int `json:"group_message_num"` + PrivateMessageNum int `json:"privateMessageNum"` + GroupMessageNum int `json:"groupMessageNum"` PrivateMessageNumList []struct { Date string `json:"date"` - MessageNum int `json:"message_num"` - } `json:"private_message_num_list"` + MessageNum int `json:"messageNum"` + } `json:"privateMessageNumList"` GroupMessageNumList []struct { Date string `json:"date"` - MessageNum int `json:"message_num"` - } `json:"group_message_num_list"` + MessageNum int `json:"messageNum"` + } `json:"groupMessageNumList"` } type GetUserStatisticsRequest struct { @@ -27,21 +28,21 @@ type GetUserStatisticsRequest struct { } type GetUserStatisticsResponse struct { - IncreaseUserNum int `json:"increase_user_num"` - ActiveUserNum int `json:"active_user_num"` - TotalUserNum int `json:"total_user_num"` + IncreaseUserNum int `json:"increaseUserNum"` + ActiveUserNum int `json:"activeUserNum"` + TotalUserNum int `json:"totalUserNum"` IncreaseUserNumList []struct { Date string `json:"date"` - IncreaseUserNum int `json:"increase_user_num"` - } `json:"increase_user_num_list"` + IncreaseUserNum int `json:"increaseUserNum"` + } `json:"increaseUserNumList"` ActiveUserNumList []struct { Date string `json:"date"` - ActiveUserNum int `json:"active_user_num"` - } `json:"active_user_num_list"` + ActiveUserNum int `json:"activeUserNum"` + } `json:"activeUserNumList"` TotalUserNumList []struct { Date string `json:"date"` - TotalUserNum int `json:"total_user_num"` - } `json:"total_user_num_list"` + TotalUserNum int `json:"totalUserNum"` + } `json:"totalUserNumList"` } type GetGroupStatisticsRequest struct { @@ -50,16 +51,16 @@ type GetGroupStatisticsRequest struct { // 群聊统计 type GetGroupStatisticsResponse struct { - IncreaseGroupNum int `json:"increase_group_num"` - TotalGroupNum int `json:"total_group_num"` + IncreaseGroupNum int `json:"increaseGroupNum"` + TotalGroupNum int `json:"totalGroupNum"` IncreaseGroupNumList []struct { Date string `json:"date"` - IncreaseGroupNum int `json:"increase_group_num"` - } `json:"increase_group_num_list"` + IncreaseGroupNum int `json:"increaseGroupNum"` + } `json:"increaseGroupNumList"` TotalGroupNumList []struct { Date string `json:"date"` - TotalGroupNum int `json:"total_group_num"` - } `json:"total_group_num_list"` + TotalGroupNum int `json:"totalGroupNum"` + } `json:"totalGroupNumList"` } type GetActiveUserRequest struct { @@ -69,10 +70,10 @@ type GetActiveUserRequest struct { type GetActiveUserResponse struct { ActiveUserList []struct { - NickName string `json:"nick_name"` - UserId string `json:"user_id"` - MessageNum int `json:"message_num"` - } `json:"active_user_list"` + NickName string `json:"nickName"` + UserId string `json:"userID"` + MessageNum int `json:"messageNum"` + } `json:"activeUserList"` } type GetActiveGroupRequest struct { @@ -82,8 +83,8 @@ type GetActiveGroupRequest struct { type GetActiveGroupResponse struct { ActiveGroupList []struct { - GroupName string `json:"group_name"` - GroupId string `json:"group_id"` - MessageNum int `json:"message_num"` - } `json:"active_group_list"` + GroupName string `json:"groupName"` + GroupId string `json:"groupID"` + MessageNum int `json:"messageNum"` + } `json:"activeGroupList"` } diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index b1f26855a..a10669452 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,7 +2,6 @@ package log import ( "Open_IM/pkg/common/config" - "bufio" //"bufio" "fmt" @@ -35,13 +34,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - if err != nil { - panic(err.Error()) - } - writer := bufio.NewWriter(src) - logger.SetOutput(writer) - //logger.SetOutput(os.Stdout) + // src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + // if err != nil { + // panic(err.Error()) + // } + // writer := bufio.NewWriter(src) + // logger.SetOutput(writer) + logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", diff --git a/pkg/proto/admin_cms/admin_cms.pb.go b/pkg/proto/admin_cms/admin_cms.pb.go index 0ab31b3d1..00fc7fe42 100644 --- a/pkg/proto/admin_cms/admin_cms.pb.go +++ b/pkg/proto/admin_cms/admin_cms.pb.go @@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{0} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *AdminLoginReq) Reset() { *m = AdminLoginReq{} } func (m *AdminLoginReq) String() string { return proto.CompactTextString(m) } func (*AdminLoginReq) ProtoMessage() {} func (*AdminLoginReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{1} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{1} } func (m *AdminLoginReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginReq.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *AdminLoginResp) Reset() { *m = AdminLoginResp{} } func (m *AdminLoginResp) String() string { return proto.CompactTextString(m) } func (*AdminLoginResp) ProtoMessage() {} func (*AdminLoginResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{2} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{2} } func (m *AdminLoginResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginResp.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *AddUserRegisterAddFriendIDListReq) Reset() { *m = AddUserRegist func (m *AddUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{3} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{3} } func (m *AddUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *AddUserRegisterAddFriendIDListResp) Reset() { *m = AddUserRegis func (m *AddUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{4} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{4} } func (m *AddUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -267,7 +267,7 @@ func (m *ReduceUserRegisterAddFriendIDListReq) Reset() { *m = ReduceUser func (m *ReduceUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{5} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{5} } func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -319,7 +319,7 @@ func (m *ReduceUserRegisterAddFriendIDListResp) Reset() { *m = ReduceUse func (m *ReduceUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{6} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{6} } func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -358,7 +358,7 @@ func (m *GetUserRegisterAddFriendIDListReq) Reset() { *m = GetUserRegist func (m *GetUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{7} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{7} } func (m *GetUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -405,7 +405,7 @@ func (m *GetUserRegisterAddFriendIDListResp) Reset() { *m = GetUserRegis func (m *GetUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{8} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{8} } func (m *GetUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -464,7 +464,7 @@ func (m *GetChatLogsReq) Reset() { *m = GetChatLogsReq{} } func (m *GetChatLogsReq) String() string { return proto.CompactTextString(m) } func (*GetChatLogsReq) ProtoMessage() {} func (*GetChatLogsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{9} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{9} } func (m *GetChatLogsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsReq.Unmarshal(m, b) @@ -548,14 +548,15 @@ type ChatLog struct { SenderPlatformID int32 `protobuf:"varint,5,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` SenderNickname string `protobuf:"bytes,6,opt,name=SenderNickname" json:"SenderNickname,omitempty"` SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` - Content string `protobuf:"bytes,11,opt,name=Content" json:"Content,omitempty"` - Status int32 `protobuf:"varint,12,opt,name=Status" json:"Status,omitempty"` - SendTime int64 `protobuf:"varint,13,opt,name=SendTime" json:"SendTime,omitempty"` - CreateTime int64 `protobuf:"varint,14,opt,name=CreateTime" json:"CreateTime,omitempty"` - Ex string `protobuf:"bytes,15,opt,name=Ex" json:"Ex,omitempty"` + GroupName string `protobuf:"bytes,8,opt,name=GroupName" json:"GroupName,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,10,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,11,opt,name=ContentType" json:"ContentType,omitempty"` + Content string `protobuf:"bytes,12,opt,name=Content" json:"Content,omitempty"` + Status int32 `protobuf:"varint,13,opt,name=Status" json:"Status,omitempty"` + SendTime int64 `protobuf:"varint,14,opt,name=SendTime" json:"SendTime,omitempty"` + CreateTime int64 `protobuf:"varint,15,opt,name=CreateTime" json:"CreateTime,omitempty"` + Ex string `protobuf:"bytes,16,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -565,7 +566,7 @@ func (m *ChatLog) Reset() { *m = ChatLog{} } func (m *ChatLog) String() string { return proto.CompactTextString(m) } func (*ChatLog) ProtoMessage() {} func (*ChatLog) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{10} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{10} } func (m *ChatLog) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChatLog.Unmarshal(m, b) @@ -634,6 +635,13 @@ func (m *ChatLog) GetSenderFaceURL() string { return "" } +func (m *ChatLog) GetGroupName() string { + if m != nil { + return m.GroupName + } + return "" +} + func (m *ChatLog) GetSessionType() int32 { if m != nil { return m.SessionType @@ -704,7 +712,7 @@ func (m *GetChatLogsResp) Reset() { *m = GetChatLogsResp{} } func (m *GetChatLogsResp) String() string { return proto.CompactTextString(m) } func (*GetChatLogsResp) ProtoMessage() {} func (*GetChatLogsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{11} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{11} } func (m *GetChatLogsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsResp.Unmarshal(m, b) @@ -764,7 +772,7 @@ func (m *StatisticsReq) Reset() { *m = StatisticsReq{} } func (m *StatisticsReq) String() string { return proto.CompactTextString(m) } func (*StatisticsReq) ProtoMessage() {} func (*StatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{12} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{12} } func (m *StatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StatisticsReq.Unmarshal(m, b) @@ -810,7 +818,7 @@ func (m *GetActiveUserReq) Reset() { *m = GetActiveUserReq{} } func (m *GetActiveUserReq) String() string { return proto.CompactTextString(m) } func (*GetActiveUserReq) ProtoMessage() {} func (*GetActiveUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{13} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{13} } func (m *GetActiveUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserReq.Unmarshal(m, b) @@ -857,7 +865,7 @@ func (m *UserResp) Reset() { *m = UserResp{} } func (m *UserResp) String() string { return proto.CompactTextString(m) } func (*UserResp) ProtoMessage() {} func (*UserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{14} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{14} } func (m *UserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserResp.Unmarshal(m, b) @@ -910,7 +918,7 @@ func (m *GetActiveUserResp) Reset() { *m = GetActiveUserResp{} } func (m *GetActiveUserResp) String() string { return proto.CompactTextString(m) } func (*GetActiveUserResp) ProtoMessage() {} func (*GetActiveUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{15} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{15} } func (m *GetActiveUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserResp.Unmarshal(m, b) @@ -956,7 +964,7 @@ func (m *GetActiveGroupReq) Reset() { *m = GetActiveGroupReq{} } func (m *GetActiveGroupReq) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupReq) ProtoMessage() {} func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{16} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{16} } func (m *GetActiveGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupReq.Unmarshal(m, b) @@ -1004,7 +1012,7 @@ func (m *GroupResp) Reset() { *m = GroupResp{} } func (m *GroupResp) String() string { return proto.CompactTextString(m) } func (*GroupResp) ProtoMessage() {} func (*GroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{17} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{17} } func (m *GroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupResp.Unmarshal(m, b) @@ -1064,7 +1072,7 @@ func (m *GetActiveGroupResp) Reset() { *m = GetActiveGroupResp{} } func (m *GetActiveGroupResp) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupResp) ProtoMessage() {} func (*GetActiveGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{18} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{18} } func (m *GetActiveGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupResp.Unmarshal(m, b) @@ -1110,7 +1118,7 @@ func (m *DateNumList) Reset() { *m = DateNumList{} } func (m *DateNumList) String() string { return proto.CompactTextString(m) } func (*DateNumList) ProtoMessage() {} func (*DateNumList) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{19} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{19} } func (m *DateNumList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DateNumList.Unmarshal(m, b) @@ -1156,7 +1164,7 @@ func (m *GetMessageStatisticsReq) Reset() { *m = GetMessageStatisticsReq func (m *GetMessageStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsReq) ProtoMessage() {} func (*GetMessageStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{20} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{20} } func (m *GetMessageStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsReq.Unmarshal(m, b) @@ -1205,7 +1213,7 @@ func (m *GetMessageStatisticsResp) Reset() { *m = GetMessageStatisticsRe func (m *GetMessageStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsResp) ProtoMessage() {} func (*GetMessageStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{21} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{21} } func (m *GetMessageStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsResp.Unmarshal(m, b) @@ -1272,7 +1280,7 @@ func (m *GetGroupStatisticsReq) Reset() { *m = GetGroupStatisticsReq{} } func (m *GetGroupStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsReq) ProtoMessage() {} func (*GetGroupStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{22} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{22} } func (m *GetGroupStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsReq.Unmarshal(m, b) @@ -1321,7 +1329,7 @@ func (m *GetGroupStatisticsResp) Reset() { *m = GetGroupStatisticsResp{} func (m *GetGroupStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsResp) ProtoMessage() {} func (*GetGroupStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{23} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{23} } func (m *GetGroupStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsResp.Unmarshal(m, b) @@ -1388,7 +1396,7 @@ func (m *GetUserStatisticsReq) Reset() { *m = GetUserStatisticsReq{} } func (m *GetUserStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsReq) ProtoMessage() {} func (*GetUserStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{24} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{24} } func (m *GetUserStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsReq.Unmarshal(m, b) @@ -1439,7 +1447,7 @@ func (m *GetUserStatisticsResp) Reset() { *m = GetUserStatisticsResp{} } func (m *GetUserStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsResp) ProtoMessage() {} func (*GetUserStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{25} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{25} } func (m *GetUserStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsResp.Unmarshal(m, b) @@ -1907,97 +1915,98 @@ var _AdminCMS_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_1a9119d2c1ff8ffc) + proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_a6bac7cb5a282446) } -var fileDescriptor_admin_cms_1a9119d2c1ff8ffc = []byte{ - // 1408 bytes of a gzipped FileDescriptorProto +var fileDescriptor_admin_cms_a6bac7cb5a282446 = []byte{ + // 1416 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, - 0x13, 0x07, 0x25, 0xcb, 0x92, 0x46, 0xb1, 0x63, 0x6f, 0xec, 0x84, 0x51, 0xf2, 0xcf, 0x5f, 0x66, + 0x13, 0x07, 0x25, 0xcb, 0xb2, 0x46, 0xb1, 0x63, 0x6f, 0xec, 0x84, 0x51, 0xf2, 0xcf, 0x5f, 0x66, 0x93, 0x42, 0x2d, 0x52, 0xa9, 0x70, 0xd0, 0x53, 0x81, 0x14, 0x8e, 0x94, 0xa8, 0x0a, 0xac, 0xc4, - 0x60, 0x92, 0x02, 0x6d, 0xd1, 0x08, 0xac, 0xb4, 0x51, 0x09, 0x47, 0xe4, 0x9a, 0xbb, 0x72, 0x1c, - 0x14, 0xbd, 0xe6, 0xd2, 0x7b, 0x0f, 0x3d, 0xf6, 0x15, 0xfa, 0x04, 0x3d, 0xf6, 0x29, 0x8a, 0xa2, - 0x2f, 0x52, 0xec, 0x2e, 0x3f, 0x76, 0x49, 0x5a, 0x92, 0x1d, 0xd4, 0x37, 0xce, 0xec, 0x7c, 0xec, - 0xfc, 0x7e, 0x33, 0xcb, 0x25, 0xe1, 0xba, 0x33, 0x9e, 0xba, 0xde, 0x70, 0x34, 0xa5, 0xed, 0xf8, - 0xa9, 0x45, 0x02, 0x9f, 0xf9, 0xa8, 0x1a, 0x2b, 0xea, 0x3b, 0x4f, 0x09, 0xf6, 0x86, 0xfd, 0x41, - 0x9b, 0x1c, 0x4e, 0xda, 0x62, 0xb5, 0x4d, 0xc7, 0x87, 0xc3, 0x37, 0xb4, 0xfd, 0x26, 0xb4, 0xb6, - 0xee, 0x03, 0x74, 0xfc, 0xe9, 0xd4, 0xf7, 0x6c, 0x4c, 0x09, 0x32, 0xa1, 0x8c, 0x83, 0xa0, 0xe3, - 0x8f, 0xb1, 0x69, 0x34, 0x8c, 0x66, 0xc9, 0x8e, 0x44, 0x74, 0x15, 0x56, 0x71, 0x10, 0x0c, 0xe8, - 0xc4, 0x2c, 0x34, 0x8c, 0x66, 0xd5, 0x0e, 0x25, 0x6b, 0x04, 0x6b, 0x7b, 0x3c, 0xdf, 0xbe, 0x3f, - 0x71, 0x3d, 0x1b, 0x1f, 0xa1, 0x06, 0xd4, 0x9e, 0x12, 0x1c, 0x38, 0xcc, 0xf5, 0xbd, 0x7e, 0x57, - 0x84, 0xa9, 0xda, 0xaa, 0x8a, 0x27, 0x11, 0x2e, 0xfd, 0x6e, 0x18, 0x2b, 0x12, 0x79, 0x92, 0x67, - 0x78, 0x14, 0x60, 0x66, 0x16, 0x65, 0x12, 0x29, 0x59, 0xdf, 0xc1, 0xba, 0x9a, 0x84, 0x12, 0xb4, - 0x05, 0x25, 0xe6, 0x1f, 0x62, 0x2f, 0x8c, 0x2f, 0x05, 0xf4, 0x19, 0xc0, 0x28, 0x2e, 0x46, 0x04, - 0xaf, 0xed, 0x6e, 0xb7, 0x12, 0x80, 0x92, 0x4a, 0x6d, 0xc5, 0xd0, 0xc2, 0xb0, 0xb3, 0x37, 0x1e, - 0xbf, 0xa0, 0x38, 0xb0, 0xf1, 0xc4, 0xa5, 0x0c, 0x07, 0x7b, 0xe3, 0xf1, 0xa3, 0xc0, 0xc5, 0xde, - 0xb8, 0xdf, 0xdd, 0x77, 0x29, 0x0b, 0xeb, 0xf2, 0xb3, 0x75, 0x29, 0x2a, 0x74, 0x0b, 0x60, 0x46, - 0x71, 0x20, 0x5d, 0xcc, 0x42, 0xa3, 0xd8, 0xac, 0xda, 0x8a, 0xc6, 0xfa, 0x16, 0xac, 0x45, 0x69, - 0x28, 0x49, 0xd5, 0x60, 0x2c, 0x5b, 0xc3, 0x3b, 0x03, 0x6e, 0xdb, 0x78, 0x3c, 0x1b, 0xe1, 0xf7, - 0xae, 0xe3, 0x26, 0x54, 0x63, 0x51, 0x80, 0x58, 0xb2, 0x13, 0x45, 0xaa, 0xca, 0x62, 0xa6, 0xca, - 0x97, 0x70, 0x67, 0x89, 0x7d, 0x9c, 0xbf, 0xd0, 0x9f, 0x0d, 0xd8, 0xe9, 0x61, 0xf6, 0xde, 0x55, - 0x76, 0x01, 0x88, 0x33, 0x71, 0xbd, 0xa4, 0xcc, 0xda, 0xee, 0xed, 0x16, 0xc5, 0xc1, 0x31, 0x0e, - 0x86, 0x0e, 0x71, 0x87, 0xc4, 0x09, 0x9c, 0x29, 0x6d, 0xd9, 0xf8, 0x68, 0x86, 0x29, 0x3b, 0x88, - 0x6d, 0x6d, 0xc5, 0xcf, 0xfa, 0xc7, 0x00, 0x6b, 0xd1, 0x6e, 0x28, 0x41, 0x5f, 0xc0, 0x25, 0x01, - 0x91, 0xf7, 0xca, 0x17, 0xb0, 0x19, 0x8d, 0x62, 0xb3, 0xb6, 0x7b, 0x23, 0x27, 0xdd, 0x8b, 0xd0, - 0xcc, 0xd6, 0x1c, 0xd0, 0xc3, 0x9c, 0xdd, 0xde, 0xc9, 0xdd, 0x2d, 0x25, 0xbe, 0x47, 0x71, 0xfe, - 0x76, 0x53, 0x98, 0x17, 0x97, 0xc5, 0xfc, 0xb7, 0x02, 0xac, 0xf7, 0x30, 0xeb, 0xfc, 0xe0, 0xb0, - 0x7d, 0x7f, 0x42, 0x39, 0xc0, 0x26, 0x94, 0x3b, 0xbe, 0xc7, 0xb0, 0xc7, 0x42, 0x70, 0x23, 0x51, - 0x0e, 0x31, 0xaf, 0x3e, 0x3a, 0x29, 0xa4, 0xc4, 0xf5, 0x36, 0x1e, 0x1d, 0xf7, 0xbb, 0xd1, 0x70, - 0x4b, 0x09, 0xd5, 0xa1, 0xc2, 0x2d, 0x9e, 0xbb, 0x53, 0x6c, 0xae, 0x88, 0x95, 0x58, 0xe6, 0x34, - 0x3e, 0xc3, 0x94, 0xba, 0xbe, 0xf7, 0xfc, 0x2d, 0xc1, 0x66, 0x49, 0x34, 0xa3, 0xaa, 0xe2, 0x16, - 0x61, 0x62, 0x61, 0xb1, 0x2a, 0x2d, 0x14, 0x15, 0x27, 0x3a, 0x41, 0xc3, 0x2c, 0x9f, 0x85, 0xe8, - 0xe4, 0x39, 0x7d, 0xac, 0x55, 0x32, 0xc7, 0x9a, 0xf5, 0x57, 0x11, 0xca, 0x21, 0x42, 0x72, 0xdf, - 0x3c, 0xc1, 0x80, 0x4e, 0x92, 0xf6, 0x53, 0x54, 0xe8, 0x2e, 0x6c, 0x52, 0x16, 0xb8, 0xde, 0xa4, - 0xf3, 0xda, 0xc5, 0x1e, 0x93, 0x76, 0x12, 0xb0, 0xec, 0x82, 0x82, 0x69, 0xf1, 0x14, 0x4c, 0x57, - 0x34, 0x4c, 0x3f, 0x86, 0x0d, 0x6e, 0x81, 0x83, 0x83, 0xd7, 0x0e, 0x7b, 0xe5, 0x07, 0xd3, 0x7e, - 0x37, 0x04, 0x2f, 0xa3, 0x47, 0x1f, 0xc2, 0xba, 0xd4, 0x3d, 0x71, 0x47, 0x87, 0x9e, 0x33, 0x95, - 0x20, 0x56, 0xed, 0x94, 0x16, 0xdd, 0x86, 0x35, 0xa9, 0x79, 0xe4, 0x8c, 0xf0, 0x0b, 0x7b, 0x5f, - 0x40, 0x59, 0xb5, 0x75, 0x65, 0x9a, 0xb1, 0x4a, 0x96, 0x31, 0x13, 0xca, 0x03, 0x3a, 0x79, 0x14, - 0xf8, 0x53, 0xb3, 0x2a, 0xdf, 0x31, 0xa1, 0x98, 0xe6, 0x12, 0xb2, 0x5c, 0x2a, 0x5d, 0x57, 0xcb, - 0x76, 0x1d, 0x73, 0xd8, 0x8c, 0x9a, 0x97, 0x84, 0x5b, 0x28, 0x69, 0xdd, 0xb5, 0xd6, 0x30, 0x9a, - 0x45, 0xa5, 0xbb, 0x6e, 0x01, 0x74, 0x02, 0xec, 0x30, 0x2c, 0x56, 0xd7, 0xc5, 0xaa, 0xa2, 0x41, - 0xeb, 0x50, 0x78, 0x78, 0x62, 0x5e, 0x16, 0x89, 0x0a, 0x0f, 0x4f, 0xac, 0xbf, 0x0d, 0xb8, 0xac, - 0x8d, 0x01, 0x25, 0xa8, 0x05, 0x95, 0x48, 0x0e, 0xa7, 0x1a, 0xa9, 0xf3, 0x24, 0x97, 0xec, 0xd8, - 0x86, 0x0f, 0xf2, 0xc1, 0x79, 0x07, 0x59, 0x6f, 0xc7, 0x28, 0xe4, 0x93, 0xd9, 0x54, 0x74, 0x05, - 0x87, 0x2a, 0x51, 0xf1, 0x51, 0x4f, 0xa6, 0x59, 0xb4, 0xc7, 0xe9, 0xa3, 0x9e, 0x3c, 0x5b, 0xf7, - 0x60, 0x8d, 0x23, 0xe7, 0x52, 0xe6, 0x8e, 0xc4, 0xa0, 0x23, 0x58, 0x79, 0xc5, 0xb9, 0x92, 0x3d, - 0x2c, 0x9e, 0x39, 0x30, 0xcc, 0x0f, 0xbb, 0xb5, 0xc0, 0x7c, 0x8b, 0xc1, 0x46, 0x0f, 0xb3, 0xbd, - 0x11, 0x73, 0x8f, 0xc3, 0x63, 0xff, 0x08, 0xdd, 0x4f, 0x05, 0x0a, 0x4f, 0x78, 0x53, 0xd9, 0x82, - 0xb6, 0x6e, 0xa7, 0xf2, 0xa6, 0x06, 0xae, 0x90, 0x1d, 0xb8, 0x97, 0x50, 0x91, 0xc9, 0x28, 0xe1, - 0x34, 0xf3, 0x46, 0x7d, 0xc2, 0xdb, 0x57, 0xee, 0x34, 0x96, 0x79, 0x6b, 0x88, 0x53, 0x75, 0x1c, - 0x1d, 0x48, 0x52, 0xe2, 0xf4, 0x0f, 0x30, 0xa5, 0xce, 0x04, 0x27, 0x10, 0x2a, 0x1a, 0x6b, 0x06, - 0x9b, 0xa9, 0xaa, 0x28, 0x41, 0x1f, 0x41, 0x89, 0x3f, 0x47, 0x64, 0x5f, 0x51, 0xca, 0x89, 0x6c, - 0x6c, 0x69, 0x91, 0x62, 0xa0, 0xb0, 0x2c, 0x03, 0x6a, 0xda, 0x5e, 0xe0, 0xcf, 0xc8, 0xc5, 0xa0, - 0xf9, 0xab, 0x01, 0xd5, 0x30, 0x1d, 0x25, 0xfc, 0x0e, 0x20, 0x04, 0x05, 0xd0, 0x44, 0xc1, 0xc7, - 0x50, 0x08, 0x31, 0xa4, 0x91, 0xb8, 0x08, 0xd3, 0xf3, 0x76, 0xe5, 0x5b, 0x40, 0x69, 0x4c, 0x28, - 0x41, 0x77, 0x61, 0x55, 0x08, 0x11, 0x19, 0x5b, 0x4a, 0xa0, 0xd8, 0xca, 0x0e, 0x6d, 0xce, 0x4b, - 0xc7, 0x3d, 0xa8, 0x75, 0x1d, 0xc6, 0x37, 0x2f, 0x5e, 0xc4, 0x08, 0x56, 0xb8, 0x18, 0x8d, 0x03, - 0x7f, 0x46, 0x1b, 0x50, 0xe4, 0xd5, 0xca, 0xab, 0x12, 0x7f, 0xb4, 0x7e, 0x84, 0x6b, 0x3d, 0xcc, - 0xc2, 0xba, 0x75, 0x26, 0xfe, 0x7b, 0x26, 0xff, 0x28, 0x80, 0x99, 0x9f, 0x5d, 0x60, 0xb6, 0x79, - 0x10, 0xb8, 0xc7, 0x0e, 0xc3, 0x0a, 0x4f, 0xf2, 0xae, 0x9f, 0x5d, 0x40, 0x4d, 0xb8, 0x2c, 0xd0, - 0x53, 0x6c, 0x65, 0x95, 0x69, 0x35, 0xda, 0x87, 0xed, 0x8c, 0x7b, 0x7c, 0x43, 0xac, 0xed, 0x5e, - 0x55, 0xca, 0x53, 0xe0, 0xb4, 0xf3, 0x9d, 0xd0, 0x97, 0x70, 0x25, 0x95, 0x40, 0xc4, 0x5a, 0x99, - 0x1b, 0x2b, 0xcf, 0x25, 0xc5, 0x7a, 0x69, 0xf9, 0x86, 0xdb, 0xee, 0x61, 0x26, 0x02, 0x5e, 0x34, - 0x7d, 0xbf, 0x17, 0xe0, 0x6a, 0x5e, 0x6e, 0x4a, 0xf8, 0x6b, 0xbd, 0xef, 0x8d, 0x02, 0xec, 0x50, - 0x39, 0x05, 0x09, 0x77, 0x19, 0x3d, 0x7f, 0x5d, 0x3f, 0xf7, 0x99, 0xf3, 0x3a, 0x36, 0x94, 0xc4, - 0xe9, 0x4a, 0xf4, 0x18, 0xb6, 0xd2, 0x9e, 0x4b, 0xb0, 0x96, 0xeb, 0x83, 0xba, 0xb0, 0xa9, 0x05, - 0x5f, 0x82, 0xb2, 0xac, 0xc3, 0x79, 0x09, 0x3b, 0x81, 0xad, 0xf0, 0x1e, 0x7e, 0xd1, 0x7c, 0xfd, - 0x52, 0x14, 0xbd, 0x92, 0x4e, 0x4d, 0x09, 0x9f, 0x9e, 0x08, 0x28, 0xbe, 0x9a, 0xb0, 0x95, 0x56, - 0x73, 0xb2, 0x92, 0xf7, 0x8c, 0x42, 0x96, 0xa6, 0x44, 0x16, 0x5c, 0x12, 0x78, 0x45, 0x46, 0xf2, - 0x78, 0xd5, 0x74, 0x7c, 0x72, 0x52, 0xc1, 0x97, 0x99, 0x9c, 0x1c, 0x17, 0x4e, 0xa7, 0x96, 0x5e, - 0xc4, 0x29, 0xcd, 0xa7, 0x33, 0xe3, 0x80, 0x1e, 0xc0, 0x86, 0xba, 0x3f, 0x11, 0x64, 0x75, 0x6e, - 0x90, 0x8c, 0x7d, 0xaa, 0x25, 0xca, 0x4b, 0xb6, 0xc4, 0xee, 0x9f, 0x65, 0xa8, 0x08, 0xa3, 0xce, - 0xe0, 0x19, 0xda, 0x03, 0x48, 0x7e, 0x21, 0x20, 0x95, 0x7e, 0xed, 0xf7, 0x45, 0xfd, 0xfa, 0x29, - 0x2b, 0x94, 0xa0, 0x9f, 0xe0, 0xd6, 0xfc, 0xef, 0x77, 0x74, 0x57, 0x73, 0x5e, 0xf0, 0x47, 0xa1, - 0xfe, 0xc9, 0x19, 0xac, 0x29, 0x41, 0xef, 0x0c, 0xd8, 0x59, 0xf8, 0x65, 0x8d, 0xda, 0x4a, 0xd0, - 0x65, 0xfe, 0x07, 0xd4, 0x3f, 0x3d, 0x9b, 0x83, 0xc4, 0x61, 0xfe, 0x27, 0xaf, 0x86, 0xc3, 0xc2, - 0x6f, 0x75, 0x0d, 0x87, 0x25, 0xbe, 0xa5, 0xbb, 0x50, 0x53, 0x2e, 0xe1, 0xe8, 0xba, 0xee, 0xad, - 0x7c, 0xa3, 0xd6, 0xeb, 0xa7, 0x2d, 0x51, 0x82, 0x1e, 0xc3, 0x9a, 0x76, 0xb9, 0x43, 0x37, 0x74, - 0x63, 0xed, 0x32, 0x5b, 0xbf, 0x79, 0xfa, 0x22, 0x25, 0x68, 0x20, 0xbe, 0x8e, 0x95, 0xdb, 0x09, - 0xca, 0xb5, 0x8f, 0x2e, 0x73, 0xf5, 0xff, 0xcd, 0x59, 0xa5, 0x04, 0x0d, 0xc5, 0x51, 0x96, 0x79, - 0x7d, 0x23, 0x4b, 0x77, 0xcb, 0xbb, 0x5d, 0xd4, 0x3f, 0x58, 0x68, 0x43, 0x09, 0xfa, 0x5a, 0xdc, - 0xa6, 0x52, 0x2f, 0x18, 0xd4, 0xd0, 0x5d, 0xb3, 0xef, 0xbe, 0xfa, 0xce, 0x02, 0x0b, 0x4a, 0xd0, - 0x57, 0xe2, 0xf2, 0xaa, 0x9f, 0x85, 0xe8, 0xff, 0x59, 0x82, 0xf5, 0xc0, 0x8d, 0xf9, 0x06, 0x94, - 0x3c, 0xb8, 0xf6, 0xcd, 0x76, 0x2b, 0xf9, 0xd3, 0xf9, 0x79, 0xfc, 0xf4, 0xfd, 0xaa, 0xf8, 0x8d, - 0x79, 0xef, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x6a, 0x73, 0x53, 0x11, 0x15, 0x00, 0x00, + 0x60, 0x92, 0x02, 0x6d, 0xd1, 0x08, 0xac, 0xb4, 0x56, 0x09, 0x5b, 0xe4, 0x9a, 0xbb, 0x72, 0x1c, + 0x14, 0xbd, 0xe6, 0xd2, 0x7b, 0x0f, 0x3d, 0xf6, 0x15, 0xfa, 0x04, 0x3d, 0xf6, 0x31, 0x8a, 0x3e, + 0x47, 0x81, 0x62, 0x77, 0xf9, 0xb1, 0x4b, 0xd2, 0x92, 0xec, 0xa0, 0xbe, 0x71, 0x66, 0xe7, 0x63, + 0xe7, 0xf7, 0x9b, 0x59, 0x2e, 0x09, 0x37, 0x9d, 0xd1, 0xc4, 0xf5, 0x06, 0xc3, 0x09, 0x6d, 0xc5, + 0x4f, 0x4d, 0x12, 0xf8, 0xcc, 0x47, 0x95, 0x58, 0x51, 0xdb, 0x7e, 0x4e, 0xb0, 0x37, 0xe8, 0xf5, + 0x5b, 0xe4, 0x70, 0xdc, 0x12, 0xab, 0x2d, 0x3a, 0x3a, 0x1c, 0xbc, 0xa1, 0xad, 0x37, 0xa1, 0xb5, + 0xf5, 0x10, 0xa0, 0xed, 0x4f, 0x26, 0xbe, 0x67, 0x63, 0x4a, 0x90, 0x09, 0x65, 0x1c, 0x04, 0x6d, + 0x7f, 0x84, 0x4d, 0xa3, 0x6e, 0x34, 0x4a, 0x76, 0x24, 0xa2, 0xeb, 0xb0, 0x8c, 0x83, 0xa0, 0x4f, + 0xc7, 0x66, 0xa1, 0x6e, 0x34, 0x2a, 0x76, 0x28, 0x59, 0x43, 0x58, 0xdd, 0xe5, 0xf9, 0xf6, 0xfc, + 0xb1, 0xeb, 0xd9, 0xf8, 0x18, 0xd5, 0xa1, 0xfa, 0x9c, 0xe0, 0xc0, 0x61, 0xae, 0xef, 0xf5, 0x3a, + 0x22, 0x4c, 0xc5, 0x56, 0x55, 0x3c, 0x89, 0x70, 0xe9, 0x75, 0xc2, 0x58, 0x91, 0xc8, 0x93, 0xbc, + 0xc0, 0xc3, 0x00, 0x33, 0xb3, 0x28, 0x93, 0x48, 0xc9, 0xfa, 0x0e, 0xd6, 0xd4, 0x24, 0x94, 0xa0, + 0x4d, 0x28, 0x31, 0xff, 0x10, 0x7b, 0x61, 0x7c, 0x29, 0xa0, 0xcf, 0x00, 0x86, 0x71, 0x31, 0x22, + 0x78, 0x75, 0x67, 0xab, 0x99, 0x00, 0x94, 0x54, 0x6a, 0x2b, 0x86, 0x16, 0x86, 0xed, 0xdd, 0xd1, + 0xe8, 0x15, 0xc5, 0x81, 0x8d, 0xc7, 0x2e, 0x65, 0x38, 0xd8, 0x1d, 0x8d, 0x9e, 0x04, 0x2e, 0xf6, + 0x46, 0xbd, 0xce, 0x9e, 0x4b, 0x59, 0x58, 0x97, 0x9f, 0xad, 0x4b, 0x51, 0xa1, 0x3b, 0x00, 0x53, + 0x8a, 0x03, 0xe9, 0x62, 0x16, 0xea, 0xc5, 0x46, 0xc5, 0x56, 0x34, 0xd6, 0xb7, 0x60, 0xcd, 0x4b, + 0x43, 0x49, 0xaa, 0x06, 0x63, 0xd1, 0x1a, 0xde, 0x19, 0x70, 0xd7, 0xc6, 0xa3, 0xe9, 0x10, 0xbf, + 0x77, 0x1d, 0xb7, 0xa1, 0x12, 0x8b, 0x02, 0xc4, 0x92, 0x9d, 0x28, 0x52, 0x55, 0x16, 0x33, 0x55, + 0xbe, 0x86, 0x7b, 0x0b, 0xec, 0xe3, 0xe2, 0x85, 0xfe, 0x6c, 0xc0, 0x76, 0x17, 0xb3, 0xf7, 0xae, + 0xb2, 0x03, 0x40, 0x9c, 0xb1, 0xeb, 0x25, 0x65, 0x56, 0x77, 0xee, 0x36, 0x29, 0x0e, 0x4e, 0x70, + 0x30, 0x70, 0x88, 0x3b, 0x20, 0x4e, 0xe0, 0x4c, 0x68, 0xd3, 0xc6, 0xc7, 0x53, 0x4c, 0xd9, 0x7e, + 0x6c, 0x6b, 0x2b, 0x7e, 0xd6, 0xdf, 0x06, 0x58, 0xf3, 0x76, 0x43, 0x09, 0xfa, 0x02, 0xae, 0x08, + 0x88, 0xbc, 0x03, 0x5f, 0xc0, 0x66, 0xd4, 0x8b, 0x8d, 0xea, 0xce, 0xad, 0x9c, 0x74, 0xaf, 0x42, + 0x33, 0x5b, 0x73, 0x40, 0x8f, 0x73, 0x76, 0x7b, 0x2f, 0x77, 0xb7, 0x94, 0xf8, 0x1e, 0xc5, 0xf9, + 0xdb, 0x4d, 0x61, 0x5e, 0x5c, 0x14, 0xf3, 0xdf, 0x0a, 0xb0, 0xd6, 0xc5, 0xac, 0xfd, 0x83, 0xc3, + 0xf6, 0xfc, 0x31, 0xe5, 0x00, 0x9b, 0x50, 0x6e, 0xfb, 0x1e, 0xc3, 0x1e, 0x0b, 0xc1, 0x8d, 0x44, + 0x39, 0xc4, 0xbc, 0xfa, 0xe8, 0xa4, 0x90, 0x12, 0xd7, 0xdb, 0x78, 0x78, 0xd2, 0xeb, 0x44, 0xc3, + 0x2d, 0x25, 0x54, 0x83, 0x15, 0x6e, 0xf1, 0xd2, 0x9d, 0x60, 0x73, 0x49, 0xac, 0xc4, 0x32, 0xa7, + 0xf1, 0x05, 0xa6, 0xd4, 0xf5, 0xbd, 0x97, 0x6f, 0x09, 0x36, 0x4b, 0xa2, 0x19, 0x55, 0x15, 0xb7, + 0x08, 0x13, 0x0b, 0x8b, 0x65, 0x69, 0xa1, 0xa8, 0x38, 0xd1, 0x09, 0x1a, 0x66, 0xf9, 0x3c, 0x44, + 0x27, 0xcf, 0xe9, 0x63, 0x6d, 0x25, 0x73, 0xac, 0x59, 0xff, 0x14, 0xa1, 0x1c, 0x22, 0x24, 0xf7, + 0xcd, 0x13, 0xf4, 0xe9, 0x38, 0x69, 0x3f, 0x45, 0x85, 0xee, 0xc3, 0x06, 0x65, 0x81, 0xeb, 0x8d, + 0xdb, 0x47, 0x2e, 0xf6, 0x98, 0xb4, 0x93, 0x80, 0x65, 0x17, 0x14, 0x4c, 0x8b, 0x67, 0x60, 0xba, + 0xa4, 0x61, 0xfa, 0x31, 0xac, 0x73, 0x0b, 0x1c, 0xec, 0x1f, 0x39, 0xec, 0xc0, 0x0f, 0x26, 0xbd, + 0x4e, 0x08, 0x5e, 0x46, 0x8f, 0x3e, 0x84, 0x35, 0xa9, 0x7b, 0xe6, 0x0e, 0x0f, 0x3d, 0x67, 0x22, + 0x41, 0xac, 0xd8, 0x29, 0x2d, 0xba, 0x0b, 0xab, 0x52, 0xf3, 0xc4, 0x19, 0xe2, 0x57, 0xf6, 0x9e, + 0x80, 0xb2, 0x62, 0xeb, 0x4a, 0x7e, 0x78, 0x74, 0x03, 0x7f, 0x4a, 0x9e, 0xf1, 0x40, 0x12, 0xa5, + 0x44, 0x91, 0xe6, 0xb3, 0x92, 0xe5, 0xd3, 0x84, 0x72, 0x9f, 0x8e, 0x9f, 0x04, 0xfe, 0xc4, 0x04, + 0xf9, 0x06, 0x0a, 0xc5, 0x34, 0xd3, 0xd5, 0x2c, 0xd3, 0x4a, 0x4f, 0x5e, 0xc9, 0xf6, 0x24, 0x73, + 0xd8, 0x94, 0x9a, 0xab, 0xc2, 0x2d, 0x94, 0xb4, 0xde, 0x5b, 0xab, 0x1b, 0x8d, 0xa2, 0xd2, 0x7b, + 0x77, 0x00, 0xda, 0x01, 0x76, 0x18, 0x16, 0xab, 0x57, 0xc5, 0xaa, 0xa2, 0x41, 0x6b, 0x50, 0x78, + 0x7c, 0x6a, 0xae, 0x8b, 0x44, 0x85, 0xc7, 0xa7, 0xd6, 0x5f, 0x06, 0x5c, 0xd5, 0x86, 0x84, 0x12, + 0xd4, 0x84, 0x95, 0x48, 0x0e, 0x67, 0x1e, 0xa9, 0xd3, 0x26, 0x97, 0xec, 0xd8, 0x86, 0x8f, 0xf9, + 0xfe, 0x45, 0xc7, 0x5c, 0x6f, 0xd6, 0x28, 0xe4, 0xb3, 0xe9, 0x44, 0xf4, 0x0c, 0x87, 0x2a, 0x51, + 0xf1, 0x83, 0x20, 0x99, 0x75, 0xd1, 0x3c, 0x67, 0x1f, 0x04, 0xc9, 0xb3, 0xf5, 0x00, 0x56, 0x39, + 0x72, 0x2e, 0x65, 0xee, 0x50, 0x1c, 0x03, 0x08, 0x96, 0x0e, 0x38, 0x57, 0xb2, 0xc3, 0xc5, 0x33, + 0x07, 0x86, 0xf9, 0x61, 0x2f, 0x17, 0x98, 0x6f, 0x31, 0x58, 0xef, 0x62, 0xb6, 0x3b, 0x64, 0xee, + 0x49, 0xf8, 0x52, 0x38, 0x46, 0x0f, 0x53, 0x81, 0xc2, 0xf3, 0xdf, 0x54, 0xb6, 0xa0, 0xad, 0xdb, + 0xa9, 0xbc, 0xa9, 0x71, 0x2c, 0x64, 0xc7, 0xf1, 0x35, 0xac, 0xc8, 0x64, 0x94, 0x70, 0x9a, 0x79, + 0x1b, 0x8b, 0x9e, 0x94, 0x3b, 0x8d, 0x65, 0xde, 0x1a, 0xe2, 0xcc, 0x1d, 0x45, 0xc7, 0x95, 0x94, + 0x38, 0xfd, 0x7d, 0x4c, 0xa9, 0x33, 0xc6, 0x09, 0x84, 0x8a, 0xc6, 0x9a, 0xc2, 0x46, 0xaa, 0x2a, + 0x4a, 0xd0, 0x47, 0x50, 0xe2, 0xcf, 0x11, 0xd9, 0xd7, 0x94, 0x72, 0x22, 0x1b, 0x5b, 0x5a, 0xa4, + 0x18, 0x28, 0x2c, 0xca, 0x80, 0x9a, 0x56, 0xcc, 0xd5, 0xe5, 0xa0, 0xf9, 0xab, 0x11, 0xce, 0xb5, + 0x28, 0x53, 0x1b, 0x72, 0x23, 0x3d, 0xe4, 0x26, 0x94, 0x85, 0x10, 0x43, 0x1a, 0x89, 0xf3, 0x30, + 0xbd, 0x68, 0x57, 0xbe, 0x05, 0x94, 0xc6, 0x84, 0x12, 0x74, 0x1f, 0x96, 0x85, 0x10, 0x91, 0xb1, + 0xa9, 0x04, 0x8a, 0xad, 0xec, 0xd0, 0xe6, 0xa2, 0x74, 0x3c, 0x80, 0x6a, 0xc7, 0x61, 0x7c, 0xf3, + 0xe2, 0x35, 0x8d, 0x60, 0x89, 0x8b, 0xd1, 0x38, 0xf0, 0x67, 0xb4, 0x0e, 0x45, 0x5e, 0xad, 0xbc, + 0x48, 0xf1, 0x47, 0xeb, 0x47, 0xb8, 0xd1, 0xc5, 0x2c, 0xac, 0x5b, 0x67, 0xe2, 0xbf, 0x67, 0xf2, + 0x8f, 0x02, 0x98, 0xf9, 0xd9, 0x05, 0x66, 0x1b, 0xfb, 0x81, 0x7b, 0xe2, 0x30, 0xac, 0xf0, 0x24, + 0xbf, 0x04, 0xb2, 0x0b, 0xa8, 0x01, 0x57, 0x05, 0x7a, 0x8a, 0xad, 0xac, 0x32, 0xad, 0x46, 0x7b, + 0xb0, 0x95, 0x71, 0x8f, 0xef, 0x8f, 0xd5, 0x9d, 0xeb, 0x4a, 0x79, 0x0a, 0x9c, 0x76, 0xbe, 0x13, + 0xfa, 0x12, 0xae, 0xa5, 0x12, 0x88, 0x58, 0x4b, 0x33, 0x63, 0xe5, 0xb9, 0xa4, 0x58, 0x2f, 0x2d, + 0xde, 0x70, 0x5b, 0x5d, 0xcc, 0x44, 0xc0, 0xcb, 0xa6, 0xef, 0xf7, 0x02, 0x5c, 0xcf, 0xcb, 0x4d, + 0x09, 0x7f, 0xe9, 0xf7, 0xbc, 0x61, 0x80, 0x1d, 0x2a, 0xa7, 0x20, 0xe1, 0x2e, 0xa3, 0xe7, 0x2f, + 0xf3, 0x97, 0x3e, 0x73, 0x8e, 0x62, 0x43, 0x49, 0x9c, 0xae, 0x44, 0x4f, 0x61, 0x33, 0xed, 0xb9, + 0x00, 0x6b, 0xb9, 0x3e, 0xa8, 0x03, 0x1b, 0x5a, 0xf0, 0x05, 0x28, 0xcb, 0x3a, 0x5c, 0x94, 0xb0, + 0x53, 0xd8, 0x0c, 0x6f, 0xe9, 0x97, 0xcd, 0xd7, 0x2f, 0x45, 0xd1, 0x2b, 0xe9, 0xd4, 0x94, 0xf0, + 0xe9, 0x89, 0x80, 0xe2, 0xab, 0x09, 0x5b, 0x69, 0x35, 0x27, 0x2b, 0x79, 0xcf, 0x28, 0x64, 0x69, + 0x4a, 0x64, 0xc1, 0x15, 0x81, 0x57, 0x64, 0x24, 0x8f, 0x57, 0x4d, 0xc7, 0x27, 0x27, 0x15, 0x7c, + 0x91, 0xc9, 0xc9, 0x71, 0xe1, 0x74, 0x6a, 0xe9, 0x45, 0x9c, 0xd2, 0x6c, 0x3a, 0x33, 0x0e, 0xe8, + 0x11, 0xac, 0xab, 0xfb, 0x13, 0x41, 0x96, 0x67, 0x06, 0xc9, 0xd8, 0xa7, 0x5a, 0xa2, 0xbc, 0x60, + 0x4b, 0xec, 0xfc, 0x59, 0x86, 0x15, 0x61, 0xd4, 0xee, 0xbf, 0x40, 0xbb, 0x00, 0xc9, 0x0f, 0x06, + 0xa4, 0xd2, 0xaf, 0xfd, 0xdc, 0xa8, 0xdd, 0x3c, 0x63, 0x85, 0x12, 0xf4, 0x13, 0xdc, 0x99, 0xfd, + 0x75, 0x8f, 0xee, 0x6b, 0xce, 0x73, 0xfe, 0x37, 0xd4, 0x3e, 0x39, 0x87, 0x35, 0x25, 0xe8, 0x9d, + 0x01, 0xdb, 0x73, 0xbf, 0xbb, 0x51, 0x4b, 0x09, 0xba, 0xc8, 0xdf, 0x82, 0xda, 0xa7, 0xe7, 0x73, + 0x90, 0x38, 0xcc, 0xfe, 0x20, 0xd6, 0x70, 0x98, 0xfb, 0x25, 0xaf, 0xe1, 0xb0, 0xc0, 0x97, 0x76, + 0x07, 0xaa, 0xca, 0x25, 0x1c, 0xdd, 0xd4, 0xbd, 0x95, 0x2f, 0xd8, 0x5a, 0xed, 0xac, 0x25, 0x4a, + 0xd0, 0x53, 0x58, 0xd5, 0x2e, 0x77, 0xe8, 0x96, 0x6e, 0xac, 0x5d, 0x66, 0x6b, 0xb7, 0xcf, 0x5e, + 0xa4, 0x04, 0xf5, 0xc5, 0xb7, 0xb3, 0x72, 0x3b, 0x41, 0xb9, 0xf6, 0xd1, 0x65, 0xae, 0xf6, 0xbf, + 0x19, 0xab, 0x94, 0xa0, 0x81, 0x38, 0xca, 0x32, 0xaf, 0x6f, 0x64, 0xe9, 0x6e, 0x79, 0xb7, 0x8b, + 0xda, 0x07, 0x73, 0x6d, 0x28, 0x41, 0x5f, 0x8b, 0xdb, 0x54, 0xea, 0x05, 0x83, 0xea, 0xba, 0x6b, + 0xf6, 0xdd, 0x57, 0xdb, 0x9e, 0x63, 0x41, 0x09, 0xfa, 0x4a, 0x5c, 0x5e, 0xf5, 0xb3, 0x10, 0xfd, + 0x3f, 0x4b, 0xb0, 0x1e, 0xb8, 0x3e, 0xdb, 0x80, 0x92, 0x47, 0x37, 0xbe, 0xd9, 0x6a, 0x26, 0xff, + 0x41, 0x3f, 0x8f, 0x9f, 0xbe, 0x5f, 0x16, 0x3f, 0x39, 0x1f, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, + 0xcd, 0xf8, 0xf8, 0x38, 0x2f, 0x15, 0x00, 0x00, } diff --git a/pkg/proto/admin_cms/admin_cms.proto b/pkg/proto/admin_cms/admin_cms.proto index 6dcd64628..381d8523d 100644 --- a/pkg/proto/admin_cms/admin_cms.proto +++ b/pkg/proto/admin_cms/admin_cms.proto @@ -71,14 +71,15 @@ message ChatLog { int32 SenderPlatformID = 5; string SenderNickname = 6; string SenderFaceURL = 7; - int32 SessionType = 8; - int32 MsgFrom = 9; - int32 ContentType = 10; - string Content = 11; - int32 Status = 12; - int64 SendTime = 13; - int64 CreateTime = 14; - string Ex = 15; + string GroupName = 8; + int32 SessionType = 9; + int32 MsgFrom = 10; + int32 ContentType = 11; + string Content = 12; + int32 Status = 13; + int64 SendTime = 14; + int64 CreateTime = 15; + string Ex = 16; } message GetChatLogsResp {