diff --git a/controller/error_memory_controller.go b/controller/error_memory_controller.go new file mode 100644 index 0000000..a6f077e --- /dev/null +++ b/controller/error_memory_controller.go @@ -0,0 +1,25 @@ +package controller + +import ( + "context" + "model-gateway/model/dto" + "model-gateway/service" + + "gitea.redpowerfuture.com/red-future/common/beans" +) + +// ErrorMemory 错误重试记忆控制器 +var ErrorMemory = new(errorMemory) + +type errorMemory struct{} + +// List 错误重试记忆列表 +func (c *errorMemory) List(ctx context.Context, req *dto.GetErrorMemoryListReq) (res *dto.GetErrorMemoryListRes, err error) { + return service.ErrorMemory.List(ctx, req) +} + +// Delete 删除错误重试记忆 +func (c *errorMemory) Delete(ctx context.Context, req *dto.DeleteErrorMemoryReq) (res *beans.ResponseEmpty, err error) { + err = service.ErrorMemory.Delete(ctx, req) + return +} diff --git a/main.go b/main.go index 5245ee6..f746aa8 100644 --- a/main.go +++ b/main.go @@ -36,6 +36,7 @@ func main() { http.RouteRegister([]interface{}{ controller.ModelCall, controller.ModelManage, + controller.ErrorMemory, }) gmq.GmqRegister(public.GmqMsgPluginsName, &mq.NatsConn{ diff --git a/service/error_memory_service.go b/service/error_memory_service.go index 8f74ff7..750fd06 100644 --- a/service/error_memory_service.go +++ b/service/error_memory_service.go @@ -4,6 +4,7 @@ import ( "context" "model-gateway/dao" + "model-gateway/model/dto" "model-gateway/model/entity" "github.com/gogf/gf/v2/frame/g" @@ -66,3 +67,41 @@ func analyzeOnce(key string, fn func() (bool, string)) (bool, string) { vals := v.([]any) return vals[0].(bool), vals[1].(string) } + +var ErrorMemory = &errorMemoryService{} + +type errorMemoryService struct{} + +// List 错误重试记忆列表 +func (s *errorMemoryService) List(ctx context.Context, req *dto.GetErrorMemoryListReq) (res *dto.GetErrorMemoryListRes, err error) { + page, size := 1, 20 + if req.Page != nil && req.Page.PageNum > 0 { + page = int(req.Page.PageNum) + } + if req.Page != nil && req.Page.PageSize > 0 { + size = int(req.Page.PageSize) + } + list, total, err := dao.ErrorMemory.List(ctx, page, size) + if err != nil { + return nil, err + } + res = &dto.GetErrorMemoryListRes{Total: total, List: make([]dto.ErrorMemoryItem, 0, len(list))} + for _, m := range list { + res.List = append(res.List, dto.ErrorMemoryItem{ + Id: m.Id, + MemoryKey: m.MemoryKey, + Upstream: m.Upstream, + ErrorCode: m.ErrorCode, + MsgFingerprint: m.MsgFingerprint, + Retryable: m.Retryable, + Reason: m.Reason, + AnalyzedBy: m.AnalyzedBy, + }) + } + return res, nil +} + +// Delete 删除错误重试记忆(手动纠错永久记忆) +func (s *errorMemoryService) Delete(ctx context.Context, req *dto.DeleteErrorMemoryReq) (err error) { + return dao.ErrorMemory.Delete(ctx, req.Id) +}