Skip to content

Commit b3bf831

Browse files
tpfzCoda-bot
andcommitted
feat: [Coda] fix MockEvalTargetOutput method to handle SourceTargetID correctly
(LogID: 202509161632560100911101346893E51) Co-Authored-By: Coda <[email protected]>
1 parent dd566f2 commit b3bf831

File tree

5 files changed

+58
-2
lines changed

5 files changed

+58
-2
lines changed

backend/modules/evaluation/application/eval_target_app.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,8 +403,8 @@ func (e EvalTargetApplicationImpl) MockEvalTargetOutput(ctx context.Context, req
403403
return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg("request is nil"))
404404
}
405405

406-
// 获取评测目标信息
407-
evalTarget, err := e.evalTargetService.GetEvalTargetVersionByTarget(ctx, request.WorkspaceID, request.EvalTargetID, request.EvalTargetVersion, false)
406+
// 获取评测目标信息,request.EvalTargetID实际上为SourceTargetID
407+
evalTarget, err := e.evalTargetService.GetEvalTargetVersionBySourceTarget(ctx, request.WorkspaceID, strconv.FormatInt(request.EvalTargetID, 10), request.EvalTargetVersion, false)
408408
if err != nil {
409409
return nil, err
410410
}

backend/modules/evaluation/domain/repo/target.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type IEvalTargetRepo interface {
1515
GetEvalTarget(ctx context.Context, targetID int64) (do *entity.EvalTarget, err error)
1616
GetEvalTargetVersion(ctx context.Context, spaceID, versionID int64) (do *entity.EvalTarget, err error)
1717
GetEvalTargetVersionByTarget(ctx context.Context, spaceID int64, targetID int64, sourceTargetVersion string) (do *entity.EvalTarget, err error)
18+
GetEvalTargetVersionBySourceTarget(ctx context.Context, spaceID int64, sourceTargetID string, sourceTargetVersion string) (do *entity.EvalTarget, err error)
1819
BatchGetEvalTargetBySource(ctx context.Context, param *BatchGetEvalTargetBySourceParam) (dos []*entity.EvalTarget, err error)
1920
BatchGetEvalTargetVersion(ctx context.Context, spaceID int64, versionIDs []int64) (dos []*entity.EvalTarget, err error)
2021

backend/modules/evaluation/domain/service/target.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ type IEvalTargetService interface {
1616
GetEvalTargetVersion(ctx context.Context, spaceID int64, versionID int64, needSourceInfo bool) (do *entity.EvalTarget, err error)
1717
GetEvalTargetVersionBySource(ctx context.Context, spaceID int64, targetID int64, sourceVersion string, needSourceInfo bool) (do *entity.EvalTarget, err error)
1818
GetEvalTargetVersionByTarget(ctx context.Context, spaceID int64, targetID int64, sourceTargetVersion string, needSourceInfo bool) (do *entity.EvalTarget, err error)
19+
GetEvalTargetVersionBySourceTarget(ctx context.Context, spaceID int64, sourceTargetID string, sourceTargetVersion string, needSourceInfo bool) (do *entity.EvalTarget, err error)
1920
BatchGetEvalTargetBySource(ctx context.Context, param *entity.BatchGetEvalTargetBySourceParam) (dos []*entity.EvalTarget, err error)
2021
BatchGetEvalTargetVersion(ctx context.Context, spaceID int64, versionIDs []int64, needSourceInfo bool) (dos []*entity.EvalTarget, err error)
2122

backend/modules/evaluation/domain/service/target_impl.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,23 @@ func (e *EvalTargetServiceImpl) GetEvalTargetVersion(ctx context.Context, spaceI
8787
return do, nil
8888
}
8989

90+
func (e *EvalTargetServiceImpl) GetEvalTargetVersionBySourceTarget(ctx context.Context, spaceID int64, sourceTargetID string, sourceTargetVersion string, needSourceInfo bool) (do *entity.EvalTarget, err error) {
91+
do, err = e.evalTargetRepo.GetEvalTargetVersionBySourceTarget(ctx, spaceID, sourceTargetID, sourceTargetVersion)
92+
if err != nil {
93+
return nil, err
94+
}
95+
// 包装source info信息
96+
if needSourceInfo {
97+
for _, op := range e.typedOperators {
98+
err = op.PackSourceVersionInfo(ctx, spaceID, []*entity.EvalTarget{do})
99+
if err != nil {
100+
return nil, err
101+
}
102+
}
103+
}
104+
return do, nil
105+
}
106+
90107
func (e *EvalTargetServiceImpl) GetEvalTargetVersionBySource(ctx context.Context, spaceID int64, targetID int64, sourceVersion string, needSourceInfo bool) (do *entity.EvalTarget, err error) {
91108
// 根据spaceID、targetID和sourceVersion查询版本
92109
versions, err := e.evalTargetRepo.BatchGetEvalTargetBySource(ctx, &repo.BatchGetEvalTargetBySourceParam{
@@ -133,6 +150,7 @@ func (e *EvalTargetServiceImpl) GetEvalTargetVersionByTarget(ctx context.Context
133150
return do, nil
134151
}
135152

153+
136154
func (e *EvalTargetServiceImpl) BatchGetEvalTargetBySource(ctx context.Context, param *entity.BatchGetEvalTargetBySourceParam) (dos []*entity.EvalTarget, err error) {
137155
return e.evalTargetRepo.BatchGetEvalTargetBySource(ctx, &repo.BatchGetEvalTargetBySourceParam{
138156
SpaceID: param.SpaceID,

backend/modules/evaluation/infra/repo/target/eval_target_repo_impl.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,41 @@ func (e *EvalTargetRepoImpl) GetEvalTargetVersion(ctx context.Context, spaceID,
164164
return targetDO, nil
165165
}
166166

167+
func (e *EvalTargetRepoImpl) GetEvalTargetVersionBySourceTarget(ctx context.Context, spaceID int64, sourceTargetID string, sourceTargetVersion string) (targetDO *entity.EvalTarget, err error) {
168+
var opts []db.Option
169+
170+
// 第一步:根据sourceTargetID查找target,获取targetID
171+
targetPO, err := e.evalTargetDao.GetEvalTargetBySourceID(ctx, spaceID, sourceTargetID, int32(entity.EvalTargetTypeLoopPrompt), opts...)
172+
if err != nil {
173+
return nil, err
174+
}
175+
if targetPO == nil {
176+
return nil, nil // 没有找到对应的target
177+
}
178+
179+
// 第二步:根据targetID和sourceTargetVersion查找版本信息
180+
var versionOpts []db.Option
181+
if e.lwt.CheckWriteFlagByID(ctx, platestwrite.ResourceTypeTargetVersion, targetPO.ID) {
182+
versionOpts = append(versionOpts, db.WithMaster())
183+
logs.CtxInfo(ctx, "GetEvalTargetVersionBySourceTarget CheckWriteFlagByID true")
184+
}
185+
186+
versionPO, err := e.evalTargetVersionDao.GetEvalTargetVersionByTarget(ctx, spaceID, targetPO.ID, sourceTargetVersion, versionOpts...)
187+
if err != nil {
188+
return nil, err
189+
}
190+
if versionPO == nil {
191+
return nil, nil // 没有找到对应的版本
192+
}
193+
194+
// 转换为DO对象
195+
targetDO = convertor.EvalTargetPO2DO(targetPO)
196+
versionDO := convertor.EvalTargetVersionPO2DO(versionPO, targetDO.EvalTargetType)
197+
targetDO.EvalTargetVersion = versionDO
198+
199+
return targetDO, nil
200+
}
201+
167202
func (e *EvalTargetRepoImpl) BatchGetEvalTargetBySource(ctx context.Context, param *repo.BatchGetEvalTargetBySourceParam) (dos []*entity.EvalTarget, err error) {
168203
targets, err := e.evalTargetDao.BatchGetEvalTargetBySource(ctx, param.SpaceID, param.SourceTargetID, int32(param.TargetType))
169204
if err != nil {
@@ -208,6 +243,7 @@ func (e *EvalTargetRepoImpl) GetEvalTargetVersionByTarget(ctx context.Context, s
208243
return targetDO, nil
209244
}
210245

246+
211247
func (e *EvalTargetRepoImpl) BatchGetEvalTargetVersion(ctx context.Context, spaceID int64, versionIDs []int64) (dos []*entity.EvalTarget, err error) {
212248
versions, err := e.evalTargetVersionDao.BatchGetEvalTargetVersion(ctx, spaceID, versionIDs)
213249
if err != nil {

0 commit comments

Comments
 (0)