From ff9c589956bb7dac5a73990accb9d764f2481f86 Mon Sep 17 00:00:00 2001 From: xiaolipro <2357729423@qq.com> Date: Tue, 13 Oct 2026 17:20:12 +0800 Subject: [PATCH] fix --- .../DataPerm/DataPermRepository.cs | 92 +++++++++---------- src/Oms.Application/DataPerm/DataPermStore.cs | 42 ++++----- .../Rbac/CustomerServiceAdvisorResolver.cs | 16 ++-- .../Rbac/InternalUserRepository.cs | 32 +++---- .../Rbac/UserProfileRepository.cs | 72 +++++++-------- .../Services/System/NoticeService.cs | 20 ++-- .../Shared/OmsRbacRegistrationGuard.cs | 32 +++---- .../Shared/StaffAdvisorBinder.cs | 8 +- 8 files changed, 157 insertions(+), 157 deletions(-) diff --git a/src/Oms.Application/DataPerm/DataPermRepository.cs b/src/Oms.Application/DataPerm/DataPermRepository.cs index b59b71c..3c4632a 100644 --- a/src/Oms.Application/DataPerm/DataPermRepository.cs +++ b/src/Oms.Application/DataPerm/DataPermRepository.cs @@ -12,7 +12,7 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency public async Task GetUserSnapshotAsync(Guid userId, CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" SELECT u.`Id` AS `Id`, u.`userid` AS `MapId`, @@ -20,25 +20,25 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency u.`Name` AS `Name`, u.`OrganizationId` AS `OrganizationId`, o.`Name` AS `OrganizationName` - FROM `{{FakeTables.User}}` u - LEFT JOIN `{{FakeTables.Organization}}` o ON o.`Id` = u.`OrganizationId` AND o.`IsDeleted` = 0 - WHERE u.`Id` = {0} AND u.`IsDeleted` = 0 + FROM `{FakeTables.User}` u + LEFT JOIN `{FakeTables.Organization}` o ON o.`Id` = u.`OrganizationId` AND o.`IsDeleted` = 0 + WHERE u.`Id` = {{0}} AND u.`IsDeleted` = 0 LIMIT 1 - """; + "; return await Db.Database.SqlQueryRaw(sql, userId.ToString()) .FirstOrDefaultAsync(cancellationToken); } public async Task IsPureCustomerUserAsync(Guid userId, CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" SELECT COUNT(*) AS `Value` - FROM `{{FakeTables.UserRole}}` ur - INNER JOIN `{{FakeTables.Role}}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 - WHERE ur.`UserId` = {0} + FROM `{FakeTables.UserRole}` ur + INNER JOIN `{FakeTables.Role}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 + WHERE ur.`UserId` = {{0}} AND r.`Code` <> 'Customer' AND r.`Code` NOT LIKE 'CustomerSub_%' - """; + "; var nonCustomerRoleCount = await Db.Database.SqlQueryRaw(sql, userId.ToString()) .FirstAsync(cancellationToken); @@ -47,11 +47,11 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency return false; } - var hasRoleSql = $$""" + var hasRoleSql = $@" SELECT COUNT(*) AS `Value` - FROM `{{FakeTables.UserRole}}` ur - WHERE ur.`UserId` = {0} - """; + FROM `{FakeTables.UserRole}` ur + WHERE ur.`UserId` = {{0}} + "; var roleCount = await Db.Database.SqlQueryRaw(hasRoleSql, userId.ToString()) .FirstAsync(cancellationToken); return roleCount > 0; @@ -59,13 +59,13 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency public async Task IsAdminUserAsync(Guid userId, CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" SELECT COUNT(*) AS `Value` - FROM `{{FakeTables.UserRole}}` ur - INNER JOIN `{{FakeTables.Role}}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 - WHERE ur.`UserId` = {0} + FROM `{FakeTables.UserRole}` ur + INNER JOIN `{FakeTables.Role}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 + WHERE ur.`UserId` = {{0}} AND r.`Code` = 'Admin' - """; + "; var count = await Db.Database.SqlQueryRaw(sql, userId.ToString()).FirstAsync(cancellationToken); return count > 0; @@ -73,22 +73,22 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency public async Task> GetUserRoleIdsAsync(Guid userId, CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" SELECT ur.`RoleId` AS `Value` - FROM `{{FakeTables.UserRole}}` ur - WHERE ur.`UserId` = {0} - """; + FROM `{FakeTables.UserRole}` ur + WHERE ur.`UserId` = {{0}} + "; return await Db.Database.SqlQueryRaw(sql, userId.ToString()) .ToListAsync(cancellationToken); } public async Task> GetUserIdsByRoleAsync(Guid roleId, CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" SELECT ur.`UserId` AS `Value` - FROM `{{FakeTables.UserRole}}` ur - WHERE ur.`RoleId` = {0} - """; + FROM `{FakeTables.UserRole}` ur + WHERE ur.`RoleId` = {{0}} + "; return await Db.Database.SqlQueryRaw(sql, roleId.ToString()) .ToListAsync(cancellationToken); @@ -382,19 +382,19 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency public async Task> GetOrganizationSubtreeIdsAsync(Guid rootOrganizationId, CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" WITH RECURSIVE org_tree AS ( SELECT o.`Id` - FROM `{{FakeTables.Organization}}` o - WHERE o.`Id` = {0} AND o.`IsDeleted` = 0 + FROM `{FakeTables.Organization}` o + WHERE o.`Id` = {{0}} AND o.`IsDeleted` = 0 UNION ALL SELECT c.`Id` - FROM `{{FakeTables.Organization}}` c + FROM `{FakeTables.Organization}` c INNER JOIN org_tree t ON c.`ParentId` = t.`Id` WHERE c.`IsDeleted` = 0 ) SELECT `Id` AS `Value` FROM org_tree - """; + "; return await Db.Database.SqlQueryRaw(sql, rootOrganizationId.ToString()) .ToListAsync(cancellationToken); @@ -411,24 +411,24 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency } var inClause = string.Join(",", ids.Select(x => $"'{x}'")); - var sql = $$""" + var sql = $@" SELECT o.`Id` AS `Id`, o.`Name` AS `Name` - FROM `{{FakeTables.Organization}}` o + FROM `{FakeTables.Organization}` o WHERE o.`IsDeleted` = 0 AND o.`Id` IN ({inClause}) - """; + "; var rows = await Db.Database.SqlQueryRaw(sql).ToListAsync(cancellationToken); return rows.ToDictionary(x => x.Id, x => x.Name ?? x.Id.ToString()); } public async Task OrganizationExistsAndEnabledAsync(Guid organizationId, CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" SELECT COUNT(*) AS `Value` - FROM `{{FakeTables.Organization}}` o - WHERE o.`Id` = {0} + FROM `{FakeTables.Organization}` o + WHERE o.`Id` = {{0}} AND o.`IsDeleted` = 0 - """; + "; var count = await Db.Database.SqlQueryRaw(sql, organizationId.ToString()).FirstAsync(cancellationToken); return count > 0; @@ -446,12 +446,12 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency if (dataScope == DataPermConstants.DataScopeTeam) { - var sql = $$""" + var sql = $@" SELECT u.`userid` AS `Value` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`IsDeleted` = 0 - AND u.`OrganizationId` = {0} - """; + AND u.`OrganizationId` = {{0}} + "; return await Db.Database.SqlQueryRaw(sql, organizationId.ToString()) .ToListAsync(cancellationToken); } @@ -465,12 +465,12 @@ public class DataPermRepository(FakeRbacDbContext dbContext) : IScopedDependency } var inClause = string.Join(",", orgIds.Select(x => $"'{x}'")); - var sql = $$""" + var sql = $@" SELECT u.`userid` AS `Value` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`IsDeleted` = 0 AND u.`OrganizationId` IN ({inClause}) - """; + "; return await Db.Database.SqlQueryRaw(sql).ToListAsync(cancellationToken); } diff --git a/src/Oms.Application/DataPerm/DataPermStore.cs b/src/Oms.Application/DataPerm/DataPermStore.cs index dd8da2c..1022508 100644 --- a/src/Oms.Application/DataPerm/DataPermStore.cs +++ b/src/Oms.Application/DataPerm/DataPermStore.cs @@ -21,21 +21,21 @@ public class DataPermStore(FakeRbacDbContext dbContext, DataPermContextCache cac public async Task GetUserDataPermAsync(Guid userId, CancellationToken cancellationToken = default) { - var user = await dbContext.Database.SqlQueryRaw($$""" + var user = await dbContext.Database.SqlQueryRaw($@" SELECT u.`Id` AS `UserId`, u.`Name` AS `UserName`, u.`OrganizationId` AS `OrganizationId`, o.`Name` AS `OrganizationName` - FROM `{{FakeTables.User}}` u - LEFT JOIN `{{FakeTables.Organization}}` o ON o.`Id` = u.`OrganizationId` AND o.`IsDeleted` = 0 - WHERE u.`Id` = {0} AND u.`IsDeleted` = 0 + FROM `{FakeTables.User}` u + LEFT JOIN `{FakeTables.Organization}` o ON o.`Id` = u.`OrganizationId` AND o.`IsDeleted` = 0 + WHERE u.`Id` = {{0}} AND u.`IsDeleted` = 0 LIMIT 1 - """, userId.ToString()).FirstOrDefaultAsync(cancellationToken) + ", userId.ToString()).FirstOrDefaultAsync(cancellationToken) ?? throw new BusinessException("用户不存在"); var now = DateTime.UtcNow; - var orgRows = await dbContext.Database.SqlQueryRaw($$""" + var orgRows = await dbContext.Database.SqlQueryRaw($@" SELECT p.`Id` AS `Id`, p.`OrganizationId` AS `OrganizationId`, @@ -45,11 +45,11 @@ public class DataPermStore(FakeRbacDbContext dbContext, DataPermContextCache cac p.`ExpireTime` AS `ExpireTime`, p.`IsTemporary` AS `IsTemporary` FROM `user_org_perm` p - LEFT JOIN `{{FakeTables.Organization}}` o ON o.`Id` = p.`OrganizationId` AND o.`IsDeleted` = 0 - WHERE p.`IsDeleted` = 0 AND p.`UserId` = {0} - """, userId.ToString()).ToListAsync(cancellationToken); + LEFT JOIN `{FakeTables.Organization}` o ON o.`Id` = p.`OrganizationId` AND o.`IsDeleted` = 0 + WHERE p.`IsDeleted` = 0 AND p.`UserId` = {{0}} + ", userId.ToString()).ToListAsync(cancellationToken); - var scopeRows = await dbContext.Database.SqlQueryRaw($""" + var scopeRows = await dbContext.Database.SqlQueryRaw(""" SELECT p.`Id` AS `Id`, p.`DataScope` AS `DataScope`, p.`DataResourceCode` AS `DataResourceCode`, p.`ExpireTime` AS `ExpireTime` FROM `user_data_scope` p WHERE p.`IsDeleted` = 0 AND p.`UserId` = {0} @@ -128,20 +128,20 @@ public class DataPermStore(FakeRbacDbContext dbContext, DataPermContextCache cac public async Task GetRoleDataPermAsync(Guid roleId, CancellationToken cancellationToken = default) { - var role = await dbContext.Database.SqlQueryRaw(""" + var role = await dbContext.Database.SqlQueryRaw($@" SELECT r.`Id` AS `RoleId`, r.`Name` AS `RoleName` - FROM `{{FakeTables.Role}}` r - WHERE r.`Id` = {0} AND r.`IsDeleted` = 0 + FROM `{FakeTables.Role}` r + WHERE r.`Id` = {{0}} AND r.`IsDeleted` = 0 LIMIT 1 - """, roleId.ToString()).FirstOrDefaultAsync(cancellationToken) + ", roleId.ToString()).FirstOrDefaultAsync(cancellationToken) ?? throw new BusinessException("角色不存在"); - var orgRows = await dbContext.Database.SqlQueryRaw($$""" + var orgRows = await dbContext.Database.SqlQueryRaw($@" SELECT p.`Id` AS `Id`, p.`OrganizationId` AS `OrganizationId`, o.`Name` AS `OrganizationName`, p.`OrgScope` AS `OrgScope` FROM `role_org_perm` p - LEFT JOIN `{{FakeTables.Organization}}` o ON o.`Id` = p.`OrganizationId` AND o.`IsDeleted` = 0 - WHERE p.`IsDeleted` = 0 AND p.`RoleId` = {0} - """, roleId.ToString()).ToListAsync(cancellationToken); + LEFT JOIN `{FakeTables.Organization}` o ON o.`Id` = p.`OrganizationId` AND o.`IsDeleted` = 0 + WHERE p.`IsDeleted` = 0 AND p.`RoleId` = {{0}} + ", roleId.ToString()).ToListAsync(cancellationToken); var scopeRows = await dbContext.Database.SqlQueryRaw(""" SELECT p.`Id` AS `Id`, p.`DataScope` AS `DataScope`, p.`DataResourceCode` AS `DataResourceCode` @@ -521,7 +521,7 @@ public class DataPermStore(FakeRbacDbContext dbContext, DataPermContextCache cac public async Task> GetFieldMasksAsync(string dataResourceCode, CancellationToken cancellationToken = default) { - var sql = $""" + var sql = """ SELECT m.`FieldName` AS `FieldName`, m.`SecretLevel` AS `SecretLevel`, m.`MaskType` AS `MaskType`, m.`MaskPattern` AS `MaskPattern` FROM `data_perm_field_mask` m WHERE m.`IsDeleted` = 0 AND m.`IsEnabled` = 1 AND m.`DataResourceCode` = {0} @@ -641,7 +641,7 @@ public class DataPermStore(FakeRbacDbContext dbContext, DataPermContextCache cac public async Task GetTemplateDetailAsync(Guid templateId, CancellationToken cancellationToken = default) { - var headerSql = $""" + var headerSql = """ SELECT t.`Id` AS `Id`, t.`Name` AS `Name`, t.`Code` AS `Code`, t.`Description` AS `Description`, t.`RoleCode` AS `RoleCode`, t.`IsBuiltIn` AS `IsBuiltIn` FROM `data_perm_template` t @@ -653,7 +653,7 @@ public class DataPermStore(FakeRbacDbContext dbContext, DataPermContextCache cac .FirstOrDefaultAsync(cancellationToken) ?? throw new BusinessException("模板不存在"); - var itemSql = $""" + var itemSql = """ SELECT i.`Id` AS `Id`, i.`DimensionType` AS `DimensionType`, CAST(i.`ItemContent` AS CHAR) AS `ItemContentJson`, i.`SortOrder` AS `SortOrder` FROM `data_perm_template_item` i WHERE i.`TemplateId` = {0} AND i.`IsDeleted` = 0 diff --git a/src/Oms.Application/Rbac/CustomerServiceAdvisorResolver.cs b/src/Oms.Application/Rbac/CustomerServiceAdvisorResolver.cs index 8cce024..ed34881 100644 --- a/src/Oms.Application/Rbac/CustomerServiceAdvisorResolver.cs +++ b/src/Oms.Application/Rbac/CustomerServiceAdvisorResolver.cs @@ -42,17 +42,17 @@ public class CustomerServiceAdvisorResolver(FakeRbacDbContext dbContext) : IScop return null; } - var sql = $$""" + var sql = $@" SELECT u.`Name` AS `Name`, u.`WechatId` AS `WechatId`, u.`WechatQrCode` AS `WechatQrCode`, u.`WecomKfUrl` AS `WecomKfUrl` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`IsDeleted` = 0 - AND u.`userid` = {0} + AND u.`userid` = {{0}} LIMIT 1 - """; + "; return await dbContext.Database .SqlQueryRaw(sql, userId) .FirstOrDefaultAsync(cancellationToken); @@ -60,18 +60,18 @@ public class CustomerServiceAdvisorResolver(FakeRbacDbContext dbContext) : IScop private async Task FindByNameOrAccountAsync(string key, CancellationToken cancellationToken) { - var sql = $$""" + var sql = $@" SELECT u.`Name` AS `Name`, u.`WechatId` AS `WechatId`, u.`WechatQrCode` AS `WechatQrCode`, u.`WecomKfUrl` AS `WecomKfUrl` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`IsDeleted` = 0 - AND (u.`Name` = {0} OR u.`Account` = {0}) + AND (u.`Name` = {{0}} OR u.`Account` = {{0}}) ORDER BY u.`CreateTime` ASC LIMIT 1 - """; + "; return await dbContext.Database .SqlQueryRaw(sql, key) diff --git a/src/Oms.Application/Rbac/InternalUserRepository.cs b/src/Oms.Application/Rbac/InternalUserRepository.cs index 18f7784..d3866c0 100644 --- a/src/Oms.Application/Rbac/InternalUserRepository.cs +++ b/src/Oms.Application/Rbac/InternalUserRepository.cs @@ -8,19 +8,19 @@ namespace Oms.Application.Rbac; public class InternalUserRepository(FakeRbacDbContext dbContext) : IScopedDependency { - private static readonly string InternalUserFilter = $$""" + private static readonly string InternalUserFilter = $@" ( - NOT EXISTS (SELECT 1 FROM `{{FakeTables.UserRole}}` ur0 WHERE ur0.`UserId` = u.`Id`) + NOT EXISTS (SELECT 1 FROM `{FakeTables.UserRole}` ur0 WHERE ur0.`UserId` = u.`Id`) OR EXISTS ( SELECT 1 - FROM `{{FakeTables.UserRole}}` ur - INNER JOIN `{{FakeTables.Role}}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 + FROM `{FakeTables.UserRole}` ur + INNER JOIN `{FakeTables.Role}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 WHERE ur.`UserId` = u.`Id` AND r.`Code` <> 'Customer' AND r.`Code` NOT LIKE 'CustomerSub\_%' ) ) - """; + "; public async Task GetInternalUsersAsync( string? keyword, Guid? organizationId, @@ -45,16 +45,16 @@ public class InternalUserRepository(FakeRbacDbContext dbContext) : IScopedDepend args.Add(organizationId.Value.ToString()); } - var countSql = $$""" + var countSql = $@" SELECT COUNT(*) AS `Value` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u {where} - """; + "; var total = await dbContext.Database.SqlQueryRaw(countSql, args.ToArray()) .FirstAsync(cancellationToken); var offset = Math.Max(page - 1, 0) * pageSize; - var listSql = $$""" + var listSql = $@" SELECT u.`Id` AS `Id`, u.`Name` AS `Name`, @@ -67,12 +67,12 @@ public class InternalUserRepository(FakeRbacDbContext dbContext) : IScopedDepend u.`OrganizationId` AS `OrganizationId`, o.`Name` AS `OrganizationName`, u.`CreateTime` AS `CreatedAt` - FROM `{{FakeTables.User}}` u - LEFT JOIN `{{FakeTables.Organization}}` o ON o.`Id` = u.`OrganizationId` AND o.`IsDeleted` = 0 + FROM `{FakeTables.User}` u + LEFT JOIN `{FakeTables.Organization}` o ON o.`Id` = u.`OrganizationId` AND o.`IsDeleted` = 0 {where} ORDER BY u.`CreateTime` DESC LIMIT {pageSize} OFFSET {offset} - """; + "; var rows = await dbContext.Database.SqlQueryRaw(listSql, args.ToArray()) .ToListAsync(cancellationToken); if (rows.Count == 0) @@ -111,17 +111,17 @@ public class InternalUserRepository(FakeRbacDbContext dbContext) : IScopedDepend } var inClause = string.Join(",", userIds.Select(x => $"'{x}'")); - var sql = $$""" + var sql = $@" SELECT ur.`UserId` AS `UserId`, r.`Id` AS `RoleId`, r.`Name` AS `RoleName`, r.`Code` AS `RoleCode` - FROM `{{FakeTables.UserRole}}` ur - INNER JOIN `{{FakeTables.Role}}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 + FROM `{FakeTables.UserRole}` ur + INNER JOIN `{FakeTables.Role}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 WHERE ur.`UserId` IN ({inClause}) ORDER BY r.`Name` - """; + "; var roleRows = await dbContext.Database.SqlQueryRaw(sql).ToListAsync(cancellationToken); return roleRows diff --git a/src/Oms.Application/Rbac/UserProfileRepository.cs b/src/Oms.Application/Rbac/UserProfileRepository.cs index 303e4e9..99949fa 100644 --- a/src/Oms.Application/Rbac/UserProfileRepository.cs +++ b/src/Oms.Application/Rbac/UserProfileRepository.cs @@ -16,17 +16,17 @@ public class UserProfileRepository(FakeRbacDbContext dbContext) : IScopedDepende public async Task GetAsync(Guid userId, CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" SELECT u.`Phone` AS `Phone`, u.`EmployeeNo` AS `EmployeeNo`, u.`WechatId` AS `WechatId`, u.`WechatQrCode` AS `WechatQrCode`, u.`WecomKfUrl` AS `WecomKfUrl` - FROM `{{FakeTables.User}}` u - WHERE u.`Id` = {0} AND u.`IsDeleted` = 0 + FROM `{FakeTables.User}` u + WHERE u.`Id` = {{0}} AND u.`IsDeleted` = 0 LIMIT 1 - """; + "; var row = await dbContext.Database .SqlQueryRaw(sql, userId.ToString()) .FirstOrDefaultAsync(cancellationToken); @@ -56,7 +56,7 @@ public class UserProfileRepository(FakeRbacDbContext dbContext) : IScopedDepende } var inClause = string.Join(",", userIds.Select(x => $"'{x}'")); - var sql = $$""" + var sql = $@" SELECT u.`Id` AS `UserId`, u.`Phone` AS `Phone`, @@ -64,9 +64,9 @@ public class UserProfileRepository(FakeRbacDbContext dbContext) : IScopedDepende u.`WechatId` AS `WechatId`, u.`WechatQrCode` AS `WechatQrCode`, u.`WecomKfUrl` AS `WecomKfUrl` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`Id` IN ({inClause}) AND u.`IsDeleted` = 0 - """; + "; var rows = await dbContext.Database.SqlQueryRaw(sql).ToListAsync(cancellationToken); return rows.ToDictionary( @@ -83,16 +83,16 @@ public class UserProfileRepository(FakeRbacDbContext dbContext) : IScopedDepende public async Task SaveAsync(Guid userId, UserProfileData profile, CancellationToken cancellationToken = default) { - var sql = $$""" - UPDATE `{{FakeTables.User}}` + var sql = $@" + UPDATE `{FakeTables.User}` SET - `Phone` = {1}, - `EmployeeNo` = {2}, - `WechatId` = {3}, - `WechatQrCode` = {4}, - `WecomKfUrl` = {5} - WHERE `Id` = {0} AND `IsDeleted` = 0 - """; + `Phone` = {{1}}, + `EmployeeNo` = {{2}}, + `WechatId` = {{3}}, + `WechatQrCode` = {{4}}, + `WecomKfUrl` = {{5}} + WHERE `Id` = {{0}} AND `IsDeleted` = 0 + "; await dbContext.Database.ExecuteSqlRawAsync( sql, [ @@ -112,15 +112,15 @@ public class UserProfileRepository(FakeRbacDbContext dbContext) : IScopedDepende UserProfileData profile, CancellationToken cancellationToken = default) { - var sql = $$""" - UPDATE `{{FakeTables.User}}` + var sql = $@" + UPDATE `{FakeTables.User}` SET - `Phone` = {1}, - `WechatId` = {2}, - `WechatQrCode` = {3}, - `WecomKfUrl` = {4} - WHERE `Id` = {0} AND `IsDeleted` = 0 - """; + `Phone` = {{1}}, + `WechatId` = {{2}}, + `WechatQrCode` = {{3}}, + `WecomKfUrl` = {{4}} + WHERE `Id` = {{0}} AND `IsDeleted` = 0 + "; await dbContext.Database.ExecuteSqlRawAsync( sql, @@ -141,19 +141,19 @@ public class UserProfileRepository(FakeRbacDbContext dbContext) : IScopedDepende { var normalized = employeeNo.Trim().ToUpperInvariant(); var sql = excludeUserId.HasValue - ? $$""" + ? $@" SELECT COUNT(*) AS `Value` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`IsDeleted` = 0 - AND u.`EmployeeNo` = {0} - AND u.`Id` <> {1} - """ - : $$""" + AND u.`EmployeeNo` = {{0}} + AND u.`Id` <> {{1}} + " + : $@" SELECT COUNT(*) AS `Value` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`IsDeleted` = 0 - AND u.`EmployeeNo` = {0} - """; + AND u.`EmployeeNo` = {{0}} + "; var count = excludeUserId.HasValue ? await dbContext.Database.SqlQueryRaw(sql, normalized, excludeUserId.Value.ToString()) @@ -165,13 +165,13 @@ public class UserProfileRepository(FakeRbacDbContext dbContext) : IScopedDepende public async Task GenerateNextEmployeeNoAsync(CancellationToken cancellationToken = default) { - var sql = $$""" + var sql = $@" SELECT u.`EmployeeNo` AS `EmployeeNo` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`IsDeleted` = 0 AND u.`EmployeeNo` IS NOT NULL AND u.`EmployeeNo` <> '' - """; + "; var rows = await dbContext.Database.SqlQueryRaw(sql).ToListAsync(cancellationToken); var max = 0; diff --git a/src/Oms.Application/Services/System/NoticeService.cs b/src/Oms.Application/Services/System/NoticeService.cs index b8f30ac..f0620b9 100644 --- a/src/Oms.Application/Services/System/NoticeService.cs +++ b/src/Oms.Application/Services/System/NoticeService.cs @@ -25,19 +25,19 @@ public class NoticeService : ApplicationService private const string ReceiverTypeUser = "user"; private const string ReceiverTypeCustomer = "customer"; - private static readonly string InternalUserFilter = $$""" + private static readonly string InternalUserFilter = $@" ( - NOT EXISTS (SELECT 1 FROM `{{FakeTables.UserRole}}` ur0 WHERE ur0.`UserId` = u.`Id`) + NOT EXISTS (SELECT 1 FROM `{FakeTables.UserRole}` ur0 WHERE ur0.`UserId` = u.`Id`) OR EXISTS ( SELECT 1 - FROM `{{FakeTables.UserRole}}` ur - INNER JOIN `{{FakeTables.Role}}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 + FROM `{FakeTables.UserRole}` ur + INNER JOIN `{FakeTables.Role}` r ON r.`Id` = ur.`RoleId` AND r.`IsDeleted` = 0 WHERE ur.`UserId` = u.`Id` AND r.`Code` <> 'Customer' AND r.`Code` NOT LIKE 'CustomerSub\_%' ) ) - """; + "; private INoticeRepository NoticeRepository => LazyServiceProvider.GetRequiredService(); private INoticeReadRepository NoticeReadRepository => LazyServiceProvider.GetRequiredService(); private ICustomerRepository CustomerRepository => LazyServiceProvider.GetRequiredService(); @@ -239,19 +239,19 @@ public class NoticeService : ApplicationService args.Add(pattern); } - var countSql = $"SELECT COUNT(*) AS `Value` FROM `{{FakeTables.User}}` u {where}"; + var countSql = $"SELECT COUNT(*) AS `Value` FROM `{FakeTables.User}` u {where}"; var total = await RbacDbContext.Database.SqlQueryRaw(countSql, args.ToArray()).FirstAsync(); var offset = Math.Max(pageIndex - 1, 0) * pageSize; - var listSql = $$""" + var listSql = $@" SELECT u.`userid` AS `Value`, u.`Name` AS `Label`, u.`Account` AS `Extra` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u {where} ORDER BY u.`Name`, u.`userid` LIMIT {pageSize} OFFSET {offset} - """; + "; var items = await RbacDbContext.Database.SqlQueryRaw(listSql, args.ToArray()) .Select(x => new NoticeReceiverOptionOutput { @@ -465,7 +465,7 @@ public class NoticeService : ApplicationService return []; } - var sql = $"SELECT `userid` AS `UserId` FROM `{{FakeTables.User}}` WHERE `IsDeleted` = 0 AND `userid` IN ({string.Join(",", userIds)})"; + var sql = $"SELECT `userid` AS `UserId` FROM `{FakeTables.User}` WHERE `IsDeleted` = 0 AND `userid` IN ({string.Join(",", userIds)})"; return await RbacDbContext.Database.SqlQueryRaw(sql) .Select(x => x.UserId) .ToListAsync(); diff --git a/src/Oms.Application/Shared/OmsRbacRegistrationGuard.cs b/src/Oms.Application/Shared/OmsRbacRegistrationGuard.cs index ae9c203..fa1f7f1 100644 --- a/src/Oms.Application/Shared/OmsRbacRegistrationGuard.cs +++ b/src/Oms.Application/Shared/OmsRbacRegistrationGuard.cs @@ -169,12 +169,12 @@ public static class OmsRbacRegistrationGuard var hit = await rbacDbContext.Database .SqlQueryRaw( - $$""" + $@" SELECT 1 AS Value - FROM `{{FakeTables.Organization}}` - WHERE `Id` = {0} AND `IsDeleted` = 0 + FROM `{FakeTables.Organization}` + WHERE `Id` = {{0}} AND `IsDeleted` = 0 LIMIT 1 - """, organizationId.Value.ToString()) + ", organizationId.Value.ToString()) .FirstOrDefaultAsync(cancellationToken); if (!hit.HasValue) @@ -203,12 +203,12 @@ public static class OmsRbacRegistrationGuard { var hit = await rbacDbContext.Database .SqlQueryRaw( - $$""" + $@" SELECT 1 AS Value - FROM `{{FakeTables.Role}}` - WHERE `Id` = {0} AND `IsDeleted` = 0 + FROM `{FakeTables.Role}` + WHERE `Id` = {{0}} AND `IsDeleted` = 0 LIMIT 1 - """, roleId.ToString()) + ", roleId.ToString()) .FirstOrDefaultAsync(cancellationToken); if (!hit.HasValue) @@ -494,7 +494,7 @@ public static class OmsRbacRegistrationGuard { var hit = await rbacDbContext.Database .SqlQueryRaw( - $"SELECT 1 AS Value FROM `{{FakeTables.User}}` WHERE `Account` = {0} AND `Id` <> {1} LIMIT 1", + $"SELECT 1 AS Value FROM `{FakeTables.User}` WHERE `Account` = {{0}} AND `Id` <> {{1}} LIMIT 1", account, id.ToString()) .FirstOrDefaultAsync(cancellationToken); return hit.HasValue; @@ -502,7 +502,7 @@ public static class OmsRbacRegistrationGuard var any = await rbacDbContext.Database .SqlQueryRaw( - $"SELECT 1 AS Value FROM `{{FakeTables.User}}` WHERE `Account` = {0} LIMIT 1", account) + $"SELECT 1 AS Value FROM `{FakeTables.User}` WHERE `Account` = {{0}} LIMIT 1", account) .FirstOrDefaultAsync(cancellationToken); return any.HasValue; } @@ -517,7 +517,7 @@ public static class OmsRbacRegistrationGuard { var hit = await rbacDbContext.Database .SqlQueryRaw( - $"SELECT 1 AS Value FROM `{{FakeTables.User}}` WHERE `Email` = {0} AND `Id` <> {1} LIMIT 1", + $"SELECT 1 AS Value FROM `{FakeTables.User}` WHERE `Email` = {{0}} AND `Id` <> {{1}} LIMIT 1", email, id.ToString()) .FirstOrDefaultAsync(cancellationToken); return hit.HasValue; @@ -525,7 +525,7 @@ public static class OmsRbacRegistrationGuard var any = await rbacDbContext.Database .SqlQueryRaw( - $"SELECT 1 AS Value FROM `{{FakeTables.User}}` WHERE `Email` = {0} LIMIT 1", email) + $"SELECT 1 AS Value FROM `{FakeTables.User}` WHERE `Email` = {{0}} LIMIT 1", email) .FirstOrDefaultAsync(cancellationToken); return any.HasValue; } @@ -540,7 +540,7 @@ public static class OmsRbacRegistrationGuard { var hit = await rbacDbContext.Database .SqlQueryRaw( - $"SELECT 1 AS Value FROM `{{FakeTables.User}}` WHERE `Phone` = {0} AND `Id` <> {1} LIMIT 1", + $"SELECT 1 AS Value FROM `{FakeTables.User}` WHERE `Phone` = {{0}} AND `Id` <> {{1}} LIMIT 1", phone, id.ToString()) .FirstOrDefaultAsync(cancellationToken); return hit.HasValue; @@ -548,7 +548,7 @@ public static class OmsRbacRegistrationGuard var any = await rbacDbContext.Database .SqlQueryRaw( - $"SELECT 1 AS Value FROM `{{FakeTables.User}}` WHERE `Phone` = {0} LIMIT 1", phone) + $"SELECT 1 AS Value FROM `{FakeTables.User}` WHERE `Phone` = {{0}} LIMIT 1", phone) .FirstOrDefaultAsync(cancellationToken); return any.HasValue; } @@ -563,7 +563,7 @@ public static class OmsRbacRegistrationGuard { var hit = await rbacDbContext.Database .SqlQueryRaw( - $"SELECT 1 AS Value FROM `{{FakeTables.User}}` WHERE `WechatId` = {0} AND `Id` <> {1} LIMIT 1", + $"SELECT 1 AS Value FROM `{FakeTables.User}` WHERE `WechatId` = {{0}} AND `Id` <> {{1}} LIMIT 1", wechatId, id.ToString()) .FirstOrDefaultAsync(cancellationToken); return hit.HasValue; @@ -571,7 +571,7 @@ public static class OmsRbacRegistrationGuard var any = await rbacDbContext.Database .SqlQueryRaw( - $"SELECT 1 AS Value FROM `{{FakeTables.User}}` WHERE `WechatId` = {0} LIMIT 1", wechatId) + $"SELECT 1 AS Value FROM `{FakeTables.User}` WHERE `WechatId` = {{0}} LIMIT 1", wechatId) .FirstOrDefaultAsync(cancellationToken); return any.HasValue; } diff --git a/src/Oms.Application/Shared/StaffAdvisorBinder.cs b/src/Oms.Application/Shared/StaffAdvisorBinder.cs index 0dafc40..ac4f465 100644 --- a/src/Oms.Application/Shared/StaffAdvisorBinder.cs +++ b/src/Oms.Application/Shared/StaffAdvisorBinder.cs @@ -45,14 +45,14 @@ public static class StaffAdvisorBinder string key, CancellationToken cancellationToken) { - var sql = $$""" + var sql = $@" SELECT u.`Account` AS `Account` - FROM `{{FakeTables.User}}` u + FROM `{FakeTables.User}` u WHERE u.`IsDeleted` = 0 - AND u.`Account` = {0} + AND u.`Account` = {{0}} ORDER BY u.`CreateTime` ASC LIMIT 1 - """; + "; var row = await rbacDbContext.Database .SqlQueryRaw(sql, key)