logrestorelistlogic.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Code scaffolded by goctl. Safe to edit.
  2. // goctl 1.10.2
  3. package systemlog
  4. import (
  5. "context"
  6. "udeServer/internal/apierr"
  7. "udeServer/internal/audit"
  8. "udeServer/internal/log"
  9. udeModel "udeServer/internal/model"
  10. "udeServer/internal/svc"
  11. "udeServer/internal/types"
  12. "github.com/zeromicro/go-zero/core/logx"
  13. )
  14. type LogRestoreListLogic struct {
  15. logx.Logger
  16. ctx context.Context
  17. svcCtx *svc.ServiceContext
  18. }
  19. // 恢复记录列表
  20. func NewLogRestoreListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *LogRestoreListLogic {
  21. return &LogRestoreListLogic{
  22. Logger: logx.WithContext(ctx),
  23. ctx: ctx,
  24. svcCtx: svcCtx,
  25. }
  26. }
  27. // LogRestoreList pages the restore records with optional filters.
  28. func (l *LogRestoreListLogic) LogRestoreList(req *types.LogRestoreListReq) (*types.LogRestoreListResp, error) {
  29. page, pageSize := normalizePage(req.Page, req.PageSize)
  30. f := udeModel.LogRestoreFilter{
  31. RestoreMessage: req.RestoreMessage,
  32. }
  33. // 恢复状态:1成功/2失败/3恢复中,非法取值视为不传(与 sdf 行为一致)
  34. switch req.RestoreStatus {
  35. case audit.RestoreSuccess, audit.RestoreFail, audit.RestoreProcessing:
  36. f.RestoreStatus = req.RestoreStatus
  37. }
  38. list, total, err := l.svcCtx.LogRestoreRecordModel.FindPage(l.ctx, page, pageSize, f)
  39. if err != nil {
  40. log.RecordError(l.ctx, err)
  41. return nil, apierr.New(500, "查询恢复记录列表失败")
  42. }
  43. logRestores := make([]types.LogRestore, len(list))
  44. for i := range list {
  45. logRestores[i] = ConvertToLogRestore(&list[i])
  46. }
  47. return &types.LogRestoreListResp{
  48. Total: total,
  49. LogRestores: logRestores,
  50. }, nil
  51. }