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> <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>

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.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;
}
} }

View File

@@ -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(),

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.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(),