diff --git a/src/main/java/com/example/admin_server/service/IAdminService.java b/src/main/java/com/example/admin_server/service/IAdminService.java
index 580461b..c1df10a 100644
--- a/src/main/java/com/example/admin_server/service/IAdminService.java
+++ b/src/main/java/com/example/admin_server/service/IAdminService.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.example.admin_server.common.query.IPageRequest;
import com.example.admin_server.model.entity.Admin;
import com.example.admin_server.model.query.AdminQuery;
+import com.example.admin_server.model.vo.AdminVO;
/**
*
@@ -15,5 +16,5 @@ import com.example.admin_server.model.query.AdminQuery;
* @since 2025-05-24
*/
public interface IAdminService extends IService {
- IPage pageList(IPageRequest pageRequest, AdminQuery query);
+ IPage pageList(IPageRequest pageRequest, AdminQuery query);
}
diff --git a/src/main/java/com/example/admin_server/service/impl/AdminServiceImpl.java b/src/main/java/com/example/admin_server/service/impl/AdminServiceImpl.java
index 29cc22a..bce0694 100644
--- a/src/main/java/com/example/admin_server/service/impl/AdminServiceImpl.java
+++ b/src/main/java/com/example/admin_server/service/impl/AdminServiceImpl.java
@@ -9,7 +9,9 @@ import com.example.admin_server.common.query.QueryWrapperBuilder;
import com.example.admin_server.mapper.AdminMapper;
import com.example.admin_server.model.entity.Admin;
import com.example.admin_server.model.query.AdminQuery;
+import com.example.admin_server.model.vo.AdminVO;
import com.example.admin_server.service.IAdminService;
+import com.example.admin_server.utils.BeanConvertUtil;
import org.springframework.stereotype.Service;
/**
@@ -23,11 +25,12 @@ import org.springframework.stereotype.Service;
@Service
public class AdminServiceImpl extends ServiceImpl implements IAdminService {
-
@Override
- public IPage pageList(IPageRequest pageRequest, AdminQuery query) {
+ public IPage pageList(IPageRequest pageRequest, AdminQuery query) {
Page page = pageRequest.toPage();
QueryWrapper wrapper = QueryWrapperBuilder.build(query, Admin.class);
- return this.page(page, wrapper);
+ IPage adminPage = this.page(page, wrapper);
+
+ return BeanConvertUtil.convertPage(adminPage, AdminVO::new);
}
}
diff --git a/src/main/java/com/example/admin_server/utils/BeanConvertUtil.java b/src/main/java/com/example/admin_server/utils/BeanConvertUtil.java
new file mode 100644
index 0000000..0ddfbe4
--- /dev/null
+++ b/src/main/java/com/example/admin_server/utils/BeanConvertUtil.java
@@ -0,0 +1,71 @@
+package com.example.admin_server.utils;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.beans.BeanUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Supplier;
+
+/**
+ * Bean转换工具类,用于实体类与VO之间的转换
+ *
+ * @author FallingCliff
+ * @since 2025-05-24
+ */
+public class BeanConvertUtil {
+
+ /**
+ * 将源对象转换为目标类型对象
+ *
+ * @param source 源对象
+ * @param targetSupplier 目标对象提供者
+ * @param 源对象类型
+ * @param 目标对象类型
+ * @return 转换后的目标对象
+ */
+ public static T convert(S source, Supplier targetSupplier) {
+ if (source == null) {
+ return null;
+ }
+ T target = targetSupplier.get();
+ BeanUtils.copyProperties(source, target);
+ return target;
+ }
+
+ /**
+ * 将源对象列表转换为目标类型对象列表
+ *
+ * @param sourceList 源对象列表
+ * @param targetSupplier 目标对象提供者
+ * @param 源对象类型
+ * @param 目标对象类型
+ * @return 转换后的目标对象列表
+ */
+ public static List convertList(List sourceList, Supplier targetSupplier) {
+ if (sourceList == null || sourceList.isEmpty()) {
+ return new ArrayList<>();
+ }
+ List targetList = new ArrayList<>(sourceList.size());
+ for (S source : sourceList) {
+ targetList.add(convert(source, targetSupplier));
+ }
+ return targetList;
+ }
+
+ /**
+ * 将MyBatis-Plus分页对象转换为目标类型的分页对象
+ *
+ * @param page 源分页对象
+ * @param targetSupplier 目标对象提供者
+ * @param 源对象类型
+ * @param 目标对象类型
+ * @return 转换后的目标类型分页对象
+ */
+ public static IPage convertPage(IPage page, Supplier targetSupplier) {
+ if (page == null) {
+ return null;
+ }
+ return page.convert(source -> convert(source, targetSupplier));
+ }
+}