Files
chain33-dtalk/service/group/dao/redis.go
2022-03-17 15:59:24 +08:00

81 lines
1.8 KiB
Go

package dao
import (
"fmt"
"gitlab.33.cn/chat/dtalk/service/group/model/biz"
"gitlab.33.cn/chat/dtalk/service/group/model/db"
"time"
)
const (
_prefixGroup = "x_group:%d"
_prefixGroupMember = "x_group:%d;member:%s"
)
func keyGroup(groupId int64) string {
return fmt.Sprintf(_prefixGroup, groupId)
}
// GetGroupCache get group from groupId
func (d *Dao) GetGroupCache(groupId int64) (*biz.GroupInfo, error) {
key := keyGroup(groupId)
if ok, err := d.redis.Exists(key); err != nil {
return nil, err
} else if !ok {
return nil, db.ErrGroupNotExist
}
res := &biz.GroupInfo{}
if err := d.redis.Read(key, res); err != nil {
return nil, err
}
return res, nil
}
func (d *Dao) SaveGroup(group *biz.GroupInfo, duration time.Duration) error {
key := keyGroup(group.GroupId)
if err := d.redis.Write(key, group, int(duration)); err != nil {
return err
}
return nil
}
func (d *Dao) DeleteGroupCache(groupId int64) error {
key := keyGroup(groupId)
_, err := d.redis.Del(key)
if err != nil {
return err
}
return nil
}
//func keyGroupMember(groupId int64, memberId string) string {
// return fmt.Sprintf(_prefixGroupMember, groupId, memberId)
//}
//
//func (d *Dao) GetGroupMemberWithMuteTime(groupId int64, memberId string) (*db.GroupMemberWithMute, error) {
// key := keyGroupMember(groupId, memberId)
// if ok, err := d.redis.Exists(key); err != nil {
// return nil, err
// } else if !ok {
// return nil, db.ErrGroupMemberNotExist
// }
//
// res := &db.GroupMemberWithMute{}
// if err := d.redis.Read(key, res); err != nil {
// return nil, err
// }
//
// return res, nil
//}
//
//func (d *Dao) SaveGroupMemberWithMuteTime(member *db.GroupMemberWithMute, duration time.Duration) error {
// key := keyGroup(member.GroupId)
// if err := d.redis.Write(key, member, int(duration)); err != nil {
// return err
// }
// return nil
//}