😎代码优化及清理

This commit is contained in:
zuohuaijun 2025-04-06 15:47:51 +08:00
parent de9bde949d
commit 25fd6e6890
12 changed files with 35 additions and 44 deletions

View File

@ -41,4 +41,10 @@ public enum PlatformTypeEnum
/// </summary>
[Description("支付宝")]
Alipay = 5,
/// <summary>
/// 其他
/// </summary>
[Description("其他")]
Other = 99,
}

View File

@ -19,23 +19,19 @@ namespace Admin.NET.Core.Service;
[ApiDescriptionSettings(Order = 240)]
public class SysAlipayService : IDynamicApiController, ITransient
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly SysConfigService _sysConfigService;
private readonly List<IAopClient> _alipayClientList;
private readonly IHttpContextAccessor _httpContext;
private readonly AlipayOptions _option;
private readonly ISqlSugarClient _db;
private readonly IHttpContextAccessor _httpContext;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly List<IAopClient> _alipayClientList;
private readonly AlipayOptions _option;
public SysAlipayService(
ISqlSugarClient db,
public SysAlipayService(ISqlSugarClient db,
IHttpContextAccessor httpContext,
SysConfigService sysConfigService,
IWebHostEnvironment webHostEnvironment,
IOptions<AlipayOptions> alipayOptions)
{
_db = db;
_httpContext = httpContext;
_sysConfigService = sysConfigService;
_option = alipayOptions.Value;
_webHostEnvironment = webHostEnvironment;

View File

@ -223,7 +223,7 @@ public class SysAuthService : IDynamicApiController, ITransient
/// <param name="loginMode"></param>
/// <returns></returns>
[NonAction]
internal async Task<LoginOutput> CreateToken(SysUser user, LoginModeEnum loginMode = LoginModeEnum.PC)
public async Task<LoginOutput> CreateToken(SysUser user, LoginModeEnum loginMode = LoginModeEnum.PC)
{
// 单用户登录
await App.GetRequiredService<SysOnlineUserService>().SingleLogin(user.Id, loginMode);

View File

@ -15,17 +15,14 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
private readonly ISqlSugarClient _db;
private readonly CodeGenOptions _codeGenOptions;
private readonly DbConnectionOptions _dbConnectionOptions;
private readonly SysDatabaseService _databaseService;
public SysCodeGenConfigService(ISqlSugarClient db,
SysDatabaseService databaseService,
IOptions<DbConnectionOptions> dbConnectionOptions,
IOptions<CodeGenOptions> codeGenOptions)
IOptions<CodeGenOptions> codeGenOptions,
IOptions<DbConnectionOptions> dbConnectionOptions)
{
_db = db;
_dbConnectionOptions = dbConnectionOptions.Value;
_codeGenOptions = codeGenOptions.Value;
_databaseService = databaseService;
_dbConnectionOptions = dbConnectionOptions.Value;
}
/// <summary>

View File

@ -16,23 +16,20 @@ namespace Admin.NET.Core.Service;
public class SysCodeGenService : IDynamicApiController, ITransient
{
private readonly ISqlSugarClient _db;
private readonly DbConnectionOptions _dbConnectionOptions;
private readonly CodeGenOptions _codeGenOptions;
private readonly SqlSugarRepository<SysCodeGenTemplate> _codeGetTemplateRep;
private readonly DbConnectionOptions _dbConnectionOptions;
private readonly SysCodeGenConfigService _codeGenConfigService;
private readonly IViewEngine _viewEngine;
public SysCodeGenService(ISqlSugarClient db,
IOptions<CodeGenOptions> codeGenOptions,
IOptions<DbConnectionOptions> dbConnectionOptions,
SqlSugarRepository<SysCodeGenTemplate> codeGetTemplateRep,
SysCodeGenConfigService codeGenConfigService,
IViewEngine viewEngine,
IOptions<CodeGenOptions> codeGenOptions)
IViewEngine viewEngine)
{
_db = db;
_dbConnectionOptions = dbConnectionOptions.Value;
_codeGenOptions = codeGenOptions.Value;
_codeGetTemplateRep = codeGetTemplateRep;
_codeGenConfigService = codeGenConfigService;
_viewEngine = viewEngine;
}
@ -801,7 +798,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
//TODO: 只获取选中的模板
if (input.GenerateType!.Substring(1, 1).Contains('1'))
{
return _codeGetTemplateRep.AsQueryable()
return _db.Queryable<SysCodeGenTemplate>()
.Where(u => u.Type == CodeGenTypeEnum.Frontend)
.Where(u => u.Id == SqlFunc.Subqueryable<SysCodeGenTemplateRelation>().Where(s => s.CodeGenId == input.Id).GroupBy(s => s.TemplateId).Select(s => s.TemplateId))
.ToList();
@ -809,14 +806,14 @@ public class SysCodeGenService : IDynamicApiController, ITransient
if (input.GenerateType.Substring(1, 1).Contains('2'))
{
return _codeGetTemplateRep.AsQueryable()
return _db.Queryable<SysCodeGenTemplate>()
.Where(u => u.Type == CodeGenTypeEnum.Backend)
.Where(u => u.Id == SqlFunc.Subqueryable<SysCodeGenTemplateRelation>().Where(s => s.CodeGenId == input.Id).GroupBy(s => s.TemplateId).Select(s => s.TemplateId))
.ToList();
}
else
{
return _codeGetTemplateRep.AsQueryable()
return _db.Queryable<SysCodeGenTemplate>()
.Where(u => u.Id == SqlFunc.Subqueryable<SysCodeGenTemplateRelation>().Where(s => s.CodeGenId == input.Id).GroupBy(s => s.TemplateId).Select(s => s.TemplateId))
.ToList();
}

View File

@ -15,8 +15,8 @@ namespace Admin.NET.Core.Service;
public class SysDbBackupService : IDynamicApiController, ITransient
{
private readonly ISqlSugarClient _db;
private readonly string _backupDir;
private readonly SysDatabaseService _databaseService;
private readonly string _backupDir;
public SysDbBackupService(ISqlSugarClient db, SysDatabaseService databaseService)
{

View File

@ -13,21 +13,20 @@ namespace Admin.NET.Core.Service;
public class SysDictDataService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<SysDictData> _sysDictDataRep;
public readonly ISugarQueryable<SysDictData> VSysDictData;
private readonly SysCacheService _sysCacheService;
private readonly UserManager _userManager;
public readonly ISugarQueryable<SysDictData> VSysDictData;
public SysDictDataService(SqlSugarRepository<SysDictData> sysDictDataRep,
SysCacheService sysCacheService,
UserManager userManager)
{
_userManager = userManager;
_sysDictDataRep = sysDictDataRep;
_sysCacheService = sysCacheService;
_userManager = userManager;
VSysDictData = _sysDictDataRep.Context.UnionAll(
_sysDictDataRep.AsQueryable(),
_sysDictDataRep.Change<SysDictDataTenant>().AsQueryable()
.Select<SysDictData>());
_sysDictDataRep.Change<SysDictDataTenant>().AsQueryable().Select<SysDictData>());
}
/// <summary>

View File

@ -18,9 +18,9 @@ public class SysFileService : IDynamicApiController, ITransient
private readonly SqlSugarRepository<SysFile> _sysFileRep;
private readonly OSSProviderOptions _OSSProviderOptions;
private readonly UploadOptions _uploadOptions;
private readonly string _imageType = ".jpeg.jpg.png.bmp.gif.tif";
private readonly INamedServiceProvider<ICustomFileProvider> _namedServiceProvider;
private readonly ICustomFileProvider _customFileProvider;
private readonly string _imageType = ".jpeg.jpg.png.bmp.gif.tif";
public SysFileService(UserManager userManager,
SqlSugarRepository<SysFile> sysFileRep,

View File

@ -17,21 +17,18 @@ public class SysMenuService : IDynamicApiController, ITransient
private readonly SysRoleMenuService _sysRoleMenuService;
private readonly SysUserRoleService _sysUserRoleService;
private readonly SysUserMenuService _sysUserMenuService;
private readonly SysCacheService _sysCacheService;
public SysMenuService(UserManager userManager,
SqlSugarRepository<SysMenu> sysMenuRep,
SysRoleMenuService sysRoleMenuService,
SysUserRoleService sysUserRoleService,
SysUserMenuService sysUserMenuService,
SysCacheService sysCacheService)
SysUserMenuService sysUserMenuService)
{
_userManager = userManager;
_sysMenuRep = sysMenuRep;
_sysRoleMenuService = sysRoleMenuService;
_sysUserRoleService = sysUserRoleService;
_sysUserMenuService = sysUserMenuService;
_sysCacheService = sysCacheService;
}
/// <summary>

View File

@ -96,8 +96,8 @@ public class SysOAuthService : IDynamicApiController, ITransient
Email = email,
Avatar = avatarUrl,
Phone = mobilePhone,
OrgId = 1300000000101, // 根组织架构
RoleIdList = new List<long> { 1300000000104 } // 仅本人数据角色
OrgId = SqlSugarConst.DefaultTenantId, // 根组织架构
RoleIdList = [1300000000104] // 仅本人数据角色
});
await _sysOAuthUserRep.InsertAsync(new SysOAuthUser()
@ -114,7 +114,6 @@ public class SysOAuthService : IDynamicApiController, ITransient
// 构建Token令牌默认回调登录为PC模式
var token = await App.GetRequiredService<SysAuthService>().CreateToken(wechatUser.SysUser);
return new RedirectResult($"{redirectUrl}/#/login?token={token.AccessToken}");
}
}

View File

@ -14,13 +14,13 @@ namespace Admin.NET.Core.Service;
[ApiDescriptionSettings(Order = 300, Description = "在线用户")]
public class SysOnlineUserService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<SysOnlineUser> _sysOnlineUerRep;
private readonly SysConfigService _sysConfigService;
private readonly IHubContext<OnlineUserHub, IOnlineUserHub> _onlineUserHubContext;
private readonly SqlSugarRepository<SysOnlineUser> _sysOnlineUerRep;
public SysOnlineUserService(SysConfigService sysConfigService,
IHubContext<OnlineUserHub, IOnlineUserHub> onlineUserHubContext,
SqlSugarRepository<SysOnlineUser> sysOnlineUerRep)
public SysOnlineUserService(SqlSugarRepository<SysOnlineUser> sysOnlineUerRep,
SysConfigService sysConfigService,
IHubContext<OnlineUserHub, IOnlineUserHub> onlineUserHubContext)
{
_sysConfigService = sysConfigService;
_onlineUserHubContext = onlineUserHubContext;

View File

@ -45,14 +45,14 @@ namespace Admin.NET.Web.Core
var userId = context.User.FindFirst(ClaimConst.UserId)?.Value;
var tokenVersion1 = context.User.FindFirst(ClaimConst.TokenVersion)?.Value;
var tokenVersion2 = sysCacheService.Get<string>($"{CacheConst.KeyUserToken}{userId}");
if (string.IsNullOrWhiteSpace(tokenVersion2))
if (string.IsNullOrWhiteSpace(tokenVersion2) && !string.IsNullOrWhiteSpace(userId))
{
// 查库并缓存用户Token版本
var user = await serviceScope.ServiceProvider.GetRequiredService<ISqlSugarClient>().Queryable<SysUser>().FirstAsync(u => u.Id == long.Parse(userId));
sysCacheService.Set($"{CacheConst.KeyUserToken}{user.Id}", $"{user.TokenVersion}");
tokenVersion2 = user.TokenVersion.ToString();
}
if (tokenVersion1 != tokenVersion2)
if (string.IsNullOrWhiteSpace(tokenVersion1) || tokenVersion1 != tokenVersion2)
{
context.Fail(new AuthorizationFailureReason(this, "令牌已失效,请重新登录。"));
context.GetCurrentHttpContext().SignoutToSwagger();