package topup import ( "context" "errors" "tianyuan-api/apps/user/user" "tianyuan-api/apps/gateway/internal/svc" "tianyuan-api/apps/gateway/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type TopListLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewTopListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *TopListLogic { return &TopListLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *TopListLogic) TopList(req *types.GetTopUpListReq) (resp *types.GetTopUpListResp, err error) { userId, ok := l.ctx.Value("userId").(int64) if !ok { return nil, errors.New("无法获取 userId") } list, err := l.svcCtx.Wallets.GetRechargeList(l.ctx, &user.RechargeRequest{ UserId: userId, Page: req.Page, PageSize: req.PageSize, }) if err != nil { return nil, err } var topUpItemList []types.TopUpItem for _, p := range list.List { topUpItemList = append(topUpItemList, types.TopUpItem{ Id: p.Id, UserId: p.UserId, TransactionId: p.TransactionId, OutTradeNo: p.OutTradeNo, Amount: float64(p.Amount), PaymentMethod: p.PaymentMethod, CreatedAt: p.CreatedAt, UpdatedAt: p.UpdatedAt, }) } return &types.GetTopUpListResp{ Total: list.Total, List: topUpItemList, }, nil }