refactor: 完善枚举系统与状态类型转换,新增枚举管理接口
1. 为所有枚举添加Description特性用于中文描述 2. 移除实体类中冗余的状态字段注释与定义 3. 将所有枚举状态参数改为int类型转换,统一数据交互格式 4. 新增系统管理枚举查询接口与实现,支持获取所有枚举元数据 5. 调整宠物服务模板状态更新接口参数类型
This commit is contained in:
@ -37,7 +37,7 @@ public class CompensationManageService(
|
||||
.LeftJoin<Users>((t, u) => t.UserId == u.Id)
|
||||
.WhereIF(input.UserId.HasValue, (t, u) => t.UserId == input.UserId.Value)
|
||||
.WhereIF(input.TaskType.HasValue, (t, u) => t.TaskType == (int)input.TaskType.Value)
|
||||
.WhereIF(input.Status.HasValue, (t, u) => t.Status == input.Status.Value)
|
||||
.WhereIF(input.Status.HasValue, (t, u) => t.Status == (int)input.Status)
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.BusinessSource), (t, u) => t.BusinessSource == input.BusinessSource)
|
||||
.OrderByDescending((t, u) => t.CreatedAt)
|
||||
.Select((t, u) => new CompensationManageOutput
|
||||
@ -53,7 +53,7 @@ public class CompensationManageService(
|
||||
ErrorSource = t.ErrorSource,
|
||||
RetryCount = t.RetryCount,
|
||||
MaxRetries = t.MaxRetries,
|
||||
Status = t.Status,
|
||||
Status = (CompensationTaskStatusEnum)t.Status,
|
||||
ProcessedAt = t.ProcessedAt,
|
||||
ScheduledAt = t.ScheduledAt,
|
||||
ResultMessage = t.ResultMessage,
|
||||
@ -75,12 +75,12 @@ public class CompensationManageService(
|
||||
if (task == null)
|
||||
throw new BusinessException("补偿任务不存在", 404);
|
||||
|
||||
if (task.Status != CompensationTaskStatusEnum.Failed && task.Status != CompensationTaskStatusEnum.Cancelled)
|
||||
if (task.Status != (int)CompensationTaskStatusEnum.Failed && task.Status != (int)CompensationTaskStatusEnum.Cancelled)
|
||||
throw new BusinessException($"只有失败或已取消的任务才能重试,当前状态: {task.Status}", 400);
|
||||
|
||||
// 重置任务状态为 Pending,清零重试次数,设置立即执行
|
||||
await compensationTaskRepository.Context.Updateable<CompensationTask>()
|
||||
.SetColumns(t => t.Status == CompensationTaskStatusEnum.Pending)
|
||||
.SetColumns(t => t.Status == (int)CompensationTaskStatusEnum.Pending)
|
||||
.SetColumns(t => t.RetryCount == 0)
|
||||
.SetColumns(t => t.ScheduledAt == DateTime.Now)
|
||||
.SetColumns(t => t.ResultMessage == $"管理员手动重试: {input.Reason}")
|
||||
@ -118,12 +118,12 @@ public class CompensationManageService(
|
||||
if (task == null)
|
||||
throw new BusinessException("补偿任务不存在", 404);
|
||||
|
||||
if (task.Status == CompensationTaskStatusEnum.Success)
|
||||
if (task.Status == (int)CompensationTaskStatusEnum.Success)
|
||||
throw new BusinessException("该任务已经是成功状态,无需标记", 400);
|
||||
|
||||
// 标记为 Success
|
||||
await compensationTaskRepository.Context.Updateable<CompensationTask>()
|
||||
.SetColumns(t => t.Status == CompensationTaskStatusEnum.Success)
|
||||
.SetColumns(t => t.Status == (int)CompensationTaskStatusEnum.Success)
|
||||
.SetColumns(t => t.ResultMessage == $"管理员手动标记已解决: {input.ResolveNote}")
|
||||
.SetColumns(t => t.ProcessedAt == DateTime.Now)
|
||||
.SetColumns(t => t.UpdatedBy == operatorName)
|
||||
@ -172,7 +172,7 @@ public class CompensationManageService(
|
||||
ErrorSource = t.ErrorSource,
|
||||
RetryCount = t.RetryCount,
|
||||
MaxRetries = t.MaxRetries,
|
||||
Status = t.Status,
|
||||
Status = (CompensationTaskStatusEnum)t.Status,
|
||||
ProcessedAt = t.ProcessedAt,
|
||||
ScheduledAt = t.ScheduledAt,
|
||||
ResultMessage = t.ResultMessage,
|
||||
|
||||
Reference in New Issue
Block a user