From 6241b8acad2651564c1c668a9a54821361fbb4af Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 30 三月 2026 08:34:21 +0800
Subject: [PATCH] chore: sync rsf-server from isolated worktree

---
 rsf-server/src/main/java/com/vincent/rsf/server/system/controller/RoleController.java |   39 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/RoleController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/RoleController.java
index fb5bcac..4084077 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/RoleController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/RoleController.java
@@ -9,6 +9,8 @@
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.common.service.ListExportHandler;
+import com.vincent.rsf.server.common.service.ListExportService;
 import com.vincent.rsf.server.common.utils.ExcelUtil;
 import com.vincent.rsf.server.system.controller.param.RoleScopeParam;
 import com.vincent.rsf.server.system.entity.Role;
@@ -20,7 +22,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 import java.util.*;
 
 /**
@@ -33,6 +35,38 @@
     private RoleService roleService;
     @Autowired
     private RoleMenuService roleMenuService;
+    @Autowired
+    private ListExportService listExportService;
+
+    private final ListExportHandler<Role, BaseParam> roleExportHandler = new ListExportHandler<>() {
+        @Override
+        public List<Role> listByIds(List<Long> ids) {
+            return roleService.listByIds(ids);
+        }
+
+        @Override
+        public List<Role> listByFilter(Map<String, Object> sanitizedMap, BaseParam baseParam) {
+            PageParam<Role, BaseParam> pageParam = new PageParam<>(baseParam, Role.class);
+            return roleService.list(pageParam.buildWrapper(true));
+        }
+
+        @Override
+        public Map<String, Object> toExportRow(Role record, List<ExcelUtil.ExportColumn> columns) {
+            Map<String, Object> row = new LinkedHashMap<>();
+            row.put("name", record.getName());
+            row.put("code", record.getCode());
+            row.put("statusText", Objects.equals(record.getStatus(), 1) ? "姝e父" : "绂佺敤");
+            row.put("memo", record.getMemo());
+            row.put("createTimeText", record.getCreateTime$());
+            row.put("updateTimeText", record.getUpdateTime$());
+            return row;
+        }
+
+        @Override
+        public String defaultReportTitle() {
+            return "瑙掕壊绠$悊鎶ヨ〃";
+        }
+    };
 
     @PreAuthorize("hasAuthority('system:role:list')")
     @PostMapping("/role/page")
@@ -134,7 +168,7 @@
     @PreAuthorize("hasAuthority('system:role:list')")
     @PostMapping("/role/export")
     public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
-        ExcelUtil.build(ExcelUtil.create(roleService.list(), Role.class), response);
+        listExportService.export(map, exportMap -> buildParam(exportMap, BaseParam.class), roleExportHandler, response);
     }
 
     @PreAuthorize("hasAuthority('system:role:list')")
@@ -171,3 +205,4 @@
     }
 
 }
+

--
Gitblit v1.9.1