ruanwenjun opened a new pull request, #18230:
URL: https://github.com/apache/dolphinscheduler/pull/18230

   <!--Thanks very much for contributing to Apache DolphinScheduler, we are 
happy that you want to help us improve DolphinScheduler! -->
   
   ## Was this PR generated or assisted by AI?
   
   YES, ops 4.7
   
   ## Purpose of the pull request
   
   <!--(For example: This pull request adds checkstyle plugin).-->
   
   ## Brief change log
   
   Batch-migrate seven Map<String, Object> methods across five small services 
to typed return / void + ServiceException, with cascading updates to the 
controllers, PythonGateway and unit tests:
   
   TenantService
   - queryByTenantCode(String): Tenant (nullable; only consumed by 
PythonGateway)
   
   TaskGroupQueueService
   - queryTasksByGroupId(...): PageInfo<TaskGroupQueue>
   
   ProjectWorkerGroupRelationService
   - queryAssignedWorkerGroupsByProject(User, Long): List<ProjectWorkerGroup>
   
   UiPluginService
   - queryUiPluginsByType(PluginType): List<PluginDefine>
   - queryUiPluginDetailById(int): PluginDefine
   
   EnvironmentWorkerGroupRelationService
   - queryEnvironmentWorkerGroupRelation(Long): 
List<EnvironmentWorkerGroupRelation>
   - queryAllEnvironmentWorkerGroupRelationList(): 
List<EnvironmentWorkerGroupRelation>
   
   HTTP wire format is preserved:
   * Standard endpoints (TaskGroup, UiPlugin) now wrap the typed return in 
Result.success(data); ApiExceptionHandler converts ServiceException to the same 
Result(code, msg) shape that BaseController.returnDataList(map) produced.
   * The non-standard ProjectWorkerGroupController.queryAssignedWorkerGroups 
endpoint still returns a raw Map<String, Object>; the controller now builds the 
{STATUS, MSG, DATA_LIST} map from the typed service return so the JSON body 
remains byte-for-byte identical on success. Permission failures translate the 
legacy hasProjectAndPerm(Map) status into a ServiceException, so the error path 
now goes through ApiExceptionHandler (Result shape) instead of the raw Map.
   
   Py4J boundary is preserved: PythonGateway.queryTenantByCode now returns the 
Tenant directly from the service (still null on miss, matching the previous 
behavior where DATA_LIST was unset).
   
   ExecutorService.forceStartTaskInstance is intentionally deferred — its only 
caller is TaskGroupServiceImpl.forceStartTask, which itself returns Map<String, 
Object> and is part of the larger TaskGroupService migration. Migrating it now 
would require a temporary Map-rebuild in TaskGroupServiceImpl that the next PR 
would immediately undo.
   
   Part of the migration series tracked by #18224.
   
   ## Verify this pull request
   
   <!--*(Please pick either of the following options)*-->
   
   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:
   
   <!--*(example:)*
   - *Added dolphinscheduler-dao tests for end-to-end.*
   - *Added CronUtilsTest to verify the change.*
   - *Manually verified the change by testing locally.* -->
   
   (or)
   
   ## Pull Request Notice
   [Pull Request 
Notice](https://github.com/apache/dolphinscheduler/blob/dev/docs/docs/en/contribute/join/pull-request.md)
   
   If your pull request contains incompatible change, you should also add it to 
`docs/docs/en/guide/upgrade/incompatible.md`
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to