diff --git a/src/main/java/com/bruce/common/controller/SysEnumController.java b/src/main/java/com/bruce/common/controller/SysEnumController.java index f3de67a..84ff8e4 100644 --- a/src/main/java/com/bruce/common/controller/SysEnumController.java +++ b/src/main/java/com/bruce/common/controller/SysEnumController.java @@ -1,6 +1,9 @@ package com.bruce.common.controller; -import com.bruce.common.entity.SysEnum; +import com.bruce.common.domain.entity.SysEnum; +import com.bruce.common.domain.model.RequestResult; +import com.bruce.common.dto.request.SysEnumQueryRequest; +import com.bruce.common.dto.request.SysEnumSaveRequest; import com.bruce.common.service.ISysEnumService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -11,7 +14,6 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -26,25 +28,25 @@ public class SysEnumController { @Operation(summary = "查询全部系统枚举") @GetMapping - public List list() { - return sysEnumService.list(); + public RequestResult> list() { + return RequestResult.success(sysEnumService.list()); } @Operation(summary = "根据模块和类型查询系统枚举") - @GetMapping("/query") - public List queryByCatalogAndType(@RequestParam String catalog, @RequestParam String type) { - return sysEnumService.listByCatalogAndType(catalog, type); + @PostMapping("/query") + public RequestResult> queryByCatalogAndType(@RequestBody SysEnumQueryRequest request) { + return RequestResult.success(sysEnumService.listByCatalogAndType(request)); } @Operation(summary = "新增或修改系统枚举") @PostMapping - public boolean saveOrUpdate(@RequestBody SysEnum sysEnum) { - return sysEnumService.saveOrUpdate(sysEnum); + public RequestResult saveOrUpdate(@RequestBody SysEnumSaveRequest request) { + return RequestResult.success(sysEnumService.saveOrUpdate(request)); } @Operation(summary = "删除系统枚举") @DeleteMapping("/{id}") - public boolean deleteById(@PathVariable Long id) { - return sysEnumService.removeById(id); + public RequestResult deleteById(@PathVariable Long id) { + return RequestResult.success(sysEnumService.removeById(id)); } } diff --git a/src/main/java/com/bruce/common/dto/request/SysEnumQueryRequest.java b/src/main/java/com/bruce/common/dto/request/SysEnumQueryRequest.java new file mode 100644 index 0000000..d838c6f --- /dev/null +++ b/src/main/java/com/bruce/common/dto/request/SysEnumQueryRequest.java @@ -0,0 +1,15 @@ +package com.bruce.common.dto.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "系统枚举查询请求") +public class SysEnumQueryRequest { + + @Schema(description = "模块目录") + private String catalog; + + @Schema(description = "枚举类型") + private String type; +} diff --git a/src/main/java/com/bruce/common/dto/request/SysEnumSaveRequest.java b/src/main/java/com/bruce/common/dto/request/SysEnumSaveRequest.java new file mode 100644 index 0000000..058d3f5 --- /dev/null +++ b/src/main/java/com/bruce/common/dto/request/SysEnumSaveRequest.java @@ -0,0 +1,33 @@ +package com.bruce.common.dto.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "系统枚举保存请求") +public class SysEnumSaveRequest { + + @Schema(description = "主键ID") + private Long id; + + @Schema(description = "模块目录") + private String catalog; + + @Schema(description = "枚举类型") + private String type; + + @Schema(description = "枚举名称") + private String name; + + @Schema(description = "整型值") + private Integer value; + + @Schema(description = "字符串值") + private String strvalue; + + @Schema(description = "排序") + private Integer sort; + + @Schema(description = "备注") + private String remark; +} diff --git a/src/main/java/com/bruce/common/service/ISysEnumService.java b/src/main/java/com/bruce/common/service/ISysEnumService.java index 8d6c035..52de7f7 100644 --- a/src/main/java/com/bruce/common/service/ISysEnumService.java +++ b/src/main/java/com/bruce/common/service/ISysEnumService.java @@ -1,11 +1,15 @@ package com.bruce.common.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.bruce.common.entity.SysEnum; +import com.bruce.common.domain.entity.SysEnum; +import com.bruce.common.dto.request.SysEnumQueryRequest; +import com.bruce.common.dto.request.SysEnumSaveRequest; import java.util.List; public interface ISysEnumService extends IService { - List listByCatalogAndType(String catalog, String type); + List listByCatalogAndType(SysEnumQueryRequest request); + + boolean saveOrUpdate(SysEnumSaveRequest request); } diff --git a/src/main/java/com/bruce/common/service/impl/SysEnumServiceImpl.java b/src/main/java/com/bruce/common/service/impl/SysEnumServiceImpl.java index bb60800..170ad17 100644 --- a/src/main/java/com/bruce/common/service/impl/SysEnumServiceImpl.java +++ b/src/main/java/com/bruce/common/service/impl/SysEnumServiceImpl.java @@ -1,10 +1,13 @@ package com.bruce.common.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.bruce.common.entity.SysEnum; +import com.bruce.common.domain.entity.SysEnum; +import com.bruce.common.dto.request.SysEnumQueryRequest; +import com.bruce.common.dto.request.SysEnumSaveRequest; import com.bruce.common.mapper.SysEnumMapper; import com.bruce.common.service.ISysEnumService; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.util.List; @@ -12,11 +15,32 @@ import java.util.List; public class SysEnumServiceImpl extends ServiceImpl implements ISysEnumService { @Override - public List listByCatalogAndType(String catalog, String type) { + public List listByCatalogAndType(SysEnumQueryRequest request) { + if (request == null) { + throw new IllegalArgumentException("查询请求不能为空"); + } return lambdaQuery() - .eq(SysEnum::getCatalog, catalog) - .eq(SysEnum::getType, type) + .eq(StringUtils.hasText(request.getCatalog()), SysEnum::getCatalog, request.getCatalog()) + .eq(StringUtils.hasText(request.getType()), SysEnum::getType, request.getType()) .orderByAsc(SysEnum::getSort) .list(); } + + @Override + public boolean saveOrUpdate(SysEnumSaveRequest request) { + if (request == null) { + throw new IllegalArgumentException("保存请求不能为空"); + } + + SysEnum sysEnum = new SysEnum(); + sysEnum.setId(request.getId()); + sysEnum.setCatalog(request.getCatalog()); + sysEnum.setType(request.getType()); + sysEnum.setName(request.getName()); + sysEnum.setValue(request.getValue()); + sysEnum.setStrvalue(request.getStrvalue()); + sysEnum.setSort(request.getSort()); + sysEnum.setRemark(request.getRemark()); + return super.saveOrUpdate(sysEnum); + } } diff --git a/src/test/java/com/bruce/common/enumconfig/SysEnumComponentStructureTests.java b/src/test/java/com/bruce/common/enumconfig/SysEnumComponentStructureTests.java index 1bfa244..b98ff85 100644 --- a/src/test/java/com/bruce/common/enumconfig/SysEnumComponentStructureTests.java +++ b/src/test/java/com/bruce/common/enumconfig/SysEnumComponentStructureTests.java @@ -4,14 +4,19 @@ 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.domain.entity.SysEnum; +import com.bruce.common.domain.model.RequestResult; +import com.bruce.common.dto.request.SysEnumQueryRequest; +import com.bruce.common.dto.request.SysEnumSaveRequest; 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 java.util.List; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -28,20 +33,30 @@ class SysEnumComponentStructureTests { @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); + Method serviceMethod = ISysEnumService.class.getMethod("listByCatalogAndType", SysEnumQueryRequest.class); + Method controllerMethod = SysEnumController.class.getMethod("queryByCatalogAndType", SysEnumQueryRequest.class); assertNotNull(serviceMethod); assertNotNull(controllerMethod); + assertEquals(List.class, serviceMethod.getReturnType()); + assertEquals(RequestResult.class, controllerMethod.getReturnType()); } @Test void sysEnumShouldExposeSaveOrUpdateAndDeleteInterfaces() throws NoSuchMethodException { - Method saveOrUpdateMethod = SysEnumController.class.getMethod("saveOrUpdate", SysEnum.class); + Method saveOrUpdateMethod = ISysEnumService.class.getMethod("saveOrUpdate", SysEnumSaveRequest.class); + Method controllerSaveOrUpdateMethod = SysEnumController.class.getMethod("saveOrUpdate", SysEnumSaveRequest.class); Method deleteMethod = SysEnumController.class.getMethod("deleteById", Long.class); + Method listMethod = SysEnumController.class.getMethod("list"); assertNotNull(saveOrUpdateMethod); + assertNotNull(controllerSaveOrUpdateMethod); assertNotNull(deleteMethod); + assertNotNull(listMethod); + assertEquals(boolean.class, saveOrUpdateMethod.getReturnType()); + assertEquals(RequestResult.class, controllerSaveOrUpdateMethod.getReturnType()); + assertEquals(RequestResult.class, deleteMethod.getReturnType()); + assertEquals(RequestResult.class, listMethod.getReturnType()); } @Test