package controller import ( "context" "rag-local/kb/model/dto" "rag-local/kb/service" ) type caseController struct{} var Case = &caseController{} func (c *caseController) Save(ctx context.Context, req *dto.SaveCaseReq) (*dto.SaveCaseRes, error) { id, err := service.CaseService.Save(ctx, req) if err != nil { return nil, err } return &dto.SaveCaseRes{Id: id}, nil } func (c *caseController) List(ctx context.Context, req *dto.ListCaseReq) (*dto.ListCaseRes, error) { list, total, err := service.CaseService.List(ctx, req.Page, req.PageSize) if err != nil { return nil, err } return &dto.ListCaseRes{ List: list, Total: total, Page: req.Page, PageSize: req.PageSize, }, nil } func (c *caseController) Detail(ctx context.Context, req *dto.GetCaseDetailReq) (*dto.GetCaseDetailRes, error) { cse, evidences, contracts, err := service.CaseService.Detail(ctx, req.Id) if err != nil { return nil, err } return &dto.GetCaseDetailRes{Case: cse, Evidences: evidences, Contracts: contracts}, nil } func (c *caseController) Delete(ctx context.Context, req *dto.DeleteCaseReq) (*dto.DeleteCaseRes, error) { if err := service.CaseService.Delete(ctx, req.Id); err != nil { return nil, err } return &dto.DeleteCaseRes{}, nil } func (c *caseController) LinkEvidence(ctx context.Context, req *dto.LinkEvidenceReq) (*dto.LinkEvidenceRes, error) { if err := service.CaseService.LinkEvidence(ctx, req.CaseId, req.EvidenceIds); err != nil { return nil, err } return &dto.LinkEvidenceRes{}, nil } func (c *caseController) UnlinkEvidence(ctx context.Context, req *dto.UnlinkEvidenceReq) (*dto.UnlinkEvidenceRes, error) { if err := service.CaseService.UnlinkEvidence(ctx, req.CaseId, req.EvidenceId); err != nil { return nil, err } return &dto.UnlinkEvidenceRes{}, nil }