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