diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 661487e78..b3870c09e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -262,8 +262,8 @@ public class WxCUserBasicInfoController extends BaseController { @GetMapping("/queryTemplateCount") public ResultData queryTemplateCount() { - String userId = getUser().getId().toString(); - Map entries = stringRedisTemplate.opsForHash().entries(userId); + String importKey = "import-" + getUser().getId(); + Map entries = stringRedisTemplate.opsForHash().entries(importKey); logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>1"); if (entries.size() < 4) { entries.clear(); @@ -274,22 +274,22 @@ public class WxCUserBasicInfoController extends BaseController { String successCount = entries.get("successCount").toString(); String failCount = entries.get("failCount").toString(); - if (allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); + if (StringUtils.isNotBlank(failCount) && allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>2"); //完全失败 - stringRedisTemplate.opsForHash().delete(userId, "allCount"); - stringRedisTemplate.opsForHash().delete(userId, "allSuccessCount"); - stringRedisTemplate.opsForHash().delete(userId, "successCount"); - stringRedisTemplate.opsForHash().delete(userId, "failCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(importKey, "successCount"); + stringRedisTemplate.opsForHash().delete(importKey, "failCount"); return new ResultData(ErrorCode.MEM_IMPORT_ERR); } //导入完成 - if (allSuccessCount.equals(successCount)) { + if (StringUtils.isNotBlank(allSuccessCount) && 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"); + stringRedisTemplate.opsForHash().delete(importKey, "allCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(importKey, "successCount"); + stringRedisTemplate.opsForHash().delete(importKey, "failCount"); return ok; } return new ResultData(Result.SUCCESS, "查询成功", entries); 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 54dfa6512..ff36a341e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -518,27 +518,25 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { final IdWorker idWorker = IdWorker.get(); + String importKey = "import-" + userId; + + //默认添加到redis里 + stringRedisTemplate.opsForHash().put(importKey, "allCount", ""); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "0"); + ImportParams params = new ImportParams(); - //IExcelDataHandler handler = new UserExcelHandler(); - //handler.setNeedHandlerFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"});// 注意这里对应的是excel的列名。也就是对象上指定的列名。 - //params.setDataHandler(handler); - //params.setVerifyHandler(); // 需要验证 params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); params.setNeedVerify(true); try { - ExcelImportResult datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); List successList = datalist.getList(); List failList = datalist.getFailList(); - logger.info("验证通过的数量:" + successList.size()); - logger.info("验证未通过的数量:" + failList.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() + ""); + logger.info("验证通过的数量: " + successList.size()); + logger.info("验证未通过的数量: " + failList.size()); successList.parallelStream().forEach(uBase->{ @@ -650,12 +648,12 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { stringRedisTemplate.opsForHash().increment(userId,"successCount",1); }); } catch (Exception e) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); e.printStackTrace(); logger.error("导入模板失败:"+e.getMessage()); - stringRedisTemplate.opsForHash().put(userId, "allCount", "1"); - stringRedisTemplate.opsForHash().put(userId, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(userId, "successCount", "0"); - stringRedisTemplate.opsForHash().put(userId, "failCount", "1"); } return new ResultData();