refactor: 统一业务异常处理,标准化结果码和错误响应
1. 新增并完善ResultCode枚举,补充标准HTTP状态码对应的业务状态码 2. 重构BusinessException,新增基于ResultCode的构造函数和ThrowIf扩展方法 3. 替换所有硬编码的HTTP状态码为统一的ResultCode枚举 4. 优化全局异常中间件,根据业务状态码映射对应HTTP状态码并规范化JSON响应 5. 修复OssImageHelper和AutoDotCodeConsumer中的OSS文件处理逻辑 6. 新增用户答题快照实体类 7. 清理废弃的宠物模块迁移脚本
This commit is contained in:
@ -73,10 +73,10 @@ public class CompensationManageService(
|
||||
|
||||
var task = await compensationTaskRepository.GetByIdAsync(taskId);
|
||||
if (task == null)
|
||||
throw new BusinessException("补偿任务不存在", 404);
|
||||
throw new BusinessException("补偿任务不存在", ResultCode.NOT_FOUND);
|
||||
|
||||
if (task.Status != (int)CompensationTaskStatusEnum.Failed && task.Status != (int)CompensationTaskStatusEnum.Cancelled)
|
||||
throw new BusinessException($"只有失败或已取消的任务才能重试,当前状态: {task.Status}", 400);
|
||||
throw new BusinessException($"只有失败或已取消的任务才能重试,当前状态: {task.Status}", ResultCode.BAD_REQUEST);
|
||||
|
||||
// 重置任务状态为 Pending,清零重试次数,设置立即执行
|
||||
await compensationTaskRepository.Context.Updateable<CompensationTask>()
|
||||
@ -116,10 +116,10 @@ public class CompensationManageService(
|
||||
|
||||
var task = await compensationTaskRepository.GetByIdAsync(taskId);
|
||||
if (task == null)
|
||||
throw new BusinessException("补偿任务不存在", 404);
|
||||
throw new BusinessException("补偿任务不存在", ResultCode.NOT_FOUND);
|
||||
|
||||
if (task.Status == (int)CompensationTaskStatusEnum.Success)
|
||||
throw new BusinessException("该任务已经是成功状态,无需标记", 400);
|
||||
throw new BusinessException("该任务已经是成功状态,无需标记", ResultCode.BAD_REQUEST);
|
||||
|
||||
// 标记为 Success
|
||||
await compensationTaskRepository.Context.Updateable<CompensationTask>()
|
||||
@ -184,7 +184,7 @@ public class CompensationManageService(
|
||||
.FirstAsync();
|
||||
|
||||
if (result == null)
|
||||
throw new BusinessException("补偿任务不存在", 404);
|
||||
throw new BusinessException("补偿任务不存在", ResultCode.NOT_FOUND);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user