1
0

feat: 简化DTO转化方法的创建

This commit is contained in:
2025-08-16 14:38:35 +08:00
parent 6d8a1b26c1
commit 895ce7ee82
4 changed files with 21 additions and 25 deletions

View File

@@ -96,6 +96,11 @@
<artifactId>lombok</artifactId>
<version>1.18.36</version>
</path>
<path>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>6.6.8.Final</version>
</path>
<path>
<groupId>io.github.openfeign.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>

View File

@@ -6,6 +6,7 @@ import com.lanyuanxiaoyao.service.template.entity.SimpleEntity;
import com.lanyuanxiaoyao.service.template.helper.ObjectHelper;
import com.lanyuanxiaoyao.service.template.service.SimpleServiceSupport;
import java.util.List;
import java.util.function.Function;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -24,7 +25,7 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
@Override
public GlobalResponse<Long> save(@RequestBody SAVE_ITEM item) throws Exception {
var mapper = saveItemMapper();
return GlobalResponse.responseSuccess(service.save(mapper.from(item)));
return GlobalResponse.responseSuccess(service.save(mapper.apply(item)));
}
@GetMapping(LIST)
@@ -37,7 +38,7 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
.stream()
.map(entity -> {
try {
return mapper.from(entity);
return mapper.apply(entity);
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -59,7 +60,7 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
result.get()
.map(entity -> {
try {
return mapper.from(entity);
return mapper.apply(entity);
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -73,7 +74,7 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
@Override
public GlobalResponse<DETAIL_ITEM> detail(@PathVariable("id") Long id) throws Exception {
var mapper = detailItemMapper();
return GlobalResponse.responseSuccess(mapper.from(service.detailOrThrow(id)));
return GlobalResponse.responseSuccess(mapper.apply(service.detailOrThrow(id)));
}
@GetMapping(REMOVE)
@@ -83,21 +84,9 @@ public abstract class SimpleControllerSupport<ENTITY extends SimpleEntity, SAVE_
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();
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;
}
protected abstract Function<ENTITY, DETAIL_ITEM> detailItemMapper();
}

View File

@@ -3,6 +3,7 @@ package com.lanyuanxiaoyao.service.template.controller;
import com.lanyuanxiaoyao.service.template.entity.Company;
import com.lanyuanxiaoyao.service.template.service.CompanyService;
import java.time.LocalDateTime;
import java.util.function.Function;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -19,7 +20,7 @@ public class CompanyController extends SimpleControllerSupport<Company, CompanyC
}
@Override
protected SaveItemMapper<Company, SaveItem> saveItemMapper() {
protected Function<SaveItem, Company> saveItemMapper() {
return item -> {
var company = new Company();
company.setId(item.getId());
@@ -30,7 +31,7 @@ public class CompanyController extends SimpleControllerSupport<Company, CompanyC
}
@Override
protected ListItemMapper<Company, ListItem> listItemMapper() {
protected Function<Company, ListItem> listItemMapper() {
return company -> new ListItem(
company.getId(),
company.getName(),
@@ -39,7 +40,7 @@ public class CompanyController extends SimpleControllerSupport<Company, CompanyC
}
@Override
protected DetailItemMapper<Company, DetailItem> detailItemMapper() {
protected Function<Company, DetailItem> detailItemMapper() {
return company -> new DetailItem(
company.getId(),
company.getName(),

View File

@@ -4,6 +4,7 @@ import com.lanyuanxiaoyao.service.template.entity.Employee;
import com.lanyuanxiaoyao.service.template.service.CompanyService;
import com.lanyuanxiaoyao.service.template.service.EmployeeService;
import java.time.LocalDateTime;
import java.util.function.Function;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -23,7 +24,7 @@ public class EmployeeController extends SimpleControllerSupport<Employee, Employ
}
@Override
protected SaveItemMapper<Employee, SaveItem> saveItemMapper() {
protected Function<SaveItem, Employee> saveItemMapper() {
return item -> {
var employee = new Employee();
employee.setId(item.getId());
@@ -36,7 +37,7 @@ public class EmployeeController extends SimpleControllerSupport<Employee, Employ
}
@Override
protected ListItemMapper<Employee, ListItem> listItemMapper() {
protected Function<Employee, ListItem> listItemMapper() {
return employee -> new ListItem(
employee.getId(),
employee.getName(),
@@ -46,7 +47,7 @@ public class EmployeeController extends SimpleControllerSupport<Employee, Employ
}
@Override
protected DetailItemMapper<Employee, DetailItem> detailItemMapper() {
protected Function<Employee, DetailItem> detailItemMapper() {
return employee -> new DetailItem(
employee.getId(),
employee.getCompany().getId(),