package group_m import ( "context" "git.hilo.cn/hilo-common/resource/redisCli" redis2 "github.com/go-redis/redis/v8" "hilo-group/_const/redis_key" "hilo-group/domain/model" "hilo-group/myerr" ) func (groupMsg *GroupMsg) Persistent() error { if err := model.Persistent(groupMsg.Db, groupMsg); err != nil { return myerr.WrapErr(err) } return nil } func (groupUser *GroupUser) Persistent() error { if err := model.Persistent(groupUser.Db, groupUser); err != nil { return myerr.WrapErr(err) } return nil } func (rediGroupMsgSeqMax *RediGroupMsgSeqMax) Persistent() error { if err := redisCli.GetRedis().HSet(context.Background(), redis_key.GetPrefixGroupMsgSeqMaxAll(), rediGroupMsgSeqMax.GroupUuid, rediGroupMsgSeqMax.Seq).Err(); err != nil { return myerr.WrapErr(err) } return nil } func (redisGroupMsgSeqMaxUser *RedisGroupMsgSeqMaxUser) Persistent() error { if err := redisCli.GetRedis().HSet(context.Background(), redis_key.GetPrefixGroupMsgSeqMaxGroup(redisGroupMsgSeqMaxUser.GroupUuid), redisGroupMsgSeqMaxUser.GroupUuid+"_"+redisGroupMsgSeqMaxUser.ExternalId, redisGroupMsgSeqMaxUser.Seq).Err(); err != nil { return myerr.WrapErr(err) } return nil } func (redisGroupMsgDurationScore *RedisGroupMsgDurationScore) Persistent() error { if redisGroupMsgDurationScore.AddCountUser != 0 { if err := redisCli.GetRedis().ZIncrBy(context.Background(), redis_key.GetPrefixGroupMsgDurationScore(), float64(redisGroupMsgDurationScore.AddCountUser), redisGroupMsgDurationScore.GroupUuid).Err(); err != nil { return err } } return nil } func (redisGroupUserMsgDuration *RedisGroupMsgDurationUser) Persistent() (int64, error) { if i, err := redisCli.GetRedis().ZAdd(context.Background(), redis_key.GetPrefixGroupMsgDurationUser(), &redis2.Z{ Score: float64(redisGroupUserMsgDuration.TimeStamp), Member: redisGroupUserMsgDuration.GroupUuid + "_" + redisGroupUserMsgDuration.ExternalId, }).Result(); err != nil { return i, err } else { return i, nil } } func (groupSupportAwardAdmin *GroupSupportAwardAdmin) Persistent() error { if err := model.Persistent(groupSupportAwardAdmin.Db, groupSupportAwardAdmin); err != nil { return myerr.WrapErr(err) } return nil } func (groupSupportAwardMgr *GroupSupportAwardMgr) Persistent() error { if err := model.Persistent(groupSupportAwardMgr.Db, groupSupportAwardMgr); err != nil { return myerr.WrapErr(err) } return nil } func (groupSupportResult *GroupSupportResult) Persistent() error { if err := model.Persistent(groupSupportResult.Db, groupSupportResult); err != nil { return myerr.WrapErr(err) } return nil } func (groupCustomTheme *GroupCustomTheme) Persistent() error { if err := model.Persistent(groupCustomTheme.Db, groupCustomTheme); err != nil { return myerr.WrapErr(err) } return nil } func (groupMedal *GroupMedal) Persistent() error { if err := model.Persistent(groupMedal.Db, groupMedal); err != nil { return myerr.WrapErr(err) } return nil } //func (micUser *MicUser) Persistent() error { // //map 结构 key:groupUuid key:i value:123_0 // if micUser.UserId == nil { // //下麦 // //redis + lua 集成多个命令来保证原子性 或者 用 Multi EXEC ,先用Multi找出该麦位上是否有这个用户,然后再下麦。 // pipeliner := redisCli.GetRedis().TxPipeline() // redisUserId, err := pipeliner.HGet(context.Background(), redis.GetPrefixGroupMicGroupUuid(micUser.GroupUuid), strconv.Itoa(micUser.I)).Result() // if err != nil { // //已经不存在,则抛出错误 // if err == redis2.Nil { // return nil // } else{ // return myerr.WrapErr(err) // } // } // //不等于自己 // if redisUserId != strconv.Itoa(int(micUser.operateUser)) { // return // } // redisCli.GetRedis().pipe := client.TxPipeline() // } else { // //上卖 同 禁言操作,注意 // //上麦 HsetNx // //禁言 Multi EXEC ,先用Multi找出该麦位上是否有这个用户,然后再修改状态。。 // redisCli.GetRedis().HSetNX(context.Background(), redis.GetPrefixGroupMicGroupUuid(micUser.GroupUuid), strconv.Itoa(micUser.I)) // } //} //func (mic *Mic) Persistent() error { // b, err := json.Marshal(mic) // if err != nil { // return myerr.WrapErr(err) // } // _, err = redisCli.GetRedis().HSet(context.Background(), redis.GetPrefixGroupMicGroupUuid(mic.GroupUuid), strconv.Itoa(mic.I), b).Result() // if err != nil { // return myerr.WrapErr(err) // } // // return nil //}