From b2e94bc29284eb48f62be2c1d5d6066487c206e2 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 14 Jan 2019 15:34:48 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:session=E5=AF=BC=E5=85=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/AsyncTask.java | 47 ++++++++++--------- .../com/iformall/tenant/TenantInfoImpl.java | 2 +- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java b/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java index e7598f780..68a40be25 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java @@ -13,6 +13,9 @@ import com.iformall.service.WxTagsService; import com.iformall.shiro.UserSession; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; +import org.apache.shiro.session.UnknownSessionException; +import org.apache.shiro.subject.Subject; +import org.apache.shiro.util.ThreadContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -91,33 +94,33 @@ public class AsyncTask { List successList = datalist.getList(); List failList = datalist.getFailList(); + logger.info("验证通过的数量: " + successList.size()); + logger.info("验证未通过的数量: " + failList.size()); + int total = successList.size() + failList.size(); int all_success = successList.size(); int all_fail = failList.size(); //添加到redis里 - set_redis_value(importKey, "" + total, "" + all_success, "0", "" + all_fail, false); - - logger.info("验证通过的数量: " + successList.size()); - logger.info("验证未通过的数量: " + failList.size()); - - WxTags wxTagsQ = new WxTags(); - List tagList = wxTagsService.findList(wxTagsQ); - - try { - successList.parallelStream().forEach(uBase -> { - // 异步无法获取到原有的session,所以再注入一下session - Session session = SecurityUtils.getSubject().getSession(); - session.setAttribute(UserSession.userInfo, user); - session.setAttribute(UserSession.userId, user.getId()); - session.setAttribute(UserSession.tenantId, tenantId); - - wxCUserBasicInfoService.importOneMem(tenantId, importKey, tagList, uBase); - }); - } catch (Exception e) { - set_redis_value(importKey, "1", "0", "0", "1", true); - e.printStackTrace(); - logger.error("导入模板失败:"+e.getMessage()); + set_redis_value(importKey, "" + total, "" + all_success, "0", "" + all_fail, total == all_fail); + + if(successList.size() > 0) { + WxTags wxTagsQ = new WxTags(); + List tagList = wxTagsService.findList(wxTagsQ); + + try { + successList.parallelStream().forEach(uBase -> { + try { + wxCUserBasicInfoService.importOneMem(tenantId, importKey, tagList, uBase); + } catch (UnknownSessionException ue) { + logger.error("session :"+ue.getMessage()); + } + }); + } catch (Exception e) { + set_redis_value(importKey, "1", "0", "0", "1", true); + e.printStackTrace(); + logger.error("导入模板失败:"+e.getMessage()); + } } } } diff --git a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java index c20e54a35..70c6571d2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -17,7 +17,7 @@ public class TenantInfoImpl implements TenantInfo { try { tenantId = (String) SecurityUtils.getSubject().getSession().getAttribute(UserSession.tenantId); } catch (InvalidSessionException e) { - logger.error(e.getMessage()); + logger.error("InvalidSession: " + e.getMessage()); } return tenantId; }