141 lines
4.3 KiB
Go
141 lines
4.3 KiB
Go
package handler
|
|
|
|
import (
|
|
"ecs/proto"
|
|
"ecs/proto/pb"
|
|
"ecs/servers/game/logic"
|
|
"github.com/oylshe1314/framework/http"
|
|
"github.com/oylshe1314/framework/util"
|
|
)
|
|
|
|
func (this *InnerHandler) PlayerMailSend(player *logic.Player, msg *http.Message) {
|
|
var req = new(proto.MsgBackgroundMailSendReq)
|
|
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] <- Player mail send, req: %s", msg.R.RemoteAddr, util.ToJsonString(req))
|
|
}
|
|
|
|
if req.Title == "" || req.Content == "" {
|
|
this.Logger().Error("Parameter error, req.Title == \"\" || req.Content == \"\"")
|
|
_ = msg.Reply(proto.ErrParameterError)
|
|
return
|
|
}
|
|
|
|
var items [][2]uint32
|
|
if len(req.ItemId) > 0 {
|
|
if len(req.ItemNum) != len(req.ItemId) {
|
|
this.Logger().Error("Parameter error, len(req.ItemNum) != len(req.ItemId)")
|
|
_ = msg.Reply(proto.ErrParameterError)
|
|
return
|
|
}
|
|
|
|
items = make([][2]uint32, len(req.ItemId))
|
|
for i := range req.ItemId {
|
|
items[i][0] = req.ItemId[i]
|
|
items[i][1] = req.ItemNum[i]
|
|
}
|
|
}
|
|
|
|
player.AddMail(util.RandomUid(), pb.MailType_MailBackground, 0, 0, 0, req.Title, req.Content, util.NowUnix(), 0, req.Args, items)
|
|
|
|
if this.Logger().IsDebugEnabled() {
|
|
this.Logger().Debugf("[%s] <- Player charge callback, ack: %s", msg.R.RemoteAddr, util.ToJsonString(nil))
|
|
}
|
|
|
|
_ = msg.Reply(nil)
|
|
}
|
|
|
|
//
|
|
//func (this *InnerHandler) PlayerChargeCallback(player *logic.Player, msg *http.Message) {
|
|
// var req = new(proto.MsgGateChargeCallbackReq)
|
|
// var err = msg.Read(req)
|
|
// if err != nil {
|
|
// this.logger.Error("Read message error, ", err)
|
|
// _ = msg.Reply(proto.RawErrMessageError)
|
|
// return
|
|
// }
|
|
//
|
|
// if this.logger.IsDebugEnabled() {
|
|
// this.logger.Debugf("[%s] <- Player charge callback, req: %s", msg.R.RemoteAddr, util.ToJsonString(req))
|
|
// }
|
|
//
|
|
// order, err := this.playerManager.QueryChargeOrder(req.OrderId)
|
|
// if err != nil {
|
|
// this.logger.Error("Query charge order error, ", err)
|
|
// _ = msg.Reply(proto.RawErrOrderQueryFailed)
|
|
// return
|
|
// }
|
|
//
|
|
// if order == nil || order.PlayerId != player.PlayerId {
|
|
// this.logger.Error("Order was not found, orderId: ", req.OrderId)
|
|
// _ = msg.Reply(proto.RawErrOrderNotFound)
|
|
// return
|
|
// }
|
|
//
|
|
// if proto.OrderStatus(order.Status) != proto.OrderStatusNotPaid {
|
|
// this.logger.Error("Order status error, staus: ", order.Status)
|
|
// _ = msg.Reply(proto.RawErrOrderStatusError)
|
|
// return
|
|
// }
|
|
//
|
|
// var sign = this.playerManager.SignChargeOrder(order)
|
|
// if req.Sign != sign {
|
|
// this.logger.Errorf("Order status error, req.Sign: %s, sign: %s", req.Sign, sign)
|
|
// _ = msg.Reply(proto.RawErrBadSignature)
|
|
// return
|
|
// }
|
|
//
|
|
// var chargeTable = this.tables.Charge.Get(int(order.ChargeId))
|
|
// if chargeTable == nil {
|
|
// this.logger.Error("Charge table was not found, chargeId: ", order.ChargeId)
|
|
// _ = msg.Reply(proto.RawErrDataTableError)
|
|
// return
|
|
// }
|
|
//
|
|
// if proto.PaymentStatus(req.Status) == proto.PaymentStatusSuccess {
|
|
// err = this.playerManager.ChangeChargeOrder(order.Id, proto.OrderStatusHasPaid, req.ExtOrderNo)
|
|
// if err != nil {
|
|
// this.logger.Error("Change charge order status error, ", err)
|
|
// _ = msg.Reply(proto.RawErrOrderUpdateFailed)
|
|
// return
|
|
// }
|
|
//
|
|
// err = player.Charge(chargeTable, logic.LogTypeStoreRecharge)
|
|
// if err != nil {
|
|
// this.logger.Error("Change charge order status error, ", err)
|
|
// _ = msg.Reply(errors.Error(this.tables.TipNotice.GetLang(err.Error(), int(player.Role.Language))))
|
|
// return
|
|
// }
|
|
//
|
|
// err = this.playerManager.ChangeChargeOrder(order.Id, proto.OrderStatusHasOver, "")
|
|
// if err != nil {
|
|
// this.logger.Error("Change charge order status error, ", err)
|
|
// _ = msg.Reply(proto.RawErrOrderUpdateFailed)
|
|
// return
|
|
// }
|
|
//
|
|
// this.eventManager.ChargeGravityEvent(player, order, chargeTable, this.tables.Language.Get(chargeTable.ItemName))
|
|
// } else {
|
|
// err = this.playerManager.ChangeChargeOrder(order.Id, proto.OrderStatusFailed, req.ExtOrderNo)
|
|
// if err != nil {
|
|
// this.logger.Error("Change charge order status error, ", err)
|
|
// _ = msg.Reply(proto.RawErrOrderUpdateFailed)
|
|
// return
|
|
// }
|
|
//
|
|
// player.ChargeFailed(chargeTable, logic.LogTypeStoreRecharge)
|
|
// }
|
|
//
|
|
// if this.logger.IsDebugEnabled() {
|
|
// this.logger.Debugf("[%s] <- Player charge callback, ack: %s", msg.R.RemoteAddr, util.ToJsonString(nil))
|
|
// }
|
|
//
|
|
// _ = msg.Reply(nil)
|
|
//}
|