增加Mediat Pip特性,并用实例来做一个demo

This commit is contained in:
chfei committed 2026-10-22 17:32:58 +08:00
1 parent 292cb8638c
commit c9ac7412ab
19 files changed
+682 -108

No files matched your search

@@ -1,29 +1,45 @@
using Asp.Versioning;
using Asp.Versioning;
using MAX.Framework.Security;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Store.Users.Commands;
using Store.Users.Contracts;
using Store.Users.Contracts.Dtos;
using Store.Users.Services;
using System;
using System.Collections.Generic;
using System.Text;
using Store.Users.Dtos;
namespace Store.Users.Controllers
namespace Store.Users.Controllers;
[ApiController]
[ApiVersionNeutral]
[Route("user/[action]")]
public class UserController : ControllerBase
{
[ApiController]
[ApiVersionNeutral]
[Route("user/[action]")]
public class UserController : ControllerBase
{
private readonly IUserQueryService _userQuery;
private readonly IUserQueryService _userQuery;
private readonly IMediator _mediator;
private readonly ICurrentUser _currentUser;
public UserController(IUserQueryService userQuery)
{
_userQuery = userQuery;
}
[HttpGet]
public async Task<UserInfo> GetUser(string userName)
{
return await _userQuery.GetUser(userName);
}
}
public UserController(IUserQueryService userQuery, IMediator mediator, ICurrentUser currentUser)
{
_userQuery = userQuery;
_mediator = mediator;
_currentUser = currentUser;
}
[HttpGet]
public async Task<UserInfo> GetUser(string userName)
{
return await _userQuery.GetUser(userName);
}
/// <summary>使用当前登录用户的积分为商铺续费。</summary>
[HttpPost]
public Task<ShopRenewResponse> ShopRenew([FromBody] ShopRenewRequest request, CancellationToken cancellationToken)
{
if (!_currentUser.IsAuthenticated || string.IsNullOrWhiteSpace(_currentUser.UserName))
throw new UnauthorizedAccessException();
return _mediator.Send(new ShopRenewCommand(
_currentUser.UserName, request.ShopId, request.RenewDuration, request.Remark), cancellationToken);
}
}