logdetaillogic.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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/log"
  8. "udeServer/internal/svc"
  9. "udeServer/internal/types"
  10. "github.com/zeromicro/go-zero/core/logx"
  11. )
  12. type LogDetailLogic struct {
  13. logx.Logger
  14. ctx context.Context
  15. svcCtx *svc.ServiceContext
  16. }
  17. // 日志详情
  18. func NewLogDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *LogDetailLogic {
  19. return &LogDetailLogic{
  20. Logger: logx.WithContext(ctx),
  21. ctx: ctx,
  22. svcCtx: svcCtx,
  23. }
  24. }
  25. // LogDetail returns one log entry by its iden.
  26. func (l *LogDetailLogic) LogDetail(req *types.SystemLogDetailReq) (*types.SystemLogDetailResp, error) {
  27. if req.Iden == "" {
  28. return nil, apierr.BadRequest("iden 不能为空")
  29. }
  30. entry, err := l.svcCtx.SystemLogModel.FindOneByIden(l.ctx, req.Iden)
  31. if err != nil {
  32. log.RecordError(l.ctx, err)
  33. return nil, apierr.New(404, "日志 iden="+req.Iden+" 不存在")
  34. }
  35. return &types.SystemLogDetailResp{
  36. SystemLog: ConvertToSystemLog(entry),
  37. }, nil
  38. }