feat: 增加枚举查询接口并完善基础实体版本字段

This commit is contained in:
2026-05-18 21:25:42 +08:00
parent 1c20c45b6b
commit 009be37cf6
8 changed files with 132 additions and 4 deletions

View File

@@ -2,6 +2,7 @@ package com.bruce.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import io.swagger.v3.oas.annotations.media.Schema;
import org.junit.jupiter.api.Test;
@@ -34,7 +35,6 @@ class EntityStructureTests {
assertTrue(fieldNames.contains("value"));
assertTrue(fieldNames.contains("strvalue"));
assertTrue(fieldNames.contains("sort"));
assertTrue(fieldNames.contains("version"));
assertTrue(fieldNames.contains("remark"));
assertTrue(BaseEntity.class.isAssignableFrom(SysEnum.class));
}
@@ -51,4 +51,15 @@ class EntityStructureTests {
assertNotNull(createTimeSchema);
assertNotNull(catalogSchema);
}
@Test
void versionShouldBeDefinedOnBaseEntityOnly() throws NoSuchFieldException {
Field versionField = BaseEntity.class.getDeclaredField("version");
Version version = versionField.getAnnotation(Version.class);
assertNotNull(versionField);
assertNotNull(version);
assertTrue(Arrays.stream(SysEnum.class.getDeclaredFields()).noneMatch(field -> "version".equals(field.getName())));
assertTrue(Arrays.stream(SysAttachment.class.getDeclaredFields()).noneMatch(field -> "version".equals(field.getName())));
}
}

View File

@@ -0,0 +1,37 @@
package com.bruce.common.enumconfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bruce.common.controller.SysEnumController;
import com.bruce.common.entity.SysEnum;
import com.bruce.common.mapper.SysEnumMapper;
import com.bruce.common.service.ISysEnumService;
import com.bruce.common.service.impl.SysEnumServiceImpl;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Method;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
class SysEnumComponentStructureTests {
@Test
void sysEnumComponentsShouldReuseMybatisPlusBaseTypes() {
assertTrue(BaseMapper.class.isAssignableFrom(SysEnumMapper.class));
assertTrue(IService.class.isAssignableFrom(ISysEnumService.class));
assertTrue(ServiceImpl.class.isAssignableFrom(SysEnumServiceImpl.class));
assertTrue(ISysEnumService.class.isAssignableFrom(SysEnumServiceImpl.class));
assertTrue(SysEnum.class.isAssignableFrom(SysEnum.class));
}
@Test
void sysEnumShouldExposeQueryMethodForCatalogAndType() throws NoSuchMethodException {
Method serviceMethod = ISysEnumService.class.getMethod("listByCatalogAndType", String.class, String.class);
Method controllerMethod = SysEnumController.class.getMethod("queryByCatalogAndType", String.class, String.class);
assertNotNull(serviceMethod);
assertNotNull(controllerMethod);
}
}