You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中根据提交人ID获取对应汇总数据的实现咨询

ASP.NET Core中根据提交人ID获取对应汇总数据的实现咨询

嘿,看你现在的代码是把所有订单都查出来返回,但你需要改成只获取对应提交人ID的订单汇总数据对吧?我给你整理两种常见的实现方式,你可以根据自己的业务场景选择:

场景1:获取当前登录用户的提交记录

如果你的需求是让用户只能看到自己提交的订单,那可以借助ASP.NET Core的身份认证来获取当前登录用户的ID,再过滤数据:

using Microsoft.AspNetCore.Authorization;
using System.Security.Claims;

// 加上[Authorize]确保只有登录用户能访问
[Authorize]
public IActionResult Index()
{
    // 从当前用户的身份声明里获取用户ID,默认用NameIdentifier,你可以根据项目的身份配置调整
    var currentUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);
    
    // 只查询当前用户提交的订单,这里的SubmittedByUserId要和你Order实体里的提交人ID字段名对应
    var userOrders = _db.Order.GetAll()
        .Where(order => order.SubmittedByUserId == currentUserId)
        .ToList();
    
    return View(userOrders);
}

场景2:通过外部参数指定提交人ID

如果需要根据前端传入的ID(比如URL的查询参数?userId=xxx或者路由参数)来查询指定用户的订单,你可以给方法加个参数:

public IActionResult Index(string? submittedByUserId)
{
    // 处理参数为空的情况,避免空查询
    if (string.IsNullOrWhiteSpace(submittedByUserId))
    {
        // 可以返回空列表,或者跳转到错误页,根据业务需求调整
        return View(new List<Order>());
    }
    
    var targetOrders = _db.Order.GetAll()
        .Where(order => order.SubmittedByUserId == submittedByUserId)
        .ToList();
    
    return View(targetOrders);
}

额外提示(如果需要做统计汇总)

如果你说的“汇总”是指统计数据(比如订单总数、总金额这类),可以扩展查询来生成汇总结果:

[Authorize]
public IActionResult Index()
{
    var currentUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);
    
    var orderSummary = _db.Order.GetAll()
        .Where(o => o.SubmittedByUserId == currentUserId)
        .GroupBy(o => o.SubmittedByUserId)
        .Select(g => new 
        {
            TotalOrderCount = g.Count(),
            TotalOrderAmount = g.Sum(o => o.TotalAmount) // 这里的TotalAmount要和你Order实体的金额字段对应
        })
        .FirstOrDefault();
    
    // 把汇总数据传给View,建议可以封装成专门的OrderSummaryViewModel类
    return View(orderSummary);
}

备注:内容来源于stack exchange,提问作者Vengat Ramanan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 07:33:13