You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Open-IM-Server/pkg/common/db/redisModel.go

335 lines
11 KiB

package db
const (
accountTempCode = "ACCOUNT_TEMP_CODE"
resetPwdTempCode = "RESET_PWD_TEMP_CODE"
userIncrSeq = "REDIS_USER_INCR_SEQ:" // user incr seq
appleDeviceToken = "DEVICE_TOKEN"
userMinSeq = "REDIS_USER_MIN_SEQ:"
uidPidToken = "UID_PID_TOKEN_STATUS:"
conversationReceiveMessageOpt = "CON_RECV_MSG_OPT:"
getuiToken = "GETUI_TOKEN"
userInfoCache = "USER_INFO_CACHE:"
friendRelationCache = "FRIEND_RELATION_CACHE:"
blackListCache = "BLACK_LIST_CACHE:"
groupCache = "GROUP_CACHE:"
messageCache = "MESSAGE_CACHE:"
SignalCache = "SIGNAL_CACHE:"
SignalListCache = "SIGNAL_LIST_CACHE:"
GlobalMsgRecvOpt = "GLOBAL_MSG_RECV_OPT"
)
//func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (interface{}, error) {
// con := d.redisPool.Get()
// if err := con.Err(); err != nil {
// log2.Error("", "", "redis cmd = %v, err = %v", cmd, err)
// return nil, err
// }
// defer con.Close()
//
// params := make([]interface{}, 0)
// params = append(params, key)
//
// if len(args) > 0 {
// for _, v := range args {
// params = append(params, v)
// }
// }
//
// return con.Do(cmd, params...)
//}
//func (d *DataBases) JudgeAccountEXISTS(account string) (bool, error) {
// key := accountTempCode + account
// return redis.Bool(d.Exec("EXISTS", key))
//}
//func (d *DataBases) SetAccountCode(account string, code, ttl int) (err error) {
// key := accountTempCode + account
// _, err = d.Exec("SET", key, code, "ex", ttl)
// return err
//}
//func (d *DataBases) GetAccountCode(account string) (string, error) {
// key := accountTempCode + account
// return redis.String(d.Exec("GET", key))
//}
//
////Perform seq auto-increment operation of user messages
//func (d *DataBases) IncrUserSeq(uid string) (uint64, error) {
// key := userIncrSeq + uid
// return redis.Uint64(d.Exec("INCR", key))
//}
//
////Get the largest Seq
//func (d *DataBases) GetUserMaxSeq(uid string) (uint64, error) {
// key := userIncrSeq + uid
// return redis.Uint64(d.Exec("GET", key))
//}
//
////set the largest Seq
//func (d *DataBases) SetUserMaxSeq(uid string, maxSeq uint64) error {
// key := userIncrSeq + uid
// _, err := d.Exec("SET", key, maxSeq)
// return err
//}
//
////Set the user's minimum seq
//func (d *DataBases) SetUserMinSeq(uid string, minSeq uint32) (err error) {
// key := userMinSeq + uid
// _, err = d.Exec("SET", key, minSeq)
// return err
//}
//
////Get the smallest Seq
//func (d *DataBases) GetUserMinSeq(uid string) (uint64, error) {
// key := userMinSeq + uid
// return redis.Uint64(d.Exec("GET", key))
//}
//
//
////Store userid and platform class to redis
//func (d *DataBases) AddTokenFlag(userID string, platformID int, token string, flag int) error {
// key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID)
// log2.NewDebug("", "add token key is ", key)
// _, err1 := d.Exec("HSet", key, token, flag)
// return err1
//}
//
//func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]int, error) {
// key := uidPidToken + userID + ":" + platformID
// log2.NewDebug("", "get token key is ", key)
// return redis.IntMap(d.Exec("HGETALL", key))
//}
//func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int, m map[string]int) error {
// key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID)
// _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...)
// return err
//}
//func (d *DataBases) DeleteTokenByUidPid(userID string, platformID int, fields []string) error {
// key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID)
// _, err := d.Exec("HDEL", key, redis.Args{}.Add().AddFlat(fields)...)
// return err
//}
//
//func (d *DataBases) SetSingleConversationRecvMsgOpt(userID, conversationID string, opt int32) error {
// key := conversationReceiveMessageOpt + userID
// _, err := d.Exec("HSet", key, conversationID, opt)
// return err
//}
//
//func (d *DataBases) GetSingleConversationRecvMsgOpt(userID, conversationID string) (int, error) {
// key := conversationReceiveMessageOpt + userID
// return redis.Int(d.Exec("HGet", key, conversationID))
//}
//func (d *DataBases) GetMultiConversationMsgOpt(userID string, conversationIDs []string) (m map[string]int, err error) {
// m = make(map[string]int)
// key := conversationReceiveMessageOpt + userID
// i, err := redis.Ints(d.Exec("hmget", key, redis.Args{}.Add().AddFlat(conversationIDs)...))
// if err != nil {
// return m, err
// }
// for k, v := range conversationIDs {
// m[v] = i[k]
// }
// return m, nil
//
//}
//func (d *DataBases) SetGetuiToken(token string, expireTime int64) error {
// _, err := d.Exec("SET", getuiToken, token, "ex", expireTime)
// return err
//}
//
//func (d *DataBases) GetGetuiToken() (string, error) {
// result, err := redis.String(d.Exec("GET", getuiToken))
// return result, err
//}
func (d *DataBases) SearchContentType() {
}
//func (d *DataBases) SetUserInfoToCache(userID string, m map[string]interface{}) error {
// _, err := d.Exec("hmset", userInfoCache+userID, redis.Args{}.Add().AddFlat(m)...)
// return err
//}
//
//func (d *DataBases) GetUserInfoFromCache(userID string) (*pbCommon.UserInfo, error) {
// result, err := redis.String(d.Exec("hgetall", userInfoCache+userID))
// log2.NewInfo("", result)
// if err != nil {
// return nil, err
// }
// userInfo := &pbCommon.UserInfo{}
// err = json.Unmarshal([]byte(result), userInfo)
// return userInfo, err
//}
//func (d *DataBases) AddFriendToCache(userID string, friendIDList ...string) error {
// var IDList []interface{}
// for _, id := range friendIDList {
// IDList = append(IDList, id)
// }
// _, err := d.Exec("SADD", friendRelationCache+userID, IDList...)
// return err
//}
//func (d *DataBases) ReduceFriendToCache(userID string, friendIDList ...string) error {
// var IDList []interface{}
// for _, id := range friendIDList {
// IDList = append(IDList, id)
// }
// _, err := d.Exec("SREM", friendRelationCache+userID, IDList...)
// return err
//}
//func (d *DataBases) GetFriendIDListFromCache(userID string) ([]string, error) {
// result, err := redis.Strings(d.Exec("SMEMBERS", friendRelationCache+userID))
// return result, err
//}
//
//func (d *DataBases) AddBlackUserToCache(userID string, blackList ...string) error {
// var IDList []interface{}
// for _, id := range blackList {
// IDList = append(IDList, id)
// }
// _, err := d.Exec("SADD", blackListCache+userID, IDList...)
// return err
//}
//func (d *DataBases) ReduceBlackUserFromCache(userID string, blackList ...string) error {
// var IDList []interface{}
// for _, id := range blackList {
// IDList = append(IDList, id)
// }
// _, err := d.Exec("SREM", blackListCache+userID, IDList...)
// return err
//}
//func (d *DataBases) GetBlackListFromCache(userID string) ([]string, error) {
// result, err := redis.Strings(d.Exec("SMEMBERS", blackListCache+userID))
// return result, err
//}
//func (d *DataBases) AddGroupMemberToCache(groupID string, userIDList ...string) error {
// var IDList []interface{}
// for _, id := range userIDList {
// IDList = append(IDList, id)
// }
// _, err := d.Exec("SADD", groupCache+groupID, IDList...)
// return err
//}
//func (d *DataBases) ReduceGroupMemberFromCache(groupID string, userIDList ...string) error {
// var IDList []interface{}
// for _, id := range userIDList {
// IDList = append(IDList, id)
// }
// _, err := d.Exec("SREM", groupCache+groupID, IDList...)
// return err
//}
//func (d *DataBases) GetGroupMemberIDListFromCache(groupID string) ([]string, error) {
// result, err := redis.Strings(d.Exec("SMEMBERS", groupCache+groupID))
// return result, err
//}
//func (d *DataBases) GetMessageListBySeq(userID string, seqList []uint32, operationID string) (seqMsg []*pbCommon.MsgData, failedSeqList []uint32, errResult error) {
// for _, v := range seqList {
// //MESSAGE_CACHE:169.254.225.224_reliability1653387820_0_1
// key := messageCache + userID + "_" + strconv.Itoa(int(v))
//
// result, err := redis.String(d.Exec("GET", key))
// if err != nil {
// errResult = err
// failedSeqList = append(failedSeqList, v)
// log2.NewWarn(operationID, "redis get message error:", err.Error(), v)
// } else {
// msg := pbCommon.MsgData{}
// err = jsonpb.UnmarshalString(result, &msg)
// if err != nil {
// errResult = err
// failedSeqList = append(failedSeqList, v)
// log2.NewWarn(operationID, "Unmarshal err", result, err.Error())
// } else {
// log2.NewDebug(operationID, "redis get msg is ", msg.String())
// seqMsg = append(seqMsg, &msg)
// }
//
// }
// }
// return seqMsg, failedSeqList, errResult
//}
//func (d *DataBases) SetMessageToCache(msgList []*pbChat.MsgDataToMQ, uid string, operationID string) error {
// var failedList []pbChat.MsgDataToMQ
// for _, msg := range msgList {
// key := messageCache + uid + "_" + strconv.Itoa(int(msg.MsgData.Seq))
// s, err := utils.Pb2String(msg.MsgData)
// if err != nil {
// log2.NewWarn(operationID, utils.GetSelfFuncName(), "Pb2String failed", msg.MsgData.String(), uid, err.Error())
// continue
// }
// log2.NewDebug(operationID, "convert string is ", s)
// _, err = d.Exec("SET", key, s, "ex", config.Config.MsgCacheTimeout)
// if err != nil {
// log2.NewWarn(operationID, utils.GetSelfFuncName(), "redis failed", "args:", key, *msg, uid, s)
// failedList = append(failedList, *msg)
// }
// }
// if len(failedList) != 0 {
// return errors.New(fmt.Sprintf("set msg to cache failed, failed lists: %q", failedList))
// }
// return nil
//}
//func (d *DataBases) DelMsgFromCache(uid string, seqList []uint32, operationID string) {
// for _, seq := range seqList {
// key := messageCache + uid + "_" + strconv.Itoa(int(seq))
// result, err := redis.String(d.Exec("GET", key))
// if err != nil {
// log2.NewWarn(operationID, utils.GetSelfFuncName(), "redis failed", "args:", key)
// continue
// }
// log2.Debug(operationID, utils.GetSelfFuncName(), "del result", result)
// var msg pbCommon.MsgData
// err = utils.String2Pb(result, &msg)
// log2.NewDebug(operationID, utils.GetSelfFuncName(), "msg", msg)
// if err != nil {
// log2.NewWarn(operationID, utils.GetSelfFuncName(), "string2Pb failed", msg, err.Error())
// continue
// }
// msg.Status = constant.MsgDeleted
// s, err := utils.Pb2String(&msg)
// if err != nil {
// log2.NewWarn(operationID, utils.GetSelfFuncName(), "Pb2String failed", msg, err.Error())
// continue
// }
// _, err = d.Exec("SET", key, s)
// if err != nil {
// log2.NewWarn(operationID, utils.GetSelfFuncName(), "redis failed", "args:", key, msg, s)
// }
// }
//}
//func (d *DataBases) CacheSignalInfo(msg *pbCommon.MsgData) error {
// key := SignalCache + msg.ClientMsgID
// _, err := d.Exec("SET", key, msg.Content, "ex", config.Config.Rtc.SignalTimeout)
// return err
//}
//
//func (d *DataBases) GetSignalInfoFromCache(clientMsgID string) (invitationInfo *pbRtc.SignalInviteReq, err error) {
// key := SignalCache + clientMsgID
// result, err := redis.Bytes(d.Exec("GET", key))
// log2.NewDebug("", utils.GetSelfFuncName(), clientMsgID, result, string(result))
// if err != nil {
// return nil, err
// }
// req := &pbRtc.SignalReq{}
// if err = proto.Unmarshal(result, req); err != nil {
// return nil, err
// }
// req2 := req.Payload.(*pbRtc.SignalReq_Invite)
// invitationInfo = req2.Invite
// return invitationInfo, err
//}