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(); }