feat: 简化DTO转化方法的创建
This commit is contained in:
5
pom.xml
5
pom.xml
@@ -96,6 +96,11 @@
|
|||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>1.18.36</version>
|
<version>1.18.36</version>
|
||||||
</path>
|
</path>
|
||||||
|
<path>
|
||||||
|
<groupId>org.hibernate</groupId>
|
||||||
|
<artifactId>hibernate-jpamodelgen</artifactId>
|
||||||
|
<version>6.6.8.Final</version>
|
||||||
|
</path>
|
||||||
<path>
|
<path>
|
||||||
<groupId>io.github.openfeign.querydsl</groupId>
|
<groupId>io.github.openfeign.querydsl</groupId>
|
||||||
<artifactId>querydsl-apt</artifactId>
|
<artifactId>querydsl-apt</artifactId>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.lanyuanxiaoyao.service.template.entity.SimpleEntity;
|
|||||||
import com.lanyuanxiaoyao.service.template.helper.ObjectHelper;
|
import com.lanyuanxiaoyao.service.template.helper.ObjectHelper;
|
||||||
import com.lanyuanxiaoyao.service.template.service.SimpleServiceSupport;
|
import com.lanyuanxiaoyao.service.template.service.SimpleServiceSupport;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.Function;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@@ -24,7 +25,7 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
|
|||||||
@Override
|
@Override
|
||||||
public GlobalResponse<Long> save(@RequestBody SAVE_ITEM item) throws Exception {
|
public GlobalResponse<Long> save(@RequestBody SAVE_ITEM item) throws Exception {
|
||||||
var mapper = saveItemMapper();
|
var mapper = saveItemMapper();
|
||||||
return GlobalResponse.responseSuccess(service.save(mapper.from(item)));
|
return GlobalResponse.responseSuccess(service.save(mapper.apply(item)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(LIST)
|
@GetMapping(LIST)
|
||||||
@@ -37,7 +38,7 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
|
|||||||
.stream()
|
.stream()
|
||||||
.map(entity -> {
|
.map(entity -> {
|
||||||
try {
|
try {
|
||||||
return mapper.from(entity);
|
return mapper.apply(entity);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -59,7 +60,7 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
|
|||||||
result.get()
|
result.get()
|
||||||
.map(entity -> {
|
.map(entity -> {
|
||||||
try {
|
try {
|
||||||
return mapper.from(entity);
|
return mapper.apply(entity);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -73,7 +74,7 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
|
|||||||
@Override
|
@Override
|
||||||
public GlobalResponse<DETAIL_ITEM> detail(@PathVariable("id") Long id) throws Exception {
|
public GlobalResponse<DETAIL_ITEM> detail(@PathVariable("id") Long id) throws Exception {
|
||||||
var mapper = detailItemMapper();
|
var mapper = detailItemMapper();
|
||||||
return GlobalResponse.responseSuccess(mapper.from(service.detailOrThrow(id)));
|
return GlobalResponse.responseSuccess(mapper.apply(service.detailOrThrow(id)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(REMOVE)
|
@GetMapping(REMOVE)
|
||||||
@@ -83,21 +84,9 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
|
|||||||
return GlobalResponse.responseSuccess();
|
return GlobalResponse.responseSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract SaveItemMapper<ENTITY, SAVE_ITEM> saveItemMapper();
|
protected abstract Function<SAVE_ITEM, ENTITY> saveItemMapper();
|
||||||
|
|
||||||
protected abstract ListItemMapper<ENTITY, LIST_ITEM> listItemMapper();
|
protected abstract Function<ENTITY, LIST_ITEM> listItemMapper();
|
||||||
|
|
||||||
protected abstract DetailItemMapper<ENTITY, DETAIL_ITEM> detailItemMapper();
|
protected abstract Function<ENTITY, DETAIL_ITEM> detailItemMapper();
|
||||||
|
|
||||||
public interface SaveItemMapper<ENTITY, SAVE_ITEM> {
|
|
||||||
ENTITY from(SAVE_ITEM item) throws Exception;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface ListItemMapper<ENTITY, LIST_ITEM> {
|
|
||||||
LIST_ITEM from(ENTITY entity) throws Exception;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface DetailItemMapper<ENTITY, DETAIL_ITEM> {
|
|
||||||
DETAIL_ITEM from(ENTITY entity) throws Exception;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.lanyuanxiaoyao.service.template.controller;
|
|||||||
import com.lanyuanxiaoyao.service.template.entity.Company;
|
import com.lanyuanxiaoyao.service.template.entity.Company;
|
||||||
import com.lanyuanxiaoyao.service.template.service.CompanyService;
|
import com.lanyuanxiaoyao.service.template.service.CompanyService;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.function.Function;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -19,7 +20,7 @@ public class CompanyController extends SimpleControllerSupport<Company, CompanyC
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected SaveItemMapper<Company, SaveItem> saveItemMapper() {
|
protected Function<SaveItem, Company> saveItemMapper() {
|
||||||
return item -> {
|
return item -> {
|
||||||
var company = new Company();
|
var company = new Company();
|
||||||
company.setId(item.getId());
|
company.setId(item.getId());
|
||||||
@@ -30,7 +31,7 @@ public class CompanyController extends SimpleControllerSupport<Company, CompanyC
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ListItemMapper<Company, ListItem> listItemMapper() {
|
protected Function<Company, ListItem> listItemMapper() {
|
||||||
return company -> new ListItem(
|
return company -> new ListItem(
|
||||||
company.getId(),
|
company.getId(),
|
||||||
company.getName(),
|
company.getName(),
|
||||||
@@ -39,7 +40,7 @@ public class CompanyController extends SimpleControllerSupport<Company, CompanyC
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected DetailItemMapper<Company, DetailItem> detailItemMapper() {
|
protected Function<Company, DetailItem> detailItemMapper() {
|
||||||
return company -> new DetailItem(
|
return company -> new DetailItem(
|
||||||
company.getId(),
|
company.getId(),
|
||||||
company.getName(),
|
company.getName(),
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.lanyuanxiaoyao.service.template.entity.Employee;
|
|||||||
import com.lanyuanxiaoyao.service.template.service.CompanyService;
|
import com.lanyuanxiaoyao.service.template.service.CompanyService;
|
||||||
import com.lanyuanxiaoyao.service.template.service.EmployeeService;
|
import com.lanyuanxiaoyao.service.template.service.EmployeeService;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.function.Function;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -23,7 +24,7 @@ public class EmployeeController extends SimpleControllerSupport<Employee, Employ
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected SaveItemMapper<Employee, SaveItem> saveItemMapper() {
|
protected Function<SaveItem, Employee> saveItemMapper() {
|
||||||
return item -> {
|
return item -> {
|
||||||
var employee = new Employee();
|
var employee = new Employee();
|
||||||
employee.setId(item.getId());
|
employee.setId(item.getId());
|
||||||
@@ -36,7 +37,7 @@ public class EmployeeController extends SimpleControllerSupport<Employee, Employ
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ListItemMapper<Employee, ListItem> listItemMapper() {
|
protected Function<Employee, ListItem> listItemMapper() {
|
||||||
return employee -> new ListItem(
|
return employee -> new ListItem(
|
||||||
employee.getId(),
|
employee.getId(),
|
||||||
employee.getName(),
|
employee.getName(),
|
||||||
@@ -46,7 +47,7 @@ public class EmployeeController extends SimpleControllerSupport<Employee, Employ
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected DetailItemMapper<Employee, DetailItem> detailItemMapper() {
|
protected Function<Employee, DetailItem> detailItemMapper() {
|
||||||
return employee -> new DetailItem(
|
return employee -> new DetailItem(
|
||||||
employee.getId(),
|
employee.getId(),
|
||||||
employee.getCompany().getId(),
|
employee.getCompany().getId(),
|
||||||
|
|||||||
Reference in New Issue
Block a user