From 544eb875004209dc41ec4d5c84739df0caad2836 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 27 Sep 2021 10:03:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=83=E7=95=8C=EF=BC=8C=E8=B7=A8=E5=8F=91?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=EF=BC=8C=E7=8E=A9=E5=AE=B6=E5=8F=96?= =?UTF-8?q?=E5=87=BA=E4=B8=8D=E6=96=B9=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/arena/ArenaLogic.java | 2 +- .../com/ljsd/jieling/logic/dao/UserManager.java | 15 +++++++++++++++ .../com/ljsd/jieling/logic/item/ItemLogic.java | 4 ++-- .../com/ljsd/jieling/logic/mail/MailLogic.java | 2 +- .../jieling/logic/rank/rankImpl/AbstractRank.java | 2 +- .../jieling/logic/sevenworld/SevenWorldLogic.java | 2 +- 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index 89cefcbcc..e38baeaef 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -581,7 +581,7 @@ public class ArenaLogic { for(ZSetOperations.TypedTuple item : arenaRankInfo){ String value = item.getValue(); int uid = Integer.parseInt(value); - User user = UserManager.getUser(uid, true); + User user = UserManager.getUserNotCache(uid); if (null == user) { continue; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index 43c1b76ad..522485bfe 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -203,6 +203,21 @@ public class UserManager { } return null; } + + public static User getUserNotCache(int uid) { + // User user = userMap.get(uid); + try { + User user = userMap.get(uid); + if (user != null) { + return user; + } + return MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), uid, User.class); + }catch (Exception e){ + LOGGER.error("UserManager::getUser:{} null, exception:{}",uid,e.getMessage()); + } + return null; + } + public static void removeUser(int uid) { userMap.remove(uid); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index 60c64935a..e6924a311 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -1014,10 +1014,10 @@ public class ItemLogic { */ public void functionEndClearItem(int uid,int type,int reason){ try { - User user = UserManager.getUser(uid); + User user = UserManager.getUserNotCache(uid); // 根据功能类型获取需要清理的道具列表 List itemList = SItem.getItemMapByRecycle().get(type); - if (itemList == null || itemList.isEmpty()){ + if (user == null || itemList == null || itemList.isEmpty()){ return; } for (SItem item:itemList){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java index e63e1aff5..6a7fb146c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java @@ -344,7 +344,7 @@ public class MailLogic { } //发送邮件 public void sendMail(int uid, String title, String content, String reward, int sendTime, int mailEffectiveTime){ - User user = UserManager.getUserInMem(uid); + User user = UserManager.getUserNotCache(uid); if (user != null){ Mail mail = new Mail(uid,title,content,reward,sendTime, mailEffectiveTime,"system",Global.MAIL_TYPE_SYS); user.getMailManager().addMail(mail); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index 9d650df07..e807582ba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -95,7 +95,7 @@ public abstract class AbstractRank implements IRank { */ public void crossUserCache(int uid){ try { - User user = UserManager.getUser(uid); + User user = UserManager.getUserNotCache(uid); if (user == null){ return; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java index d848e6105..685f1bd5d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java @@ -439,7 +439,7 @@ public class SevenWorldLogic { // 排名 int rank = 1; for (ZSetOperations.TypedTuple tuple : range) { - User user = UserManager.getUserInMem(Integer.parseInt(tuple.getValue())); + User user = UserManager.getUserNotCache(Integer.parseInt(tuple.getValue())); if (user == null){ return; }