Skip to content

[Improvement-18249][DAO] Route ProjectMapper and WorkflowDefinitionMapper access through repository Dao#18250

Open
ruanwenjun wants to merge 1 commit into
apache:devfrom
ruanwenjun:dao/workflow-definition
Open

[Improvement-18249][DAO] Route ProjectMapper and WorkflowDefinitionMapper access through repository Dao#18250
ruanwenjun wants to merge 1 commit into
apache:devfrom
ruanwenjun:dao/workflow-definition

Conversation

@ruanwenjun
Copy link
Copy Markdown
Member

Was this PR generated or assisted by AI?

YES, ops 4.7

Purpose of the pull request

Tracking issue: #18249

Add the remaining query methods on ProjectDao and WorkflowDefinitionDao, and replace every direct ProjectMapper / WorkflowDefinitionMapper reference in dolphinscheduler-api with the corresponding Dao, so Mapper usage stays inside dolphinscheduler-dao.repository as documented in dolphinscheduler-dao/CLAUDE.md.

Notes:

  • WorkflowDefinitionDao#queryByCode returns Optional (Mapper returned a bare nullable WorkflowDefinition), so affected ServiceImpl call sites use .orElse(null) for behavior-preserving substitution. Test classes were migrated to mock the Dao instead of the Mapper; queryByCode stubs are wrapped with Optional.of / Optional.empty.
  • BaseDao#deleteById and BaseDao#updateById return boolean where the Mapper returned int; affected call sites in ProjectServiceImpl and ProjectServiceTest were adapted accordingly. selectBatchIds was replaced with the equivalent IDao#queryByIds.
  • ProcessServiceImpl in dolphinscheduler-service still depends on WorkflowDefinitionMapper and is out of scope for this commit; TaskDefinitionServiceImplTest keeps both a Dao and a Mapper mock to serve the two @Injectmocks targets it exercises.

No production behavior changes; the Mapper interfaces themselves are untouched.

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.

(or)

This pull request is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(or)

Pull Request Notice

Pull Request Notice

If your pull request contains incompatible change, you should also add it to docs/docs/en/guide/upgrade/incompatible.md

…pper access through repository Dao

Tracking issue: apache#18249

Add the remaining query methods on ProjectDao and WorkflowDefinitionDao,
and replace every direct ProjectMapper / WorkflowDefinitionMapper reference
in dolphinscheduler-api with the corresponding Dao, so Mapper usage stays
inside dolphinscheduler-dao.repository as documented in
dolphinscheduler-dao/CLAUDE.md.

Notes:
- WorkflowDefinitionDao#queryByCode returns Optional<WorkflowDefinition>
  (Mapper returned a bare nullable WorkflowDefinition), so affected
  ServiceImpl call sites use .orElse(null) for behavior-preserving
  substitution. Test classes were migrated to mock the Dao instead of the
  Mapper; queryByCode stubs are wrapped with Optional.of / Optional.empty.
- BaseDao#deleteById and BaseDao#updateById return boolean where the
  Mapper returned int; affected call sites in ProjectServiceImpl,
  TaskDefinitionServiceImpl and their tests were adapted accordingly.
  selectBatchIds was replaced with the equivalent IDao#queryByIds.
- ProcessServiceImpl in dolphinscheduler-service still depends on
  WorkflowDefinitionMapper and is out of scope for this commit;
  TaskDefinitionServiceImplTest keeps both a Dao and a Mapper mock to
  serve the two @Injectmocks targets it exercises.

No production behavior changes; the Mapper interfaces themselves are
untouched.
@ruanwenjun ruanwenjun force-pushed the dao/workflow-definition branch from 22db01d to 0d2aa03 Compare May 12, 2026 12:39
Arrays.stream(projectIds.split(",")).distinct().forEach(projectId -> {
// 3. check if project is existed
Project project = this.projectMapper.queryDetailById(Integer.parseInt(projectId));
Project project = this.projectDao.queryDetailById(Integer.parseInt(projectId));
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 60%)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@ruanwenjun ruanwenjun added the improvement make more easy to user or prompt friendly label May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend improvement make more easy to user or prompt friendly refactor test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants