package chat import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "google.golang.org/protobuf/proto" ) //参数校验 func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.ChatGetListReq) (code pb.ErrorCode) { if req.Channel == pb.ChatChannel_World && req.ChannelId == 0 { code = pb.ErrorCode_ReqParameterError } return } ///获取本服聊天消息记录 func (this *apiComp) GetList(session comm.IUserSession, req *pb.ChatGetListReq) (code pb.ErrorCode, data proto.Message) { var ( err error // result *pb.DBUserExpand list []*pb.DBChat ) if code = this.GetListCheck(session, req); code != pb.ErrorCode_Success { return } switch req.Channel { case pb.ChatChannel_World: if list, err = this.module.modelChat.getChatQueue(req.Channel, session.GetServiecTag(), "", 0); err != nil { code = pb.ErrorCode_DBError return } break case pb.ChatChannel_Union: if list, err = this.module.modelChat.getChatQueue(req.Channel, session.GetServiecTag(), "", 0); err != nil { code = pb.ErrorCode_DBError return } break case pb.ChatChannel_Private: if list, err = this.module.modelChat.QueryUserMsg(session.GetUserId()); err != nil { code = pb.ErrorCode_DBError return } break // case pb.ChatChannel_CrossServer: // if result, err = this.module.ModuleUser.GetUserExpand(session.GetUserId()); err != nil { // this.module.Errorf("err:%v", err) // code = pb.ErrorCode_DBError // return // } // if req.ChannelId != result.Chatchannel { // code = pb.ErrorCode_ReqParameterError // return // } // if list, err = this.module.modelChat.getChatQueue(req.Channel, session.GetServiecTag(), "", req.ChannelId); err != nil { // code = pb.ErrorCode_DBError // return // } // break case pb.ChatChannel_System: if list, err = this.module.modelChat.getChatQueue(req.Channel, session.GetServiecTag(), "", 0); err != nil { code = pb.ErrorCode_DBError return } break default: code = pb.ErrorCode_ReqParameterError this.module.Errorf("getlist no support channel:%d ", req.Channel) return } session.SendMsg(string(this.module.GetType()), "getlist", &pb.ChatGetListResp{Chats: list}) return }