😎代码优化及清理

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> /// </summary>
[Description("支付宝")] [Description("支付宝")]
Alipay = 5, Alipay = 5,
/// <summary>
/// 其他
/// </summary>
[Description("其他")]
Other = 99,
} }

View File

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

View File

@ -223,7 +223,7 @@ public class SysAuthService : IDynamicApiController, ITransient
/// <param name="loginMode"></param> /// <param name="loginMode"></param>
/// <returns></returns> /// <returns></returns>
[NonAction] [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); 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 ISqlSugarClient _db;
private readonly CodeGenOptions _codeGenOptions; private readonly CodeGenOptions _codeGenOptions;
private readonly DbConnectionOptions _dbConnectionOptions; private readonly DbConnectionOptions _dbConnectionOptions;
private readonly SysDatabaseService _databaseService;
public SysCodeGenConfigService(ISqlSugarClient db, public SysCodeGenConfigService(ISqlSugarClient db,
SysDatabaseService databaseService, IOptions<CodeGenOptions> codeGenOptions,
IOptions<DbConnectionOptions> dbConnectionOptions, IOptions<DbConnectionOptions> dbConnectionOptions)
IOptions<CodeGenOptions> codeGenOptions)
{ {
_db = db; _db = db;
_dbConnectionOptions = dbConnectionOptions.Value;
_codeGenOptions = codeGenOptions.Value; _codeGenOptions = codeGenOptions.Value;
_databaseService = databaseService; _dbConnectionOptions = dbConnectionOptions.Value;
} }
/// <summary> /// <summary>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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