178 lines
4.6 KiB
Go
178 lines
4.6 KiB
Go
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)
|
|
}
|