diff --git a/worldsrv/action_player.go b/worldsrv/action_player.go index f429b88..6872db0 100644 --- a/worldsrv/action_player.go +++ b/worldsrv/action_player.go @@ -2818,27 +2818,33 @@ func CSBillList(s *netlib.Session, packetId int, data interface{}, sid int64) er fromIndex := msg.GetPageNo() * msg.GetPageSize() toIndex := fromIndex + msg.GetPageSize() - logs, _, err := model.GetCoinLogGame(p.Platform, p.SnId, common.BillTypeCoin, startTs, endTs, int(fromIndex), int(toIndex)) - if err != nil { - logger.Logger.Errorf("GetCoinLogGame err:%v", err) - p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCBillList), ret) - return err - } + var err error + var logs []model.CoinLog + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + logs, _, err = model.GetCoinLogGame(p.Platform, p.SnId, common.BillTypeCoin, startTs, endTs, int(fromIndex), int(toIndex)) + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if err != nil { + logger.Logger.Errorf("GetCoinLogGame err:%v", err) + p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCBillList), ret) + return + } - for _, v := range logs { - ret.Items = append(ret.Items, &player_proto.BillItem{ - Ts: v.Ts, - Id: v.LogId.Hex(), - BillType: int64(v.LogType), - Amount: v.Count, - Balance: v.RestCount, - GameID: int64(v.InGame), - GameFreeID: v.GameFreeId, - BaseCoin: v.BaseCoin, - }) - } - p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCBillList), ret) - logger.Logger.Tracef("SCBillList pageNo:%d, pageSize:%d %v", msg.GetPageNo(), msg.GetPageSize(), ret) + for _, v := range logs { + ret.Items = append(ret.Items, &player_proto.BillItem{ + Ts: v.Ts, + Id: v.LogId.Hex(), + BillType: int64(v.LogType), + Amount: v.Count, + Balance: v.RestCount, + GameID: int64(v.InGame), + GameFreeID: v.GameFreeId, + BaseCoin: v.BaseCoin, + }) + } + p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCBillList), ret) + logger.Logger.Tracef("SCBillList pageNo:%d, pageSize:%d %v", msg.GetPageNo(), msg.GetPageSize(), ret) + }), "GetCoinLogGame").Start() return nil }