package handler import ( "ecs/proto" "ecs/servers/gate/logic" "github.com/oylshe1314/framework/http" "github.com/oylshe1314/framework/util" "math" ) func (this *InnerHandler) GetSetting(msg *http.Message) { if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] <- GetGetting, req: %s", msg.R.RemoteAddr, util.ToJsonString(nil)) } var setting = this.gateManager.GetSetting() var ack = &proto.MsgGateSettingQueryAck{} if setting != nil { ack.Version = setting.Version ack.LoginClosed = setting.LoginClosed ack.TimedClose = setting.TimedClose ack.CloseTime = setting.CloseTime ack.ClosedList = setting.ClosedList ack.WhiteList = setting.WhiteList } if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] <- GetGetting, ack: %s", msg.R.RemoteAddr, util.ToJsonString(ack)) } _ = msg.Reply(ack) } func (this *InnerHandler) SetSetting(msg *http.Message) { var req = new(proto.MsgGateSettingSaveReq) var err = msg.Read(req) if err != nil { this.Logger().Error("Read message error, ", err) _ = msg.Reply(proto.ErrMessageError) return } if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] <- SetSetting, req: %s", msg.R.RemoteAddr, util.ToJsonString(req)) } if req.Version == "" { this.Logger().Error("Parameter error, req.Version == \"\"") _ = msg.Reply(proto.ErrParameterError) return } err = this.gateManager.SetSetting(&logic.Setting{ Id: this.server.AppId(), Version: req.Version, LoginClosed: req.LoginClosed, TimedClose: req.TimedClose, CloseTime: req.CloseTime, ClosedList: req.ClosedList, WhiteList: req.WhiteList, }) if err != nil { this.Logger().Error("Save setting failed, ", err) _ = msg.Reply(err) return } if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] -> SetSetting, ack: %s", msg.R.RemoteAddr, util.ToJsonString(nil)) } _ = msg.Reply(nil) } func (this *InnerHandler) QueryNotice(msg *http.Message) { if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] <- QueryNotice, req: %s", msg.R.RemoteAddr, util.ToJsonString(nil)) } var ack = &proto.MsgGateQueryNoticeAck{} notices, err := this.gateManager.GetNotice() if err != nil { this.Logger().Error("GetNotice error, ", err) _ = msg.Reply(proto.ErrInternalError) return } for _, notice := range notices { ack.NoticeList = append(ack.NoticeList, &proto.Notice{ Type: notice.Type, Title: notice.Title, Content: notice.Content, BeginTime: notice.BeginTime, EndTime: notice.EndTime, }) } if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] -> QueryNotice, ack: %s", msg.R.RemoteAddr, util.ToJsonString(ack)) } _ = msg.Reply(ack) } func (this *InnerHandler) AddNotice(msg *http.Message) { var req = new(proto.MsgGateAddNoticeReq) var err = msg.Read(req) if err != nil { this.Logger().Error("Read message error, ", err) _ = msg.Reply(proto.ErrMessageError) return } if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] <- AddNotice, req: %s", msg.R.RemoteAddr, util.ToJsonString(req)) } if req.Type == "" || req.Title == "" || req.Content == "" { this.Logger().Error("Parameter error, req.Type == \"\" || req.Title == \"\" || req.Content == \"\"") _ = msg.Reply(proto.ErrParameterError) return } err = this.gateManager.AddNotice(&logic.Notice{ Id: util.RandomUid(), Type: req.Type, Title: req.Title, Content: req.Content, BeginTime: req.BeginTime, EndTime: util.If(req.EndTime != 0, req.EndTime, math.MaxInt64), }) if err != nil { this.Logger().Error("Add notice error, ", err) _ = msg.Reply(proto.ErrInternalError) return } if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] -> AddNotice, ack: %s", msg.R.RemoteAddr, util.ToJsonString(nil)) } _ = msg.Reply(nil) } func (this *InnerHandler) DeleteNotice(msg *http.Message) { var req = new(proto.MsgGateDeleteNoticeReq) var err = msg.Read(req) if err != nil { this.Logger().Error("Read message error, ", err) _ = msg.Reply(proto.ErrMessageError) return } if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] <- DeleteNotice, req: %s", msg.R.RemoteAddr, util.ToJsonString(req)) } if req.Id == 0 { this.Logger().Error("Parameter error, req.Id == 0") _ = msg.Reply(proto.ErrParameterError) return } err = this.gateManager.DeleteNotice(req.Id) if err != nil { this.Logger().Error("Delete notice error, ", err) _ = msg.Reply(proto.ErrInternalError) return } if this.Logger().IsDebugEnabled() { this.Logger().Debugf("[%s] -> DeleteNotice, ack: %s", msg.R.RemoteAddr, util.ToJsonString(nil)) } _ = msg.Reply(nil) }