From ba3123906c3ce935a0c6b8fc03655b1e41340027 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Tue, 26 Sep 2023 14:19:32 +0800 Subject: [PATCH 01/74] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=88=86=E8=A7=A3?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=A4=BC=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/item/ItemLogic.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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 52455083b..1b3af71d1 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 @@ -524,10 +524,10 @@ public class ItemLogic { //卸下魂印装备 Map equipByPositionMap = hero.getEquipByPositionMap(); Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - if (equipByPositionMap != null && equipByPositionMap.size() > 0) { + if (equipByPositionMap != null && !equipByPositionMap.isEmpty()) { equipByPositionMap.forEach((k, v) -> baseItemMap.put(v, baseItemMap.getOrDefault(v, 0L) + 1)); } - if (soulEquipByPositionMap != null && soulEquipByPositionMap.size() > 0) { + if (soulEquipByPositionMap != null && !soulEquipByPositionMap.isEmpty()) { soulEquipByPositionMap.forEach((k, v) -> baseItemMap.put(v, baseItemMap.getOrDefault(v, 0L) + 1)); } //卸下宝物 @@ -554,7 +554,13 @@ public class ItemLogic { user.getEquipManager().unloadFaxiang(key); } } - + // 礼物装备 + Set giftEquipList = hero.getHeroGiftEquipList(); + if (giftEquipList != null && !giftEquipList.isEmpty()){ + for (Integer id : giftEquipList) { + baseItemMap.put(id,1L); + } + } heroIdReport.add(hero.getTemplateId()); heroLevelReport.add(hero.getOriginalLevel()); From e3ac93946011a886759480cf67094f42f9b9bd33 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Tue, 26 Sep 2023 15:17:04 +0800 Subject: [PATCH 02/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 4 ++-- conf/hotfix.json | 6 +----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 4499a95c8..2b4b31e47 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"7", - "tables":"GlobalActivity" + "version":"5", + "tables":"" } \ No newline at end of file diff --git a/conf/hotfix.json b/conf/hotfix.json index e6728e6bf..2e5c7ac7a 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,9 +1,5 @@ { - "version":"12", + "version":"5", "classes":[ - {"name":"ItemUtil.class","fullName":"com.ljsd.jieling.util.ItemUtil"}, - {"name":"GetPlayerInfoHandler.class","fullName":"com.ljsd.jieling.handler.GetPlayerInfoHandler"}, - {"name":"ItemLogic.class","fullName":"com.ljsd.jieling.logic.item.ItemLogic"}, - {"name":"Cmd_general.class","fullName":"com.ljsd.jieling.kefu.Cmd_general"} ] } \ No newline at end of file From 30cdab855bfe54b3cbf1ca4e09568dd1e96a17d7 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Tue, 26 Sep 2023 18:06:34 +0800 Subject: [PATCH 03/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=E8=A1=A8?= 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..b16bbcbaa 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"5", - "tables":"" + "version":"6", + "tables":"BlessingRewardPoolNew|ItemConfig|RewardGroup|RewardItemConfig" } \ No newline at end of file From 21daa05e51b2441329e2be1e3180777613b532f2 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Tue, 26 Sep 2023 18:10:39 +0800 Subject: [PATCH 04/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=E9=87=8D=E7=BD=AE?= 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 b16bbcbaa..2b4b31e47 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"6", - "tables":"BlessingRewardPoolNew|ItemConfig|RewardGroup|RewardItemConfig" + "version":"5", + "tables":"" } \ No newline at end of file From a6aaa6d28b46e73fbc38bef11fead5377fb0d545 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Tue, 26 Sep 2023 20:57:27 +0800 Subject: [PATCH 05/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/hotfix.json | 3 +- .../ljsd/jieling/logic/item/ItemLogic.java | 106 +++++++++--------- 2 files changed, 55 insertions(+), 54 deletions(-) diff --git a/conf/hotfix.json b/conf/hotfix.json index 2e5c7ac7a..d2f637b15 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,5 +1,6 @@ { - "version":"5", + "version":"6", "classes":[ + {"name":"ItemLogic.class","fullName":"com.ljsd.jieling.logic.item.ItemLogic"} ] } \ No newline at end of file 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 1b3af71d1..e71e9c45a 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 @@ -1046,59 +1046,59 @@ public class ItemLogic { */ public void checkItem(User user) throws ErrorCodeException { //检查白金魂印是否异常 - Item item1 = user.getItemManager().getItem(81147); - if(item1 != null){ - if(item1.getItemNum() >=10000){ - String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item1.getItemId(),item1.getItemNum()); - LOGGER.error(format); - throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); - } - } - //检查神装升星碎片是否异常 - Item item2 = user.getItemManager().getItem(81247); - if(item2 != null){ - if(item2.getItemNum() >=100000){ - String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item2.getItemId(),item2.getItemNum()); - LOGGER.error(format); - throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); - } - } - //检查神1自选箱是否异常 - Item item3 = user.getItemManager().getItem(33003); - if(item3 != null){ - if(item3.getItemNum() >=10000){ - String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item3.getItemId(),item3.getItemNum()); - LOGGER.error(format); - throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); - } - } - //检查神2自选箱是否异常 - Item item4 = user.getItemManager().getItem(33004); - if(item4 != null){ - if(item4.getItemNum() >=10000){ - String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item4.getItemId(),item4.getItemNum()); - LOGGER.error(format); - throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); - } - } - //检查极品传说自选箱是否异常 - Item item5 = user.getItemManager().getItem(81182); - if(item5 != null){ - if(item5.getItemNum() >=10000){ - String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item5.getItemId(),item5.getItemNum()); - LOGGER.error(format); - throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); - } - } - //检查红色魂印自选箱是否异常 - Item item6 = user.getItemManager().getItem(81129); - if(item6 != null){ - if(item6.getItemNum() >=10000){ - String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item6.getItemId(),item6.getItemNum()); - LOGGER.error(format); - throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); - } - } +// Item item1 = user.getItemManager().getItem(81147); +// if(item1 != null){ +// if(item1.getItemNum() >=10000){ +// String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item1.getItemId(),item1.getItemNum()); +// LOGGER.error(format); +// throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); +// } +// } +// //检查神装升星碎片是否异常 +// Item item2 = user.getItemManager().getItem(81247); +// if(item2 != null){ +// if(item2.getItemNum() >=100000){ +// String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item2.getItemId(),item2.getItemNum()); +// LOGGER.error(format); +// throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); +// } +// } +// //检查神1自选箱是否异常 +// Item item3 = user.getItemManager().getItem(33003); +// if(item3 != null){ +// if(item3.getItemNum() >=10000){ +// String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item3.getItemId(),item3.getItemNum()); +// LOGGER.error(format); +// throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); +// } +// } +// //检查神2自选箱是否异常 +// Item item4 = user.getItemManager().getItem(33004); +// if(item4 != null){ +// if(item4.getItemNum() >=10000){ +// String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item4.getItemId(),item4.getItemNum()); +// LOGGER.error(format); +// throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); +// } +// } +// //检查极品传说自选箱是否异常 +// Item item5 = user.getItemManager().getItem(81182); +// if(item5 != null){ +// if(item5.getItemNum() >=10000){ +// String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item5.getItemId(),item5.getItemNum()); +// LOGGER.error(format); +// throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); +// } +// } +// //检查红色魂印自选箱是否异常 +// Item item6 = user.getItemManager().getItem(81129); +// if(item6 != null){ +// if(item6.getItemNum() >=10000){ +// String format = MessageFormat.format("道具异常,uid:{0},itemId:{1},itemNum:{2}", user.getId(), item6.getItemId(),item6.getItemNum()); +// LOGGER.error(format); +// throw new ErrorCodeException(ErrorCode.ACCOUNT_ERROR); +// } +// } // Item item7 = user.getItemManager().getItem(1004); // if(item7 != null){ // if(item7.getItemNum() >= 300 && user.getId() != 10009366){ From 6ed51d7c84461a06ea212202b15646e470929fae Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Mon, 16 Oct 2023 10:55:43 +0800 Subject: [PATCH 06/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=EF=BC=9A=E7=AD=96?= =?UTF-8?q?=E5=88=92=E8=A1=A8?= 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 402130f11e9675cfea561c71ba0ab535691ffc8a Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Thu, 19 Oct 2023 16:00:18 +0800 Subject: [PATCH 07/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=EF=BC=9A=E7=AD=96?= =?UTF-8?q?=E5=88=92=E8=A1=A8?= 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 443ad0aba714421513b9316252ea0f6e256d2bd3 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Sat, 28 Oct 2023 18:16:09 +0800 Subject: [PATCH 08/74] =?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 47cf2b227b3784bf88442a782cbf31e8938e272c Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Mon, 30 Oct 2023 18:37:53 +0800 Subject: [PATCH 09/74] =?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 From 7af6e53e76561311ab9db52f2363bf6cc60282de Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Fri, 3 Nov 2023 11:06:02 +0800 Subject: [PATCH 10/74] =?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 9d4b25d94..ac0c434f1 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"9", + "version":"10", "tables":"GlobalActivity" } \ No newline at end of file From 7acad94334170ed928980ef9ade4c751e6a3ad6b Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Wed, 8 Nov 2023 15:17:52 +0800 Subject: [PATCH 11/74] =?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 ac0c434f1..6ef938c48 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"10", + "version":"11", "tables":"GlobalActivity" } \ No newline at end of file From 572e5c39c18a01abbfbfd8f35d654f684bc73566 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Tue, 14 Nov 2023 16:24:11 +0800 Subject: [PATCH 12/74] =?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 6ef938c48..f0414e17b 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"11", + "version":"12", "tables":"GlobalActivity" } \ No newline at end of file From d925924aca882bd6344f99fa9f256f388a3fa0fc Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Mon, 20 Nov 2023 15:20:58 +0800 Subject: [PATCH 13/74] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= 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 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index f0414e17b..2b4b31e47 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"12", - "tables":"GlobalActivity" + "version":"5", + "tables":"" } \ No newline at end of file diff --git a/conf/hotfix.json b/conf/hotfix.json index d2f637b15..9f7fc801a 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,6 +1,6 @@ { - "version":"6", + "version":"5", "classes":[ - {"name":"ItemLogic.class","fullName":"com.ljsd.jieling.logic.item.ItemLogic"} + {"name":""} ] } \ No newline at end of file From da1193558958b51874f8e93211e2505a3ee17166 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Mon, 20 Nov 2023 15:22:05 +0800 Subject: [PATCH 14/74] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/hotfix.json | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/hotfix.json b/conf/hotfix.json index 9f7fc801a..2e5c7ac7a 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,6 +1,5 @@ { "version":"5", "classes":[ - {"name":""} ] } \ No newline at end of file From e2e510dd655a89effa4723db3928d6d9b51ead90 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Tue, 28 Nov 2023 10:13:08 +0800 Subject: [PATCH 15/74] =?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 ++- ...GetWorldArenaRecordInfoRequestHandler.java | 24 +++++++++---------- 3 files changed, 15 insertions(+), 16 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 2e5c7ac7a..444a9c747 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,5 +1,6 @@ { - "version":"5", + "version":"6", "classes":[ + {"name":"GetWorldArenaRecordInfoRequestHandler.class","fullName":"com.ljsd.jieling.handler.gtw.GetWorldArenaRecordInfoRequestHandler"} ] } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaRecordInfoRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaRecordInfoRequestHandler.java index c9d7126e0..8ac2db902 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaRecordInfoRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaRecordInfoRequestHandler.java @@ -34,7 +34,7 @@ public class GetWorldArenaRecordInfoRequestHandler extends BaseHandler result = RedisUtil.getInstence().getMapValues(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(iSession.getUid()), String.class, byte[].class); - if (result != null && !result.isEmpty()) { +// LOGGER.info("罗浮战斗记录个人数量,uid:{},num:{}",iSession.getUid(), result.values().size()); List< byte[]> arenaRecordList = new ArrayList<>(result.values()); List collect = arenaRecordList.stream().map(bytes -> { try { @@ -64,27 +64,25 @@ public class GetWorldArenaRecordInfoRequestHandler extends BaseHandler wroldBattleRecord1 != null ? wroldBattleRecord1.getAttackTime() : 0)).collect(Collectors.toList()); Collections.reverse(collect); int size = arenaRecordList.size(); +// LOGGER.info("罗浮战斗记录个人数量2,uid:{},num:{}",iSession.getUid(), size); if (size > 15) { - String[] removeMapKeys = new String[size - 15]; +// String[] removeMapKeys = new String[size - 15]; + ArrayList list = new ArrayList<>(size - 15); +// LOGGER.info("罗浮战斗记录删除数组长度,uid:{},num:{}",iSession.getUid(), size - 15); for (int i = 0; i < size - 15; i++) { WorldProto.WroldBattleRecord remove = collect.remove(size-i-1); - String removeId = remove.getRecordId(); - removeMapKeys[i] = (removeId); +// removeMapKeys[i] = remove.getRecordId(); + list.add(remove.getRecordId()); } - RedisUtil.getInstence().removeMapEntrys(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(iSession.getUid()), (Object) removeMapKeys); + RedisUtil.getInstence().removeMapEntrys(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(iSession.getUid()), list.toArray()); +// LOGGER.info("罗浮战斗记录删除数组,uid:{},num:{}, num2:{}",iSession.getUid(), removeMapKeys, collect.size()); } builder.addAllWroldBattleRecord(collect); } - +// LOGGER.info("罗浮战斗记录结果,uid:{},num:{}",iSession.getUid(), RedisUtil.getInstence().getMapValues(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(iSession.getUid()), String.class, byte[].class).size()); MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.GetWorldArenaRecordInfoResponse.getNumber(),builder.build(),true); - -// //转发到world服 -// boolean b = WorldHelper.sendMessageToWord(iSession.getUid(),proto); -// if(!b){ -// throw new ErrorCodeException(ErrorCode.UNKNOWN); -// } } } From 0cab0056e5b5df36b51606e5ebb8caefe826f468 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Wed, 6 Dec 2023 15:04:33 +0800 Subject: [PATCH 16/74] =?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 0bc3cf6743bc71d5f7f2b18097639e0c1cba732a Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Wed, 13 Dec 2023 13:40:32 +0800 Subject: [PATCH 17/74] =?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 46432d820be8cb096ce50272e343a8dede4a5c35 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Sun, 24 Dec 2023 09:43:00 +0800 Subject: [PATCH 18/74] =?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 From de51a1551a87629edcc285c9186382e7fb88faeb Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 28 Dec 2023 10:38:17 +0800 Subject: [PATCH 19/74] =?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 9d4b25d94..ac0c434f1 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"9", + "version":"10", "tables":"GlobalActivity" } \ No newline at end of file From fe9ac5d1b6a408690c72b1e1721da401aaa7b922 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 3 Jan 2024 15:23:06 +0800 Subject: [PATCH 20/74] =?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 ac0c434f1..6ef938c48 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"10", + "version":"11", "tables":"GlobalActivity" } \ No newline at end of file From 3fcdc2f2792d65376cb7ef89bbc7b5b67ae47e12 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 8 Jan 2024 10:46:44 +0800 Subject: [PATCH 21/74] =?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 6ef938c48..f0414e17b 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"11", + "version":"12", "tables":"GlobalActivity" } \ No newline at end of file From 7b7c5550c62bd7dace7c23ee6806dfc12b234722 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 8 Jan 2024 10:55:11 +0800 Subject: [PATCH 22/74] =?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 f0414e17b..e872e120c 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { "version":"12", - "tables":"GlobalActivity" + "tables":"GlobalActivity|TreasureTaskConfig" } \ No newline at end of file From e7c7458568331a766e2654feeb4117a34a89c099 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 11 Jan 2024 15:03:59 +0800 Subject: [PATCH 23/74] =?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 e872e120c..df56adbac 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"12", + "version":"13", "tables":"GlobalActivity|TreasureTaskConfig" } \ No newline at end of file From 28420b4ae8f96c0cefe65fc4cffab16dba6a8422 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 16 Jan 2024 10:22:53 +0800 Subject: [PATCH 24/74] =?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 df56adbac..02b8d4b83 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"13", + "version":"14", "tables":"GlobalActivity|TreasureTaskConfig" } \ No newline at end of file From f6de5eb7d0f219631c27461cb7b367d68132df27 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 16 Jan 2024 17:19:42 +0800 Subject: [PATCH 25/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=EF=BC=8Ctime=E7=B1=BB=E5=9E=8B=E4=B8=BA6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/TimeUtils.java | 3 + .../clazzStaticCfg/CommonStaticConfig.java | 8 +- .../jieling/logic/activity/ActivityLogic.java | 146 ++++++++---------- .../jieling/logic/activity/ActivityType.java | 4 +- .../activity/ContinuousGiftActivity.java | 68 ++------ .../logic/activity/SuperBoxActivity.java | 62 ++------ .../activity/activityLogic/WeekCardLogic.java | 42 +---- .../jieling/logic/store/BuyGoodsNewLogic.java | 3 +- .../java/com/ljsd/jieling/util/ToolsUtil.java | 47 ++++-- 9 files changed, 143 insertions(+), 240 deletions(-) diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index aa5687be5..9362dfba9 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -421,6 +421,9 @@ public class TimeUtils { return calendar.getTimeInMillis(); } + /** + * 获取指定时间的当天0点 + */ public static long getAppointTimeInXDay(long date, int hour) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(date); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/CommonStaticConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/CommonStaticConfig.java index 99d1f1491..0bdb6ef84 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/CommonStaticConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/CommonStaticConfig.java @@ -2,18 +2,12 @@ package com.ljsd.jieling.config.clazzStaticCfg; import com.ljsd.GameApplication; import com.ljsd.jieling.globals.Global; -import com.ljsd.jieling.logic.dao.ExpeditionItem; -import com.ljsd.jieling.logic.dao.Hero; -import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.family.GuildFightLogic; -import com.ljsd.jieling.logic.hero.HeroLogic; import config.*; import manager.AbstractClassStaticConfig; import manager.STableManager; import manager.Table; -import util.TimeUtils; -import util.CellUtil; import util.MathUtils; +import util.TimeUtils; import java.util.*; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index c3fc44b83..0da95e38b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -169,7 +169,8 @@ public class ActivityLogic implements IEventHandler{ //检查开启的活动 非相对创角时间 for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { int time = sGlobalActivity.getTime(); - ActivityTypeEnum.getActicityById(sGlobalActivity.getId()); + int id = sGlobalActivity.getId(); + AbstractActivity activity = ActivityTypeEnum.getActicityById(id); if (time == ActivityType.OPEN_TYPE_ROLE) { continue; } @@ -180,54 +181,52 @@ public class ActivityLogic implements IEventHandler{ long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2); if (now < startTime) { //如果没到活动开启时间,但是openActivityIds里有了这个活动,证明是热更延迟开启的活动,需要清除掉 - openActivityIds.remove(sGlobalActivity.getId()); + openActivityIds.remove(id); continue; } // 开服条件判断 - boolean open = SGlobalActivity.checkActivityIfOpen(sGlobalActivity.getId(),0,GameApplication.serverConfig.getCacheOpenTime()); + boolean open = SGlobalActivity.checkActivityIfOpen(id,0,GameApplication.serverConfig.getCacheOpenTime()); if (!open){ - openActivityIds.remove(sGlobalActivity.getId()); + openActivityIds.remove(id); continue; } long gapEndTime = endTime+sGlobalActivity.getGapTime()*TimeUtils.DAY; if (endTime != 0 && now > endTime) { - if (!openActivityIds.contains(sGlobalActivity.getId())) { + if (!openActivityIds.contains(id)) { if(nowgapEndTime){ - openActivityIds.remove(sGlobalActivity.getId()); + openActivityIds.remove(id); } - AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(sGlobalActivity.getId()); - if (null == abstractActivity) { + if (null == activity) { continue; } //活動結束 預約的展示期間 if(now activityPreMap = globalSystemControl.getActivityPreEnd(); - if(activityPreMap.containsKey(sGlobalActivity.getId())){ - if(activityPreMap.get(sGlobalActivity.getId())>=endTime && activityPreMap.get(sGlobalActivity.getId())<=gapEndTime){ + if(activityPreMap.containsKey(id)){ + if(activityPreMap.get(id)>=endTime && activityPreMap.get(id)<=gapEndTime){ continue; } } - abstractActivity.onActivityPreEnd(); + activity.onActivityPreEnd(); continue; } - abstractActivity.onActivityEnd(); + activity.onActivityEnd(); continue; } - AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(sGlobalActivity.getId()); - if (null == abstractActivity) { + if (null == activity) { continue; } - if(openActivityIds.contains(sGlobalActivity.getId())) { + if(openActivityIds.contains(id)) { continue; } - abstractActivity.onActivityStart(); - openActivityIds.add(sGlobalActivity.getId()); + activity.onActivityStart(); + openActivityIds.add(id); } //活动数据处理分发到角色线程 InnerMessageUtil.broadcastWithRandom(user1 -> { @@ -270,6 +269,7 @@ public class ActivityLogic implements IEventHandler{ }, new LinkedList<>(OnlineUserManager.sessionMap.keySet()),2); } + public void newPlayerOpenActivityMission(User user) throws Exception { checkActivityOfUser(user, null); ISession session = OnlineUserManager.getSessionByUid(user.getId()); @@ -364,31 +364,7 @@ public class ActivityLogic implements IEventHandler{ } ActivityMission activityMission = activityManager.getActivityMissionMap().get(openActivityId); if (activityMission != null) { - if(openActivityId == ActivityType.RechargeTotal){ - //首冲3天 -> 7天 容错 - int chargeMoneyCount = 0; - List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(openActivityId); - if(sActivityRewardConfigs.size() != activityMission.getActivityMissionMap().size()){ - for(ActivityProgressInfo progressInfo:activityMission.getActivityMissionMap().values()){ - if(chargeMoneyCount != progressInfo.getProgrss()){ - chargeMoneyCount = progressInfo.getProgrss(); - } - } - } - for (SActivityRewardConfig config:sActivityRewardConfigs) { - if(!activityMission.getActivityMissionMap().containsKey(config.getId())){ - if(activityMission.getActivityState()==2){ - activityMission.setActivityState(1); - } - ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo(); - activityProgressInfo.setProgrss(ActivityLogic.getInstance().getInitActivityMissionProgress(openActivityId)); - activityProgressInfo.setState(0); - activityProgressInfo.setProgrss(chargeMoneyCount); - activityMission.getActivityMissionMap().put(config.getId(), activityProgressInfo); - } - } - } - // 登录检测已开启的活动,商店是否开启 + // 商店初始化 int[] shopId = sGlobalActivity.getShopId(); if (shopId != null && shopId.length > 0 && shopId[0] != 0) { boolean b = user.getStoreManager().getStoreInfoMap().containsKey(shopId[0]); @@ -399,17 +375,8 @@ public class ActivityLogic implements IEventHandler{ } continue; } - initAllActivityMission(activityManager.getActivityMissionMap(),openActivityId); - AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(openActivityId); - if (null==abstractActivity) { - continue; - } - - abstractActivity.initActivity(user); -// ReportUtil.onReportEvent(user, ReportEventEnum.JOIN_ACTIVITY.getType(),String.valueOf(openActivityId)); - int activityOpenState = getActivityOpenState(user, openActivityId); - abstractActivity.setOpenState(user,activityOpenState); - if(activityOpenState == ActivityType.UNOPEN_STATE){ + boolean checked = checkStateAndInitFromActivity(user, openActivityId); + if (checked){ continue; } //非角色活动开启通知 @@ -417,7 +384,17 @@ public class ActivityLogic implements IEventHandler{ } Map activityMissionMap = activityManager.getActivityMissionMap(); for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { - if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){ + + long startTimeLong = sGlobalActivity.getStartTimeLong(); + long endTimeLong = sGlobalActivity.getEndTimeLong(); + int time = sGlobalActivity.getTime(); + int gapTime = sGlobalActivity.getGapTime(); + int type = sGlobalActivity.getType(); + + long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 1); + long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2); + + if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ continue; } int activityId = sGlobalActivity.getId(); @@ -444,54 +421,59 @@ public class ActivityLogic implements IEventHandler{ } } else if (activityMissionMap.containsKey(activityId)) { //如果活动没有开启,但是玩家有这个活动的数据,则清除,并通知客户端活动关闭 - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1); if(TimeUtils.now() < startTime){ - LOGGER.info("[活动延期,清除遗留玩家数据] [uid:{}] [activityId:{}] [activityType:{}] [activityStartTime:{}]",user.getId(),activityId,sGlobalActivity.getType(),sGlobalActivity.getStartTimeLong()); + LOGGER.info("[活动延期,清除遗留玩家数据] [uid:{}] [activityId:{}] [activityType:{}] [activityStartTime:{}]",user.getId(),activityId, type, startTimeLong); activityMissionMap.remove(activityId); if (builder != null) { builder.addCloseActivityId(activityId); } } } - int time = sGlobalActivity.getTime(); - if (time == ActivityType.OPEN_TYPE_ROLE) { - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2); + if (time == ActivityType.OPEN_TYPE_ROLE) {//创角 if (now < startTime) { continue; } if (endTime != 0 && now > endTime) { - goRewardActivity(user,activityId,builder,now>endTime+sGlobalActivity.getGapTime()*TimeUtils.ONE_DAY); + goRewardActivity(user,activityId,builder,now>endTime+ gapTime *TimeUtils.ONE_DAY); continue; } - ActivityMission activityMission = activityMissionMap.get(activityId); - if (activityMission != null) { - continue; - } - AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId); - if (null==abstractActivity) { - continue; - } -// ReportUtil.onReportEvent(user, ReportEventEnum.JOIN_ACTIVITY.getType(),String.valueOf(activityId)); - abstractActivity.initActivity(user); -// if(!initOtherActivity(user, sGlobalActivity)){ - initAllActivityMission(activityManager.getActivityMissionMap(),activityId); -// - int activityOpenState = getActivityOpenState(user, activityId ); - abstractActivity.setOpenState(user,activityOpenState); - if(activityOpenState == ActivityType.UNOPEN_STATE){ + boolean checked = checkStateAndInitFromActivity(user, activityId); + if (checked){ continue; } openNewActivityIds.add(activityId); - - } else { - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2); - goRewardActivity(user,activityId,builder,now>endTime + sGlobalActivity.getGapTime()*TimeUtils.ONE_DAY); + } + if (time == ActivityType.OPEN_TYPE_CYCLE){// 循环 + ActivityMission mission = activityMissionMap.get(activityId); + if (mission == null){ + continue; + } + long creatTime = mission.getCreatTime(); + if (creatTime >= endTimeLong){ + checkStateAndInitFromActivity(user, activityId); + } + } + else { + goRewardActivity(user,activityId,builder,now>endTime + gapTime *TimeUtils.ONE_DAY); } } return openNewActivityIds; } + + private boolean checkStateAndInitFromActivity(User user, int activityId) throws Exception { + ActivityManager activityManager = user.getActivityManager(); + initAllActivityMission(activityManager.getActivityMissionMap(),activityId); + AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId); + if (null == abstractActivity) { + return true; + } + abstractActivity.initActivity(user); + int activityOpenState = getActivityOpenState(user, activityId); + abstractActivity.setOpenState(user,activityOpenState); + return activityOpenState == ActivityType.UNOPEN_STATE; + } + private static void goRewardActivity(User user,int activityId,PlayerInfoProto.ActivityUpateIndication.Builder builder,boolean isRemoveInfo) throws Exception { ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId); if (activityMission != null) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index 24de8022d..a69619b15 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -11,8 +11,8 @@ public interface ActivityType { int OPEN_TYPE_TIME = 1; // 活动开启类型:绝对时间 int OPEN_TYPE_ROLE = 2; // 活动开启类型:创角时间 int OPEN_TYPE_SERVER = 3; // 活动开启类型:开服时间 - - int OPEN_TYPE_MONTHS = 5 ; // 活动开启类型:开服自然月 + int OPEN_TYPE_MONTHS = 5; // 活动开启类型:开服自然月 + int OPEN_TYPE_CYCLE = 6; // 循环活动 int WILL_TAKE = 0; //未领取 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java index 277dcc791..5e5fe98d2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.logic.activity; -import com.ljsd.GameApplication; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; @@ -14,7 +13,11 @@ import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag; import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler; import com.ljsd.jieling.network.session.ISession; -import config.*; +import com.ljsd.jieling.util.ToolsUtil; +import config.SGlobalActivity; +import config.SGoodsConfig; +import config.SRechargeCommodityNewConfig; +import config.SThemeActivityShop; import manager.STableManager; import rpc.protocols.CommonProto; import util.TimeUtils; @@ -49,6 +52,7 @@ public class ContinuousGiftActivity extends AbstractActivity { // 初始化阶段奖励 ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>()); user.getActivityManager().getActivityMissionMap().put(id, mission); + LOGGER.info("连续礼包活动初始化..."+id); } @Override @@ -74,7 +78,7 @@ public class ContinuousGiftActivity extends AbstractActivity { * @param giftId * @param missionMap */ - private void giftHandle(User user, int giftId, int giftNum, int type){ + public void giftHandle(User user, int giftId, int giftNum, int type){ if (giftId < 0 || giftNum <= 0){ // 非礼包处理 return; @@ -172,16 +176,18 @@ public class ContinuousGiftActivity extends AbstractActivity { @Override public List getAllMissInfo(User user,ActivityMission activityMission, Set filter) { - long now = TimeUtils.now(); - long start = getSrartTime(); - long end = getEndTime(); - // 验证活动是否开启 - if (now < start || now > end){ - return new ArrayList<>(); - } if (activityMission == null){ + LOGGER.error("活动不存在数据库中,id:{},uid:{}",id,user.getId()); return new ArrayList<>(); } + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (activity == null){ + LOGGER.error("活动不存在数据表中,id:{}",id); + return new ArrayList<>(); + } + long now = TimeUtils.now(); + long createTime = user.getPlayerInfoManager().getCreateTime(); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); // 更新记录天数 activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1); // 库里存储的活动档位信息 @@ -240,53 +246,13 @@ public class ContinuousGiftActivity extends AbstractActivity { return true; } - /** - * 开始时间 - * @return - */ - public long getSrartTime(){ - long startTime = 0; - SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); - // 绝对时间 - if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){ - startTime = activity.getStartTimeLong(); - } - // 开服时间 - else if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) { - String openTime = GameApplication.serverConfig.getOpenTime(); - long timeLong2 = TimeUtils.stringToTimeLong2(openTime); - startTime = timeLong2 + activity.getStartTimeLong() * 1000; - } - return startTime; - } - - /** - * 结束时间 - * @return - */ - public long getEndTime(){ - long endTime = 0; - SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); - // 绝对时间 - if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){ - endTime = activity.getEndTimeLong(); - } - // 开服时间 - else if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) { - String openTime = GameApplication.serverConfig.getOpenTime(); - long timeLong2 = TimeUtils.stringToTimeLong2(openTime); - endTime = timeLong2 + activity.getEndTimeLong() * 1000; - } - return endTime; - } - /** * 验证前置礼包购买状态 * @param user * @param boxId * @return */ - private boolean checkBuyAgo(User user, int boxId){ + public boolean checkBuyAgo(User user, int boxId){ // 获取消息 Map missionMap = user.getActivityManager().getActivityMissionMap().get(id).getActivityMissionMap(); SThemeActivityShop themes = STableManager.getConfig(SThemeActivityShop.class).get(boxId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java index 925234d0b..b068be1e0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.logic.activity; -import com.ljsd.GameApplication; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; @@ -15,6 +14,7 @@ import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag; import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler; import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ToolsUtil; import config.SGlobalActivity; import config.SRechargeCommodityNewConfig; import config.SSurpriseBox; @@ -78,7 +78,7 @@ public class SuperBoxActivity extends AbstractActivity { * @param giftId * @param missionMap */ - private void giftHandle(User user, int giftId){ + public void giftHandle(User user, int giftId){ if (giftId < 0){ // 非礼包处理 return; @@ -161,16 +161,18 @@ public class SuperBoxActivity extends AbstractActivity { @Override public List getAllMissInfo(User user,ActivityMission activityMission, Set filter) { - long now = TimeUtils.now(); - long start = getSrartTime(); - long end = getEndTime(); - // 验证活动是否开启 - if (now < start || now > end){ - return new ArrayList<>(); - } if (activityMission == null){ + LOGGER.error("活动不存在数据库中,id:{},uid:{}",id,user.getId()); return new ArrayList<>(); } + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (activity == null){ + LOGGER.error("活动不存在数据表中,id:{}",id); + return new ArrayList<>(); + } + long now = TimeUtils.now(); + long createTime = user.getPlayerInfoManager().getCreateTime(); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); // 更新记录天数 activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1); // 库里存储的活动档位信息 @@ -229,53 +231,13 @@ public class SuperBoxActivity extends AbstractActivity { return true; } - /** - * 开始时间 - * @return - */ - public long getSrartTime(){ - long startTime = 0; - SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); - // 绝对时间 - if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){ - startTime = activity.getStartTimeLong(); - } - // 开服时间 - else if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) { - String openTime = GameApplication.serverConfig.getOpenTime(); - long timeLong2 = TimeUtils.stringToTimeLong2(openTime); - startTime = timeLong2 + activity.getStartTimeLong() * 1000; - } - return startTime; - } - - /** - * 结束时间 - * @return - */ - public long getEndTime(){ - long endTime = 0; - SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); - // 绝对时间 - if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){ - endTime = activity.getEndTimeLong(); - } - // 开服时间 - else if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) { - String openTime = GameApplication.serverConfig.getOpenTime(); - long timeLong2 = TimeUtils.stringToTimeLong2(openTime); - endTime = timeLong2 + activity.getEndTimeLong() * 1000; - } - return endTime; - } - /** * 验证前置礼包购买状态 * @param user * @param boxId * @return */ - private boolean checkBuyAgo(User user, int boxId){ + public boolean checkBuyAgo(User user, int boxId){ // 获取消息 Map missionMap = user.getActivityManager().getActivityMissionMap().get(id).getActivityMissionMap(); SSurpriseBox box = STableManager.getConfig(SSurpriseBox.class).get(boxId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index b607fc20c..082b91c8c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -1,23 +1,16 @@ package com.ljsd.jieling.logic.activity.activityLogic; -import com.ljsd.GameApplication; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.ActivityType; -import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.store.newRechargeInfo.RechargeType; -import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag; -import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler; -import com.ljsd.jieling.network.server.SessionManager; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; +import com.ljsd.jieling.util.ToolsUtil; import config.SGlobalActivity; -import config.SRechargeCommodityNewConfig; import config.SWeekRewardConfig; import config.SWeekcardConfig; import manager.STableManager; @@ -43,37 +36,8 @@ public class WeekCardLogic { public final static WeekCardLogic instance = new WeekCardLogic(); } - /** - * 开始时间 - * @return - */ - public long getStartTime(User user, int id){ - long startTime = 0; - SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); - // 绝对时间 - if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){ - startTime = activity.getStartTimeLong(); - } - // 开服时间 - if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) { - String openTime = GameApplication.serverConfig.getOpenTime(); - long timeLong2 = TimeUtils.stringToTimeLong2(openTime); - startTime = timeLong2 + activity.getStartTimeLong() * 1000; - } - // 创角时间 - if (activity.getTime() == ActivityType.OPEN_TYPE_ROLE) { - long timeLong2 = user.getPlayerInfoManager().getCreateTime(); - startTime = timeLong2 + activity.getStartTimeLong() * 1000; - } - return startTime; - } - /** * 封装周卡信息 - * @param cardId - * @param activityId - * @param valueMap - * @return */ private CommonProto.WeekCardInfo packagingWeekCardBuilder(User user, int activityId, int cardId, Map valueMap){ Map config = STableManager.getConfig(SWeekcardConfig.class); @@ -84,8 +48,10 @@ public class WeekCardLogic { SWeekcardConfig sWeekcardConfig = config.get(cardId); ArrayList list1 = new ArrayList<>(); + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId); + long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = getStartTime(user, activityId); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1; for (int[] ints : sWeekcardConfig.getBaseRewardID()) { 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..09886d41c 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 @@ -8,6 +8,7 @@ import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.exception.ErrorTableException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; @@ -1025,7 +1026,7 @@ public class BuyGoodsNewLogic { RechargeHandler handler = getRechargeHandler(config.getOtype()); AbstractWelfareBag bag = handler.getBag(user, goodsId); if (bag == null || !bag.isBuy()){ - throw new ErrorCodeException(ErrorCode.SHOP_NO_ITEM); + throw new ErrorTableException(104,"礼包已购买"); } //生成cp订单号 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index ea21efcd8..433dbc985 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -13,36 +13,65 @@ public class ToolsUtil { if(type == 2){ baseTime = endTimeLong; } - long startTime=0; + long resultTime=0; switch (time){ case ActivityType.OPEN_TYPE_TIME: - startTime = baseTime; + resultTime = baseTime; break; case ActivityType.OPEN_TYPE_ROLE: - startTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000; + resultTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000; break; case ActivityType.OPEN_TYPE_SERVER: long serverOpenTime = GameApplication.serverConfig.getCacheOpenTime(); - startTime = serverOpenTime + baseTime*1000; + resultTime = serverOpenTime + baseTime * 1000; break; case ActivityType.OPEN_TYPE_MONTHS: if(type == 1){ if(baseTime == 1){//第一个月 - startTime = GameApplication.serverConfig.getCacheOpenTime(); + resultTime = GameApplication.serverConfig.getCacheOpenTime(); }else{ - startTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime-1); + resultTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime-1); } } if(type == 2){ if(baseTime ==1){ - startTime = TimeUtils.getMonthEndTime(GameApplication.serverConfig.getCacheOpenTime()); + resultTime = TimeUtils.getMonthEndTime(GameApplication.serverConfig.getCacheOpenTime()); }else{ - startTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime); + resultTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime); } } break; + case ActivityType.OPEN_TYPE_CYCLE://循环活动 + long now = TimeUtils.now(); + // 未到开启时间 + if (now >= startTimeLong) { + long timeLong = endTimeLong - startTimeLong; + while (endTimeLong < now){ + endTimeLong += timeLong; + } + startTimeLong = endTimeLong - timeLong; + } + // 开始时间 + if(type == 1){ + resultTime = startTimeLong; + } + // 结束时间 + if(type == 2){ + resultTime = endTimeLong; + } + break; + default: + // 开始时间 + if(type == 1){ + resultTime = startTimeLong; + } + // 结束时间 + if(type == 2){ + resultTime = endTimeLong; + } + break; } - return startTime; + return resultTime; } public static long getEndTimeLong(long startTimeLong , long endTimeLong,int time,long createUserTime,int dayOut){ From 9bdd4163c2acb8e00f973a0afb5eb952c65bb063 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 18 Jan 2024 11:15:10 +0800 Subject: [PATCH 26/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=EF=BC=8Ctime=E7=B1=BB=E5=9E=8B=E4=B8=BA6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/ActivityLogic.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 0da95e38b..0c6138fe4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -393,6 +393,7 @@ public class ActivityLogic implements IEventHandler{ long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 1); long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2); + long gepTimeLong = endTime + gapTime * TimeUtils.ONE_DAY; if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ continue; @@ -434,7 +435,7 @@ public class ActivityLogic implements IEventHandler{ continue; } if (endTime != 0 && now > endTime) { - goRewardActivity(user,activityId,builder,now>endTime+ gapTime *TimeUtils.ONE_DAY); + goRewardActivity(user,activityId,builder,now > gepTimeLong); continue; } boolean checked = checkStateAndInitFromActivity(user, activityId); @@ -449,12 +450,14 @@ public class ActivityLogic implements IEventHandler{ continue; } long creatTime = mission.getCreatTime(); - if (creatTime >= endTimeLong){ + // 活动创建时间在当前开始时间之前,表示开启了新一期活动 + // + if (creatTime < startTimeLong && now > gepTimeLong){ checkStateAndInitFromActivity(user, activityId); } } else { - goRewardActivity(user,activityId,builder,now>endTime + gapTime *TimeUtils.ONE_DAY); + goRewardActivity(user,activityId,builder,now > gepTimeLong); } } return openNewActivityIds; From 402cdf3c99f29618b33bf83e33370468fe58c26a Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Sat, 20 Jan 2024 17:42:54 +0800 Subject: [PATCH 27/74] =?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 02b8d4b83..89e752f07 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"14", - "tables":"GlobalActivity|TreasureTaskConfig" + "version":"15", + "tables":"GlobalActivity|TreasureTaskConfig|ItemConfig" } \ No newline at end of file From c5c10b4703070d9bdefe61b3fe1f7e03379ecb7b Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 10:51:04 +0800 Subject: [PATCH 28/74] =?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 89e752f07..ed0aa7339 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"15", + "version":"16", "tables":"GlobalActivity|TreasureTaskConfig|ItemConfig" } \ No newline at end of file From 227f57090d7ab904a63cf245ab317583b18a0c17 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 15:23:53 +0800 Subject: [PATCH 29/74] =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/WeekCardActivity.java | 17 +++++++++-------- .../jieling/logic/dao/UserMissionManager.java | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java index 850c6f5c9..b5bfbba1f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java @@ -12,6 +12,7 @@ import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.ToolsUtil; import config.*; import manager.STableManager; import util.TimeUtils; @@ -68,19 +69,16 @@ public class WeekCardActivity extends AbstractActivity { /** * 封装周卡信息 - * @param cardId - * @param activityId - * @param valueMap - * @return */ private Map packagingWeekCardMap(User user, int activityId, int cardId, Map valueMap){ HashMap result = new HashMap<>(); Map config = STableManager.getConfig(SWeekcardConfig.class); - SWeekcardConfig sWeekcardConfig = config.get(cardId); + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId); + long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = WeekCardLogic.getInstance().getStartTime(user, activityId); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now()) + 1; for (int[] ints : sWeekcardConfig.getBaseRewardID()) { @@ -111,8 +109,11 @@ public class WeekCardActivity extends AbstractActivity { Map> weekCard = user.getPlayerInfoManager().getWeekCard(); Map rewardConfigMap = STableManager.getConfig(SWeekRewardConfig.class); Map configMap = STableManager.getConfig(SWeekcardConfig.class); + + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); + long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = WeekCardLogic.getInstance().getStartTime(user,id); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1; for (Map.Entry> entry : weekCard.entrySet()) { @@ -151,7 +152,7 @@ public class WeekCardActivity extends AbstractActivity { } weekCard.put(weekCardId,value); } - if (itemArrs.size() == 0) { + if (itemArrs.isEmpty()) { return; } // 更新数据 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..342756ec2 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 @@ -271,7 +271,7 @@ public class UserMissionManager extends MongoBase { if(!achievementMissionTypMap.getDoingMissionIds().isEmpty() ){ List sAchievementConfigs = SAchievementConfig.sTaskConfigByTypeMap.get(missionType.getMissionTypeValue()); - if(sAchievementConfigs!=null&&sAchievementConfigs.size()!=0){ + if(sAchievementConfigs!=null&& !sAchievementConfigs.isEmpty()){ CumulationData.Result result= achievementMap.updateData(missionType, parm); if(result!=null){ achievementMissionTypMap.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.ACHIEVEMISSION),achievementMap); @@ -293,7 +293,7 @@ public class UserMissionManager extends MongoBase { //缥缈之旅 if(!mistyTripMissionType.getDoingMissionIds().isEmpty() ){ Map config = STableManager.getConfig(SJourneyWithWind.class); - if(config!=null&&config.size()!=0){ + if(config!=null&& !config.isEmpty()){ int starSum = HardStageLogic.getHardStageStarsSum(user); if(starSum != 0 && mistyTripCumulationData.getHardstage_stars() == 0){ mistyTripCumulationData.setHardstage_stars(starSum); From 702bc42abd30aa4dc79d05780448f79ac1c74378 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 15:32:55 +0800 Subject: [PATCH 30/74] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tablemanager/src/main/java/config/SGlobalActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tablemanager/src/main/java/config/SGlobalActivity.java b/tablemanager/src/main/java/config/SGlobalActivity.java index 5f4974926..847e75d8d 100644 --- a/tablemanager/src/main/java/config/SGlobalActivity.java +++ b/tablemanager/src/main/java/config/SGlobalActivity.java @@ -74,7 +74,7 @@ public class SGlobalActivity implements BaseConfig { int time = sGlobalActivity.getTime(); String startTime = sGlobalActivity.getStartTime(); String endtime = sGlobalActivity.getEndtime(); - if(time == 1 ){//ActivityType.OPEN_TYPE_TIME + if(time == 1 || time == 6){//ActivityType.OPEN_TYPE_TIME if(!"0".equals(startTime)){ sGlobalActivity.setStartTimeLong(TimeUtils.parseTimeToMiles(startTime,TimeUtils.Stand_CeHua_Data_format)); } From 19fbf52c466c4e516669b06d9c69d93a173e74c3 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 17:25:51 +0800 Subject: [PATCH 31/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/TimeUtils.java | 12 +++ .../logic/activity/AbstractActivity.java | 2 +- .../jieling/logic/activity/ActivityLogic.java | 95 ++++++++++++------- .../jieling/logic/activity/ActivityType.java | 2 +- .../mission/main/AbstractMissionType.java | 2 +- .../java/com/ljsd/jieling/util/ToolsUtil.java | 31 +++--- .../src/main/java/config/SGlobalActivity.java | 6 ++ 7 files changed, 95 insertions(+), 55 deletions(-) diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index 9362dfba9..f765557c3 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -901,4 +901,16 @@ public class TimeUtils { public static long getToTomorrowTimeS(){ return getTomorrowZero() - now(); } + + /** + * 给定三个时间,一个开始时间,一个间隔时间,一个当前时间 + * 计算距离当前时间最近的开始时间,两个开始时间需间隔一个间隔时间 + * @param startTimeMillis 开始时间 + * @param currentMillis 当前时间 + * @param intervalMillis 间隔时间 + * @return 最近得开始时间 + */ + public static long getLatelyTime(long startTimeMillis, long currentMillis, long intervalMillis){ + return startTimeMillis + (currentMillis - startTimeMillis) / intervalMillis * intervalMillis; + } } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index ff53cc4ad..a45632a65 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -229,7 +229,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { User user = UserManager.getUser(session.getUid()); List itemArrs = new LinkedList<>(); getAllMissRewards(user, session, itemArrs); - if (itemArrs.size() == 0) { + if (itemArrs.isEmpty()) { return; } SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 0c6138fe4..9c356f436 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -190,22 +190,22 @@ public class ActivityLogic implements IEventHandler{ openActivityIds.remove(id); continue; } - long gapEndTime = endTime+sGlobalActivity.getGapTime()*TimeUtils.DAY; + long gapEndTime = endTime + sGlobalActivity.getGapTime() * TimeUtils.DAY; if (endTime != 0 && now > endTime) { if (!openActivityIds.contains(id)) { - if(nowgapEndTime){ + if(now > gapEndTime){ openActivityIds.remove(id); } if (null == activity) { continue; } //活動結束 預約的展示期間 - if(now activityPreMap = globalSystemControl.getActivityPreEnd(); if(activityPreMap.containsKey(id)){ @@ -422,7 +422,7 @@ public class ActivityLogic implements IEventHandler{ } } else if (activityMissionMap.containsKey(activityId)) { //如果活动没有开启,但是玩家有这个活动的数据,则清除,并通知客户端活动关闭 - if(TimeUtils.now() < startTime){ + if(now < startTime && time != ActivityType.OPEN_TYPE_CYCLE){ LOGGER.info("[活动延期,清除遗留玩家数据] [uid:{}] [activityId:{}] [activityType:{}] [activityStartTime:{}]",user.getId(),activityId, type, startTimeLong); activityMissionMap.remove(activityId); if (builder != null) { @@ -430,12 +430,13 @@ public class ActivityLogic implements IEventHandler{ } } } + boolean isRemove = now > gepTimeLong; if (time == ActivityType.OPEN_TYPE_ROLE) {//创角 if (now < startTime) { continue; } if (endTime != 0 && now > endTime) { - goRewardActivity(user,activityId,builder,now > gepTimeLong); + goRewardActivity(user,activityId,builder, isRemove); continue; } boolean checked = checkStateAndInitFromActivity(user, activityId); @@ -444,26 +445,47 @@ public class ActivityLogic implements IEventHandler{ } openNewActivityIds.add(activityId); } - if (time == ActivityType.OPEN_TYPE_CYCLE){// 循环 - ActivityMission mission = activityMissionMap.get(activityId); - if (mission == null){ + else if (time == ActivityType.OPEN_TYPE_CYCLE){//循环 + // 循环时间 + long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; + // 最近的开始时间 + long latelyStartTime = TimeUtils.getLatelyTime(startTime, now, cycleTime); + // 当前期活动未开始 + if (now < latelyStartTime) { continue; } - long creatTime = mission.getCreatTime(); - // 活动创建时间在当前开始时间之前,表示开启了新一期活动 - // - if (creatTime < startTimeLong && now > gepTimeLong){ - checkStateAndInitFromActivity(user, activityId); + // 最近的结束时间 + long latelyEndTime = latelyStartTime + (endTime - startTime); + + ActivityMission mission = activityMissionMap.get(activityId); + // 活动存在,当前时间大于最近的结束时间,表示当期活动结束 + if (mission != null && now > latelyEndTime){ + goRewardActivity(user,activityId,builder, isRemove); + continue; } + if (now > latelyEndTime){ + continue; + } + if (mission == null){ + boolean checked = checkStateAndInitFromActivity(user, activityId); + if (checked){ + continue; + } + } + openNewActivityIds.add(activityId); } else { - goRewardActivity(user,activityId,builder,now > gepTimeLong); + goRewardActivity(user,activityId,builder, isRemove); } } return openNewActivityIds; } + /** + * 初始化活动并校验活动状态是否开启 + * @return true 未开启, false 开启 + */ private boolean checkStateAndInitFromActivity(User user, int activityId) throws Exception { ActivityManager activityManager = user.getActivityManager(); initAllActivityMission(activityManager.getActivityMissionMap(),activityId); @@ -477,19 +499,21 @@ public class ActivityLogic implements IEventHandler{ return activityOpenState == ActivityType.UNOPEN_STATE; } + /** + * 活动结束,(存在发奖操作,看配置)删除活动 + */ private static void goRewardActivity(User user,int activityId,PlayerInfoProto.ActivityUpateIndication.Builder builder,boolean isRemoveInfo) throws Exception { ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId); if (activityMission != null) { - AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId); - if (null==abstractActivity) { + AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId); + if (null == abstractActivity) { return; } - if(activityMission.getOpenType()!=ActivityType.CLOSE_STATE){ + if(activityMission.getOpenType() != ActivityType.CLOSE_STATE){ abstractActivity.onActivityEndSelfWithDealReward(user); abstractActivity.setOpenState(user,ActivityType.CLOSE_STATE); Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),activityId,ActivityType.CLOSE_STATE)); } - if(isRemoveInfo){ user.getActivityManager().getActivityMissionMap().remove(activityId); LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId); @@ -562,15 +586,17 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivity == null){ continue; } + int type = sGlobalActivity.getType(); + int gapTime = sGlobalActivity.getGapTime(); ///旧版积天豪礼数据兼容 - if (sGlobalActivity.getType()==ActivityType.RECHARGE_SUM_DAY){ + if (type ==ActivityType.RECHARGE_SUM_DAY){ if (activityMissionMap.get(activityId).getV()<=0||activityMissionMap.get(activityId).getV()>=15) { continue; } } if(activityStatus == ActivityType.CLOSE_STATE){ - long prepareTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, sGlobalActivity.getGapTime()); + long prepareTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, gapTime); activityInfoList.add(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).setEndTime((int)(prepareTime/1000)).build()); continue; } @@ -594,24 +620,29 @@ public class ActivityLogic implements IEventHandler{ if (sGlobalActivity.getIsSaving()==0 && activityStatus != ActivityType.OPEN_STATE) { continue; } - int startTime,endTime; - if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){ - startTime=(int)(activityState.getValue().getCreatTime()/1000); + int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000); + int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);; + + if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ // 每日特惠活动 + startTime = (int)(activityState.getValue().getCreatTime()/1000); endTime = startTime+604800; - }else{ - startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000); - if(sGlobalActivity.getGapTime()!=0){ - endTime = (int) (ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, sGlobalActivity.getGapTime()) / 1000); - }else{ - endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000); - } + } + else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){ + long now = TimeUtils.now(); + long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; + long latelyStarTime = TimeUtils.getLatelyTime(startTime * 1000L, now, cycleTime); + startTime = (int) (latelyStarTime/1000); + endTime = (int) ((latelyStarTime + cycleTime + TimeUtils.DAY * gapTime)/1000); + } + else{ + endTime = endTime + (int) (TimeUtils.DAY * gapTime / 1000); } AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(sGlobalActivity.getId()); if(abstractActivity==null){ LOGGER.error(sGlobalActivity.getId()+":活动类型不存在"); continue; } - List missionInfos =abstractActivity.getAllMissInfo(user,activityMission); + List missionInfos = abstractActivity.getAllMissInfo(user,activityMission); CommonProto.ActivityInfo build = CommonProto.ActivityInfo.newBuilder() .setActivityId(activityId) .addAllMission(missionInfos) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index a69619b15..d2ea4fb1b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -12,7 +12,7 @@ public interface ActivityType { int OPEN_TYPE_ROLE = 2; // 活动开启类型:创角时间 int OPEN_TYPE_SERVER = 3; // 活动开启类型:开服时间 int OPEN_TYPE_MONTHS = 5; // 活动开启类型:开服自然月 - int OPEN_TYPE_CYCLE = 6; // 循环活动 + int OPEN_TYPE_CYCLE = 6; // 活动开启类型:循环活动 int WILL_TAKE = 0; //未领取 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java index e60e2cf31..7c4dfa51a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java @@ -80,7 +80,7 @@ public abstract class AbstractMissionType { } public Set getDoingMissionIds() { - return doingMissionIds; + return doingMissionIds; } public void addFinishMissionId(int missionId) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index 433dbc985..6342472c1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -8,6 +8,15 @@ import java.util.*; public class ToolsUtil { + /** + * 根据不同类型获取活动时间 + * @param startTimeLong 表里面得开始时间 + * @param endTimeLong 表里面得结束时间 + * @param time 时间类型 + * @param createUserTime 创角时间 + * @param type 1 开始时间, 2 结束时间 + * @return 时间 + */ public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type){ long baseTime = startTimeLong; if(type == 2){ @@ -15,7 +24,8 @@ public class ToolsUtil { } long resultTime=0; switch (time){ - case ActivityType.OPEN_TYPE_TIME: + case ActivityType.OPEN_TYPE_TIME://开服时间 + case ActivityType.OPEN_TYPE_CYCLE://循环活动 resultTime = baseTime; break; case ActivityType.OPEN_TYPE_ROLE: @@ -41,25 +51,6 @@ public class ToolsUtil { } } break; - case ActivityType.OPEN_TYPE_CYCLE://循环活动 - long now = TimeUtils.now(); - // 未到开启时间 - if (now >= startTimeLong) { - long timeLong = endTimeLong - startTimeLong; - while (endTimeLong < now){ - endTimeLong += timeLong; - } - startTimeLong = endTimeLong - timeLong; - } - // 开始时间 - if(type == 1){ - resultTime = startTimeLong; - } - // 结束时间 - if(type == 2){ - resultTime = endTimeLong; - } - break; default: // 开始时间 if(type == 1){ diff --git a/tablemanager/src/main/java/config/SGlobalActivity.java b/tablemanager/src/main/java/config/SGlobalActivity.java index 847e75d8d..a37a9d535 100644 --- a/tablemanager/src/main/java/config/SGlobalActivity.java +++ b/tablemanager/src/main/java/config/SGlobalActivity.java @@ -19,6 +19,8 @@ public class SGlobalActivity implements BaseConfig { private int time; + private int cycleMinute; + private long startTimeLong; private long endTimeLong; @@ -170,6 +172,10 @@ public class SGlobalActivity implements BaseConfig { return time; } + public int getCycleMinute() { + return cycleMinute; + } + public static List getsGlobalActivityMapByType(int type) { return sGlobalActivityMapByType.get(type); } From 5b82fa8fb6ee250db6229c1bceff1383f25d954a Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Sat, 3 Feb 2024 18:45:49 +0800 Subject: [PATCH 32/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E4=BA=8C=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 4 +-- .../logic/activity/SuperFundNewActivity.java | 3 -- .../logic/activity/WeekCardActivity.java | 28 +++++++++++++++++++ .../jieling/logic/dao/UserMissionManager.java | 3 +- .../jieling/logic/mission/MissionLogic.java | 5 ++-- .../event/CowFlySkyRefreshEventProcess.java | 11 +++++--- .../event/JadeDynastyRefreshEventProcess.java | 2 -- .../event/MistyTripRefreshEventProcess.java | 2 +- .../mission/main/CowFlySkyMissionType.java | 28 +++++++++++++------ 9 files changed, 60 insertions(+), 26 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 9c356f436..5096718ff 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -458,8 +458,8 @@ public class ActivityLogic implements IEventHandler{ long latelyEndTime = latelyStartTime + (endTime - startTime); ActivityMission mission = activityMissionMap.get(activityId); - // 活动存在,当前时间大于最近的结束时间,表示当期活动结束 - if (mission != null && now > latelyEndTime){ + // 活动存在,(当前时间大于最近的结束时间 或 活动创建时间大于最近得开启时间),表示当期活动结束 + if (mission != null && (now > latelyEndTime || mission.getCreatTime() < latelyStartTime)){ goRewardActivity(user,activityId,builder, isRemove); continue; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundNewActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundNewActivity.java index 4470acd51..9d2d02fc7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundNewActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundNewActivity.java @@ -206,9 +206,6 @@ public class SuperFundNewActivity extends AbstractActivity { /** * 获取礼包信息 - * @param user - * @return - * @throws Exception */ private ReceiveWelfareBag getBagInfo(User user){ SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java index b5bfbba1f..c3d844fa8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java @@ -11,6 +11,8 @@ import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mail.MailLogic; +import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag; +import com.ljsd.jieling.logic.store.newRechargeInfo.bean.PerpetualWelfareBag; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ToolsUtil; import config.*; @@ -38,6 +40,8 @@ public class WeekCardActivity extends AbstractActivity { ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>()); user.getActivityManager().getActivityMissionMap().put(id, mission); + // 刷新礼包信息 + refreshGood(user); // 初始化礼包信息 user.getPlayerInfoManager().setWeekCard(new HashMap<>()); LOGGER.info("月卡初始化...uid={} activityId={}",user.getId(), id); @@ -67,6 +71,30 @@ public class WeekCardActivity extends AbstractActivity { } } + /** + * 刷新礼包信息 + */ + private void refreshGood(User user){ + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (activity == null){ + return; + } + int[] canBuyRechargeId = activity.getCanBuyRechargeId(); + if (canBuyRechargeId == null || canBuyRechargeId.length <= 0){ + return; + } + Map receiveMap = user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap(); + for (int goodId : canBuyRechargeId) { + AbstractWelfareBag bag = receiveMap.get(goodId); + if (bag == null){ + LOGGER.error("礼包刷新结束,礼包不存在,活动id:{},礼包id:{}",id, canBuyRechargeId[0]); + continue; + } + PerpetualWelfareBag welfareBag = (PerpetualWelfareBag) bag; + welfareBag.refresh(); + } + } + /** * 封装周卡信息 */ 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 342756ec2..3f2bc959a 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 @@ -269,7 +269,6 @@ public class UserMissionManager extends MongoBase { } if(!achievementMissionTypMap.getDoingMissionIds().isEmpty() ){ - List sAchievementConfigs = SAchievementConfig.sTaskConfigByTypeMap.get(missionType.getMissionTypeValue()); if(sAchievementConfigs!=null&& !sAchievementConfigs.isEmpty()){ CumulationData.Result result= achievementMap.updateData(missionType, parm); @@ -314,7 +313,7 @@ public class UserMissionManager extends MongoBase { } // 公用任务类型,累计次数形式 CumulationData.Result result = cumulationData.updateData(missionType, parm); - if(result!=null){ + if(result != null){ updateString("cumulationData",cumulationData); // vip任务 vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java index 4e8c92132..589342ef5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java @@ -103,13 +103,13 @@ public class MissionLogic { return task; } - public int[] resetJadeDynastyTaskInfo(User user, int type, int activityId, Map> missionTypeEnumListMap){ + public void resetJadeDynastyTaskInfo(User user, int type, int activityId, Map> missionTypeEnumListMap){ UserMissionManager missionManager = user.getUserMissionManager(); JadeDynastyMissionType jadeDynastyMissionType = missionManager.getJadeDynastyMissionType(); //周刷新检测 if (type == 2) { if (jadeDynastyMissionType.getWeekRefresh() != 0 && TimeUtils.now() infos = misionTypeListMap.getOrDefault(GameMisionType.COWFLYSKYMISSION, new ArrayList<>()); + cowFlySkyMissionType.initRefreshCumulationData(user,infos,cumulationData,activityCowId); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyRefreshEventProcess.java index 50bb11ae8..7a66188c5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyRefreshEventProcess.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 JadeDynastyRefreshEventProcess 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,1, jadeAid, misionTypeListMap); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MistyTripRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MistyTripRefreshEventProcess.java index 47b947567..894998659 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MistyTripRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MistyTripRefreshEventProcess.java @@ -20,7 +20,7 @@ public class MistyTripRefreshEventProcess implements BaseGameEventProcessor { UserMissionManager missionManager = user.getUserMissionManager(); MistyTripMissionType mistyTripMissionType = missionManager.getMistyTripMissionType(); //任务开始 - if(mistyTripMissionType.getDoingMissionIds().size() != 0 || mistyTripMissionType.getFinishMissionIds().size() != 0){ + if(!mistyTripMissionType.getDoingMissionIds().isEmpty() || !mistyTripMissionType.getFinishMissionIds().isEmpty()){ return; } Set journeyWithWind = STableManager.getConfig(SJourneyWithWind.class).keySet(); 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..53d71633b 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 c15edeff6e81d9009d668e81c7dfc275cad16d86 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Sat, 3 Feb 2024 18:49:34 +0800 Subject: [PATCH 33/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E4=BA=8C=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/WeekCardActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java index c3d844fa8..e495325bd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java @@ -41,7 +41,7 @@ public class WeekCardActivity extends AbstractActivity { user.getActivityManager().getActivityMissionMap().put(id, mission); // 刷新礼包信息 - refreshGood(user); +// refreshGood(user); // 初始化礼包信息 user.getPlayerInfoManager().setWeekCard(new HashMap<>()); LOGGER.info("月卡初始化...uid={} activityId={}",user.getId(), id); From 05faac1c8f4201c9a98675d8f3958bd91ba7c0b5 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 14:31:29 +0800 Subject: [PATCH 34/74] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=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 | 27 ++++++++++++++++--- .../event/CowFlySkyRefreshEventProcess.java | 6 +---- .../JadeDynastyWeekRefreshEventProcess.java | 2 -- .../mission/main/CowFlySkyMissionType.java | 14 +++++----- 4 files changed, 32 insertions(+), 17 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 3f2bc959a..91c96b96e 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();//牛气冲天数据 /** * 奖励处理任务 @@ -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){ @@ -318,9 +333,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); @@ -449,6 +461,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 5cd503d5f..227c48e87 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 @@ -23,11 +23,7 @@ public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor { cowFlySkyMissionType.getFinishMissionIds().clear(); cowFlySkyMissionType.getRewardedMissionIds().clear(); cowFlySkyMissionType.getDoingMissionIds().addAll(arro); + missionManager.setCowFlyCumulationData(new CumulationData()); missionManager.setCowFlySkyMissionType(cowFlySkyMissionType); - - // 刷新数据 - CumulationData cumulationData = user.getUserMissionManager().getCumulationData(); - List infos = misionTypeListMap.getOrDefault(GameMisionType.COWFLYSKYMISSION, new ArrayList<>()); - cowFlySkyMissionType.initRefreshCumulationData(user,infos,cumulationData,activityCowId); } } 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 53d71633b..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 @@ -90,11 +90,11 @@ public class CowFlySkyMissionType extends AbstractMissionType { 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); - } +// 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 8da5ec551c76124e9ec797b66eff7efef1cafa70 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 14:34:35 +0800 Subject: [PATCH 35/74] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=A1=80=E6=88=98?= =?UTF-8?q?=E5=88=B0=E5=BA=95=E4=BB=BB=E5=8A=A1=E9=83=A8=E5=88=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E6=9F=A5=E8=AF=A2=E5=88=B0=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E4=B8=8A=E5=B1=82=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/dao/UserMissionManager.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 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 91c96b96e..19f57285d 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 @@ -180,16 +180,7 @@ public class UserMissionManager extends MongoBase { * @throws Exception */ public void calCumulationDataResult(User user, MissionType missionType, Map> missionTypeEnumListMap, Object...parm) throws Exception { - if(missionType == MissionType.BLOODY_KILL_NUMS){ - if(!bloodyMissionIdsType.getDoingMissionIds().isEmpty()){ - CumulationData.Result result = new CumulationData.Result(missionType, 0); - bloodyMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.BLOODYMISSION),null); - if(result.value == 1){ - updateString("bloodyMissionIdsType",bloodyMissionIdsType); - } - } - return; - } + if(!dailyMissionIdsType.getDoingMissionIds().isEmpty()){ List sTaskConfigs = SDailyTasksConfig.getsTaskConfigByTypeMap(missionType.getMissionTypeValue()); if (sTaskConfigs != null) { @@ -247,6 +238,7 @@ public class UserMissionManager extends MongoBase { } } + if(!jadeDynastyMissionType.getDoingMissionIds().isEmpty() ){ List sThemeActivityTaskConfigs = SThemeActivityTaskConfig.sThemeTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue()); if(sThemeActivityTaskConfigs!=null){ @@ -295,6 +287,7 @@ public class UserMissionManager extends MongoBase { } } + // 东海寻仙 if (!donghaiXunxianMission.getDoingMissionIds().isEmpty()){ CumulationData.Result result = donghaiXunxianData.updateData(missionType, parm); @@ -304,6 +297,7 @@ public class UserMissionManager extends MongoBase { updateString("donghaiXunxianMission",donghaiXunxianMission); } } + //缥缈之旅 if(!mistyTripMissionType.getDoingMissionIds().isEmpty() ){ Map config = STableManager.getConfig(SJourneyWithWind.class); @@ -326,6 +320,7 @@ public class UserMissionManager extends MongoBase { } } } + // 公用任务类型,累计次数形式 CumulationData.Result result = cumulationData.updateData(missionType, parm); if(result != null){ From 98044a5bce3e23b640f06a9d0d71030650c92dbd Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 16:09:45 +0800 Subject: [PATCH 36/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E5=91=A8=E5=8D=A1?= =?UTF-8?q?=E9=A2=86=E5=8F=96bug=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 6 --- .../logic/activity/WeekCardActivity.java | 42 +++++++++---------- .../activity/activityLogic/WeekCardLogic.java | 14 +++---- 3 files changed, 25 insertions(+), 37 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 5096718ff..e85bfbc71 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -588,12 +588,6 @@ public class ActivityLogic implements IEventHandler{ } int type = sGlobalActivity.getType(); int gapTime = sGlobalActivity.getGapTime(); - ///旧版积天豪礼数据兼容 - if (type ==ActivityType.RECHARGE_SUM_DAY){ - if (activityMissionMap.get(activityId).getV()<=0||activityMissionMap.get(activityId).getV()>=15) { - continue; - } - } if(activityStatus == ActivityType.CLOSE_STATE){ long prepareTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, gapTime); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java index e495325bd..1a0a29a1d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java @@ -11,8 +11,6 @@ import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mail.MailLogic; -import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag; -import com.ljsd.jieling.logic.store.newRechargeInfo.bean.PerpetualWelfareBag; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ToolsUtil; import config.*; @@ -74,26 +72,26 @@ public class WeekCardActivity extends AbstractActivity { /** * 刷新礼包信息 */ - private void refreshGood(User user){ - SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); - if (activity == null){ - return; - } - int[] canBuyRechargeId = activity.getCanBuyRechargeId(); - if (canBuyRechargeId == null || canBuyRechargeId.length <= 0){ - return; - } - Map receiveMap = user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap(); - for (int goodId : canBuyRechargeId) { - AbstractWelfareBag bag = receiveMap.get(goodId); - if (bag == null){ - LOGGER.error("礼包刷新结束,礼包不存在,活动id:{},礼包id:{}",id, canBuyRechargeId[0]); - continue; - } - PerpetualWelfareBag welfareBag = (PerpetualWelfareBag) bag; - welfareBag.refresh(); - } - } +// private void refreshGood(User user){ +// SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); +// if (activity == null){ +// return; +// } +// int[] canBuyRechargeId = activity.getCanBuyRechargeId(); +// if (canBuyRechargeId == null || canBuyRechargeId.length <= 0){ +// return; +// } +// Map receiveMap = user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap(); +// for (int goodId : canBuyRechargeId) { +// AbstractWelfareBag bag = receiveMap.get(goodId); +// if (bag == null){ +// LOGGER.error("礼包刷新结束,礼包不存在,活动id:{},礼包id:{}",id, canBuyRechargeId[0]); +// continue; +// } +// PerpetualWelfareBag welfareBag = (PerpetualWelfareBag) bag; +// welfareBag.refresh(); +// } +// } /** * 封装周卡信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index 082b91c8c..3109ab1a3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -51,8 +51,12 @@ public class WeekCardLogic { SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId); long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 + long now = TimeUtils.now(); long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); - int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1; + long cycleTime = activity.getCycleMinute() * TimeUtils.ONE_MINUTE; + long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, now, cycleTime); + + int days = TimeUtils.differentDays(latelyStartTime, now)+1; for (int[] ints : sWeekcardConfig.getBaseRewardID()) { int day = ints[0]; @@ -77,8 +81,6 @@ public class WeekCardLogic { /** * 查询周卡信息 - * @param user - * @param activtiyId */ public void queryWeekCardInfo(User user, int activtiyId){ ArrayList list = new ArrayList<>(); @@ -93,9 +95,6 @@ public class WeekCardLogic { /** * 领取周卡奖励 - * @param user - * @param proto - * @throws Exception */ public void getWeekCardReward(User user, PlayerInfoProto.GetWeekCardRewardRequest proto) throws Exception { Map map = user.getPlayerInfoManager().getWeekCard().get(proto.getWeekcardId()); @@ -136,9 +135,6 @@ public class WeekCardLogic { /** * 推送 - * @param user - * @param weekCardId - * @param activityId */ public void weekCardInfoIndication(User user, int weekCardId, int activityId){ ISession session = OnlineUserManager.getSessionByUid(user.getId()); From 88cd6a2d43a505b3e9e2ae390bc9372a1c878035 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 14:31:29 +0800 Subject: [PATCH 37/74] =?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 (cherry picked from commit 6f0a8cda79fd6360dc67f0fb2d6f9f5dbd2fa2df) --- .../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 9a617bccd63334ad8ef753d5154f0a11b33b6605 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 17:38:40 +0800 Subject: [PATCH 38/74] =?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 c645dcb33..1e8c8b902 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 a3eae1a429682cb2e988dde2def9a5114c0643d8 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 18:13:54 +0800 Subject: [PATCH 39/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E5=91=A8=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/activityLogic/WeekCardLogic.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index 3109ab1a3..921c18c5b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -54,9 +54,11 @@ public class WeekCardLogic { long now = TimeUtils.now(); long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); long cycleTime = activity.getCycleMinute() * TimeUtils.ONE_MINUTE; - long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, now, cycleTime); + if (cycleTime > 0){ + startTimeLong = TimeUtils.getLatelyTime(startTimeLong, now, cycleTime); + } - int days = TimeUtils.differentDays(latelyStartTime, now)+1; + int days = TimeUtils.differentDays(startTimeLong, now)+1; for (int[] ints : sWeekcardConfig.getBaseRewardID()) { int day = ints[0]; From 7b061cf4426ea2accd30296dc603093e4d227314 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 12 Feb 2024 19:07:30 +0800 Subject: [PATCH 40/74] =?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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index ed0aa7339..af142624e 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"16", - "tables":"GlobalActivity|TreasureTaskConfig|ItemConfig" + "version":"6", + "tables":"GlobalActivity" } \ No newline at end of file From 23ad55fdcf5386270ffc59965bb699bfcb96520e Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 12 Feb 2024 19:13:51 +0800 Subject: [PATCH 41/74] =?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 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/conf/hotfix.json b/conf/hotfix.json index 444a9c747..b8eeab13c 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,6 +1,4 @@ { - "version":"6", - "classes":[ - {"name":"GetWorldArenaRecordInfoRequestHandler.class","fullName":"com.ljsd.jieling.handler.gtw.GetWorldArenaRecordInfoRequestHandler"} - ] + "version":"5", + "classes":[] } \ No newline at end of file From 6a47c21db0b65753574b8ec1e94a3e4907ed6981 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 19 Feb 2024 14:10:53 +0800 Subject: [PATCH 42/74] =?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 66d8a771184c7cf06f04543153df2215a4042e47 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 26 Feb 2024 14:11:56 +0800 Subject: [PATCH 43/74] =?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..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 2adb0938be6f4e74703601013a5bf2fd068edcb9 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 5 Mar 2024 16:28:34 +0800 Subject: [PATCH 44/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4=EF=BC=8C=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/activity/ActivityLogic.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index e85bfbc71..71bdc22d4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -621,13 +621,13 @@ public class ActivityLogic implements IEventHandler{ startTime = (int)(activityState.getValue().getCreatTime()/1000); endTime = startTime+604800; } - else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){ - long now = TimeUtils.now(); - long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; - long latelyStarTime = TimeUtils.getLatelyTime(startTime * 1000L, now, cycleTime); - startTime = (int) (latelyStarTime/1000); - endTime = (int) ((latelyStarTime + cycleTime + TimeUtils.DAY * gapTime)/1000); - } +// else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){ +// long now = TimeUtils.now(); +// long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; +// long latelyStarTime = TimeUtils.getLatelyTime(startTime * 1000L, now, cycleTime); +// startTime = (int) (latelyStarTime/1000); +// endTime = (int) ((latelyStarTime + cycleTime + TimeUtils.DAY * gapTime)/1000); +// } else{ endTime = endTime + (int) (TimeUtils.DAY * gapTime / 1000); } From 4fcebd8359c63c002c45db82dc3060d0daebaa9c Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 5 Mar 2024 16:32:32 +0800 Subject: [PATCH 45/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4=EF=BC=8C=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 71bdc22d4..2f726c33c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -621,13 +621,14 @@ public class ActivityLogic implements IEventHandler{ startTime = (int)(activityState.getValue().getCreatTime()/1000); endTime = startTime+604800; } -// else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){ -// long now = TimeUtils.now(); -// long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; -// long latelyStarTime = TimeUtils.getLatelyTime(startTime * 1000L, now, cycleTime); -// startTime = (int) (latelyStarTime/1000); -// endTime = (int) ((latelyStarTime + cycleTime + TimeUtils.DAY * gapTime)/1000); -// } + else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){ + long now = TimeUtils.now(); + int intervalTime = endTime - startTime; + long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; + long latelyStarTime = TimeUtils.getLatelyTime(startTime * 1000L, now, cycleTime); + startTime = (int) (latelyStarTime/1000); + endTime = (int) ((latelyStarTime + intervalTime + TimeUtils.DAY * gapTime)/1000); + } else{ endTime = endTime + (int) (TimeUtils.DAY * gapTime / 1000); } From efa47029bc861a4d2020219bb5f4e54c0d78c082 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 5 Mar 2024 16:36:48 +0800 Subject: [PATCH 46/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4=EF=BC=8C=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 2f726c33c..4bcb8de7a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -623,7 +623,7 @@ public class ActivityLogic implements IEventHandler{ } else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){ long now = TimeUtils.now(); - int intervalTime = endTime - startTime; + long intervalTime = (endTime - startTime) * 1000L; long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; long latelyStarTime = TimeUtils.getLatelyTime(startTime * 1000L, now, cycleTime); startTime = (int) (latelyStarTime/1000); From 7fc1d5c3a953e03c5f986753cb32e3f1c1e39d94 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 6 Mar 2024 16:14:32 +0800 Subject: [PATCH 47/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/kefu/Cmd_changename.java | 4 +- .../jieling/logic/activity/ActivityLogic.java | 49 ++++++++++++------- .../activity/ContinuousGiftActivity.java | 2 +- .../logic/activity/FifteenActivity.java | 2 +- .../logic/activity/FightMainEventHandler.java | 4 +- .../MissSearchExpectRankActivity.java | 2 +- .../OpenServerCompeteRankActivity.java | 6 +-- .../activity/SecretExpectRankActivity.java | 4 +- .../logic/activity/SevenHappyActivity.java | 2 +- .../logic/activity/SuperBoxActivity.java | 2 +- .../logic/activity/WeekCardActivity.java | 4 +- .../activity/activityLogic/WeekCardLogic.java | 2 +- .../ActivityStateChangeHandler.java | 4 +- .../jieling/logic/mission/MissionLogic.java | 4 +- .../jieling/logic/player/PlayerLogic.java | 4 +- .../ljsd/jieling/logic/store/StoreLogic.java | 24 ++++----- .../java/com/ljsd/jieling/util/ToolsUtil.java | 26 +++++++--- 17 files changed, 84 insertions(+), 61 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java index 88211f889..026099616 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java @@ -62,8 +62,8 @@ public class Cmd_changename extends GmRoleAbstract { if(!storeInfoMap.containsKey(10) && !storeInfoMap.containsKey(15)){ SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(10); long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2, 0); StoreLogic.getInstance().initOnsStoereWithTime(user,10,startTime,endTime); LOGGER.info("hotfix user={} store end",user.getId()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 4bcb8de7a..1bf3e1974 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -168,17 +168,23 @@ public class ActivityLogic implements IEventHandler{ //检查开启的活动 非相对创角时间 for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { - int time = sGlobalActivity.getTime(); int id = sGlobalActivity.getId(); + int time = sGlobalActivity.getTime(); + int type = sGlobalActivity.getType(); + long startTimeLong = sGlobalActivity.getStartTimeLong(); + long endTimeLong = sGlobalActivity.getEndTimeLong(); + int cycleMinute = sGlobalActivity.getCycleMinute(); + AbstractActivity activity = ActivityTypeEnum.getActicityById(id); if (time == ActivityType.OPEN_TYPE_ROLE) { + // 创角时间活动 continue; } - if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){ + if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ continue; } - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2); + long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time,0, 1, cycleMinute); + long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time,0, 2, cycleMinute); if (now < startTime) { //如果没到活动开启时间,但是openActivityIds里有了这个活动,证明是热更延迟开启的活动,需要清除掉 openActivityIds.remove(id); @@ -355,8 +361,8 @@ public class ActivityLogic implements IEventHandler{ LOGGER.info("checkActivityOfUser uid={} remove activity={}", user.getId(), openActivityId); continue; } - int[] ifOpen = sGlobalActivity.getIfOpen(); //创角 + int[] ifOpen = sGlobalActivity.getIfOpen(); if(ifOpen!=null && ifOpen.length>0 && ifOpen[0]==1){ if(userCreateTime + ifOpen[1]*TimeUtils.ONE_DAY > now){ continue; @@ -390,9 +396,10 @@ public class ActivityLogic implements IEventHandler{ int time = sGlobalActivity.getTime(); int gapTime = sGlobalActivity.getGapTime(); int type = sGlobalActivity.getType(); + int cycleMinute = sGlobalActivity.getCycleMinute(); - long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 1); - long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2); + long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 1, cycleMinute); + long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2, cycleMinute); long gepTimeLong = endTime + gapTime * TimeUtils.ONE_DAY; if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ @@ -447,7 +454,7 @@ public class ActivityLogic implements IEventHandler{ } else if (time == ActivityType.OPEN_TYPE_CYCLE){//循环 // 循环时间 - long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; + long cycleTime = cycleMinute * TimeUtils.ONE_MINUTE; // 最近的开始时间 long latelyStartTime = TimeUtils.getLatelyTime(startTime, now, cycleTime); // 当前期活动未开始 @@ -586,11 +593,15 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivity == null){ continue; } + + long startTimeLong = sGlobalActivity.getStartTimeLong(); + long endTimeLong = sGlobalActivity.getEndTimeLong(); + int timeType = sGlobalActivity.getTime(); int type = sGlobalActivity.getType(); int gapTime = sGlobalActivity.getGapTime(); if(activityStatus == ActivityType.CLOSE_STATE){ - long prepareTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, gapTime); + long prepareTime = ToolsUtil.getEndTimeLong(startTimeLong, endTimeLong, timeType,0, gapTime); activityInfoList.add(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).setEndTime((int)(prepareTime/1000)).build()); continue; } @@ -614,14 +625,14 @@ public class ActivityLogic implements IEventHandler{ if (sGlobalActivity.getIsSaving()==0 && activityStatus != ActivityType.OPEN_STATE) { continue; } - int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000); - int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);; + int startTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 1, 0) / 1000); + int endTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 2, 0) / 1000);; if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ // 每日特惠活动 startTime = (int)(activityState.getValue().getCreatTime()/1000); endTime = startTime+604800; } - else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){ + else if (timeType == ActivityType.OPEN_TYPE_CYCLE){ long now = TimeUtils.now(); long intervalTime = (endTime - startTime) * 1000L; long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; @@ -810,8 +821,8 @@ public class ActivityLogic implements IEventHandler{ } long createTime = user.getPlayerInfoManager().getCreateTime(); - int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000); - int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000); + int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1, 0) / 1000); + int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2, 0) / 1000); List missionInfos = abstractActivity.getAllMissInfo(user,activityMission); fBuilder.addActivityInfo(CommonProto.ActivityInfo.newBuilder().setValue(activityMission.getV()).setActivityId(activityId).addAllMission(missionInfos).setStartTime(startTime).setEndTime(endTime).setReallyOpen(activityMission.getOpenType()).build()); fBuilder.setHadLuckTime(user.getPlayerInfoManager().getLuckWheelLimitTime()); @@ -1412,9 +1423,9 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivities.isEmpty()){ throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); } - Function function = v->(int)ToolsUtil.getTimeLong(v.getStartTimeLong(),v.getEndTimeLong(),v.getTime(),user.getPlayerInfoManager().getCreateTime(),1); + Function function = v->(int)ToolsUtil.getTimeLong(v.getStartTimeLong(),v.getEndTimeLong(),v.getTime(),user.getPlayerInfoManager().getCreateTime(),1, 0); Stream stream = sGlobalActivities.stream().sorted(Comparator.comparing(function)) - .filter(v->ToolsUtil.getTimeLong(v.getStartTimeLong(), v.getEndTimeLong(), v.getTime(), user.getPlayerInfoManager().getCreateTime(), 1) > TimeUtils.now()); + .filter(v->ToolsUtil.getTimeLong(v.getStartTimeLong(), v.getEndTimeLong(), v.getTime(), user.getPlayerInfoManager().getCreateTime(), 1, 0) > TimeUtils.now()); List collect = stream.collect(Collectors.toList()); if(collect.isEmpty()){ throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); @@ -1424,7 +1435,7 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivity==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(),1); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(),1, 0); PlayerInfoProto.NextActivityResponse response = PlayerInfoProto.NextActivityResponse.newBuilder().setId(id).setTime((int)(startTime/1000)).build(); MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); @@ -1593,8 +1604,8 @@ public class ActivityLogic implements IEventHandler{ createUserTime = user.getPlayerInfoManager().getCreateTime(); } long[] result = new long[2]; - result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 1); - result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 2); + result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 1, 0); + result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 2, 0); return result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java index 5e5fe98d2..fbe5df545 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java @@ -187,7 +187,7 @@ public class ContinuousGiftActivity extends AbstractActivity { } long now = TimeUtils.now(); long createTime = user.getPlayerInfoManager().getCreateTime(); - long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); // 更新记录天数 activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1); // 库里存储的活动档位信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java index 5d1980c6f..d459dca45 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java @@ -45,7 +45,7 @@ public class FifteenActivity extends AbstractActivity { if(activityMission == null){ return; } - long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); + long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); int time = (int)(startTime/1000); Map progressInfoMap = activityMission.getActivityMissionMap(); for(Map.Entry entry : progressInfoMap.entrySet()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java index 91bf3ebfa..16ad1d0f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java @@ -50,8 +50,8 @@ public class FightMainEventHandler implements IEventHandler{ activityMission.setActivityState(ActivityType.OPEN_STATE); ActivityLogic.getInstance().sendActivityInfo(user,sGlobalActivity.getId()); if(sGlobalActivity.getShopId().length>0){ - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, 0); for (int shopId : sGlobalActivity.getShopId()) { ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java index ac9226e2a..004e30111 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java @@ -32,7 +32,7 @@ class MissSearchExpectRankActivity extends ExpectRankActivity { public void initActivity(User user) throws Exception { super.initActivity(user); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, 0); user.getPlayerInfoManager().addVipByTime(155,(int)(endTime/1000)); Set vipInfo = new HashSet<>(); vipInfo.add(155); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java index 2b5363c9f..2fca9ada2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java @@ -197,7 +197,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return 0; } - long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1); + long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, 0); long rankEndTime = startTime + info.getCloseTime()*1000L; return rankEndTime-TimeUtils.now(); } @@ -211,7 +211,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return false; } - long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1); + long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, 0); long rankStartTime = startTime + info.getOpenTime()*1000L; long rankEndTime = startTime + info.getCloseTime()*1000L; long now = TimeUtils.now(); @@ -229,7 +229,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return 0; } - int endTime = (int)(ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2)/1000); + int endTime = (int)(ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2, 0)/1000); return endTime-TimeUtils.nowInt(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java index fe07a5ce8..2685c4551 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java @@ -6,8 +6,6 @@ import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SecretEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import rpc.protocols.CommonProto; -import rpc.protocols.PlayerInfoProto; import com.ljsd.jieling.util.ToolsUtil; import config.SGlobalActivity; @@ -30,7 +28,7 @@ class SecretExpectRankActivity extends ExpectRankActivity { listValue.add(153);//额外购买次数 listValue.add(154);//额外免费次数 Set changedSet = new HashSet<>(); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, 0); int time = (int)(endTime / 1000); listValue.forEach(privilegeId -> { changedSet.add(privilegeId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java index 31e579405..8351458a8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java @@ -25,7 +25,7 @@ public class SevenHappyActivity extends DefaultEmptyActivity{ user.getActivityManager().getActivityMissionMap().put(id, mission); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH,id); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); user.getActivityManager().setSenvenStartTime(startTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java index b068be1e0..93f109044 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java @@ -172,7 +172,7 @@ public class SuperBoxActivity extends AbstractActivity { } long now = TimeUtils.now(); long createTime = user.getPlayerInfoManager().getCreateTime(); - long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); // 更新记录天数 activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1); // 库里存储的活动档位信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java index 1a0a29a1d..67f84151a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java @@ -104,7 +104,7 @@ public class WeekCardActivity extends AbstractActivity { SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId); long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now()) + 1; for (int[] ints : sWeekcardConfig.getBaseRewardID()) { @@ -139,7 +139,7 @@ public class WeekCardActivity extends AbstractActivity { SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1; for (Map.Entry> entry : weekCard.entrySet()) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index 921c18c5b..aae875688 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -52,7 +52,7 @@ public class WeekCardLogic { long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 long now = TimeUtils.now(); - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); long cycleTime = activity.getCycleMinute() * TimeUtils.ONE_MINUTE; if (cycleTime > 0){ startTimeLong = TimeUtils.getLatelyTime(startTimeLong, now, cycleTime); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java index 9a827f453..58f2c8148 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java @@ -32,8 +32,8 @@ public class ActivityStateChangeHandler implements IEventHandler { if(state == ActivityType.OPEN_STATE){ SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); if(sGlobalActivity.getShopId().length>0){ - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, 0); for (int shopId : sGlobalActivity.getShopId()) { ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java index 589342ef5..02de50ae8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java @@ -39,8 +39,8 @@ public class MissionLogic { return null; } SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2, 0); if(TimeUtils.now()>endTime){ return null; } 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..485f52399 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 @@ -1019,8 +1019,8 @@ public class PlayerLogic { if (timingMailIds.contains(sTestWelfare.getId())) { continue; } - long startTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 1); - long endTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 2); + long startTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 1, 0); + long endTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 2, 0); if (now < startTime) { continue; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index 8abf2f7f0..8be1b26be 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -58,8 +58,8 @@ public class StoreLogic { long startTime, endTime; switch (sStoreTypeConfig.getStoreOpenRule()){ case 3: - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 2, 0); if (startTime != 0 && endTime != 0 && now > startTime && now < endTime && !openStoreInfo.contains(sStoreTypeConfig.getId())) { for (ISession session : OnlineUserManager.sessionMap.values()) { if (session.getFiveReady() == 1) { @@ -88,8 +88,8 @@ public class StoreLogic { continue; } long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 2, 0); if (now < startTime || now > endTime) { continue; } @@ -103,8 +103,8 @@ public class StoreLogic { } break; case 7: - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 2, 0); if (now < startTime || now > endTime) { continue; } @@ -300,13 +300,13 @@ public class StoreLogic { } if(sStoreTypeConfig.getStoreOpenRule() == 6 ){ long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_ROLE,userCreateTime, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE,userCreateTime, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_ROLE,userCreateTime, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE,userCreateTime, 2, 0); } if(sStoreTypeConfig.getStoreOpenRule() == 7 ){ long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,userCreateTime, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,userCreateTime, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,userCreateTime, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,userCreateTime, 2, 0); } Map itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); storeManager.newStoreInfo(sStoreTypeConfig.getId(),System.currentTimeMillis(),startTime,endTime,itemNumMap); @@ -389,8 +389,8 @@ public class StoreLogic { continue; } if(sStoreTypeConfig.getStoreOpenRule() == 7){ - long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,0, 1); - long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,0, 2); + long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,0, 1, 0); + long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,0, 2, 0); long now = TimeUtils.now(); if(now>startTime&&now itemNumMap = getStoreItem(storeId,sStoreTypeConfig,user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index 6342472c1..ffb2cbad3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -10,14 +10,16 @@ public class ToolsUtil { /** * 根据不同类型获取活动时间 + * * @param startTimeLong 表里面得开始时间 - * @param endTimeLong 表里面得结束时间 - * @param time 时间类型 + * @param endTimeLong 表里面得结束时间 + * @param time 时间类型 * @param createUserTime 创角时间 - * @param type 1 开始时间, 2 结束时间 + * @param type 1 开始时间, 2 结束时间 + * @param cycleTime 循环时间 * @return 时间 */ - public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type){ + public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type, int cycleTime){ long baseTime = startTimeLong; if(type == 2){ baseTime = endTimeLong; @@ -25,7 +27,6 @@ public class ToolsUtil { long resultTime=0; switch (time){ case ActivityType.OPEN_TYPE_TIME://开服时间 - case ActivityType.OPEN_TYPE_CYCLE://循环活动 resultTime = baseTime; break; case ActivityType.OPEN_TYPE_ROLE: @@ -51,6 +52,19 @@ public class ToolsUtil { } } break; + case ActivityType.OPEN_TYPE_CYCLE://循环活动 + long now = TimeUtils.now(); + // 循环时间 + long cycleTimeMils = cycleTime * TimeUtils.ONE_MINUTE; + // 最近的开始时间 + long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, now, cycleTimeMils); + if (type == 1){ + resultTime = latelyStartTime; + }else { + // 最近的结束时间 + resultTime = latelyStartTime + (endTimeLong - startTimeLong); + } + break; default: // 开始时间 if(type == 1){ @@ -66,7 +80,7 @@ public class ToolsUtil { } public static long getEndTimeLong(long startTimeLong , long endTimeLong,int time,long createUserTime,int dayOut){ - long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2); + long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2, 0); return timeLong + TimeUtils.DAY * dayOut; } From 221713d2ec86af41b71daac92085a7a27791105d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 6 Mar 2024 16:22:49 +0800 Subject: [PATCH 48/74] =?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 | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index ed0aa7339..7da862d29 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"16", - "tables":"GlobalActivity|TreasureTaskConfig|ItemConfig" + "version":"8", + "tables":"GlobalActivity" } \ No newline at end of file diff --git a/conf/hotfix.json b/conf/hotfix.json index 444a9c747..b8eeab13c 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,6 +1,4 @@ { - "version":"6", - "classes":[ - {"name":"GetWorldArenaRecordInfoRequestHandler.class","fullName":"com.ljsd.jieling.handler.gtw.GetWorldArenaRecordInfoRequestHandler"} - ] + "version":"5", + "classes":[] } \ No newline at end of file From adc6b73d6bfbb11f927cf121263c684bcb1632b0 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 6 Mar 2024 16:24:49 +0800 Subject: [PATCH 49/74] =?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 From d08b0cb12e579f535221a2af047007b8853385af Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 6 Mar 2024 16:29:58 +0800 Subject: [PATCH 50/74] =?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 9d4b25d94..ac0c434f1 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"9", + "version":"10", "tables":"GlobalActivity" } \ No newline at end of file From 5d3b41d7fb2efa13d1bdc15c54005e18c4d259b4 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 12 Mar 2024 15:18:57 +0800 Subject: [PATCH 51/74] =?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 ac0c434f1..6ef938c48 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"10", + "version":"11", "tables":"GlobalActivity" } \ No newline at end of file From d48209d657496f9448b1d0ab29d545e350b15139 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 21 Mar 2024 14:38:34 +0800 Subject: [PATCH 52/74] =?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 6ef938c48..f0414e17b 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"11", + "version":"12", "tables":"GlobalActivity" } \ No newline at end of file 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 53/74] =?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 dfa546ac989d1653f071f3f4ce561d7f5cc3b217 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 21 Mar 2024 18:09:12 +0800 Subject: [PATCH 54/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E4=BA=8C=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/TimeUtils.java | 27 +++++ .../jieling/logic/activity/ActivityLogic.java | 113 +++++++++--------- .../activity/activityLogic/WeekCardLogic.java | 6 +- .../java/com/ljsd/jieling/util/ToolsUtil.java | 2 +- 4 files changed, 83 insertions(+), 65 deletions(-) diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index f765557c3..c44177e74 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -913,4 +913,31 @@ public class TimeUtils { public static long getLatelyTime(long startTimeMillis, long currentMillis, long intervalMillis){ return startTimeMillis + (currentMillis - startTimeMillis) / intervalMillis * intervalMillis; } + + /** + * 计算距离当前时间最近的开始时间 + * + * @param startTime 开始时间的时间戳(毫秒) + * @param interval 间隔时间(毫秒) + * @param currentTime 当前时间的时间戳(毫秒) + * @return 最近的开始时间的时间戳(毫秒) + */ + public static long calculateNextStartTime(long startTime, long interval, long currentTime) { + // 计算从开始时间到当前时间的差异 + long timeDiff = currentTime - startTime; + + // 计算间隔时间的完整倍数 + long intervalCount = timeDiff / interval; + + // 计算距离当前时间最近的开始时间 + long nextStartTime = startTime + interval * intervalCount; + + // 如果计算出的时间小于或等于当前时间,则选择下一个开始时间 + if (nextStartTime <= currentTime) { + nextStartTime += interval; + } + + return nextStartTime; + } + } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 1bf3e1974..bc762f538 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -361,10 +361,10 @@ public class ActivityLogic implements IEventHandler{ LOGGER.info("checkActivityOfUser uid={} remove activity={}", user.getId(), openActivityId); continue; } - //创角 + //多少天内不会出现 创角判断 int[] ifOpen = sGlobalActivity.getIfOpen(); if(ifOpen!=null && ifOpen.length>0 && ifOpen[0]==1){ - if(userCreateTime + ifOpen[1]*TimeUtils.ONE_DAY > now){ + if(userCreateTime + ifOpen[1] * TimeUtils.ONE_DAY > now){ continue; } } @@ -379,6 +379,11 @@ public class ActivityLogic implements IEventHandler{ Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),openActivityId,1)); } } + // 循环活动初始化 + int time = sGlobalActivity.getTime(); + if (time == ActivityType.OPEN_TYPE_CYCLE){ + refreshCycleActivity(user, sGlobalActivity, builder); + } continue; } boolean checked = checkStateAndInitFromActivity(user, openActivityId); @@ -429,7 +434,7 @@ public class ActivityLogic implements IEventHandler{ } } else if (activityMissionMap.containsKey(activityId)) { //如果活动没有开启,但是玩家有这个活动的数据,则清除,并通知客户端活动关闭 - if(now < startTime && time != ActivityType.OPEN_TYPE_CYCLE){ + if(now < startTime){ LOGGER.info("[活动延期,清除遗留玩家数据] [uid:{}] [activityId:{}] [activityType:{}] [activityStartTime:{}]",user.getId(),activityId, type, startTimeLong); activityMissionMap.remove(activityId); if (builder != null) { @@ -452,41 +457,37 @@ public class ActivityLogic implements IEventHandler{ } openNewActivityIds.add(activityId); } - else if (time == ActivityType.OPEN_TYPE_CYCLE){//循环 - // 循环时间 - long cycleTime = cycleMinute * TimeUtils.ONE_MINUTE; - // 最近的开始时间 - long latelyStartTime = TimeUtils.getLatelyTime(startTime, now, cycleTime); - // 当前期活动未开始 - if (now < latelyStartTime) { - continue; - } - // 最近的结束时间 - long latelyEndTime = latelyStartTime + (endTime - startTime); - - ActivityMission mission = activityMissionMap.get(activityId); - // 活动存在,(当前时间大于最近的结束时间 或 活动创建时间大于最近得开启时间),表示当期活动结束 - if (mission != null && (now > latelyEndTime || mission.getCreatTime() < latelyStartTime)){ - goRewardActivity(user,activityId,builder, isRemove); - continue; - } - if (now > latelyEndTime){ - continue; - } - if (mission == null){ - boolean checked = checkStateAndInitFromActivity(user, activityId); - if (checked){ - continue; - } - } - openNewActivityIds.add(activityId); - } else { - goRewardActivity(user,activityId,builder, isRemove); + goRewardActivity(user, activityId, builder, isRemove); } } return openNewActivityIds; + } + /** + * 刷新循环活动 + * @param user 玩家 + * @param activity 活动 + * @param builder 返回roto + * @throws Exception 异常 + */ + public void refreshCycleActivity(User user, SGlobalActivity activity, PlayerInfoProto.ActivityUpateIndication.Builder builder) throws Exception { + ActivityManager activityManager = user.getActivityManager(); + int activityId = activity.getId(); + long now = TimeUtils.now(); + long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), 0, 1, activity.getCycleMinute()); + long endTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), 0, 2, activity.getCycleMinute()); + // 当前期活动未开始 + if (now < startTime || now > endTime) { + return; + } + ActivityMission mission = activityManager.getActivityMissionMap().get(activityId); + long gepTimeLong = endTime + activity.getGapTime() * TimeUtils.ONE_DAY; + // 活动存在,(当前时间大于最近的结束时间 或 活动创建时间大于最近得开启时间),表示当期活动结束 + if (mission.getCreatTime() < startTime){ + goRewardActivity(user, activityId, builder, now > gepTimeLong); + checkStateAndInitFromActivity(user, activityId); + } } /** @@ -511,22 +512,23 @@ public class ActivityLogic implements IEventHandler{ */ private static void goRewardActivity(User user,int activityId,PlayerInfoProto.ActivityUpateIndication.Builder builder,boolean isRemoveInfo) throws Exception { ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId); - if (activityMission != null) { - AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId); - if (null == abstractActivity) { - return; - } - if(activityMission.getOpenType() != ActivityType.CLOSE_STATE){ - abstractActivity.onActivityEndSelfWithDealReward(user); - abstractActivity.setOpenState(user,ActivityType.CLOSE_STATE); - Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),activityId,ActivityType.CLOSE_STATE)); - } - if(isRemoveInfo){ - user.getActivityManager().getActivityMissionMap().remove(activityId); - LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId); - if (builder != null) { - builder.addCloseActivityId(activityId); - } + if (activityMission == null) { + return; + } + AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId); + if (null == abstractActivity) { + return; + } + if(activityMission.getOpenType() != ActivityType.CLOSE_STATE){ + abstractActivity.onActivityEndSelfWithDealReward(user); + abstractActivity.setOpenState(user,ActivityType.CLOSE_STATE); + Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),activityId,ActivityType.CLOSE_STATE)); + } + if(isRemoveInfo){ + user.getActivityManager().getActivityMissionMap().remove(activityId); + LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId); + if (builder != null) { + builder.addCloseActivityId(activityId); } } } @@ -599,6 +601,7 @@ public class ActivityLogic implements IEventHandler{ int timeType = sGlobalActivity.getTime(); int type = sGlobalActivity.getType(); int gapTime = sGlobalActivity.getGapTime(); + int cycleMinute = sGlobalActivity.getCycleMinute(); if(activityStatus == ActivityType.CLOSE_STATE){ long prepareTime = ToolsUtil.getEndTimeLong(startTimeLong, endTimeLong, timeType,0, gapTime); @@ -625,21 +628,13 @@ public class ActivityLogic implements IEventHandler{ if (sGlobalActivity.getIsSaving()==0 && activityStatus != ActivityType.OPEN_STATE) { continue; } - int startTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 1, 0) / 1000); - int endTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 2, 0) / 1000);; + int startTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 1, cycleMinute) / 1000); + int endTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 2, cycleMinute) / 1000); if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ // 每日特惠活动 startTime = (int)(activityState.getValue().getCreatTime()/1000); endTime = startTime+604800; } - else if (timeType == ActivityType.OPEN_TYPE_CYCLE){ - long now = TimeUtils.now(); - long intervalTime = (endTime - startTime) * 1000L; - long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; - long latelyStarTime = TimeUtils.getLatelyTime(startTime * 1000L, now, cycleTime); - startTime = (int) (latelyStarTime/1000); - endTime = (int) ((latelyStarTime + intervalTime + TimeUtils.DAY * gapTime)/1000); - } else{ endTime = endTime + (int) (TimeUtils.DAY * gapTime / 1000); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index aae875688..b240f64d5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -52,11 +52,7 @@ public class WeekCardLogic { long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 long now = TimeUtils.now(); - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); - long cycleTime = activity.getCycleMinute() * TimeUtils.ONE_MINUTE; - if (cycleTime > 0){ - startTimeLong = TimeUtils.getLatelyTime(startTimeLong, now, cycleTime); - } + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute()); int days = TimeUtils.differentDays(startTimeLong, now)+1; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index ffb2cbad3..aa5f39fcd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -57,7 +57,7 @@ public class ToolsUtil { // 循环时间 long cycleTimeMils = cycleTime * TimeUtils.ONE_MINUTE; // 最近的开始时间 - long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, now, cycleTimeMils); + long latelyStartTime = TimeUtils.calculateNextStartTime(startTimeLong, now, cycleTimeMils); if (type == 1){ resultTime = latelyStartTime; }else { From 803ba2a86d701e6e98236961e5a8bcb35b6e8126 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 25 Mar 2024 15:48:32 +0800 Subject: [PATCH 55/74] =?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..1e2fd83f6 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"5", - "tables":"" + "version":"6", + "tables":"ThemeActivityShop|GlobalActivity" } \ No newline at end of file From c8f47d0a7af66d7ed8b23b845bb73606ea352e9f Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 26 Mar 2024 14:22:03 +0800 Subject: [PATCH 56/74] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/thread/ThreadManager.java | 2 +- .../ljsd/jieling/util/DynamicLRUCache.java | 57 ++++++++++--------- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java index 1fea2b3b8..a51ec010b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java @@ -156,9 +156,9 @@ public class ThreadManager implements IManager { public static void reStart(){ LOGGER.info("重启线程池!!"); -// scheduledExecutor.shutdown(); scheduledFutureSets.forEach(future -> future.cancel(false)); scheduledFutureSets.clear(); + TaskKit.reset(); go(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java b/serverlogic/src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java index c15e3e0f1..3e94171c5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import util.TimeUtils; import java.util.*; import java.util.concurrent.locks.ReadWriteLock; @@ -26,7 +27,7 @@ public class DynamicLRUCache { } public V get(K key) { - lock.readLock().lock(); +// lock.readLock().lock(); try { TimedCacheEntry entry = cache.get(key); if (entry != null && !isEntryExpired(entry)) { @@ -35,51 +36,51 @@ public class DynamicLRUCache { } return null; } finally { - lock.readLock().unlock(); +// lock.readLock().unlock(); } } public void put(K key, V value) { - lock.writeLock().lock(); +// lock.writeLock().lock(); try { if (cache.size() >= maxSize && maxSize < Integer.MAX_VALUE / 2) { maxSize *= 2; // 控制最大扩容限制 } cache.put(key, new TimedCacheEntry<>(value)); } finally { - lock.writeLock().unlock(); +// lock.writeLock().unlock(); } } public void remove(K key) { - lock.writeLock().lock(); +// lock.writeLock().lock(); try { cache.remove(key); } finally { - lock.writeLock().unlock(); +// lock.writeLock().unlock(); } } public boolean containsKey(K key) { - lock.readLock().lock(); +// lock.readLock().lock(); try { return cache.containsKey(key); } finally { - lock.readLock().unlock(); +// lock.readLock().unlock(); } } public int size() { - lock.readLock().lock(); +// lock.readLock().lock(); try { return cache.size(); } finally { - lock.readLock().unlock(); +// lock.readLock().unlock(); } } public List getAll() { - lock.readLock().lock(); +// lock.readLock().lock(); try { List values = new ArrayList<>(); for (TimedCacheEntry entry : cache.values()) { @@ -89,28 +90,28 @@ public class DynamicLRUCache { } return values; } finally { - lock.readLock().unlock(); +// lock.readLock().unlock(); } } public void shrinkToFit() { - lock.writeLock().lock(); - try { - // 减少缓存大小调整的频率 - if (cache.size() < maxSize / 2 && maxSize > 100) { - maxSize /= 2; // 缩小缓存容量 - } - Iterator>> iterator = cache.entrySet().iterator(); - while (iterator.hasNext()) { - Map.Entry> entry = iterator.next(); - if (isEntryExpired(entry.getValue())) { - iterator.remove(); // 使用迭代器来安全移除条目 - } - } - } finally { - lock.writeLock().unlock(); + long now = TimeUtils.now(); + // 减少缓存大小调整的频率 + if (cache.size() < maxSize / 2 && maxSize > 100) { + maxSize /= 2; // 缩小缓存容量 } - LOGGER.info("当前用户缓存列表大小,num:{},max:{}", size(), maxSize); + Iterator>> iterator = cache.entrySet().iterator(); + HashSet removeUsers = new HashSet<>(); + while (iterator.hasNext()) { + Map.Entry> entry = iterator.next(); + if (isEntryExpired(entry.getValue())) { + removeUsers.add((Integer) entry.getKey()); + } + } + for (Integer id : removeUsers) { + cache.remove(id); + } + LOGGER.info("当前用户缓存列表大小,num:{},max:{},time:{}ms", size(), maxSize, TimeUtils.now()-now); } From bd2716ee7089d8e45bcfc18b657fd19f2d2493ba Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 26 Mar 2024 14:23:12 +0800 Subject: [PATCH 57/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=E9=87=8D=E7=BD=AE?= 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 1e2fd83f6..2b4b31e47 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"6", - "tables":"ThemeActivityShop|GlobalActivity" + "version":"5", + "tables":"" } \ No newline at end of file From e28318ccf364734a1c9ba1e8589741884711662d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 26 Mar 2024 14:35:14 +0800 Subject: [PATCH 58/74] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java b/serverlogic/src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java index 3e94171c5..18a9f0f7b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/DynamicLRUCache.java @@ -41,14 +41,14 @@ public class DynamicLRUCache { } public void put(K key, V value) { -// lock.writeLock().lock(); + lock.writeLock().lock(); try { if (cache.size() >= maxSize && maxSize < Integer.MAX_VALUE / 2) { maxSize *= 2; // 控制最大扩容限制 } cache.put(key, new TimedCacheEntry<>(value)); } finally { -// lock.writeLock().unlock(); + lock.writeLock().unlock(); } } 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 59/74] =?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 From dba14178ee97bf45ea7bfd87b5331a4bdf9e98b5 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 27 Mar 2024 15:14:27 +0800 Subject: [PATCH 60/74] =?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 f0414e17b..5de494e3f 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"12", + "version":"13", "tables":"GlobalActivity" } \ No newline at end of file From ef629169948d143f311c545c572811334887ec4e Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 27 Mar 2024 18:07:51 +0800 Subject: [PATCH 61/74] =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/EquipUpLevelActivity.java | 3 ++- .../main/java/com/ljsd/jieling/logic/activity/SubActivity.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EquipUpLevelActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EquipUpLevelActivity.java index 45df5f18d..8dbdbe97b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EquipUpLevelActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EquipUpLevelActivity.java @@ -25,12 +25,13 @@ public class EquipUpLevelActivity extends AbstractActivity { ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo(); activityProgressInfo.setProgrss(entry.getValue()); activityProgressInfo.setState(0); - mission.getActivityMissionMap().put(entry.getKey(), activityProgressInfo); + mission.getActivityMissionMap().put(entry.getKey(), activityProgressInfo); } mission.setOpenType(1); mission.setV(0); mission.setActivityState(ActivityType.OPEN_STATE); user.getActivityManager().getActivityMissionMap().put(id, mission); + LOGGER.info("云游商人初始化...uid={} activityId={}",user.getId(), id); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java index 6dad54b21..59f9a97e3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java @@ -48,6 +48,7 @@ public class SubActivity extends AbstractActivity { subRewardPoolInfo.setLay(0); } randomReward(user, true); + LOGGER.info("易经宝库初始化...uid={} activityId={}",user.getId(), id); } @Override From 6624b6162afd86918c2bf1c1b35f264c05da5a55 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 28 Mar 2024 14:03:17 +0800 Subject: [PATCH 62/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8bug?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/activity/EquipUpLevelHandler.java | 4 +- .../jieling/logic/activity/ActivityLogic.java | 2 +- .../logic/activity/EquipUpLevelActivity.java | 71 ++++++++++++++++--- .../jieling/logic/activity/SubActivity.java | 3 + .../ljsd/jieling/logic/item/ItemLogic.java | 45 +++--------- 5 files changed, 73 insertions(+), 52 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/EquipUpLevelHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/EquipUpLevelHandler.java index 59777675b..7f0361beb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/EquipUpLevelHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/EquipUpLevelHandler.java @@ -16,8 +16,6 @@ public class EquipUpLevelHandler extends BaseHandler> configMap = SComposeActivity.getConfigMap(); - Map useTypeMap = new HashMap<>(); - for(Map.Entry entry : configMap.get(id).entrySet()){ - useTypeMap.put(entry.getValue().getId(),entry.getValue().getCount()); - } - for(Map.Entry entry : useTypeMap.entrySet()){ + ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>()); + Map composeActivityMap = SComposeActivity.getConfigMap().get(id); + for (SComposeActivity composeActivity : composeActivityMap.values()) { ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo(); - activityProgressInfo.setProgrss(entry.getValue()); + activityProgressInfo.setProgrss(composeActivity.getCount()); activityProgressInfo.setState(0); - mission.getActivityMissionMap().put(entry.getKey(), activityProgressInfo); + mission.getActivityMissionMap().put(composeActivity.getId(), activityProgressInfo); } - mission.setOpenType(1); - mission.setV(0); - mission.setActivityState(ActivityType.OPEN_STATE); user.getActivityManager().getActivityMissionMap().put(id, mission); LOGGER.info("云游商人初始化...uid={} activityId={}",user.getId(), id); } + /** + * 领取奖励 + * @param session 玩家缓存 + * @param equipId 装备id + * @return 道具 + * @throws Exception 异常 + */ + public CommonProto.Drop.Builder takeReward2(ISession session, int equipId) throws Exception { + User user = UserManager.getUser(session.getUid()); + Map config = STableManager.getConfig(SComposeBook.class); + SComposeBook composeBook = config.get(equipId); + if(composeBook == null){ + throw new ErrorCodeException(ErrorCode.CFG_NULL,"云游商人,idkey配置不存在:"+equipId); + } + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if(mission == null){ + LOGGER.error("misson为空,activityId:{}",id); + throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); + } + Map integerSComposeActivityMap = SComposeActivity.getConfigMap().get(id); + int typeId = integerSComposeActivityMap.get(composeBook.getType()).getId(); + ActivityProgressInfo progress = mission.getActivityMissionMap().get(typeId); + if(progress == null){ + LOGGER.error("progress为空,type:{}",composeBook.getType()); + throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); + } + if(progress.getProgrss() <= 0){ + LOGGER.error("progress次数不足,num:{}",progress.getProgrss()); + throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); + } + boolean itemCost = ItemUtil.itemCost(user, new int[][]{composeBook.getNeedItems()[0],composeBook.getNeedCost()[0]}, BIReason.EQUIP_UPLEVEL_COST, equipId); + if(!itemCost){ + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + } + progress.setProgrss(progress.getProgrss()-1); + mission.getActivityMissionMap().put(typeId,progress); + CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{composeBook.getGoalItems()[0]},BIReason.EQUIP_UPLEVEL_REWARD); + //发推送 + sendActivityProgress(user, null); + return drop; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java index 59f9a97e3..4f2259008 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java @@ -47,6 +47,9 @@ public class SubActivity extends AbstractActivity { if(null!=subRewardPoolInfo){ subRewardPoolInfo.setLay(0); } + ActivityMission mission = new ActivityMission(); + ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>()); + user.getActivityManager().getActivityMissionMap().put(id, mission); randomReward(user, true); LOGGER.info("易经宝库初始化...uid={} activityId={}",user.getId(), id); } 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 377b28f96..5afe9346b 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 @@ -14,6 +14,7 @@ import com.ljsd.jieling.ktbeans.ReportEventEnum; import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.logic.activity.AbstractActivity; import com.ljsd.jieling.logic.activity.ActivityTypeEnum; +import com.ljsd.jieling.logic.activity.EquipUpLevelActivity; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent; import com.ljsd.jieling.logic.dao.*; @@ -761,47 +762,17 @@ public class ItemLogic { /** *装备升星(云游商人) */ - public void equipUpLevel(ISession session, int activityId,int equipId,int itemId,int itemNum,MessageTypeProto.MessageType messageType) throws Exception{ + public void equipUpLevel(ISession session, int activityId, int equipId) throws Exception{ PlayerInfoProto.EquipUpLevelResponse.Builder response = PlayerInfoProto.EquipUpLevelResponse.newBuilder(); - response.setResult(false); - User user = UserManager.getUser(session.getUid()); - Map config = STableManager.getConfig(SComposeBook.class); - SComposeBook composeBook = config.get(equipId); - if(composeBook == null){ - throw new ErrorCodeException(ErrorCode.CFG_NULL,"云游商人,idkey配置不存在:"+equipId); + AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId); + if (abstractActivity == null){ + throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN,"云游商人,活动不存在:"+activityId); } - ActivityMission misson = user.getActivityManager().getActivityMissionMap().get(activityId); - if(misson == null){ - LOGGER.error("misson为空,activityId:{}",activityId); - throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); - } - Map integerSComposeActivityMap = SComposeActivity.getConfigMap().get(activityId); - int typeId = integerSComposeActivityMap.get(composeBook.getType()).getId(); - ActivityProgressInfo progress = misson.getActivityMissionMap().get(typeId); - if(progress == null){ - LOGGER.error("progress为空,type:{}",composeBook.getType()); - throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); - } - if(progress.getProgrss() <= 0){ - LOGGER.error("progress次数不足,num:{}",progress.getProgrss()); - throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); - } - boolean itemCost = ItemUtil.itemCost(user, new int[][]{composeBook.getNeedItems()[0],composeBook.getNeedCost()[0]}, BIReason.EQUIP_UPLEVEL_COST, equipId); - if(!itemCost){ - LOGGER.error("item不足,equipId:{},itemId:{},itemNum:{}",equipId,itemId,itemNum); - throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); - } - progress.setProgrss(progress.getProgrss()-1); - user.getActivityManager().getActivityMissionMap().put(activityId,misson); - CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{composeBook.getGoalItems()[0]},BIReason.EQUIP_UPLEVEL_REWARD); + EquipUpLevelActivity activity = (EquipUpLevelActivity) abstractActivity; + CommonProto.Drop.Builder drop = activity.takeReward2(session, equipId); response.setResult(true); response.setDrop(drop); - MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); - //发推送 - AbstractActivity acticityType = ActivityTypeEnum.getActicityById(activityId); - if(acticityType!=null){ - acticityType.sendActivityProgress(session, null); - } + MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.EQUIP_UPLEVEL_RESPONSE.getNumber(),response.build(),true); } /** From 7c421103afebf4f41539cd9ab269a0660f54cc5d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 1 Apr 2024 15:02:25 +0800 Subject: [PATCH 63/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8bug?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/TimeUtils.java | 2 +- .../logic/activity/ContinuousGiftActivity.java | 2 +- .../jieling/logic/activity/NewEightActivity.java | 15 ++++++++++----- .../java/com/ljsd/jieling/util/ToolsUtil.java | 11 +++++++---- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index c44177e74..b9a4e9328 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -910,7 +910,7 @@ public class TimeUtils { * @param intervalMillis 间隔时间 * @return 最近得开始时间 */ - public static long getLatelyTime(long startTimeMillis, long currentMillis, long intervalMillis){ + public static long getLatelyTime(long startTimeMillis, long intervalMillis, long currentMillis){ return startTimeMillis + (currentMillis - startTimeMillis) / intervalMillis * intervalMillis; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java index fbe5df545..163b36c6b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java @@ -187,7 +187,7 @@ public class ContinuousGiftActivity extends AbstractActivity { } long now = TimeUtils.now(); long createTime = user.getPlayerInfoManager().getCreateTime(); - long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute()); // 更新记录天数 activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1); // 库里存储的活动档位信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java index 13f5aa1cd..9f6c11b74 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java @@ -4,6 +4,7 @@ import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ToolsUtil; import config.SActivityRewardConfig; import config.SGlobalActivity; import util.TimeUtils; @@ -22,11 +23,15 @@ public class NewEightActivity extends AbstractActivity { @Override boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { User user = UserManager.getUser(session.getUid()); - SGlobalActivity globalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - if (globalActivity.getTime()==1){ - return TimeUtils.getOverTimeCount(globalActivity.getStartTimeLong(), System.currentTimeMillis(), 0) >= sActivityRewardConfig.getValues()[0][0] - 1; - }else if (globalActivity.getTime()==2){ - return TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(), System.currentTimeMillis(), 0) >= sActivityRewardConfig.getValues()[0][0] - 1; + long now = TimeUtils.now(); + long createTime = user.getPlayerInfoManager().getCreateTime(); + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); + long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), createTime, 1, activity.getCycleMinute()); + if (activity.getTime()==1){ + return TimeUtils.getOverTimeCount(startTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1; + } + else if (activity.getTime()==2){ + return TimeUtils.getOverTimeCount(createTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1; } return true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index aa5f39fcd..9cef669d9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -1,13 +1,16 @@ package com.ljsd.jieling.util; import com.ljsd.GameApplication; +import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import util.TimeUtils; import java.util.*; public class ToolsUtil { - + private static final Logger LOGGER = LoggerFactory.getLogger(ToolsUtil.class); /** * 根据不同类型获取活动时间 * @@ -26,13 +29,13 @@ public class ToolsUtil { } long resultTime=0; switch (time){ - case ActivityType.OPEN_TYPE_TIME://开服时间 + case ActivityType.OPEN_TYPE_TIME://绝对时间 resultTime = baseTime; break; case ActivityType.OPEN_TYPE_ROLE: resultTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000; break; - case ActivityType.OPEN_TYPE_SERVER: + case ActivityType.OPEN_TYPE_SERVER://开服时间 long serverOpenTime = GameApplication.serverConfig.getCacheOpenTime(); resultTime = serverOpenTime + baseTime * 1000; break; @@ -57,7 +60,7 @@ public class ToolsUtil { // 循环时间 long cycleTimeMils = cycleTime * TimeUtils.ONE_MINUTE; // 最近的开始时间 - long latelyStartTime = TimeUtils.calculateNextStartTime(startTimeLong, now, cycleTimeMils); + long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, cycleTimeMils, now); if (type == 1){ resultTime = latelyStartTime; }else { From 99acbb8dad7e453c96f55c40239e01580752656f Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 28 Mar 2024 16:12:01 +0800 Subject: [PATCH 64/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8bug?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 8 ++---- .../logic/activity/PowerRiceActivity.java | 28 +++++++++---------- .../logic/rank/rankImpl/PowerRiceRank.java | 10 ++++--- .../bean/TimeLimitWelfareBag.java | 1 + 4 files changed, 22 insertions(+), 25 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 8007b54a6..004d10751 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1594,13 +1594,9 @@ public class ActivityLogic implements IEventHandler{ public static long[] getStartAndEndTime(User user,int activityId){ SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); - long createUserTime = 0; - if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_ROLE) { - createUserTime = user.getPlayerInfoManager().getCreateTime(); - } long[] result = new long[2]; - result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 1, 0); - result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 2, 0); + result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, sGlobalActivity.getCycleMinute()); + result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, sGlobalActivity.getCycleMinute()); return result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/PowerRiceActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/PowerRiceActivity.java index a0bdaa40f..33bea10be 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/PowerRiceActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/PowerRiceActivity.java @@ -16,7 +16,6 @@ import com.ljsd.jieling.network.session.ISession; import config.SActivityRankingReward; import config.SActivityRewardConfig; import config.SErrorCodeEerverConfig; -import config.SGlobalActivity; import org.springframework.data.redis.core.ZSetOperations; import util.StringUtil; import util.TimeUtils; @@ -98,9 +97,8 @@ public class PowerRiceActivity extends AbstractActivity{ globalSystemControl.addActivityPreEnd(id,TimeUtils.now()); GlobalSystemControl.save(globalSystemControl); } - public List getRankReward() throws Exception{ - List sActivityRankingReward = SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id); - return sActivityRankingReward; + public List getRankReward() { + return SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id); } /** @@ -108,15 +106,15 @@ public class PowerRiceActivity extends AbstractActivity{ * @param user * @return */ - public int getStage(User user){ - long []time = ActivityLogic.getStartAndEndTime(user,id); - SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - long gapTime = time[1] +sGlobalActivity.getGapTime()*TimeUtils.ONE_DAY; - if(TimeUtils.now()>=time[0]&&TimeUtils.now()<=time[1]){ - return 0; - }else if(TimeUtils.now()>=time[1]&&TimeUtils.now()<=gapTime){ - return 1; - } - return -1; - } +// public int getStage(User user){ +// long []time = ActivityLogic.getStartAndEndTime(user,id); +// SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); +// long gapTime = time[1] +sGlobalActivity.getGapTime()*TimeUtils.ONE_DAY; +// if(TimeUtils.now()>=time[0]&&TimeUtils.now()<=time[1]){ +// return 0; +// }else if(TimeUtils.now()>=time[1]&&TimeUtils.now()<=gapTime){ +// return 1; +// } +// return -1; +// } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/PowerRiceRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/PowerRiceRank.java index c10bb1a1d..c09796d95 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/PowerRiceRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/PowerRiceRank.java @@ -12,6 +12,7 @@ import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.cross.CSPlayer; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.rank.RankEnum; +import com.ljsd.jieling.util.ToolsUtil; import config.SActivityRankingReward; import config.SGlobalActivity; import org.springframework.data.redis.core.ZSetOperations; @@ -59,13 +60,14 @@ public class PowerRiceRank extends AbstractRank implements IEventHandler { } //判斷是否在展示期 Map sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); - SGlobalActivity sGlobalActivity = sGlobalActivityMap.get(activityId); - if (sGlobalActivity == null) { + SGlobalActivity activity = sGlobalActivityMap.get(activityId); + if (activity == null) { return; } - long[] startAndEndTime = ActivityLogic.getStartAndEndTime(null, activityId); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0,1, activity.getCycleMinute()); + long end = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0,2, activity.getCycleMinute()); long now = TimeUtils.now(); - if (now > startAndEndTime[0] && now < startAndEndTime[1]) { + if (now > start && now < end) { if (event instanceof UserMainTeamForceEvent) { int uid = ((UserMainTeamForceEvent) event).getUid(); CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java index fc42fd4ea..eb87758a2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java @@ -17,6 +17,7 @@ public class TimeLimitWelfareBag extends AbstractWelfareBag { int anInt = value[1]; if(ActivityLogic.checkActivityOpen(user,anInt)){ setOpen(true); + long[] result = ActivityLogic.getStartAndEndTime(user, anInt); setStartTime(result[0]); setEndTime(result[1]); From 8ab1f93bb5dd43159ecd64e1aab63f6d0bfc6f17 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 1 Apr 2024 16:28:26 +0800 Subject: [PATCH 65/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8bug?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/kefu/Cmd_changename.java | 4 ++-- .../com/ljsd/jieling/logic/activity/ActivityLogic.java | 10 +++++----- .../ljsd/jieling/logic/activity/FifteenActivity.java | 2 +- .../jieling/logic/activity/FightMainEventHandler.java | 4 ++-- .../logic/activity/MissSearchExpectRankActivity.java | 2 +- .../logic/activity/OpenServerCompeteRankActivity.java | 6 +++--- .../logic/activity/SecretExpectRankActivity.java | 2 +- .../jieling/logic/activity/SevenHappyActivity.java | 2 +- .../ljsd/jieling/logic/activity/SuperBoxActivity.java | 2 +- .../ljsd/jieling/logic/activity/WeekCardActivity.java | 4 ++-- .../eventhandler/ActivityStateChangeHandler.java | 4 ++-- .../com/ljsd/jieling/logic/mission/MissionLogic.java | 4 ++-- 12 files changed, 23 insertions(+), 23 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java index 026099616..d6c3d03df 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java @@ -62,8 +62,8 @@ public class Cmd_changename extends GmRoleAbstract { if(!storeInfoMap.containsKey(10) && !storeInfoMap.containsKey(15)){ SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(10); long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1, 0); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2, 0); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1, sGlobalActivity.getCycleMinute()); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2, sGlobalActivity.getCycleMinute()); StoreLogic.getInstance().initOnsStoereWithTime(user,10,startTime,endTime); LOGGER.info("hotfix user={} store end",user.getId()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 004d10751..39d86d9e3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -816,8 +816,8 @@ public class ActivityLogic implements IEventHandler{ } long createTime = user.getPlayerInfoManager().getCreateTime(); - int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1, 0) / 1000); - int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2, 0) / 1000); + int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1, sGlobalActivity.getCycleMinute()) / 1000); + int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2, sGlobalActivity.getCycleMinute()) / 1000); List missionInfos = abstractActivity.getAllMissInfo(user,activityMission); fBuilder.addActivityInfo(CommonProto.ActivityInfo.newBuilder().setValue(activityMission.getV()).setActivityId(activityId).addAllMission(missionInfos).setStartTime(startTime).setEndTime(endTime).setReallyOpen(activityMission.getOpenType()).build()); fBuilder.setHadLuckTime(user.getPlayerInfoManager().getLuckWheelLimitTime()); @@ -1418,9 +1418,9 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivities.isEmpty()){ throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); } - Function function = v->(int)ToolsUtil.getTimeLong(v.getStartTimeLong(),v.getEndTimeLong(),v.getTime(),user.getPlayerInfoManager().getCreateTime(),1, 0); + Function function = v->(int)ToolsUtil.getTimeLong(v.getStartTimeLong(),v.getEndTimeLong(),v.getTime(),user.getPlayerInfoManager().getCreateTime(),1, v.getCycleMinute()); Stream stream = sGlobalActivities.stream().sorted(Comparator.comparing(function)) - .filter(v->ToolsUtil.getTimeLong(v.getStartTimeLong(), v.getEndTimeLong(), v.getTime(), user.getPlayerInfoManager().getCreateTime(), 1, 0) > TimeUtils.now()); + .filter(v->ToolsUtil.getTimeLong(v.getStartTimeLong(), v.getEndTimeLong(), v.getTime(), user.getPlayerInfoManager().getCreateTime(), 1, v.getCycleMinute()) > TimeUtils.now()); List collect = stream.collect(Collectors.toList()); if(collect.isEmpty()){ throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); @@ -1430,7 +1430,7 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivity==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(),1, 0); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(),1, sGlobalActivity.getCycleMinute()); PlayerInfoProto.NextActivityResponse response = PlayerInfoProto.NextActivityResponse.newBuilder().setId(id).setTime((int)(startTime/1000)).build(); MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java index d459dca45..8230de1bb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java @@ -45,7 +45,7 @@ public class FifteenActivity extends AbstractActivity { if(activityMission == null){ return; } - long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); + long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, globalActivity.getCycleMinute()); int time = (int)(startTime/1000); Map progressInfoMap = activityMission.getActivityMissionMap(); for(Map.Entry entry : progressInfoMap.entrySet()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java index 16ad1d0f7..6e3930799 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java @@ -50,8 +50,8 @@ public class FightMainEventHandler implements IEventHandler{ activityMission.setActivityState(ActivityType.OPEN_STATE); ActivityLogic.getInstance().sendActivityInfo(user,sGlobalActivity.getId()); if(sGlobalActivity.getShopId().length>0){ - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, 0); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, sGlobalActivity.getCycleMinute()); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, sGlobalActivity.getCycleMinute()); for (int shopId : sGlobalActivity.getShopId()) { ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java index 004e30111..a4e3b09de 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java @@ -32,7 +32,7 @@ class MissSearchExpectRankActivity extends ExpectRankActivity { public void initActivity(User user) throws Exception { super.initActivity(user); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, sGlobalActivity.getCycleMinute()); user.getPlayerInfoManager().addVipByTime(155,(int)(endTime/1000)); Set vipInfo = new HashSet<>(); vipInfo.add(155); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java index 2fca9ada2..ee857880b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java @@ -197,7 +197,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return 0; } - long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, 0); + long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, activity.getCycleMinute()); long rankEndTime = startTime + info.getCloseTime()*1000L; return rankEndTime-TimeUtils.now(); } @@ -211,7 +211,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return false; } - long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, 0); + long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, activity.getCycleMinute()); long rankStartTime = startTime + info.getOpenTime()*1000L; long rankEndTime = startTime + info.getCloseTime()*1000L; long now = TimeUtils.now(); @@ -229,7 +229,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return 0; } - int endTime = (int)(ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2, 0)/1000); + int endTime = (int)(ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2, activity.getCycleMinute())/1000); return endTime-TimeUtils.nowInt(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java index 2685c4551..a003338e8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java @@ -28,7 +28,7 @@ class SecretExpectRankActivity extends ExpectRankActivity { listValue.add(153);//额外购买次数 listValue.add(154);//额外免费次数 Set changedSet = new HashSet<>(); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, sGlobalActivity.getCycleMinute()); int time = (int)(endTime / 1000); listValue.forEach(privilegeId -> { changedSet.add(privilegeId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java index 8351458a8..8b2f899bc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java @@ -25,7 +25,7 @@ public class SevenHappyActivity extends DefaultEmptyActivity{ user.getActivityManager().getActivityMissionMap().put(id, mission); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH,id); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, sGlobalActivity.getCycleMinute()); user.getActivityManager().setSenvenStartTime(startTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java index 93f109044..2c799076d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java @@ -172,7 +172,7 @@ public class SuperBoxActivity extends AbstractActivity { } long now = TimeUtils.now(); long createTime = user.getPlayerInfoManager().getCreateTime(); - long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute()); // 更新记录天数 activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1); // 库里存储的活动档位信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java index 67f84151a..02e56402a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java @@ -104,7 +104,7 @@ public class WeekCardActivity extends AbstractActivity { SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId); long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute()); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now()) + 1; for (int[] ints : sWeekcardConfig.getBaseRewardID()) { @@ -139,7 +139,7 @@ public class WeekCardActivity extends AbstractActivity { SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute()); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1; for (Map.Entry> entry : weekCard.entrySet()) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java index 58f2c8148..2d528c0b4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java @@ -32,8 +32,8 @@ public class ActivityStateChangeHandler implements IEventHandler { if(state == ActivityType.OPEN_STATE){ SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); if(sGlobalActivity.getShopId().length>0){ - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, 0); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, sGlobalActivity.getCycleMinute()); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, sGlobalActivity.getCycleMinute()); for (int shopId : sGlobalActivity.getShopId()) { ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java index 02de50ae8..f73c0ba44 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java @@ -39,8 +39,8 @@ public class MissionLogic { return null; } SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1, 0); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2, 0); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1, sGlobalActivity.getCycleMinute()); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2, sGlobalActivity.getCycleMinute()); if(TimeUtils.now()>endTime){ return null; } From d08dea2dd524bba91477bbb8efcfe21aca3dd8ec Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 28 Mar 2024 16:45:00 +0800 Subject: [PATCH 66/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8bug?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 3 +-- .../java/com/ljsd/jieling/logic/activity/NewEightActivity.java | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 39d86d9e3..333a77925 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -482,10 +482,9 @@ public class ActivityLogic implements IEventHandler{ return; } ActivityMission mission = activityManager.getActivityMissionMap().get(activityId); - long gepTimeLong = endTime + activity.getGapTime() * TimeUtils.ONE_DAY; // 活动存在,(当前时间大于最近的结束时间 或 活动创建时间大于最近得开启时间),表示当期活动结束 if (mission.getCreatTime() < startTime){ - goRewardActivity(user, activityId, builder, now > gepTimeLong); + goRewardActivity(user, activityId, builder, true); checkStateAndInitFromActivity(user, activityId); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java index 9f6c11b74..3ba12cf13 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java @@ -27,7 +27,7 @@ public class NewEightActivity extends AbstractActivity { long createTime = user.getPlayerInfoManager().getCreateTime(); SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), createTime, 1, activity.getCycleMinute()); - if (activity.getTime()==1){ + if (activity.getTime()==1 || activity.getTime() == 6){ return TimeUtils.getOverTimeCount(startTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1; } else if (activity.getTime()==2){ From d2bcfe7d6bf1252ec08f349e85c1e88b513dfd6d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Fri, 29 Mar 2024 13:58:57 +0800 Subject: [PATCH 67/74] =?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..3df7e3d8e 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"5", - "tables":"" + "version":"6", + "tables":"PotentialNew" } \ No newline at end of file From c0ddc38d70cc92202f9ca785bfb5093fd57c723a Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 1 Apr 2024 11:36:47 +0800 Subject: [PATCH 68/74] =?UTF-8?q?=E7=A4=BC=E7=89=A9=E5=8D=87=E6=98=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/equip/EquipLogic.java | 4 ++-- .../main/java/com/ljsd/jieling/util/ItemUtil.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/equip/EquipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/equip/EquipLogic.java index 317d55413..664640e86 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/equip/EquipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/equip/EquipLogic.java @@ -633,12 +633,12 @@ public class EquipLogic { ArrayList costList = new ArrayList<>(); costList.add(config.getFormula()); costList.add(config.getResource()); - - boolean cost = ItemUtil.itemCost(user, costList, BIReason.GIFT_UP_STAR_COST, 1); + boolean cost = ItemUtil.checkCost(user, costList); if (!cost){ throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } CommonProto.Drop.Builder drop = ItemUtil.drop(user, new int[][]{{giftId, 1}}, BIReason.GIFT_UP_STAR_GET); + ItemUtil.itemCost(user, costList, BIReason.GIFT_EQUIP_UP_COST, 0); HeroInfoProto.GiftEquipUpStarResponse.Builder builder = HeroInfoProto.GiftEquipUpStarResponse.newBuilder().setDrop(drop); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GiftEquipUpStarResponse_VALUE, builder.build(), true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index dba00c7fc..cd6c2ba5c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1508,6 +1508,20 @@ public class ItemUtil { return checkCostLong(user,longMap); } + public static boolean checkCost(User user, List item) throws Exception { + HashMap itemMap = new HashMap<>(); + for (int[][] ints : item) { + selectCost(ints,itemMap); + } + return checkCost(user,itemMap); + } + + public static boolean checkCost(User user, int[][] item) throws Exception { + HashMap itemMap = new HashMap<>(); + selectCost(item,itemMap); + return checkCost(user,itemMap); + } + public static boolean checkCostLong(User user, Map itemMap) throws Exception { if (itemMap == null || itemMap.isEmpty()) { return true; From 40d6675eb9ab4cb87db173591e947919f9bc6e86 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 1 Apr 2024 11:37:22 +0800 Subject: [PATCH 69/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=E9=87=8D=E7=BD=AE?= 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 3df7e3d8e..2b4b31e47 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"6", - "tables":"PotentialNew" + "version":"5", + "tables":"" } \ No newline at end of file From d0784058a32969e000f2a80d20956771a384e79d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 3 Apr 2024 17:24:37 +0800 Subject: [PATCH 70/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=EF=BC=8C=E5=AF=BB=E5=AE=9D=E5=AF=86=E5=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/XunBaoMiZongActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/XunBaoMiZongActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/XunBaoMiZongActivity.java index 52d4a0658..62dc0dcd9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/XunBaoMiZongActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/XunBaoMiZongActivity.java @@ -6,7 +6,7 @@ import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.XunBaoMiZongEvent; import com.ljsd.jieling.logic.dao.root.User; -public class XunBaoMiZongActivity extends AbstractActivity { +public class XunBaoMiZongActivity extends DefaultEmptyActivity { public XunBaoMiZongActivity(int id) { super(id); From 8cc94c90510c39dfbe63acde6e037c6eb43c9aee Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Wed, 3 Apr 2024 17:42:44 +0800 Subject: [PATCH 71/74] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=EF=BC=8C=E7=99=BE=E6=8A=BD=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/NewEightActivity.java | 8 +------- .../src/main/java/com/ljsd/jieling/util/ToolsUtil.java | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java index 3ba12cf13..419b3b6fc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java @@ -27,12 +27,6 @@ public class NewEightActivity extends AbstractActivity { long createTime = user.getPlayerInfoManager().getCreateTime(); SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), createTime, 1, activity.getCycleMinute()); - if (activity.getTime()==1 || activity.getTime() == 6){ - return TimeUtils.getOverTimeCount(startTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1; - } - else if (activity.getTime()==2){ - return TimeUtils.getOverTimeCount(createTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1; - } - return true; + return TimeUtils.getOverTimeCount(startTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index 9cef669d9..162ee2d36 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -32,7 +32,7 @@ public class ToolsUtil { case ActivityType.OPEN_TYPE_TIME://绝对时间 resultTime = baseTime; break; - case ActivityType.OPEN_TYPE_ROLE: + case ActivityType.OPEN_TYPE_ROLE://创角时间 resultTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000; break; case ActivityType.OPEN_TYPE_SERVER://开服时间 From 24e60ab8c5e20867cd86644669cc88302ec8b3af Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 1 Apr 2024 13:47:06 +0800 Subject: [PATCH 72/74] =?UTF-8?q?=E7=83=AD=E6=9B=B4=E9=87=8D=E7=BD=AE?= 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 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 From 0ff0bc218c57865ed0d09adddc2bfd3e8bed7aca Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 2 Apr 2024 16:07:09 +0800 Subject: [PATCH 73/74] =?UTF-8?q?=E5=8A=A9=E6=88=98=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/help/HelpHero.java | 19 +++++++++++++++---- .../ljsd/jieling/logic/hero/HeroLogic.java | 7 +++---- .../jieling/logic/player/PlayerLogic.java | 2 +- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/help/HelpHero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/help/HelpHero.java index d1e226f78..b0b53b560 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/help/HelpHero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/help/HelpHero.java @@ -4,10 +4,7 @@ import com.ljsd.jieling.logic.dao.Baubles; import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.PropertyItem; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author hj @@ -58,6 +55,8 @@ public class HelpHero { private List baublesList = new ArrayList<>(); + private Set heroGiftEquipList = new HashSet<>();//礼物装备列表 + public int getUid() { return uid; } @@ -145,4 +144,16 @@ public class HelpHero { public void setBaublesList(List baublesList) { this.baublesList = baublesList; } + + public Map getHomeEquipMap() { + return homeEquipMap; + } + + public Set getHeroGiftEquipList() { + return heroGiftEquipList; + } + + public void setHeroGiftEquipList(Set heroGiftEquipList) { + this.heroGiftEquipList = heroGiftEquipList; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 99160c407..fe274f3d5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -7000,18 +7000,17 @@ public class HeroLogic { HeroInfoProto.PotentialUpLvResponse.Builder builder = HeroInfoProto.PotentialUpLvResponse.newBuilder(); builder.setUpLv(hero.getPotentialLv(type)); - builder.setGiftLv(getGiftPotentialLv(user, heroId)); + builder.setGiftLv(getGiftPotentialLv(user, hero)); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.PotentialUpLvResponse_VALUE, builder.build(), true); } /** * 获取礼物加成得潜能等级 */ - public int getGiftPotentialLv(User user, String heroId) { + public int getGiftPotentialLv(User user, Hero hero) { Map configMap = SEquipConfig.equipConfigMap; Set playerGiftEquipList = user.getPlayerInfoManager().getPlayerGiftEquipList(); - Hero hero = user.getHeroManager().getHero(heroId); Set heroGiftEquipList = hero.getHeroGiftEquipList(); HashSet set = new HashSet<>(); @@ -7081,7 +7080,7 @@ public class HeroLogic { if (!openPotential) { return 0; } - int giftPotentialLv = getGiftPotentialLv(user, hero.getId()); + int giftPotentialLv = getGiftPotentialLv(user, hero); int potentialLv = hero.getPotentialLv(type); SPotentialNew potentialNew = SPotentialNew.typeMap.get(type).get(potentialLv + giftPotentialLv); if (potentialNew == null) { 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 01bb87e33..a2a4d6437 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 @@ -1065,7 +1065,7 @@ public class PlayerLogic { builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute)); builder.setHero(CBean2Proto.getHongmengHero(userInMem, hero)); - builder.setPlayerGiftLv(HeroLogic.getInstance().getGiftPotentialLv(userInMem, heroId)); + builder.setPlayerGiftLv(HeroLogic.getInstance().getGiftPotentialLv(userInMem, hero)); Map guildSkill = userInMem.getGuildMyInfo().getGuildSkill(); int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession(); Integer skill = guildSkill.getOrDefault(profession, 0); From 38c06778f1c61da761df7eb9243735779bda547c Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Tue, 2 Apr 2024 16:23:45 +0800 Subject: [PATCH 74/74] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E4=BB=BB=E5=91=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/dao/root/GuildInfo.java | 23 +++++++++++++++---- .../ljsd/jieling/logic/family/GuildLogic.java | 5 ++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java index e21a2256d..58698921a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java @@ -94,30 +94,45 @@ public class GuildInfo extends MongoBase { this.serverId = GameApplication.serverId; } - public void addMembers(int type,int uid){ + public void setMembers(Map> members) { + this.members = members; + updateString("members", members); + } + + public void addMembers(int type, int uid){ if(!members.containsKey(type)){ members.put(type,new HashSet<>()); } members.get(type).add(uid); totalMembers++; - updateString("members." + type,members.get(type)); updateString("totalMembers",totalMembers); + setMembers(members); } public boolean removeMember(int type,int uid){ boolean remove = members.get(type).remove(uid); if(remove){ totalMembers--; - updateString("members." + type,members.get(type)); updateString("totalMembers",totalMembers); + setMembers(members); } return remove; } + public void appointMember(int oldPost, int newPost, int uid){ + boolean removed = members.get(oldPost).remove(uid); + if(removed){ + if(!members.containsKey(newPost)){ + members.put(newPost,new HashSet<>()); + } + members.get(newPost).add(uid); + } + setMembers(members); + } + public void setAnnounce(String announce) { this.announce = announce; updateString("announce",announce); - } public int getId() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index b9a4cf36a..16c8485c2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -685,7 +685,7 @@ public class GuildLogic { GuildInfo guildInfo = GuilidManager.getGuildInfo(targetGuildId); int uidType = getMemberType(uid, guildInfo.getMembers()); - boolean isIn=false; + boolean isIn = false; for(Set memberEntry : guildInfo.getMembers().values()){ if(memberEntry.contains(targetUid)){ isIn =true; @@ -707,8 +707,7 @@ public class GuildLogic { throw new ErrorCodeException(ErrorCode.FAMILY_LEADER_MAX); } } - guildInfo.removeMember(targetType,targetUid); - guildInfo.addMembers(position,targetUid); + guildInfo.appointMember(targetType, position, targetUid); sendPositionChange(targetUid,position,guildId); if(position == GlobalsDef.CHAIRMAN){ guildInfo.removeMember(GlobalsDef.CHAIRMAN,uid);