luojun il y a 2 ans
Parent
commit
8da2dd724a

+ 32 - 12
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -466,11 +466,11 @@ public class SysUserController extends BaseController {
     }
 
     /**
-     * 获取用户列表
+     * 导出用户数据
      */
-    @RequiresPermissions("system:user:list")
+    @RequiresPermissions("system:user:export")
     @PostMapping("/export")
-    public void export(SysUser user, HttpServletResponse response) throws IOException {
+    public void export(SysUser user, HttpServletResponse response)  {
         List<UserExport> list=userService.down(user);
         if (ObjectUtil.isEmpty(list)) {
             throw new RuntimeException("导出数据为空!");
@@ -478,13 +478,6 @@ public class SysUserController extends BaseController {
         if(list.size()>10000){
             throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
         }
-
-//        response.setContentType("application/vnd.ms-excel");
-//        response.setCharacterEncoding("utf-8");
-//        String fileName = URLEncoder.encode("用户数据" + DateHelper.getDateString(new Date()), "UTF-8");
-//        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
-        // 调用EasyExcel的导出方法
-//        EasyExcel.write(response.getOutputStream(), UserExport.class).sheet("Sheet1").doWrite(list);
         try {
             // 设置响应头
             response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("用户数据", "utf-8"));
@@ -494,8 +487,35 @@ public class SysUserController extends BaseController {
             EasyExcel.write(response.getOutputStream(), UserExport.class)
                     .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("用户数据").doWrite(list);
         } catch (Exception e) {
-//            EXCELLOG.info("预案演练导出失败{}",e.getMessage());
-//            e.printStackTrace();
+            // 重置response
+            response.reset();
+            response.setContentType("application/json");
+            response.setCharacterEncoding("utf-8");
+        }
+    }
+    /**
+     * 导出管理人员数据
+     */
+    @RequiresPermissions("system:user:exportManager")
+    @PostMapping("/exportManager")
+    public void exportManager(SysUser user, HttpServletResponse response)  {
+        List<UserExport> list=userService.down(user);
+        if (ObjectUtil.isEmpty(list)) {
+            throw new RuntimeException("导出数据为空!");
+        }
+        list=list.stream().filter(e -> e.getIsManager() != null).collect(Collectors.toList());
+        if(list.size()>10000){
+            throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
+        }
+        try {
+            // 设置响应头
+            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("用户数据", "utf-8"));
+            response.setContentType("application/octet-stream;charset=UTF-8");
+            response.setCharacterEncoding("utf-8");
+            // 数据导出
+            EasyExcel.write(response.getOutputStream(), UserExport.class)
+                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("用户数据").doWrite(list);
+        } catch (Exception e) {
             // 重置response
             response.reset();
             response.setContentType("application/json");