diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index c1c0428f8..6aff79add 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -925,8 +925,8 @@ public class CombatLogic { } lastTimeTakes=times; } - ItemUtil.extraAddItem(user,baseItemMap); - ItemUtil.extraAddItem(user,randomItemMap); + ItemUtil.extraAddItem(user,baseItemMap,BIReason.ADVENTURE_BASE_REWARD); + ItemUtil.extraAddItem(user,randomItemMap,BIReason.ADVENTURE_RANDOM_REWARDD); if(viewBaseReward){ myResult = true; rewardStr = ItemUtil.getReward(baseItemMap, baseCardMap, baseEquipMap, baseRandomMap); 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 637cacce5..51534b151 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 @@ -52,7 +52,8 @@ public class StoreLogic { } public static void checkGlobalStore(boolean isStartServer) throws Exception { - long now = System.currentTimeMillis(); + Calendar calendar = Calendar.getInstance(); + long now = calendar.getTimeInMillis(); for(SStoreTypeConfig sStoreTypeConfig : SStoreTypeConfig.getsStoreTypeConfigMap().values()){ if(sStoreTypeConfig.getStoreOpenRule() == 3){ long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_TIME,0, 1); @@ -60,7 +61,10 @@ public class StoreLogic { if(startTime!=0 && endTime!=0 && now > startTime && now { + initOneStore(user1,sStoreTypeConfig.getId()); + MongoUtil.getInstence().lastUpdate(); + }); } } if(isStartServer){ @@ -78,7 +82,10 @@ public class StoreLogic { continue; } if(!user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){ - updateUsersStoreAyync(UserManager.getUser(session.getUid()),sStoreTypeConfig.getId()); + updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> { + initOneStore(user1,sStoreTypeConfig.getId()); + MongoUtil.getInstence().lastUpdate(); + }); } } } @@ -92,20 +99,44 @@ public class StoreLogic { if(session.getFiveReady() == 1){ User user = UserManager.getUser(session.getUid()); if(!user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){ - updateUsersStoreAyync(UserManager.getUser(session.getUid()),sStoreTypeConfig.getId()); + updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> { + initOneStore(user1,sStoreTypeConfig.getId()); + MongoUtil.getInstence().lastUpdate(); + }); } } } } + + if(sStoreTypeConfig.getRefreshType()[0]==2&& calendar.get(Calendar.MINUTE) ==0 && sStoreTypeConfig.getRefreshType()[1]==calendar.get(Calendar.HOUR_OF_DAY)){ + for(ISession session : OnlineUserManager.sessionMap.values()){ + if(session.getFiveReady() == 1){ + User user = UserManager.getUser(session.getUid()); + if(user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){ + updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> { + getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); + StoreInfo storeInfo = user.getStoreManager().getStoreInfoMap().get(sStoreTypeConfig.getId()); + + Map storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user); + if(storeItem == null){ + LOGGER.error("the uid={},the storeID={} is null",user.getId(),sStoreTypeConfig.getId()); + return; + } + storeInfo.setItemNumMap(storeItem); + storeInfo.setLastRefreshTime(now); + MongoUtil.getInstence().lastUpdate(); + sendStoreUpdateIndication(user.getId(),storeInfo); + }); + } + } + } + } } } - private static void updateUsersStoreAyync(User user,int id){ - AyyncWorker ayyncWorker = new AyyncWorker(user,true,user1 -> { - initOneStore(user1,id); - MongoUtil.getInstence().lastUpdate(); - }); + private static void updateUsersStoreAyync(User user, AyncWorkerRunnable ayncWorkerRunnable){ + AyyncWorker ayyncWorker = new AyyncWorker(user,true,ayncWorkerRunnable); ProtocolsManager instance = ProtocolsManager.getInstance(); HandlerLogicThread handlerThread = instance.handlerThreads[user.getId() % instance.HANDLER_THREAD_NUM]; handlerThread.addAyyncWorker(ayyncWorker); 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 226ac4391..454294236 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java @@ -93,7 +93,7 @@ public class ThreadManager { long lastMilis = System.currentTimeMillis(); try { Thread.sleep(10000L); } catch (InterruptedException e) { } long millis = System.currentTimeMillis(); - if((millis - lastMilis)-10000>10||(millis - lastMilis)-10000<-10){ + if((millis - lastMilis)-10000>5000||(millis - lastMilis)-10000<-5000){ reStart(); } } 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 b2a2949a7..35ed3e561 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -260,18 +260,18 @@ public class ItemUtil { public static void combineReward(User user,boolean isLoop,int[] dropGroupIds,float dropRatio, Map itemMap, Map cardMap, Map equipMap, Map randomMap,int reason){ combineRewardDropGroup(user, dropGroupIds, dropRatio, itemMap, cardMap, equipMap, randomMap); if(!isLoop){ - extraAddItem(user,itemMap); + extraAddItem(user,itemMap,reason); } } - public static void extraAddItem(User user, Map itemMap){ + public static void extraAddItem(User user, Map itemMap,int resson){ ItemManager itemManager = user.getItemManager(); for(Map.Entry item : itemMap.entrySet()){ Integer itemId = item.getKey(); Integer value = item.getValue(); SItem sItem = SItem.getsItemMap().get(itemId); - int itemNums = privilegeAdd(user, 1, sItem.getItemType(), value); + int itemNums = privilegeAdd(user, resson, sItem.getItemType(), value); Item hadItem = itemManager.getItem(itemId); int hadNums = 0; if(hadItem !=null){