go_dreamfactory/modules/library/model_fetter.go
2023-06-15 16:24:30 +08:00

85 lines
2.0 KiB
Go

package library
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type modelFetter struct {
modules.MCompModel
module *Library
}
func (this *modelFetter) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = string(comm.TableFetter)
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Library)
// uid 创建索引
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
// 修改英雄羁绊数据
func (this *modelFetter) modifyHeroFetterDataByObjId(uid string, obj string, data map[string]interface{}) error {
return this.ChangeList(uid, obj, data)
}
// 获取列表信息
func (this *modelFetter) getHeroFetterList(uid string) []*pb.DBHeroFetter {
fetters := make([]*pb.DBHeroFetter, 0)
err := this.GetList(uid, &fetters)
if err != nil {
return nil
}
return fetters
}
//创建一条信息
func (this *modelFetter) createHeroFetter(uid string, fetter *pb.DBHeroFetter) (err error) {
if err = this.AddList(uid, fetter.Id, fetter); err != nil {
this.module.Errorf("%v", err)
return
}
return
}
// 通过objid 找对应的数据
func (this *modelFetter) getOneHeroFetter(uid, oid string) *pb.DBHeroFetter {
fetter := &pb.DBHeroFetter{}
err := this.GetListObj(uid, oid, fetter)
if err != nil {
return nil
}
return fetter
}
func (this *modelFetter) GetFetterByHeroId(uid, cid string) *pb.DBHeroFetter {
list := this.getHeroFetterList(uid)
for _, v := range list {
if v.Heroid == cid { // 找到了直接返回
return v
}
}
return nil
}
func (this *modelFetter) checkReddot19103(uid string) bool {
list := this.getHeroFetterList(uid)
for _, v := range list {
for i := 1; i <= int(v.Favorlv); i++ {
if _, ok := v.Lvprize[int32(i)]; !ok { // 找到了没有领奖的数据
return true
}
}
}
return false
}