Compare commits
2 Commits
bb1a33824c
...
32ea7191ee
| Author | SHA1 | Date |
|---|---|---|
|
|
32ea7191ee | |
|
|
ab9cd9f5b5 |
|
|
@ -2,5 +2,5 @@
|
||||||
|
|
||||||
public class GetUserDto : PageBase
|
public class GetUserDto : PageBase
|
||||||
{
|
{
|
||||||
public string Keyword { get; set; }
|
public string? Keyword { get; set; }
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using UserPointManagement.Application.Services;
|
||||||
|
using UserPointManagement.Model;
|
||||||
|
using UserPointManagement.Model.Dtos.User;
|
||||||
|
using UserPointManagement.Model.Entities;
|
||||||
|
|
||||||
|
namespace UserPointManagement.Web.Controllers;
|
||||||
|
|
||||||
|
[ApiController]
|
||||||
|
[Route("[controller]")]
|
||||||
|
public class UserController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly IUserService _userService;
|
||||||
|
|
||||||
|
public UserController(IUserService userService)
|
||||||
|
{
|
||||||
|
_userService = userService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取用户
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="req"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<PageResultDto<User>> GetUsers([FromQuery]GetUserDto req)
|
||||||
|
{
|
||||||
|
return await _userService.GetUsers(req).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.Mvc.ApplicationModels;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Routing;
|
||||||
|
|
||||||
|
namespace UserPointManagement.Web;
|
||||||
|
|
||||||
|
public static class MvcOptionsExtensions
|
||||||
|
{
|
||||||
|
private static void UseGeneralRoutePrefix(this MvcOptions opts, IRouteTemplateProvider routeAttribute)
|
||||||
|
{
|
||||||
|
opts.Conventions.Add(new RoutePrefixConvention(routeAttribute));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UseGeneralRoutePrefix(this MvcOptions opts, string
|
||||||
|
prefix)
|
||||||
|
{
|
||||||
|
opts.UseGeneralRoutePrefix(new RouteAttribute(prefix));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RoutePrefixConvention : IApplicationModelConvention
|
||||||
|
{
|
||||||
|
private readonly AttributeRouteModel _routePrefix;
|
||||||
|
|
||||||
|
public RoutePrefixConvention(IRouteTemplateProvider route)
|
||||||
|
{
|
||||||
|
_routePrefix = new AttributeRouteModel(route);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Apply(ApplicationModel application)
|
||||||
|
{
|
||||||
|
foreach (var selector in application.Controllers.SelectMany(c => c.Selectors))
|
||||||
|
{
|
||||||
|
if (selector.AttributeRouteModel != null)
|
||||||
|
{
|
||||||
|
selector.AttributeRouteModel = AttributeRouteModel.CombineAttributeRouteModel(_routePrefix, selector.AttributeRouteModel);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
selector.AttributeRouteModel = _routePrefix;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using AntDesign.ProLayout;
|
using AntDesign.ProLayout;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
|
@ -26,6 +28,20 @@ namespace UserPointManagement.Web
|
||||||
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
|
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
|
||||||
public void ConfigureServices(IServiceCollection services)
|
public void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
|
services.AddControllers(options =>
|
||||||
|
{
|
||||||
|
options.UseGeneralRoutePrefix("/api");
|
||||||
|
});
|
||||||
|
services.AddEndpointsApiExplorer();
|
||||||
|
services.AddSwaggerGen(options =>
|
||||||
|
{
|
||||||
|
Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.xml").ToList().ForEach(file =>
|
||||||
|
{
|
||||||
|
options.IncludeXmlComments(file, true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
services.AddRouting(options => options.LowercaseUrls = true);
|
||||||
|
|
||||||
services.AddRazorPages();
|
services.AddRazorPages();
|
||||||
services.AddServerSideBlazor();
|
services.AddServerSideBlazor();
|
||||||
services.AddAntDesign();
|
services.AddAntDesign();
|
||||||
|
|
@ -46,6 +62,7 @@ namespace UserPointManagement.Web
|
||||||
|
|
||||||
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
||||||
AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
|
AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
|
|
@ -54,6 +71,16 @@ namespace UserPointManagement.Web
|
||||||
if (env.IsDevelopment())
|
if (env.IsDevelopment())
|
||||||
{
|
{
|
||||||
app.UseDeveloperExceptionPage();
|
app.UseDeveloperExceptionPage();
|
||||||
|
app.UseSwagger(o =>
|
||||||
|
{
|
||||||
|
// o.RouteTemplate = $"/api/swagger/{{documentName}}/swagger.json";
|
||||||
|
});
|
||||||
|
app.UseSwaggerUI(c =>
|
||||||
|
{
|
||||||
|
// c.RoutePrefix = $"/api/swagger";
|
||||||
|
// c.SwaggerEndpoint($"/api/swagger/v1/swagger.json",
|
||||||
|
// "UserPointManagement.Api API V1");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -69,6 +96,7 @@ namespace UserPointManagement.Web
|
||||||
|
|
||||||
app.UseEndpoints(endpoints =>
|
app.UseEndpoints(endpoints =>
|
||||||
{
|
{
|
||||||
|
endpoints.MapControllers();
|
||||||
endpoints.MapBlazorHub();
|
endpoints.MapBlazorHub();
|
||||||
endpoints.MapFallbackToPage("/_Host");
|
endpoints.MapFallbackToPage("/_Host");
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
<PackageReference Include="AntDesign.Charts" Version="0.2.3" />
|
<PackageReference Include="AntDesign.Charts" Version="0.2.3" />
|
||||||
<PackageReference Include="AntDesign.ProLayout" Version="0.12.4" />
|
<PackageReference Include="AntDesign.ProLayout" Version="0.12.4" />
|
||||||
<PackageReference Include="System.Net.Http.Json" Version="6.0.0" />
|
<PackageReference Include="System.Net.Http.Json" Version="6.0.0" />
|
||||||
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue