diff --git a/comm/const.go b/comm/const.go index 4ce8c7df3..e7d069d36 100644 --- a/comm/const.go +++ b/comm/const.go @@ -440,6 +440,7 @@ const ( //Rpc Rpc_Activity core.Rpc_Key = "Rpc_Activity" Rpc_ActivityOver core.Rpc_Key = "Rpc_ActivityOver" //活动结束 + Rpc_ActivityStar core.Rpc_Key = "Rpc_ActivityStar" //活动开启 ) // 事件类型定义处 diff --git a/modules/activity/module.go b/modules/activity/module.go index 51b729adb..778c7ad18 100644 --- a/modules/activity/module.go +++ b/modules/activity/module.go @@ -14,6 +14,8 @@ import ( cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/sys/db" "go_dreamfactory/utils" + + "go.mongodb.org/mongo-driver/bson" ) type Activity struct { @@ -111,6 +113,7 @@ func (this *Activity) Start() (err error) { } } this.service.RegisterFunctionName(string(comm.Rpc_ActivityOver), this.Rpc_ActivityOver) + this.service.RegisterFunctionName(string(comm.Rpc_ActivityStar), this.Rpc_ActivityStar) return } @@ -450,6 +453,66 @@ func (this *Activity) Rpc_ActivityOver(ctx context.Context, args *pb.RPCGeneralR ) szOverActivity = args.Param2 + for _, v := range szOverActivity { + hd := &pb.DBHuodong{} + if err := this.modelhdList.DB.FindOne(core.SqlTable(this.modelhdList.TableName), bson.M{"_id": v}).Decode(hd); err != nil { + switch hd.Itype { + case pb.HdType_HdTypeWarorder, pb.HdType_SupplyWarOrder, pb.HdType_MoondreamWarOrder: + this.warorder.ActivityCloseNotice(hd) + break + case pb.HdType_HdTypePay, pb.HdType_ShopCenterPayPakcge: + this.pay.ActivityCloseNotice(hd) + break + case pb.HdType_XSFundPhysical, pb.HdType_XSFundRecruit, pb.HdType_XSFundExp: + this.shopcenter.ActivityCloseNotice(hd) + break + case pb.HdType_AddUpRecharge: + this.addrecharge.ActivityCloseNotice(hd) + break + case pb.HdType_KFSevenTask: + this.kftask.ActivityCloseNotice(hd) + break + } + } + } + + this.Debug("szOverActivity", log.Field{Key: "args", Value: szOverActivity}) + return +} + +// 活动开启通知 +func (this *Activity) Rpc_ActivityStar(ctx context.Context, args *pb.RPCGeneralReqB1, reply *pb.EmptyResp) (err error) { + this.Debug("Rpc_ActivityStar", + log.Field{Key: "args", Value: args.String()}, + ) + var ( + szOverActivity []string + ) + szOverActivity = args.Param2 + + for _, v := range szOverActivity { + hd := &pb.DBHuodong{} + if err := this.modelhdList.DB.FindOne(core.SqlTable(this.modelhdList.TableName), bson.M{"_id": v}).Decode(hd); err != nil { + switch hd.Itype { + case pb.HdType_HdTypeWarorder, pb.HdType_SupplyWarOrder, pb.HdType_MoondreamWarOrder: + this.warorder.ActivityOpenNotice(hd) + break + case pb.HdType_HdTypePay, pb.HdType_ShopCenterPayPakcge: + this.pay.ActivityOpenNotice(hd) + break + case pb.HdType_XSFundPhysical, pb.HdType_XSFundRecruit, pb.HdType_XSFundExp: + this.shopcenter.ActivityOpenNotice(hd) + break + case pb.HdType_AddUpRecharge: + this.addrecharge.ActivityOpenNotice(hd) + break + case pb.HdType_KFSevenTask: + this.kftask.ActivityOpenNotice(hd) + break + } + } + } + this.Debug("szOverActivity", log.Field{Key: "args", Value: szOverActivity}) return } diff --git a/modules/timer/activity.go b/modules/timer/activity.go index d492717ae..8411de71e 100644 --- a/modules/timer/activity.go +++ b/modules/timer/activity.go @@ -32,7 +32,7 @@ type Activity struct { //组件初始化接口 func (this *Activity) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { - this.TableName = comm.TableCaravan + this.TableName = comm.TableHdInfo this.MCompModel.Init(service, module, comp, options) this.module = module.(*Timer) this.service = service.(base.IRPCXService) @@ -47,9 +47,11 @@ func (this *Activity) Start() (err error) { if db.IsCross() { return } - err = this.MCompModel.Start() + if err = this.MCompModel.Start(); err != nil { + return + } timer := time.NewTicker(time.Second * 1) - + this.LoadActivityData() go func() { locp: for { @@ -86,13 +88,17 @@ func (this *Activity) LoadActivityData() { func (this *Activity) CheckActivityData() { var ( - szEnd []string + szEnd []string // 活动结束 + szStar []string // 有活动开启 ) - this.module.Debugf("ticker:%d", configure.Now().Unix()) + //this.module.Debugf("ticker:%d", configure.Now().Unix()) for _, v := range this.activity { - if v.Etime > configure.Now().Unix() { // 有活动结束 + if v.Etime == configure.Now().Unix() { // 有活动结束 szEnd = append(szEnd, v.Id) } + if v.Stime == configure.Now().Unix() { // 有活动结束 + szStar = append(szStar, v.Id) + } } if len(szEnd) > 0 { if err := this.service.RpcCall( @@ -108,4 +114,18 @@ func (this *Activity) CheckActivityData() { this.module.Errorln(err) } } + if len(szStar) > 0 { + if err := this.service.RpcCall( + context.Background(), + comm.Service_Worker, + string(comm.Rpc_ActivityStar), + pb.RPCGeneralReqB1{ + Param1: "starActivity", + Param2: szStar, + }, + nil, + ); err != nil { + this.module.Errorln(err) + } + } }