98 lines
3.3 KiB
Go
98 lines
3.3 KiB
Go
package model
|
|
|
|
import "strings"
|
|
|
|
// CREATE TABLE GroupContact(
|
|
// m_nsUsrName TEXT PRIMARY KEY ASC,
|
|
// m_uiConType INTEGER,
|
|
// nickname TEXT,
|
|
// m_nsFullPY TEXT,
|
|
// m_nsShortPY TEXT,
|
|
// m_nsRemark TEXT,
|
|
// m_nsRemarkPYFull TEXT,
|
|
// m_nsRemarkPYShort TEXT,
|
|
// m_uiCertificationFlag INTEGER,
|
|
// m_uiSex INTEGER,
|
|
// m_uiType INTEGER,
|
|
// m_nsImgStatus TEXT,
|
|
// m_uiImgKey INTEGER,
|
|
// m_nsHeadImgUrl TEXT,
|
|
// m_nsHeadHDImgUrl TEXT,
|
|
// m_nsHeadHDMd5 TEXT,
|
|
// m_nsChatRoomMemList TEXT,
|
|
// m_nsChatRoomAdminList TEXT,
|
|
// m_uiChatRoomStatus INTEGER,
|
|
// m_nsChatRoomDesc TEXT,
|
|
// m_nsDraft TEXT,
|
|
// m_nsBrandIconUrl TEXT,
|
|
// m_nsGoogleContactName TEXT,
|
|
// m_nsAliasName TEXT,
|
|
// m_nsEncodeUserName TEXT,
|
|
// m_uiChatRoomVersion INTEGER,
|
|
// m_uiChatRoomMaxCount INTEGER,
|
|
// m_uiChatRoomType INTEGER,
|
|
// m_patSuffix TEXT,
|
|
// richChatRoomDesc TEXT,
|
|
// _packed_WCContactData BLOB,
|
|
// openIMInfo BLOB
|
|
// )
|
|
type ChatRoomDarwinV3 struct {
|
|
M_nsUsrName string `json:"m_nsUsrName"`
|
|
Nickname string `json:"nickname"`
|
|
M_nsRemark string `json:"m_nsRemark"`
|
|
M_nsChatRoomMemList string `json:"m_nsChatRoomMemList"`
|
|
M_nsChatRoomAdminList string `json:"m_nsChatRoomAdminList"`
|
|
|
|
// M_uiConType int `json:"m_uiConType"`
|
|
// M_nsFullPY string `json:"m_nsFullPY"`
|
|
// M_nsShortPY string `json:"m_nsShortPY"`
|
|
// M_nsRemarkPYFull string `json:"m_nsRemarkPYFull"`
|
|
// M_nsRemarkPYShort string `json:"m_nsRemarkPYShort"`
|
|
// M_uiCertificationFlag int `json:"m_uiCertificationFlag"`
|
|
// M_uiSex int `json:"m_uiSex"`
|
|
// M_uiType int `json:"m_uiType"`
|
|
// M_nsImgStatus string `json:"m_nsImgStatus"`
|
|
// M_uiImgKey int `json:"m_uiImgKey"`
|
|
// M_nsHeadImgUrl string `json:"m_nsHeadImgUrl"`
|
|
// M_nsHeadHDImgUrl string `json:"m_nsHeadHDImgUrl"`
|
|
// M_nsHeadHDMd5 string `json:"m_nsHeadHDMd5"`
|
|
// M_uiChatRoomStatus int `json:"m_uiChatRoomStatus"`
|
|
// M_nsChatRoomDesc string `json:"m_nsChatRoomDesc"`
|
|
// M_nsDraft string `json:"m_nsDraft"`
|
|
// M_nsBrandIconUrl string `json:"m_nsBrandIconUrl"`
|
|
// M_nsGoogleContactName string `json:"m_nsGoogleContactName"`
|
|
// M_nsAliasName string `json:"m_nsAliasName"`
|
|
// M_nsEncodeUserName string `json:"m_nsEncodeUserName"`
|
|
// M_uiChatRoomVersion int `json:"m_uiChatRoomVersion"`
|
|
// M_uiChatRoomMaxCount int `json:"m_uiChatRoomMaxCount"`
|
|
// M_uiChatRoomType int `json:"m_uiChatRoomType"`
|
|
// M_patSuffix string `json:"m_patSuffix"`
|
|
// RichChatRoomDesc string `json:"richChatRoomDesc"`
|
|
// Packed_WCContactData []byte `json:"_packed_WCContactData"`
|
|
// OpenIMInfo []byte `json:"openIMInfo"`
|
|
}
|
|
|
|
func (c *ChatRoomDarwinV3) Wrap(user2DisplayName map[string]string) *ChatRoom {
|
|
|
|
split := strings.Split(c.M_nsChatRoomMemList, ";")
|
|
users := make([]ChatRoomUser, 0, len(split))
|
|
_user2DisplayName := make(map[string]string)
|
|
for _, v := range split {
|
|
users = append(users, ChatRoomUser{
|
|
UserName: v,
|
|
})
|
|
if name, ok := user2DisplayName[v]; ok {
|
|
_user2DisplayName[v] = name
|
|
}
|
|
}
|
|
|
|
return &ChatRoom{
|
|
Name: c.M_nsUsrName,
|
|
Owner: c.M_nsChatRoomAdminList,
|
|
Remark: c.M_nsRemark,
|
|
NickName: c.Nickname,
|
|
Users: users,
|
|
User2DisplayName: _user2DisplayName,
|
|
}
|
|
}
|