From fcacc2366d3a98200bb78a3f893c24784d206f07 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 14:45:43 +0800 Subject: [PATCH] =?UTF-8?q?[BUG][1000714]:redis=E5=88=9D=E5=A7=8B=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxCUserBasicInfoController.java | 24 +++++++-------- .../impl/WxCUserBasicInfoServiceImpl.java | 30 +++++++++---------- 2 files changed, 26 insertions(+), 28 deletions(-) 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();