From 320f3895c76abd1e37be5ddf150360aaa549b211 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Mon, 24 Dec 2018 18:53:47 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8][?= =?UTF-8?q?=E5=AF=BC=E5=85=A5][=E6=88=90=E5=8A=9F=E4=B8=8E=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=8F=90=E9=86=92]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxCUserBasicInfoController.java | 38 +++++++++++++++---- .../HttpServletRequestWrapperFilter.java | 3 +- .../impl/WxCUserBasicInfoServiceImpl.java | 32 +++++++++------- 3 files changed, 50 insertions(+), 23 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 1418493fc..90138995e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -247,8 +247,10 @@ public class WxCUserBasicInfoController extends BaseController { if (allCount) { return new ResultData(Result.SUCCESS, "模板正在导入"); } - stringRedisTemplate.opsForHash().putIfAbsent(userId, "allCount",1+""); - stringRedisTemplate.opsForHash().putIfAbsent(userId, "successCount",0+""); + stringRedisTemplate.opsForHash().putIfAbsent(userId, "allCount", 0 + ""); + stringRedisTemplate.opsForHash().putIfAbsent(userId, "allSuccessCount", 0 + ""); + stringRedisTemplate.opsForHash().putIfAbsent(userId, "successCount", ""); + stringRedisTemplate.opsForHash().putIfAbsent(userId, "failCount", ""); wxCUserBasicInfoService.importTemplate(file, getTenantId(), userId); stringRedisTemplate.expire(userId,30,TimeUnit.MINUTES); return new ResultData(Result.SUCCESS, "模板正在导入"); @@ -256,14 +258,34 @@ public class WxCUserBasicInfoController extends BaseController { @GetMapping("/queryTemplateCount") public ResultData queryTemplateCount() { - String userId = getUser().getId().toString(); - Long size = stringRedisTemplate.opsForHash().size(userId); - if(size>0){ - Map entries = stringRedisTemplate.opsForHash().entries(userId); - return new ResultData(Result.SUCCESS,"查询成功",entries); + Map entries = stringRedisTemplate.opsForHash().entries(userId); + if (entries.size() < 4) { + return new ResultData(Result.SUCCESS, "ok", entries); + } + String allCount = entries.get("allCount").toString(); + String allSuccessCount = entries.get("allSuccessCount").toString(); + String successCount = entries.get("successCount").toString(); + String failCount = entries.get("failCount").toString(); + + if (allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); + //完全失败 + stringRedisTemplate.opsForHash().delete(userId, "allCount"); + stringRedisTemplate.opsForHash().delete(userId, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(userId, "successCount"); + stringRedisTemplate.opsForHash().delete(userId, "failCount"); + return new ResultData(ErrorCode.MEM_IMPORT_ERR); + } + //导入完成 + if (allSuccessCount.equals(successCount)) { + ResultData ok = new ResultData(Result.SUCCESS, "ok", entries); + stringRedisTemplate.opsForHash().delete(userId, "allCount"); + stringRedisTemplate.opsForHash().delete(userId, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(userId, "successCount"); + stringRedisTemplate.opsForHash().delete(userId, "failCount"); + return ok; } - return new ResultData(Result.SUCCESS,"查询成功","ok"); + return new ResultData(Result.SUCCESS, "查询成功", entries); } } \ No newline at end of file diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java index 9d2a7dc30..c0e7a01d6 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java @@ -17,7 +17,8 @@ public class HttpServletRequestWrapperFilter implements Filter { ServletRequest requestWrapper = null; if (request instanceof HttpServletRequest) { String url = ((HttpServletRequest) request).getRequestURI(); - if(!url.contains("awsFileUpload") && !url.contains("ueditor/exec")) { + if (!url.contains("awsFileUpload") && !url.contains("ueditor/exec") + && !url.contains("/wxCUserBasicInfo/importTemplate")) { requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request); } else { requestWrapper = null; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index c80a5d0e3..36258c167 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -432,17 +432,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { } - private class UserExcelHandler extends ExcelDataHandlerDefaultImpl { - @Override - public Object importHandler(CUserBaseInfoT obj, String name, Object value) { - if (value == null) { - value = ""; - } - System.out.println(name + " + " + value.toString()); - return super.importHandler(obj, name, value); - } - } /* private class UserVerifyHandler implements IExcelVerifyHandler { @@ -505,7 +495,17 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { return userBase; } + private class UserExcelHandler extends ExcelDataHandlerDefaultImpl { + @Override + public Object importHandler(CUserBaseInfoT obj, String name, Object value) { + if (value == null) { + value = ""; + } + System.out.println(name + " + " + value.toString()); + return super.importHandler(obj, name, value); + } + } @Async @Override @@ -529,7 +529,11 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { logger.info("验证通过的数量:" + successList.size()); logger.info("验证未通过的数量:" + failList.size()); //如果不存在就添加 - stringRedisTemplate.opsForHash().put(userId,"allCount",successList.size()+""); + stringRedisTemplate.opsForHash().put(userId, "allCount", successList.size() + failList.size() + ""); + stringRedisTemplate.opsForHash().put(userId, "allSuccessCount", successList.size() + ""); + stringRedisTemplate.opsForHash().put(userId, "successCount", "0"); + stringRedisTemplate.opsForHash().put(userId, "failCount", failList.size() + ""); + successList.parallelStream().forEach(uBase->{ if (StringUtils.isBlank(uBase.getPhone())) { @@ -643,11 +647,11 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { e.printStackTrace(); logger.error("导入模板失败:"+e.getMessage()); stringRedisTemplate.opsForHash().delete(userId,"allCount"); + stringRedisTemplate.opsForHash().delete(userId, "allSuccessCount"); stringRedisTemplate.opsForHash().delete(userId,"successCount"); + stringRedisTemplate.opsForHash().delete(userId, "failCount"); } - //结束也清空 - stringRedisTemplate.opsForHash().delete(userId,"allCount"); - stringRedisTemplate.opsForHash().delete(userId,"successCount"); + return new ResultData(); }