feat: add enum dto APIs and batch save

This commit is contained in:
2026-05-20 23:25:30 +08:00
parent 16f9a325d7
commit 7188dd49b5
20 changed files with 571 additions and 24 deletions

View File

@@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bruce.common.controller.SysEnumController;
import com.bruce.common.domain.entity.SysEnum;
import com.bruce.common.domain.model.RequestResult;
import com.bruce.common.dto.request.SysEnumBatchSaveRequest;
import com.bruce.common.dto.request.SysEnumManageQueryRequest;
import com.bruce.common.dto.request.SysEnumQueryRequest;
import com.bruce.common.dto.request.SysEnumSaveRequest;
import com.bruce.common.dto.response.SysEnumResponse;
import com.bruce.common.mapper.SysEnumMapper;
import com.bruce.common.service.ISysEnumService;
import com.bruce.common.service.impl.SysEnumServiceImpl;
@@ -45,20 +48,56 @@ class SysEnumComponentStructureTests {
@Test
void sysEnumShouldExposeSaveOrUpdateAndDeleteInterfaces() throws NoSuchMethodException {
Method saveOrUpdateMethod = ISysEnumService.class.getMethod("saveOrUpdate", SysEnumSaveRequest.class);
Method batchSaveMethod = ISysEnumService.class.getMethod("batchSave", SysEnumBatchSaveRequest.class);
Method controllerSaveOrUpdateMethod = SysEnumController.class.getMethod("saveOrUpdate", SysEnumSaveRequest.class);
Method controllerBatchSaveMethod = SysEnumController.class.getMethod("batchSave", SysEnumBatchSaveRequest.class);
Method deleteMethod = SysEnumController.class.getMethod("deleteById", Long.class);
Method listMethod = SysEnumController.class.getMethod("list");
assertNotNull(saveOrUpdateMethod);
assertNotNull(batchSaveMethod);
assertNotNull(controllerSaveOrUpdateMethod);
assertNotNull(controllerBatchSaveMethod);
assertNotNull(deleteMethod);
assertNotNull(listMethod);
assertEquals(boolean.class, saveOrUpdateMethod.getReturnType());
assertEquals(boolean.class, batchSaveMethod.getReturnType());
assertEquals(RequestResult.class, controllerSaveOrUpdateMethod.getReturnType());
assertEquals(RequestResult.class, controllerBatchSaveMethod.getReturnType());
assertEquals(RequestResult.class, deleteMethod.getReturnType());
assertEquals(RequestResult.class, listMethod.getReturnType());
}
@Test
void sysEnumShouldExposeManagementQueryWithoutChangingCatalogTypeQuery() throws NoSuchMethodException {
Method serviceMethod = ISysEnumService.class.getMethod("listForManagement", SysEnumManageQueryRequest.class);
Method controllerMethod = SysEnumController.class.getMethod("queryForManagement", SysEnumManageQueryRequest.class);
Method catalogTypeMethod = ISysEnumService.class.getMethod("listByCatalogAndType", SysEnumQueryRequest.class);
assertNotNull(serviceMethod);
assertNotNull(controllerMethod);
assertNotNull(catalogTypeMethod);
assertEquals(List.class, serviceMethod.getReturnType());
assertEquals(RequestResult.class, controllerMethod.getReturnType());
assertEquals(List.class, catalogTypeMethod.getReturnType());
assertTrue(serviceMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
}
@Test
void sysEnumControllerShouldReturnDtoContracts() throws NoSuchMethodException {
Method listMethod = SysEnumController.class.getMethod("list");
Method manageQueryMethod = SysEnumController.class.getMethod("queryForManagement", SysEnumManageQueryRequest.class);
Method detailMethod = SysEnumController.class.getMethod("getById", Long.class);
Method serviceListMethod = ISysEnumService.class.getMethod("listResponses");
Method responseFactory = SysEnumResponse.class.getMethod("fromEntity", SysEnum.class);
assertTrue(serviceListMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
assertTrue(listMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
assertTrue(manageQueryMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
assertTrue(detailMethod.getGenericReturnType().getTypeName().contains("SysEnumResponse"));
assertEquals(SysEnumResponse.class, responseFactory.getReturnType());
}
@Test
void sysEnumShouldProvideManualInitTestEntry() throws NoSuchMethodException {
Method initMethod = SysEnumDataInitTests.class.getMethod("initDefaultEnums");