refactor: 统一系统枚举接口入参与返回体
This commit is contained in:
@@ -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<SysEnum> list() {
|
||||
return sysEnumService.list();
|
||||
public RequestResult<List<SysEnum>> list() {
|
||||
return RequestResult.success(sysEnumService.list());
|
||||
}
|
||||
|
||||
@Operation(summary = "根据模块和类型查询系统枚举")
|
||||
@GetMapping("/query")
|
||||
public List<SysEnum> queryByCatalogAndType(@RequestParam String catalog, @RequestParam String type) {
|
||||
return sysEnumService.listByCatalogAndType(catalog, type);
|
||||
@PostMapping("/query")
|
||||
public RequestResult<List<SysEnum>> 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<Boolean> 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<Boolean> deleteById(@PathVariable Long id) {
|
||||
return RequestResult.success(sysEnumService.removeById(id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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<SysEnum> {
|
||||
|
||||
List<SysEnum> listByCatalogAndType(String catalog, String type);
|
||||
List<SysEnum> listByCatalogAndType(SysEnumQueryRequest request);
|
||||
|
||||
boolean saveOrUpdate(SysEnumSaveRequest request);
|
||||
}
|
||||
|
||||
@@ -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<SysEnumMapper, SysEnum> implements ISysEnumService {
|
||||
|
||||
@Override
|
||||
public List<SysEnum> listByCatalogAndType(String catalog, String type) {
|
||||
public List<SysEnum> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user