From e8514175f6cf73c5d006ec4d253afb46b18f1840 Mon Sep 17 00:00:00 2001
From: whyczh <hzjl@qq.com>
Date: 星期三, 28 四月 2021 09:25:40 +0800
Subject: [PATCH] 添加批量导入用户功能

---
 src/main/java/com/whyc/controller/UserController.java |   61 ++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/controller/UserController.java b/src/main/java/com/whyc/controller/UserController.java
index fe4fc6f..c1c921a 100644
--- a/src/main/java/com/whyc/controller/UserController.java
+++ b/src/main/java/com/whyc/controller/UserController.java
@@ -1,5 +1,8 @@
 package com.whyc.controller;
 
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.api.R;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,13 +14,17 @@
 import com.whyc.service.JobService;
 import com.whyc.service.LoginService;
 import com.whyc.service.UserService;
+import com.whyc.util.UserExcelVerify;
 import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -35,6 +42,9 @@
 
     @Resource
     private JobService jobService;
+
+    @Resource
+    private UserExcelVerify userExcelVerify;
 
     @PostMapping
     @ApiOperation(value = "娣诲姞鐢ㄦ埛")
@@ -145,4 +155,55 @@
         return jobService.delete(id);
     }
 
+
+    @PostMapping("/importUserExcel")
+    @ApiOperation(value = "瀵煎叆鐢ㄦ埛鏁版嵁")
+    public Response importExcel2(@RequestParam("file") MultipartFile file) {
+        Response response = new Response();
+        ImportParams importParams = new ImportParams();
+        // 鏁版嵁澶勭悊
+        importParams.setTitleRows(0);  //璁剧疆鏍囬绗�1琛屽紑濮�
+        importParams.setHeadRows(1);    //璁剧疆寮�濮嬭浠庣3琛屽紑濮�
+        // 闇�瑕侀獙璇�
+        importParams.setNeedVerify(true);
+        //璁惧強涓�涓嚜瀹氫箟鏍¢獙 锛堣嚜瀹氫箟鏍¢獙鍚嶅瓧涓嶅彲閲嶅锛�  浣跨敤娉ㄨВ娉ㄥ叆
+        //UserExcelVerify userExcelVerify = new UserExcelVerify();
+        importParams.setVerifyHandler(userExcelVerify);
+        try {
+            ExcelImportResult<User> result = ExcelImportUtil.importExcelMore(file.getInputStream(), User.class,
+                    importParams);
+            List<User> successList = result.getList();
+            //澶辫触缁撴灉闆�
+            List<User> failList = result.getFailList();
+            /*failList.forEach(user -> {
+                System.out.println("楠岃瘉澶辫触鐨勪俊鎭細"+user+userExcelVerify.verifyHandler(user).getMsg());
+            });
+            successList.forEach(x->{
+                System.out.println("閫氳繃楠岃瘉鐨勬暟鎹細"+x.toString());
+            });*/
+            String msg = "";
+            for (User entity : result.getFailList()) {
+                msg += "绗�" + entity.getRowNum() + "琛岀殑閿欒鏄細" + entity.getErrorMsg()+";\n";
+                //System.out.println(msg);
+            }
+            if (!successList.isEmpty()){
+                boolean success = userService.addBatch(successList);
+                if (success && failList.isEmpty()){
+                    response.set(1,"鎴愬姛瀵煎叆"+successList.size()+"鏉℃暟鎹�;");
+                }
+            }else{
+                response.set(1,failList,"鎴愬姛瀵煎叆"+successList.size()+"鏉℃暟鎹�"+";瀵煎叆澶辫触"+failList.size()+"鏉℃暟鎹�;\n"+msg);
+            }
+
+
+        } catch (IOException e) {
+            e.printStackTrace();
+            response.setMsg(0,"瀵煎叆澶辫触");
+        } catch (Exception e) {
+            e.printStackTrace();
+            response.setMsg(0,"瀵煎叆澶辫触");
+        }
+        return response;
+    }
+
 }

--
Gitblit v1.9.1