feat: 增加枚举查询接口并完善基础实体版本字段
This commit is contained in:
@@ -0,0 +1,36 @@
|
|||||||
|
package com.bruce.common.controller;
|
||||||
|
|
||||||
|
import com.bruce.common.entity.SysEnum;
|
||||||
|
import com.bruce.common.service.ISysEnumService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Tag(name = "系统枚举管理")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/sys-enums")
|
||||||
|
public class SysEnumController {
|
||||||
|
|
||||||
|
private final ISysEnumService sysEnumService;
|
||||||
|
|
||||||
|
public SysEnumController(ISysEnumService sysEnumService) {
|
||||||
|
this.sysEnumService = sysEnumService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "查询全部系统枚举")
|
||||||
|
@GetMapping
|
||||||
|
public List<SysEnum> list() {
|
||||||
|
return sysEnumService.list();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "根据模块和类型查询系统枚举")
|
||||||
|
@GetMapping("/query")
|
||||||
|
public List<SysEnum> queryByCatalogAndType(@RequestParam String catalog, @RequestParam String type) {
|
||||||
|
return sysEnumService.listByCatalogAndType(catalog, type);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.bruce.common.entity;
|
|||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.Version;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -35,4 +36,8 @@ public class BaseEntity {
|
|||||||
@TableField(value = "update_time")
|
@TableField(value = "update_time")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
|
@Schema(description = "版本")
|
||||||
|
@Version
|
||||||
|
private Integer version;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,9 +31,6 @@ public class SysEnum extends BaseEntity {
|
|||||||
@Schema(description = "排序")
|
@Schema(description = "排序")
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|
||||||
@Schema(description = "版本")
|
|
||||||
private Integer version;
|
|
||||||
|
|
||||||
@Schema(description = "备注")
|
@Schema(description = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
}
|
}
|
||||||
|
|||||||
9
src/main/java/com/bruce/common/mapper/SysEnumMapper.java
Normal file
9
src/main/java/com/bruce/common/mapper/SysEnumMapper.java
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package com.bruce.common.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.bruce.common.entity.SysEnum;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface SysEnumMapper extends BaseMapper<SysEnum> {
|
||||||
|
}
|
||||||
11
src/main/java/com/bruce/common/service/ISysEnumService.java
Normal file
11
src/main/java/com/bruce/common/service/ISysEnumService.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package com.bruce.common.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.bruce.common.entity.SysEnum;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface ISysEnumService extends IService<SysEnum> {
|
||||||
|
|
||||||
|
List<SysEnum> listByCatalogAndType(String catalog, String type);
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.bruce.common.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.bruce.common.entity.SysEnum;
|
||||||
|
import com.bruce.common.mapper.SysEnumMapper;
|
||||||
|
import com.bruce.common.service.ISysEnumService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class SysEnumServiceImpl extends ServiceImpl<SysEnumMapper, SysEnum> implements ISysEnumService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysEnum> listByCatalogAndType(String catalog, String type) {
|
||||||
|
return lambdaQuery()
|
||||||
|
.eq(SysEnum::getCatalog, catalog)
|
||||||
|
.eq(SysEnum::getType, type)
|
||||||
|
.orderByAsc(SysEnum::getSort)
|
||||||
|
.list();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package com.bruce.common.entity;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.Version;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
@@ -34,7 +35,6 @@ class EntityStructureTests {
|
|||||||
assertTrue(fieldNames.contains("value"));
|
assertTrue(fieldNames.contains("value"));
|
||||||
assertTrue(fieldNames.contains("strvalue"));
|
assertTrue(fieldNames.contains("strvalue"));
|
||||||
assertTrue(fieldNames.contains("sort"));
|
assertTrue(fieldNames.contains("sort"));
|
||||||
assertTrue(fieldNames.contains("version"));
|
|
||||||
assertTrue(fieldNames.contains("remark"));
|
assertTrue(fieldNames.contains("remark"));
|
||||||
assertTrue(BaseEntity.class.isAssignableFrom(SysEnum.class));
|
assertTrue(BaseEntity.class.isAssignableFrom(SysEnum.class));
|
||||||
}
|
}
|
||||||
@@ -51,4 +51,15 @@ class EntityStructureTests {
|
|||||||
assertNotNull(createTimeSchema);
|
assertNotNull(createTimeSchema);
|
||||||
assertNotNull(catalogSchema);
|
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())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user