Files
2026-08-20 12:05:53 +08:00

63 lines
1.8 KiB
Go

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
}