81 lines
2.1 KiB
Go
81 lines
2.1 KiB
Go
package pagoda
|
|
|
|
import (
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/lego/core"
|
|
"go_dreamfactory/lego/sys/redis"
|
|
"go_dreamfactory/modules"
|
|
"go_dreamfactory/pb"
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
type ModelRank struct {
|
|
modules.MCompModel
|
|
modulePagoda *Pagoda
|
|
}
|
|
|
|
func (this *ModelRank) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
|
this.TableName = comm.TablePagodaRank
|
|
err = this.MCompModel.Init(service, module, comp, options)
|
|
this.modulePagoda = module.(*Pagoda)
|
|
return
|
|
}
|
|
|
|
func (this *ModelRank) AddRank(uId string, data *pb.DBPagodaRank) (err error) {
|
|
if err = this.Add(uId, data); err != nil {
|
|
//this.Errorf("err:%v", err)
|
|
return
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//获取用户通过扩展表
|
|
func (this *ModelRank) GetUserRandData(uid string) (result *pb.DBPagodaRank, err error) {
|
|
result = &pb.DBPagodaRank{}
|
|
if err = this.Get(uid, result); err != nil && redis.RedisNil != err {
|
|
return
|
|
}
|
|
err = nil
|
|
return result, err
|
|
}
|
|
|
|
func (this *ModelRank) ChangeUserRank(uid string, value map[string]interface{}) (err error) {
|
|
if len(value) == 0 {
|
|
return nil
|
|
}
|
|
return this.Change(uid, value)
|
|
}
|
|
|
|
func (this *ModelRank) GetRankData() (data []*pb.DBPagodaRank, err error) {
|
|
data = make([]*pb.DBPagodaRank, 0)
|
|
err = this.Redis.LRange(comm.TablePagodaRank, 0, -1, &data)
|
|
|
|
return
|
|
}
|
|
func (this *ModelRank) getPagodaRankList(uid string) []*pb.DBPagodaRank {
|
|
pagodaRank := make([]*pb.DBPagodaRank, 0)
|
|
err := this.GetList(uid, &pagodaRank)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
return pagodaRank
|
|
}
|
|
|
|
// 插入新的排行数据
|
|
func (this *ModelRank) updatePagodaRankList(session comm.IUserSession, data *pb.DBSeasonPagoda, Leadpos int32, line []*pb.LineUp) {
|
|
userinfo := this.modulePagoda.ModuleUser.GetUser(session.GetUserId())
|
|
new := &pb.DBPagodaRank{
|
|
Id: primitive.NewObjectID().Hex(),
|
|
Uid: session.GetUserId(),
|
|
PagodaId: data.PagodaId,
|
|
Type: data.Type,
|
|
Nickname: userinfo.Name,
|
|
Icon: "",
|
|
Lv: userinfo.Lv,
|
|
CostTime: 0,
|
|
}
|
|
this.AddList(session.GetUserId(), new.Id, new)
|
|
return
|
|
}
|