相关bug调整
This commit is contained in:
@@ -5,6 +5,11 @@ namespace SimpleAdmin.Application;
|
||||
/// </summary>
|
||||
public class OnboardingCompanyPageInput : BasePageInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 公司业务编码。
|
||||
/// </summary>
|
||||
public virtual string CompanyCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公司名称。
|
||||
/// </summary>
|
||||
|
||||
@@ -11,9 +11,8 @@ public class OnboardingCompanyService : DbRepository<ObCompany>, IOnboardingComp
|
||||
public async Task<SqlSugarPagedList<ObCompany>> Page(OnboardingCompanyPageInput input)
|
||||
{
|
||||
return await Context.Queryable<ObCompany>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrWhiteSpace(input.CompanyName),
|
||||
it => it.CompanyName.Contains(input.CompanyName) || it.CompanyCode.Contains(input.CompanyName))
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.CompanyCode), it => it.CompanyCode.Contains(input.CompanyCode))
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.CompanyName), it => it.CompanyName.Contains(input.CompanyName))
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.Status), it => it.Status == input.Status)
|
||||
.OrderByIF(!string.IsNullOrWhiteSpace(input.SortField), $"{input.SortField} {input.SortOrder}")
|
||||
.OrderBy(it => it.CreateTime)
|
||||
|
||||
+28
-3
@@ -27,8 +27,12 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
|
||||
/// </summary>
|
||||
public async Task SaveFormField(OnboardingFormFieldSaveInput input)
|
||||
{
|
||||
var fieldCodeExists = await _db.Queryable<ObFormField>()
|
||||
.AnyAsync(x => x.FieldCode == input.FieldCode && x.Id != input.Id);
|
||||
var fieldCodeQuery = _db.Queryable<ObFormField>()
|
||||
.Where(x => x.FieldCode == input.FieldCode);
|
||||
if (input.Id.HasValue)
|
||||
fieldCodeQuery = fieldCodeQuery.Where(x => x.Id != input.Id.Value);
|
||||
|
||||
var fieldCodeExists = await fieldCodeQuery.AnyAsync();
|
||||
if (fieldCodeExists)
|
||||
throw Oops.Bah("字段编码已存在");
|
||||
|
||||
@@ -38,7 +42,7 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
|
||||
FieldCode = input.FieldCode,
|
||||
FieldName = input.FieldName,
|
||||
DataType = input.DataType,
|
||||
OptionsJson = input.OptionsJson,
|
||||
OptionsJson = NormalizeOptionsJson(input.OptionsJson),
|
||||
ValidationRule = input.ValidationRule,
|
||||
Placeholder = input.Placeholder,
|
||||
Status = input.Status
|
||||
@@ -57,6 +61,27 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
|
||||
await _db.Insertable(entity).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将空白的可选项转换为 null,避免 MySQL JSON 字段写入空字符串时报错。
|
||||
/// </summary>
|
||||
private static string NormalizeOptionsJson(string optionsJson)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(optionsJson))
|
||||
return null;
|
||||
|
||||
var normalizedJson = optionsJson.Trim();
|
||||
|
||||
try
|
||||
{
|
||||
using var jsonDocument = global::System.Text.Json.JsonDocument.Parse(normalizedJson);
|
||||
return normalizedJson;
|
||||
}
|
||||
catch (global::System.Text.Json.JsonException)
|
||||
{
|
||||
throw Oops.Bah("可选项不是有效的 JSON 格式");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除未被填写要求引用的动态字段。
|
||||
/// </summary>
|
||||
|
||||
@@ -10,6 +10,11 @@ public class OnboardingPositionPageInput : BasePageInput
|
||||
/// </summary>
|
||||
public long? CompanyId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 岗位编码。
|
||||
/// </summary>
|
||||
public virtual string PositionCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 岗位名称。
|
||||
/// </summary>
|
||||
|
||||
@@ -12,9 +12,8 @@ public class OnboardingPositionService : DbRepository<ObPosition>, IOnboardingPo
|
||||
{
|
||||
return await Context.Queryable<ObPosition>()
|
||||
.WhereIF(input.CompanyId.HasValue, it => it.CompanyId == input.CompanyId.Value)
|
||||
.WhereIF(
|
||||
!string.IsNullOrWhiteSpace(input.PositionName),
|
||||
it => it.PositionName.Contains(input.PositionName) || it.PositionCode.Contains(input.PositionName))
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.PositionCode), it => it.PositionCode.Contains(input.PositionCode))
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.PositionName), it => it.PositionName.Contains(input.PositionName))
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.Status), it => it.Status == input.Status)
|
||||
.OrderByIF(!string.IsNullOrWhiteSpace(input.SortField), $"{input.SortField} {input.SortOrder}")
|
||||
.OrderBy(it => it.PositionName)
|
||||
|
||||
@@ -1399,6 +1399,11 @@
|
||||
入职业务公司分页查询参数。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SimpleAdmin.Application.OnboardingCompanyPageInput.CompanyCode">
|
||||
<summary>
|
||||
公司业务编码。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SimpleAdmin.Application.OnboardingCompanyPageInput.CompanyName">
|
||||
<summary>
|
||||
公司名称。
|
||||
@@ -2327,6 +2332,11 @@
|
||||
新增或编辑动态入职字段。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:SimpleAdmin.Application.OnboardingEntryConfigService.NormalizeOptionsJson(System.String)">
|
||||
<summary>
|
||||
将空白的可选项转换为 null,避免 MySQL JSON 字段写入空字符串时报错。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:SimpleAdmin.Application.OnboardingEntryConfigService.DeleteFormFields(SimpleAdmin.Core.BaseIdListInput)">
|
||||
<summary>
|
||||
删除未被填写要求引用的动态字段。
|
||||
@@ -2457,6 +2467,11 @@
|
||||
入职业务公司 Id。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SimpleAdmin.Application.OnboardingPositionPageInput.PositionCode">
|
||||
<summary>
|
||||
岗位编码。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SimpleAdmin.Application.OnboardingPositionPageInput.PositionName">
|
||||
<summary>
|
||||
岗位名称。
|
||||
|
||||
Reference in New Issue
Block a user