From c9faf5d6b5144e0614e42bb2224dce989c705884 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Fri, 5 Jan 2024 15:20:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comp_model.go | 2 +- modules/modulebase.go | 6 +- modules/shopcenter/api_receive.go | 225 +++++++++++++++++++++--------- modules/shopcenter/configure.go | 26 ++++ 4 files changed, 190 insertions(+), 69 deletions(-) diff --git a/modules/comp_model.go b/modules/comp_model.go index 210f307cb..e03428108 100644 --- a/modules/comp_model.go +++ b/modules/comp_model.go @@ -50,7 +50,7 @@ func (this *MCompModel) Start() (err error) { if conn, err = db.Local(); err != nil { return } - this.DBModel = db.NewDBModel(this.service.GetId(), this.TableName, conn) + this.DBModel = db.NewDBModel(this.service.GetTag(), this.TableName, conn) return } diff --git a/modules/modulebase.go b/modules/modulebase.go index 40447f60f..ce94032aa 100644 --- a/modules/modulebase.go +++ b/modules/modulebase.go @@ -603,7 +603,7 @@ func (this *ModuleBase) GetDBNodule(session comm.IUserSession, tableName string, return } } - model = db.NewDBModel(this.service.GetId(), tableName, conn) + model = db.NewDBModel(this.service.GetTag(), tableName, conn) return } @@ -621,7 +621,7 @@ func (this *ModuleBase) GetCrossDBModel(tableName string) (model *db.DBModel, er return } } - model = db.NewDBModel(this.service.GetId(), tableName, conn) + model = db.NewDBModel(this.service.GetTag(), tableName, conn) return } @@ -643,7 +643,7 @@ func (this *ModuleBase) GetDBModelByUid(uid, tableName string) (model *db.DBMode return } } - model = db.NewDBModel(this.service.GetId(), tableName, conn) + model = db.NewDBModel(this.service.GetTag(), tableName, conn) return } diff --git a/modules/shopcenter/api_receive.go b/modules/shopcenter/api_receive.go index 068da8bd7..20785fcb2 100644 --- a/modules/shopcenter/api_receive.go +++ b/modules/shopcenter/api_receive.go @@ -18,17 +18,20 @@ func (this *apiComp) ReceiveCheck(session comm.IUserSession, req *pb.ShopCenterR // /获取自己的排行榜信息 func (this *apiComp) Receive(session comm.IUserSession, req *pb.ShopCenterReceiveReq) (errdata *pb.ErrorData) { var ( - conf *cfg.GameShopCenterControlData - pconf *cfg.GameShopCenterSubmeterData - fconf *cfg.GameShopCenterFundData - info *pb.DBShopCenter - item *pb.DBShopCenterItem - user *pb.DBUser - drop int32 - items []*cfg.Gameatn - award []*pb.UserAtno - ok bool - err error + conf *cfg.GameShopCenterControlData + pconfs []*cfg.GameShopCenterSubmeterData + pconf *cfg.GameShopCenterSubmeterData + fconf *cfg.GameShopCenterFundData + fconfs []*cfg.GameShopCenterFundData + info *pb.DBShopCenter + item *pb.DBShopCenterItem + user *pb.DBUser + drop []int32 + items []*cfg.Gameatn + itemsgroup []*cfg.Gameatn + award []*pb.UserAtno + ok bool + err error ) if errdata = this.ReceiveCheck(session, req); errdata != nil { return @@ -85,76 +88,168 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.ShopCenterReceiv } switch conf.Type { case 1: - if pconf, err = this.module.configure.getGameShopCenterSubmeter(req.Pid); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } - return - } - level := this.module.mainline.InquireMainLinePassLevel(session.GetUserId()) - if _, ok = level[pconf.Mianlevel]; !ok { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ReqParameterError, - Title: pb.ErrorCode_ReqParameterError.ToString(), - Message: "mainline no pass", - } - return - } - drop = pconf.Group - case 2, 3, 4, 5: - if fconf, err = this.module.configure.getGameShopCenterFund(req.Pid); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } - return - } - if conf.Type == 2 { //等级基金 - if user.Lv < fconf.Unlock { //没有达到目标等级 + if req.Pid != 0 { + if _, ok = item.Record[req.Pid]; ok { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), - Message: "user lv no achieve", + Message: "Received!", } return } + if pconf, err = this.module.configure.getGameShopCenterSubmeter(req.Pid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + level := this.module.mainline.InquireMainLinePassLevel(session.GetUserId()) + if _, ok = level[pconf.Mianlevel]; !ok { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: "mainline no pass", + } + return + } + drop = append(drop, pconf.Group) + item.Record[req.Pid] = true + } else { + if pconfs, err = this.module.configure.getGameShopCenterSubmeters(); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + level := this.module.mainline.InquireMainLinePassLevel(session.GetUserId()) + for _, v := range pconfs { + if _, ok = item.Record[v.Id]; !ok { + if _, ok = level[v.Mianlevel]; ok { + drop = append(drop, pconf.Group) + item.Record[v.Id] = true + } + } + } + } + case 2, 3, 4, 5: + if req.Pid != 0 { + if _, ok = item.Record[req.Pid]; ok { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: "Received!", + } + return + } + if fconf, err = this.module.configure.getGameShopCenterFund(req.Pid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + if conf.Type == 2 { //等级基金 + if user.Lv < fconf.Unlock { //没有达到目标等级 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: "user lv no achieve", + } + return + } + } + drop = append(drop, fconf.Group) + item.Record[req.Pid] = true + } else { + if fconfs, err = this.module.configure.getGameShopCenterFunds(); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + for _, v := range fconfs { + if _, ok = item.Record[v.Id]; !ok { + if conf.Type == 2 { //等级基金 + if user.Lv >= v.Unlock { //没有达到目标等级 + drop = append(drop, fconf.Group) + item.Record[v.Id] = true + } + } + } + } } - drop = fconf.Group break case 6, 7, 8: - if fconf, err = this.module.configure.getGameShopCenterFund(req.Pid); err != nil { + if req.Pid != 0 { + if _, ok = item.Record[req.Pid]; ok { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: "Received!", + } + return + } + if fconf, err = this.module.configure.getGameShopCenterFund(req.Pid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + days := int32(utils.DiffDays(configure.Now().Unix(), item.Buytime)) + 1 + if days < fconf.Unlock { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: fmt.Sprintf("days:%d no achieve", days), + } + return + } + drop = append(drop, fconf.Group) + item.Record[req.Pid] = true + } else { + if fconfs, err = this.module.configure.getGameShopCenterFunds(); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + days := int32(utils.DiffDays(configure.Now().Unix(), item.Buytime)) + 1 + for _, v := range fconfs { + if _, ok = item.Record[v.Id]; !ok { + if days >= v.Unlock { //没有达到目标等级 + drop = append(drop, fconf.Group) + item.Record[v.Id] = true + } + } + } + } + break + } + + for _, v := range drop { + if items = this.module.ModuleTools.GetGroupDataByLottery(v, user.Vip, user.Lv); len(items) == 0 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), + Message: fmt.Sprintf("掉落组未找到:%d", drop), } return } - days := int32(utils.DiffDays(configure.Now().Unix(), item.Buytime)) + 1 - if days < fconf.Unlock { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ReqParameterError, - Title: pb.ErrorCode_ReqParameterError.ToString(), - Message: fmt.Sprintf("days:%d no achieve", days), - } - return - } - drop = fconf.Group - break + itemsgroup = append(itemsgroup, items...) } - item.Record[req.Pid] = true - if items = this.module.ModuleTools.GetGroupDataByLottery(drop, user.Vip, user.Lv); len(items) == 0 { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: fmt.Sprintf("掉落组未找到:%d", drop), - } - return - } - if errdata, award = this.module.DispenseAtno(session, items, true); errdata != nil { + + if errdata, award = this.module.DispenseAtno(session, itemsgroup, true); errdata != nil { return } diff --git a/modules/shopcenter/configure.go b/modules/shopcenter/configure.go index 52c36f38d..516ea004b 100644 --- a/modules/shopcenter/configure.go +++ b/modules/shopcenter/configure.go @@ -82,6 +82,19 @@ func (this *configureComp) getGameShopCenterFund(pid int32) (conf *cfg.GameShopC return } +// 获取活跃度奖励配置 +func (this *configureComp) getGameShopCenterFunds() (confs []*cfg.GameShopCenterFundData, err error) { + var ( + v interface{} + ) + if v, err = this.GetConfigure(game_shopcenterfund); err != nil { + return + } else { + confs = v.(*cfg.GameShopCenterFund).GetDataList() + } + return +} + // 获取活跃度奖励配置 func (this *configureComp) getGameShopCenterSubmeter(pid int32) (conf *cfg.GameShopCenterSubmeterData, err error) { var ( @@ -99,3 +112,16 @@ func (this *configureComp) getGameShopCenterSubmeter(pid int32) (conf *cfg.GameS } return } + +// 获取活跃度奖励配置 +func (this *configureComp) getGameShopCenterSubmeters() (confs []*cfg.GameShopCenterSubmeterData, err error) { + var ( + v interface{} + ) + if v, err = this.GetConfigure(game_shopcentersubmeter); err != nil { + return + } else { + confs = v.(*cfg.GameShopCenterSubmeter).GetDataList() + } + return +}