From 4b8b97685e1a06ad312531f1e3ed3b030489c5fb Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Fri, 5 Jan 2024 15:29:18 +0800 Subject: [PATCH 01/23] =?UTF-8?q?=E6=88=98=E6=96=97=E5=9B=9E=E6=BB=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/util/FightDataUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java index 5af8e2401..7b9a674c5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java @@ -516,8 +516,8 @@ public class FightDataUtil { skill.rawset(j++, LuaValue.valueOf(KeyFrame/1000f)); skill.rawset(j++, LuaValue.valueOf(SkillDuration/1000f)); skill.rawset(j++, LuaValue.valueOf(SkillNumber)); - skill.rawset(j++, getSkillNumberTime(sCombatControl.getSkillNumbetTime())); - skill.rawset(j++, getEffectArgs(sCombatControl.getAttackDisplaceoffset())); +// skill.rawset(j++, getSkillNumberTime(sCombatControl.getSkillNumbetTime())); +// skill.rawset(j++, getEffectArgs(sCombatControl.getAttackDisplaceoffset())); List effectList = getEffect(sSkillLogicVo); int size = effectList.size(); if (size > 0) { From 29fc92526e99617ed2cb22c015648bb174090fb5 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 8 Jan 2024 10:46:03 +0800 Subject: [PATCH 02/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/hotfix.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/conf/hotfix.json b/conf/hotfix.json index 032375a09..e0bf6b3f7 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,7 +1,6 @@ { - "version":"9", + "version":"6", "classes":[ - {"name":"CBean2Proto.class","fullName":"com.ljsd.jieling.util.CBean2Proto"}, - {"name":"EquipLogic.class","fullName":"com.ljsd.jieling.logic.equip.EquipLogic"} + {"name":"HeroLogic.class","fullName":"com.ljsd.jieling.logic.hero.HeroLogic"} ] } \ No newline at end of file From e6f0fe821878406df9045e322ec4eb0af0e939a6 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 8 Jan 2024 17:02:39 +0800 Subject: [PATCH 03/23] =?UTF-8?q?=E6=88=98=E6=96=97=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/hotfix.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conf/hotfix.json b/conf/hotfix.json index e0bf6b3f7..e7438e199 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,6 +1,7 @@ { "version":"6", "classes":[ - {"name":"HeroLogic.class","fullName":"com.ljsd.jieling.logic.hero.HeroLogic"} + {"name":"HeroLogic.class","fullName":"com.ljsd.jieling.logic.hero.HeroLogic"}, + {"name":"FightDataUtil.class","fullName":"com.ljsd.jieling.util.FightDataUtil"} ] } \ No newline at end of file From d62458e3d4dcc400107e6db29f7843b0a3a9a4b4 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 8 Jan 2024 17:03:34 +0800 Subject: [PATCH 04/23] =?UTF-8?q?=E6=88=98=E6=96=97=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index ef3d8616a..2b4b31e47 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"6", - "tables":"SpecialConfig" + "version":"5", + "tables":"" } \ No newline at end of file From cb34967218c77f7dbae16043d5e79f9a8397b0d0 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 16 Jan 2024 14:39:56 +0800 Subject: [PATCH 05/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 4 ++-- conf/hotfix.json | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 2b4b31e47..af142624e 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"5", - "tables":"" + "version":"6", + "tables":"GlobalActivity" } \ No newline at end of file diff --git a/conf/hotfix.json b/conf/hotfix.json index e7438e199..a4f862ef3 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,7 +1,6 @@ { "version":"6", "classes":[ - {"name":"HeroLogic.class","fullName":"com.ljsd.jieling.logic.hero.HeroLogic"}, - {"name":"FightDataUtil.class","fullName":"com.ljsd.jieling.util.FightDataUtil"} + {"name":"ContinuousGiftActivity.class","fullName":"com.ljsd.jieling.logic.activity.ContinuousGiftActivity"} ] } \ No newline at end of file From 82d9aefe6f84f5eacb1e000efa66696bf63bfa36 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 16 Jan 2024 15:34:57 +0800 Subject: [PATCH 06/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index af142624e..416a67772 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { "version":"6", - "tables":"GlobalActivity" + "tables":"GlobalActivity|RechargeCommodityConfig" } \ No newline at end of file From 89504dec5c39d0821cb703e5a6e082444f38773f Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 16 Jan 2024 15:53:49 +0800 Subject: [PATCH 07/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 416a67772..af142624e 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { "version":"6", - "tables":"GlobalActivity|RechargeCommodityConfig" + "tables":"GlobalActivity" } \ No newline at end of file From c83cdd40229ee87268cf1447253426167088f718 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 18 Jan 2024 11:17:35 +0800 Subject: [PATCH 08/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/hotfix.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/conf/hotfix.json b/conf/hotfix.json index a4f862ef3..a2c24b789 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,6 +1,7 @@ { - "version":"6", + "version":"7", "classes":[ - {"name":"ContinuousGiftActivity.class","fullName":"com.ljsd.jieling.logic.activity.ContinuousGiftActivity"} + {"name":"ContinuousGiftActivity.class","fullName":"com.ljsd.jieling.logic.activity.ContinuousGiftActivity"}, + {"name":"Cmd_general.class","fullName":"com.ljsd.jieling.kefu.Cmd_general"} ] } \ No newline at end of file From 3997625a8b469a6ac8bf600798e2c4c72d65c5e8 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 10:57:23 +0800 Subject: [PATCH 09/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index af142624e..4499a95c8 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"6", + "version":"7", "tables":"GlobalActivity" } \ No newline at end of file From 6f0a8cda79fd6360dc67f0fb2d6f9f5dbd2fa2df Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 14:31:29 +0800 Subject: [PATCH 10/23] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/dao/UserMissionManager.java | 29 ++++++++++++++++--- .../event/CowFlySkyRefreshEventProcess.java | 2 ++ .../JadeDynastyWeekRefreshEventProcess.java | 2 -- .../mission/main/CowFlySkyMissionType.java | 28 ++++++++++++------ 4 files changed, 46 insertions(+), 15 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index 673d45d27..a2aefcfb4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -76,6 +76,7 @@ public class UserMissionManager extends MongoBase { private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据 private CumulationData jadeDynastyWeekCumulationData = new CumulationData();//破阵诛仙周数据 private CumulationData mistyTripCumulationData = new CumulationData();//缥缈之旅数据 + private CumulationData cowFlyCumulationData = new CumulationData();//牛气冲天数据 /** * 奖励处理任务 @@ -103,7 +104,7 @@ public class UserMissionManager extends MongoBase { case DAILY_MISSION_REWARD:{ dailyMissionIdsType.rewardMission(user,(int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION)); if(!missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).isEmpty()){ - calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,(int)parm[0]); + calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap, parm[0]); updateString("dailyMissionIdsType",dailyMissionIdsType); } } @@ -212,6 +213,20 @@ public class UserMissionManager extends MongoBase { } } } + + // 牛气冲天活动数据处理 + if(!cowFlySkyMissionType.getDoingMissionIds().isEmpty()){ + Map flyMap = SArroGantFly.getTaskTypeMap().get(missionType.getMissionTypeValue()); + if (flyMap != null && !flyMap.isEmpty()) { + CumulationData.Result result = cowFlyCumulationData.updateData(missionType, parm); + if(result != null){ + cowFlySkyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION), cowFlyCumulationData); + setCowFlySkyMissionType(cowFlySkyMissionType); + setCowFlyCumulationData(cowFlyCumulationData); + } + } + } + if(!treasureMissionIdsType.getDoingMissionIds().isEmpty() ){ List sTreasureTaskConfigs = STreasureSunlongTaskConfig.sTreasureTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue()); if(sTreasureTaskConfigs!=null){ @@ -319,9 +334,6 @@ public class UserMissionManager extends MongoBase { // vip任务 vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData); updateString("vipMissionIdsType",vipMissionIdsType); - // 牛气冲天任务 - cowFlySkyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION),cumulationData); - updateString("cowFlySkyMissionType",cowFlySkyMissionType); // 家园任务 homeMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.HOME_MISSION),cumulationData); updateString("homeMissionType",homeMissionType); @@ -450,6 +462,15 @@ public class UserMissionManager extends MongoBase { updateString("treasureMissionIdsType", treasureMissionIdsType); } + public CumulationData getCowFlyCumulationData() { + return cowFlyCumulationData; + } + + public void setCowFlyCumulationData(CumulationData cowFlyCumulationData) { + this.cowFlyCumulationData = cowFlyCumulationData; + updateString("cowFlyCumulationData", cowFlyCumulationData); + } + public TreasureMissionType getTreasureMissionIdsType() { return treasureMissionIdsType; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java index d34d2fbc6..7e59d8b2d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.mission.event; +import com.ljsd.jieling.logic.dao.CumulationData; import com.ljsd.jieling.logic.dao.UserMissionManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; @@ -25,6 +26,7 @@ public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor { cowFlySkyMissionType.getFinishMissionIds().clear(); cowFlySkyMissionType.getRewardedMissionIds().clear(); cowFlySkyMissionType.getDoingMissionIds().addAll(arro); + missionManager.setCowFlyCumulationData(new CumulationData()); missionManager.setCowFlySkyMissionType(cowFlySkyMissionType); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java index 0098a0500..4a7ebb1f6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.logic.mission.event; -import com.ljsd.jieling.logic.dao.UserMissionManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameMisionType; @@ -13,7 +12,6 @@ import java.util.Map; public class JadeDynastyWeekRefreshEventProcess implements BaseGameEventProcessor { @Override public void onGameEvent(User user, Map> misionTypeListMap, GameEvent event, Object... parm) throws Exception { - UserMissionManager missionManager = user.getUserMissionManager(); //当前轮次破阵诛仙的活动ID int jadeAid = (int) parm[0]; MissionLogic.getInstance().resetJadeDynastyTaskInfo(user,2, jadeAid, misionTypeListMap); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java index 101fa4d3e..f937178a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java @@ -51,15 +51,9 @@ public class CowFlySkyMissionType extends AbstractMissionType { } } - @Override - public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { - // 进行中得任务 + public void missionRefresh(User user, List flyList, List missionStateChangeInfos, CumulationData cumulationData){ Set doingMissionIds = getDoingMissionIds(); - Map flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue()); - if (flyMap == null || flyMap.isEmpty()){ - return; - } - for (SArroGantFly fly : flyMap.values()) { + for (SArroGantFly fly : flyList) { // 任务子id int id = fly.getId(); // 不在执行中 @@ -84,7 +78,23 @@ public class CowFlySkyMissionType extends AbstractMissionType { // 任务列表更新 doingMissionIds.remove(id); getFinishMissionIds().add(id); - } } + + @Override + public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { + Map flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue()); + if (flyMap == null || flyMap.isEmpty()){ + return; + } + missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData); + } + +// public void initRefreshCumulationData(User user, List missionStateChangeInfos, CumulationData cumulationData, int activityId){ +// Map flyMap = SArroGantFly.getActivityMap().get(activityId); +// if (flyMap == null || flyMap.isEmpty()){ +// return; +// } +// missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData); +// } } From 71931154e56a01157a9041aa57f80ff14a1d67b5 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 17:18:04 +0800 Subject: [PATCH 11/23] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index 18fc4ca50..e259f58ff 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -490,7 +490,7 @@ public class MissionLoigc { */ public static void getCowFlySkyMission(User user ,List missionList){ CowFlySkyMissionType missionType = user.getUserMissionManager().getCowFlySkyMissionType(); - CumulationData cumulationData = user.getUserMissionManager().getCumulationData(); + CumulationData cumulationData = user.getUserMissionManager().getCowFlyCumulationData(); // 进行中 Set doingMissionIds = missionType.getDoingMissionIds(); // 可领取 From f1f73d205f203116c1e56c5cc9cfbb0da45aae5d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 12 Feb 2024 19:10:12 +0800 Subject: [PATCH 12/23] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 4499a95c8..af142624e 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"7", + "version":"6", "tables":"GlobalActivity" } \ No newline at end of file From 2a1fc6a66d323465423a7367353582d5c4df915d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 12 Feb 2024 19:13:11 +0800 Subject: [PATCH 13/23] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/hotfix.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/conf/hotfix.json b/conf/hotfix.json index a2c24b789..2e5c7ac7a 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,7 +1,5 @@ { - "version":"7", + "version":"5", "classes":[ - {"name":"ContinuousGiftActivity.class","fullName":"com.ljsd.jieling.logic.activity.ContinuousGiftActivity"}, - {"name":"Cmd_general.class","fullName":"com.ljsd.jieling.kefu.Cmd_general"} ] } \ No newline at end of file From a7cfe8c300a614cda410515147cb4ca9b3ff8a79 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 19 Feb 2024 14:11:25 +0800 Subject: [PATCH 14/23] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index af142624e..4499a95c8 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"6", + "version":"7", "tables":"GlobalActivity" } \ No newline at end of file From 05f2ebf7ebe4e4e201593b0ddbc240e236283ff0 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Fri, 23 Feb 2024 16:37:25 +0800 Subject: [PATCH 15/23] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E7=83=AD=E6=9B=B4,vip?= =?UTF-8?q?=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/hotfix.json | 3 ++- .../com/ljsd/jieling/logic/dao/PlayerManager.java | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/conf/hotfix.json b/conf/hotfix.json index 2e5c7ac7a..2d614d60e 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,5 +1,6 @@ { - "version":"5", + "version":"6", "classes":[ + {"name":"PlayerManager.class","fullName":"com.ljsd.jieling.logic.dao.PlayerManager"} ] } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index e4fe3a426..8f3601d67 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -566,22 +566,24 @@ public class PlayerManager extends MongoBase { if (vipInfo.isEmpty()) { return; } + for (Integer remove : removePrivileges) { + vipInfo.remove(remove); + } for (Map.Entry entry : vipInfo.entrySet()) { Integer id = entry.getKey(); + VipInfo info = entry.getValue(); SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id); if (null == sPrivilegeTypeConfig) { continue; } int refreshType = sPrivilegeTypeConfig.getRefreshType()[0]; - if (refreshType == 1 && entry.getValue().getCount() > 0) { + if (refreshType == 1 && info.getCount() > 0) { VipInfo refreshVipInfo = new VipInfo(); - refreshVipInfo.setEffectTime(entry.getValue().getEffectTime()); + refreshVipInfo.setCount(0); + refreshVipInfo.setEffectTime(info.getEffectTime()); vipInfo.put(id,refreshVipInfo); } } - for (Integer remove : removePrivileges) { - vipInfo.remove(remove); - } updateString("vipInfo", vipInfo); setHadTakeDailyBoxVip(-1); } From 0c5506982939ab894a662aef1f4a367c8a7a2c2f Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 26 Feb 2024 14:10:04 +0800 Subject: [PATCH 16/23] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E7=83=AD=E6=9B=B4,vip?= =?UTF-8?q?=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- conf/hotfix.json | 5 +++-- .../ljsd/jieling/logic/dao/PlayerManager.java | 4 ++++ .../jieling/logic/player/PlayerLogic.java | 21 +++++++++++-------- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 4499a95c8..7da862d29 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"7", + "version":"8", "tables":"GlobalActivity" } \ No newline at end of file diff --git a/conf/hotfix.json b/conf/hotfix.json index 2d614d60e..08c193c51 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,6 +1,7 @@ { - "version":"6", + "version":"7", "classes":[ - {"name":"PlayerManager.class","fullName":"com.ljsd.jieling.logic.dao.PlayerManager"} + {"name":"PlayerManager.class","fullName":"com.ljsd.jieling.logic.dao.PlayerManager"}, + {"name":"PlayerLogic.class","fullName":"com.ljsd.jieling.logic.player.PlayerLogic"} ] } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 8f3601d67..c721f46e2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -563,12 +563,15 @@ public class PlayerManager extends MongoBase { } public void vipFlush(Set removePrivileges) { + System.out.println("开始刷新特权:"+removePrivileges); if (vipInfo.isEmpty()) { return; } + System.out.println("开始刷新特权,删除前特权数量:"+vipInfo.size()); for (Integer remove : removePrivileges) { vipInfo.remove(remove); } + System.out.println("开始刷新特权,删除后特权数量:"+vipInfo.size()); for (Map.Entry entry : vipInfo.entrySet()) { Integer id = entry.getKey(); VipInfo info = entry.getValue(); @@ -584,6 +587,7 @@ public class PlayerManager extends MongoBase { vipInfo.put(id,refreshVipInfo); } } + System.out.println("刷新特权完成,特权数量:"+vipInfo.size()); updateString("vipInfo", vipInfo); setHadTakeDailyBoxVip(-1); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 0fada4a69..a29ed2bb4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -350,28 +350,31 @@ public class PlayerLogic { int nowInt = TimeUtils.nowInt(); Map vipInfo = playerInfoManager.getVipInfo(); for(Map.Entry vipInfoItem : vipInfo.entrySet()){ + Integer id = vipInfoItem.getKey(); + VipInfo info = vipInfoItem.getValue(); //如果这个权限是活动 且永久了 那么需要修复 - SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()); + SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id); if (config == null){ - LOGGER.info("特权刷新删除日志1:{}-{}",vipInfoItem.getKey(),vipInfoItem.getValue().getEffectTime()); - removePrivileges.add(vipInfoItem.getKey()); + LOGGER.info("特权刷新删除日志1:{};{};{}",user.getId(), id, info.getEffectTime()); + removePrivileges.add(id); continue; } - if(vipInfoItem.getValue().getEffectTime() == 0){ + if(info.getEffectTime() == 0){ int unlockType = config.getUnlockType(); if(unlockType==5 || (unlockType==4 && config.getContinueTime().length>0)){ - playerInfoManager.addVipByTime(vipInfoItem.getKey(), nowInt); + playerInfoManager.addVipByTime(id, nowInt); } } - else if(vipInfoItem.getValue().getEffectTime() <= nowInt){ + else if(info.getEffectTime() <= nowInt){ if(config.getPrivilegeType() == VipPrivilegeType.ADVENTURE_BASE_REWARD){ - CombatLogic.getInstance().getNewAdventureReward(user,true,vipInfoItem.getValue().getEffectTime()); + CombatLogic.getInstance().getNewAdventureReward(user,true, info.getEffectTime()); } - removePrivileges.add(vipInfoItem.getKey()); - LOGGER.info("特权刷新删除日志2:{}-{}",vipInfoItem.getKey(),vipInfoItem.getValue().getEffectTime()); + removePrivileges.add(id); + LOGGER.info("特权刷新删除日志2:{};{};{}",user.getId(), id, info.getEffectTime()); } } + LOGGER.info("特权刷新删除日志3:{};{}",user.getId(),removePrivileges); playerInfoManager.vipFlush(removePrivileges); // vip刷新后才能发给前端 From 16e05fd4b7fb962384df16b34bc59ad4dba00cd4 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 27 Feb 2024 16:15:42 +0800 Subject: [PATCH 17/23] =?UTF-8?q?vip=E5=88=B7=E6=96=B0=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 4 +- conf/hotfix.json | 4 +- .../jieling/handler/GetPlayerInfoHandler.java | 2 +- .../logic/activity/GmDialActivity.java | 3 +- .../ljsd/jieling/logic/dao/PlayerManager.java | 67 +------------- .../jieling/logic/player/PlayerLogic.java | 92 ++++++++++++++++++- .../jieling/logic/store/BuyGoodsNewLogic.java | 2 +- 7 files changed, 103 insertions(+), 71 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 7da862d29..2b4b31e47 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"8", - "tables":"GlobalActivity" + "version":"5", + "tables":"" } \ No newline at end of file diff --git a/conf/hotfix.json b/conf/hotfix.json index 08c193c51..2e5c7ac7a 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,7 +1,5 @@ { - "version":"7", + "version":"5", "classes":[ - {"name":"PlayerManager.class","fullName":"com.ljsd.jieling.logic.dao.PlayerManager"}, - {"name":"PlayerLogic.class","fullName":"com.ljsd.jieling.logic.player.PlayerLogic"} ] } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index a4c9c9528..bc4a257e1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -91,7 +91,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ int unlockType = entry.getValue().getUnlockType(); if(unlockType < 4 || unlockType == 6 || unlockType == 11){ if (!vipInfo.containsKey(entry.getKey())){ - playerInfoManager.addVipInfo(entry.getKey()); + PlayerLogic.getInstance().addVipInfo(user, entry.getKey()); } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GmDialActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GmDialActivity.java index 6ae879f5d..1182974d5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GmDialActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GmDialActivity.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.logic.activity.event.LuckWheelEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.player.PlayerLogic; import config.SGlobalActivity; /** @@ -23,7 +24,7 @@ public class GmDialActivity extends LuckWheelNormalActivity{ super.initActivity(user); SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); if (activity.getPrivilege() != 0){ - user.getPlayerInfoManager().addVipInfo(activity.getPrivilege()); + PlayerLogic.getInstance().addVipInfo(user, activity.getPrivilege()); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index c721f46e2..71b41d874 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -514,6 +514,11 @@ public class PlayerManager extends MongoBase { return vipInfo; } + public void setVipInfo(Map vipInfo) { + this.vipInfo = vipInfo; + updateString("vipInfo", vipInfo); + } + public Set getHadTakeLevelBoxVip() { return vipGoodInfo; } @@ -562,74 +567,12 @@ public class PlayerManager extends MongoBase { updateString("vipInfo", vipInfo); } - public void vipFlush(Set removePrivileges) { - System.out.println("开始刷新特权:"+removePrivileges); - if (vipInfo.isEmpty()) { - return; - } - System.out.println("开始刷新特权,删除前特权数量:"+vipInfo.size()); - for (Integer remove : removePrivileges) { - vipInfo.remove(remove); - } - System.out.println("开始刷新特权,删除后特权数量:"+vipInfo.size()); - for (Map.Entry entry : vipInfo.entrySet()) { - Integer id = entry.getKey(); - VipInfo info = entry.getValue(); - SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id); - if (null == sPrivilegeTypeConfig) { - continue; - } - int refreshType = sPrivilegeTypeConfig.getRefreshType()[0]; - if (refreshType == 1 && info.getCount() > 0) { - VipInfo refreshVipInfo = new VipInfo(); - refreshVipInfo.setCount(0); - refreshVipInfo.setEffectTime(info.getEffectTime()); - vipInfo.put(id,refreshVipInfo); - } - } - System.out.println("刷新特权完成,特权数量:"+vipInfo.size()); - updateString("vipInfo", vipInfo); - setHadTakeDailyBoxVip(-1); - } - public void clearVipCount(int priviliageId){ vipInfo.put(priviliageId,new VipInfo()); updateString("vipInfo", vipInfo); } - public void addVipInfo(int privilegeId){ - SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilegeId); - if (config==null){ - return; - } - int maxTime; - int nowInt = TimeUtils.nowInt(); - VipInfo newVipInfo = new VipInfo(); - if(config.getContinueTime()!=null && config.getContinueTime().length>0){ - if(vipInfo.containsKey(privilegeId)){ - VipInfo info = vipInfo.get(privilegeId); - if(config.getContinueTime()[1]==1 && nowInt < info.getEffectTime()){ - boolean aBool = config.getCondition().length == 1 && config.getCondition()[0][0] == 0; - if(!aBool){ - newVipInfo.setCount(info.getCount()-config.getCondition()[0][1]); - newVipInfo.setEffectTime(info.getEffectTime()); - vipInfo.put(privilegeId,newVipInfo); - updateString("vipInfo", this.vipInfo); - } - return; - } - maxTime = Math.max(nowInt, info.getEffectTime()) + config.getContinueTime()[0]; - }else { - maxTime = nowInt + config.getContinueTime()[0]; - } - maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000L,0,0,true)/1000); - newVipInfo.setEffectTime(maxTime); - } - this.vipInfo.put(privilegeId,newVipInfo); - updateString("vipInfo", this.vipInfo); - } - /** * 根据时间添加权限 * @param privilageId 权限id diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index a29ed2bb4..a131d082e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -57,6 +57,7 @@ import util.MathUtils; import util.TimeUtils; import java.util.*; +import java.util.stream.Collectors; @SuppressWarnings("unchecked") public class PlayerLogic { @@ -375,7 +376,7 @@ public class PlayerLogic { } } LOGGER.info("特权刷新删除日志3:{};{}",user.getId(),removePrivileges); - playerInfoManager.vipFlush(removePrivileges); + vipFlush(user, removePrivileges); // vip刷新后才能发给前端 if(fBuilder != null){ @@ -391,6 +392,95 @@ public class PlayerLogic { } } + /** + * vip刷新逻辑测试 + * @param uid + * @param remove + * @throws Exception + */ + public void vipFlushTest(int uid, int[] remove) throws Exception { + LOGGER.info("刷新特权测试,uid:{},remove:{}",uid,remove); + User user = UserManager.getUser(uid); + Set collect = Arrays.stream(remove).boxed().collect(Collectors.toSet()); + vipFlush(user, collect); + } + + /** + * vip刷新逻辑 + * @param user + * @param removePrivileges + */ + public void vipFlush(User user, Set removePrivileges) { + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + Map vipInfo = playerInfoManager.getVipInfo(); + LOGGER.info("开始刷新特权,uid:{},list:{}",user.getId(),removePrivileges); + if (vipInfo.isEmpty()) { + return; + } + LOGGER.info("开始刷新特权,删除前特权数量,uid:{},size:{}",user.getId(),vipInfo.size()); + for (Integer remove : removePrivileges) { + vipInfo.remove(remove); + } + LOGGER.info("开始刷新特权,删除后特权数量,uid:{},size:{}",user.getId(),vipInfo.size()); + for (Map.Entry entry : vipInfo.entrySet()) { + Integer id = entry.getKey(); + VipInfo info = entry.getValue(); + SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id); + if (null == sPrivilegeTypeConfig) { + continue; + } + int refreshType = sPrivilegeTypeConfig.getRefreshType()[0]; + if (refreshType == 1 && info.getCount() > 0) { + VipInfo refreshVipInfo = new VipInfo(); + refreshVipInfo.setCount(0); + refreshVipInfo.setEffectTime(info.getEffectTime()); + vipInfo.put(id,refreshVipInfo); + } + } + LOGGER.info("刷新特权完成,特权数量,uid:{},size:{}",user.getId(),vipInfo.size()); + playerInfoManager.setVipInfo(vipInfo); + playerInfoManager.setHadTakeDailyBoxVip(-1); + } + + /** + * 新增或刷新vip信息 + * @param user + * @param privilegeId + */ + public void addVipInfo(User user, int privilegeId){ + SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilegeId); + if (config==null){ + return; + } + PlayerManager playerManager = user.getPlayerInfoManager(); + Map vipInfo = playerManager.getVipInfo(); + int maxTime; + int nowInt = TimeUtils.nowInt(); + VipInfo newVipInfo = new VipInfo(); + if(config.getContinueTime()!=null && config.getContinueTime().length>0){ + if(vipInfo.containsKey(privilegeId)){ + VipInfo info = vipInfo.get(privilegeId); + if(config.getContinueTime()[1]==1 && nowInt < info.getEffectTime()){ + boolean aBool = config.getCondition().length == 1 && config.getCondition()[0][0] == 0; + if(!aBool){ + newVipInfo.setCount(info.getCount()-config.getCondition()[0][1]); + newVipInfo.setEffectTime(info.getEffectTime()); + vipInfo.put(privilegeId,newVipInfo); + playerManager.setVipInfo(vipInfo); + } + return; + } + maxTime = Math.max(nowInt, info.getEffectTime()) + config.getContinueTime()[0]; + }else { + maxTime = nowInt + config.getContinueTime()[0]; + } + maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000L,0,0,true)/1000); + newVipInfo.setEffectTime(maxTime); + } + vipInfo.put(privilegeId,newVipInfo); + playerManager.setVipInfo(vipInfo); + } + public Set getPrivilege(User user, Collection collection) { Map vipInfo = user.getPlayerInfoManager().getVipInfo(); HashSet set = new HashSet<>(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 1deecd224..eced2ae6e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -605,7 +605,7 @@ public class BuyGoodsNewLogic { if(privilegeType == VipPrivilegeType.ADVENTURE_BASE_REWARD){ CombatLogic.getInstance().getNewAdventureReward(user,true,TimeUtils.nowInt()); } - user.getPlayerInfoManager().addVipInfo(privilege); + PlayerLogic.getInstance().addVipInfo(user, privilege); VipInfo vipInfo = user.getPlayerInfoManager().getVipInfo().get(privilege); indication.addInfos(CommonProto.Privilege.newBuilder().setId(privilege).setUsedTimes(vipInfo.getCount()).setEffectTime(vipInfo.getEffectTime()).build()); } From f99362b3889448bea21fc373039c2defab55b772 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 27 Feb 2024 17:01:04 +0800 Subject: [PATCH 18/23] =?UTF-8?q?vip=E5=88=B7=E6=96=B0=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/player/PlayerLogic.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index a131d082e..4388e884d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -8,6 +8,7 @@ import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType; import com.ljsd.jieling.db.mongo.AreaManager; +import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; @@ -410,7 +411,7 @@ public class PlayerLogic { * @param user * @param removePrivileges */ - public void vipFlush(User user, Set removePrivileges) { + public void vipFlush(User user, Set removePrivileges) throws Exception { PlayerManager playerInfoManager = user.getPlayerInfoManager(); Map vipInfo = playerInfoManager.getVipInfo(); LOGGER.info("开始刷新特权,uid:{},list:{}",user.getId(),removePrivileges); @@ -440,6 +441,7 @@ public class PlayerLogic { LOGGER.info("刷新特权完成,特权数量,uid:{},size:{}",user.getId(),vipInfo.size()); playerInfoManager.setVipInfo(vipInfo); playerInfoManager.setHadTakeDailyBoxVip(-1); + MongoUtil.getInstence().lastUpdate(); } /** From 20f77be81dd51be38b5870a0fb3569e5ded72018 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 5 Mar 2024 17:18:24 +0800 Subject: [PATCH 19/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 2b4b31e47..af142624e 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"5", - "tables":"" + "version":"6", + "tables":"GlobalActivity" } \ No newline at end of file From fc0c3b1250863f7862f2e9ebdeebfc08b3d5438a Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 12 Mar 2024 15:19:45 +0800 Subject: [PATCH 20/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index af142624e..4499a95c8 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"6", + "version":"7", "tables":"GlobalActivity" } \ No newline at end of file From bedc8a1c0add74532f1c0b735b202994ebf4d71c Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 13 Mar 2024 18:11:52 +0800 Subject: [PATCH 21/23] =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/db/mongo/LjsdMongoTemplate.java | 10 ----- .../com/ljsd/jieling/db/mongo/MongoUtil.java | 43 +++++++++++++------ .../com/ljsd/jieling/logic/dao/root/User.java | 4 ++ 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java index bdd7008db..a82ad689a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java @@ -38,9 +38,6 @@ public class LjsdMongoTemplate implements MongoUpdateImp { //注释 public void save(int uid,T obj) throws Exception { -// MongoRoot root = (MongoRoot)obj; -// mongoTemplate.save(obj,root.getCollection()); -// root.setBsave(true); int serverIdByUid = AreaManager.getInstance().getServerIdByUid(uid); MongoTemplate otherMonogTemplate = getMongoTemplate(serverIdByUid); if (otherMonogTemplate == null) { @@ -75,14 +72,8 @@ public class LjsdMongoTemplate implements MongoUpdateImp { if (mongoTemplate != null) { return mongoTemplate.findAll(clazz); } - -// for (MongoTemplate mongoTemplate : MongoUtil.mongoTemplateMap.values()) { -// List all = mongoTemplate.findAll(clazz); -// list.addAll(all); -// } } return list; - //return mongoTemplate.findAll(clazz,collectionName); } public List findAllByCondition(Query query, Class entityClass) { @@ -149,7 +140,6 @@ public class LjsdMongoTemplate implements MongoUpdateImp { return otherMonogTemplate.findById(id,clazz,collectionName); } - public T findById(int id, Class clazz) throws Exception { int serverIdByUid ; if(clazz.equals(GlobalSystemControl.class)||clazz.equals(ServerConfig.class)){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoUtil.java index 1e8bf5431..62a0fd29c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoUtil.java @@ -12,7 +12,9 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.util.ConfigurableApplicationContextManager; import com.ljsd.jieling.util.InnerMessageUtil; import com.ljsd.jieling.util.SysUtil; +import com.mongodb.DBObject; import com.mongodb.MongoClient; +import org.bson.Document; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.annotation.Transient; @@ -86,22 +88,37 @@ public class MongoUtil { } //todo 慢查 需要修改 - public List getRandomUsers(int size, int uid, int level) throws Exception { + public List getRandomUsers(int size, int uid, int level) { + // 验证size参数的有效性 if (size <= 0) { - return null; + return Collections.emptyList(); } - int randomLevel = MathUtils.random(5, 20); - Criteria criatira = new Criteria(); - int minLevel = level - randomLevel; - minLevel = Math.max(minLevel, 5); - int maxLevel = level + randomLevel; - long befor3Day = System.currentTimeMillis() - BEFOR_3_DAY; - criatira.andOperator(Criteria.where("id").nin(uid),//不包含自己 - Criteria.where("playerManager.level").gte(minLevel), Criteria.where("playerManager.level").lte(maxLevel), - Criteria.where("playerManager.loginTime").gte(befor3Day)); - Query query = new Query(criatira).limit(size * 2 + 1); + // 随机等级差异的计算 + int randomLevel = MathUtils.random(5, 20); + int minLevel = Math.max(level - randomLevel, 5); + int maxLevel = level + randomLevel; + + // 计算三天前的时间点 + long threeDaysAgo = System.currentTimeMillis() - BEFOR_3_DAY; + + // 构建查询条件 + Criteria criteria = Criteria.where("id").nin(uid) + .and("playerManager.level").gte(minLevel).lte(maxLevel) + .and("playerManager.loginTime").gte(threeDaysAgo); + + // 创建查询对象,并设置限制条件 + int length = size * 2 + 1; + Query query = Query.query(criteria).limit(length); + + // 限定返回的字段,只返回需要的字段可以提高效率 query.fields().include("playerManager"); + +// MongoTemplate mongoTemplate = mongoTemplateMap.get(GameApplication.serverId); +// DBObject explainResult = mongoTemplate.getCollection("user").find(query.getQueryObject()).explain(); +// LOGGER.info("随机玩家mongo检查:{}",explainResult.toString()); + + // 执行查询 return this.myMongoTemplate.findAllByCondition(query, User.class); } @@ -266,7 +283,7 @@ public class MongoUtil { mongoTemplate = new MongoTemplate(mongoDbFactory, mappingMongoConverter); mongoTemplateMap.put(serverId,mongoTemplate); } - return mongoTemplate; + return mongoTemplate; } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java index 3ccaa5f57..38a613dae 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java @@ -6,7 +6,11 @@ import com.ljsd.jieling.handler.map.MapManager; import com.ljsd.jieling.jbean.ActivityManager; import com.ljsd.jieling.jbean.gm.GmActivityManager; import com.ljsd.jieling.logic.dao.*; +import org.springframework.data.mongodb.core.index.CompoundIndex; +import org.springframework.data.mongodb.core.mapping.Document; +@Document +@CompoundIndex(def = "{'playerManager.level' : 1, 'playerManager.loginTime': 1}", name = "level_loginTime_idx") public class User { public static final String _COLLECTION_NAME = "user"; From 7effc468fec78ac906b24433af4f944c01789ee9 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 21 Mar 2024 14:39:03 +0800 Subject: [PATCH 22/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 4499a95c8..7da862d29 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"7", + "version":"8", "tables":"GlobalActivity" } \ No newline at end of file From c5c14b57ce6c9739c840278132e1ab165119af52 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 27 Mar 2024 15:13:52 +0800 Subject: [PATCH 23/23] =?UTF-8?q?=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 7da862d29..9d4b25d94 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"8", + "version":"9", "tables":"GlobalActivity" } \ No newline at end of file