package warorder import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/modules" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" ) const modulename = "战令" type Warorder struct { modules.ModuleBase service core.IService api *apiComp configure *configureComp model *modelWarorder } func NewModule() core.IModule { return &Warorder{} } func (this *Warorder) GetType() core.M_Modules { return comm.ModuleWarorder } func (this *Warorder) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { if err = this.ModuleBase.Init(service, module, options); err != nil { return } this.service = service return } func (this *Warorder) Start() (err error) { if err = this.ModuleBase.Start(); err != nil { return } return } func (this *Warorder) OnInstallComp() { this.ModuleBase.OnInstallComp() this.api = this.RegisterComp(new(apiComp)).(*apiComp) this.model = this.RegisterComp(new(modelWarorder)).(*modelWarorder) this.configure = this.RegisterComp(new(configureComp)).(*configureComp) } // 发货 func (this *Warorder) Delivery(session comm.IUserSession, pId int32) (errdata *pb.ErrorData, items []*pb.UserAtno) { var ( confs []*cfg.GamePassCheckPriceData conf *cfg.GamePassCheckPriceData expconf *cfg.GamePassCheckExpData info *pb.DBWarorders warorder *pb.Warorder dwarorder *pb.DreamWarorder err error ok bool ) if confs, err = this.configure.getGamePassCheckPrice(); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.String(), Message: err.Error(), } return } for _, v := range confs { if v.PasscheckType == pId { conf = v break } } if conf == nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.String(), Message: fmt.Sprintf("no found pid:%d", pId), } return } if info, err = this.model.getUserWarorders(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } switch conf.PasscheckType { case 1, 2, 3: if warorder, ok = info.Warorder[conf.PasscheckType]; !ok { warorder = &pb.Warorder{ Vip: true, } info.Warorder[conf.PasscheckType] = warorder } warorder.Vip = true case 4: if dwarorder, ok = info.Dreamwarorder[conf.PasscheckType]; !ok { dwarorder = &pb.DreamWarorder{} info.Warorder[conf.PasscheckType] = warorder } if conf.PasscheckType == pId { dwarorder.Vip = 1 } else { dwarorder.Vip = 2 } if conf.PasscheckType == pId { if expconf, err = this.configure.getWarorderLvpMax(conf.PasscheckType); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } return } dwarorder.Lv += this.ModuleTools.GetGlobalConf().PasscheckPro4UpLv if dwarorder.Lv > expconf.Id { dwarorder.Lv = expconf.Id dwarorder.Exp = expconf.Parameter } else { if expconf, err = this.configure.getWarorderLvp(dwarorder.Lv, conf.PasscheckType); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } return } dwarorder.Exp = expconf.Parameter } } } this.model.updateUserWarorders(session.GetUserId(), info) return } // 活动开启 func (this *Warorder) ActivityOpenNotice(hdlist *pb.DBHuodong) { switch hdlist.Itype { case pb.HdType_HdTypeWarorder: this.model.setopentime(2, hdlist) break case pb.HdType_SupplyWarOrder: this.model.setopentime(3, hdlist) break case pb.HdType_MoondreamWarOrder: this.model.setopentime(4, hdlist) break } } // 活动关闭 func (this *Warorder) ActivityCloseNotice(hdlist *pb.DBHuodong) { switch hdlist.Itype { case pb.HdType_HdTypeWarorder: go this.model.settlement(2) break case pb.HdType_SupplyWarOrder: go this.model.settlement(3) break case pb.HdType_MoondreamWarOrder: // this.model.setopentime(4, hdlist) break } }