ecs/servers/game/handler/inner_player.go
2025-07-16 10:05:22 +08:00

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)
//}