🐛 Fix transaction query

 Add orderes query
This commit is contained in:
2025-09-08 14:26:17 +08:00
parent 8dddfe77cd
commit 1a89c48790

View File

@@ -49,25 +49,50 @@ public class WalletController(AppDatabase db, WalletService ws, PaymentService p
var accountWallet = await db.Wallets.Where(w => w.AccountId == currentUser.Id).FirstOrDefaultAsync();
if (accountWallet is null) return NotFound();
var query = db.PaymentTransactions.AsQueryable()
.Where(t =>
(t.PayeeWalletId == null || t.PayeeWalletId == accountWallet.Id) &&
(t.PayerWalletId == null || t.PayerWalletId == accountWallet.Id) &&
!(t.PayerWalletId == null && t.PayeeWalletId == null)
);
var query = db.PaymentTransactions
.Where(t => t.PayeeWalletId == accountWallet.Id || t.PayerWalletId == accountWallet.Id)
.AsQueryable();
var transactionCount = await query.CountAsync();
Response.Headers["X-Total"] = transactionCount.ToString();
var transactions = await query
.Skip(offset)
.Take(take)
.OrderByDescending(t => t.CreatedAt)
.ToListAsync();
Response.Headers["X-Total"] = transactionCount.ToString();
return Ok(transactions);
}
[HttpGet("orders")]
[Authorize]
public async Task<ActionResult<List<Order>>> GetOrders(
[FromQuery] int offset = 0, [FromQuery] int take = 20
)
{
if (HttpContext.Items["CurrentUser"] is not Account.Account currentUser) return Unauthorized();
var accountWallet = await db.Wallets.Where(w => w.AccountId == currentUser.Id).FirstOrDefaultAsync();
if (accountWallet is null) return NotFound();
var query = db.PaymentOrders.AsQueryable()
.Include(o => o.Transaction)
.Where(o => o.Transaction != null && (o.Transaction.PayeeWalletId == accountWallet.Id || o.Transaction.PayerWalletId == accountWallet.Id))
.AsQueryable();
var orderCount = await query.CountAsync();
Response.Headers["X-Total"] = orderCount.ToString();
var orders = await query
.Skip(offset)
.Take(take)
.OrderByDescending(t => t.CreatedAt)
.ToListAsync();
return Ok(orders);
}
public class WalletBalanceRequest
{
public string? Remark { get; set; }