diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java index 1c2f7b17d..d74b30afd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java @@ -33,7 +33,7 @@ public class EquipManager extends MongoBase { updateString("equipMap." + equip.getId(), equip); equipMap.put(equip.getId(),equip); // addEquipHandBook(equip.getEquipId()); -// user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP,equip.getEquipId()); + user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP,equip.getEquipId()); Poster.getPoster().dispatchEvent(new EquipEvent(user.getId(),equip.getEquipId())); } 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 eaa90216d..a9d0c035a 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 @@ -600,10 +600,43 @@ public class StoreLogic implements IEventHandler { } StoreInfo storeInfo = storeInfoMap.get(storeId); SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId); - if (sStoreTypeConfig.getIfManualRefresh() != 1){ - LOGGER.info("handRefreStore==> uid={},storeId={},ifManualRefresh={}",uid,storeId,sStoreTypeConfig.getIfManualRefresh()); - throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + int[] ifManualRefresh = sStoreTypeConfig.getIfManualRefresh(); + if (ifManualRefresh.length<1|| ifManualRefresh[0]==0){ + if(ifManualRefresh[1]==0){ + LOGGER.info("handRefreStore==> uid={},storeId={},ifManualRefresh={}",uid,storeId, ifManualRefresh); + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + }else{ + noFreeRefreshStore(user,sStoreTypeConfig,storeId); + } + }else{ + long lastRefreshTime = storeInfo.getLastRefreshTime(); + long now = TimeUtils.now(); + //当前免费次数 + long freeCount = (now - lastRefreshTime) / TimeUtils.HOUR / ifManualRefresh[1]; + if(freeCount<1){ + //无免费次数 + noFreeRefreshStore(user,sStoreTypeConfig,storeId); + }else if(freeCount itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); + storeInfo.setItemNumMap(itemNumMap); + CommonProto.StoreInfo.Builder storeBuilder = getBuilder(storeInfo); + PlayerInfoProto.StoreGoodsRefreshResponse builder = PlayerInfoProto.StoreGoodsRefreshResponse.newBuilder().setStoreInfo(storeBuilder).build(); + MessageUtil.sendMessage(iSession, 1,msgId, builder, true); + } + + //无免费刷新 + private static void noFreeRefreshStore(User user,SStoreTypeConfig sStoreTypeConfig,int storeId) throws Exception { PlayerManager playerInfoManager = user.getPlayerInfoManager(); int refreshPrivilege = sStoreTypeConfig.getRefreshPrivilege(); int refreshNum = playerInfoManager.getVipPrivilageValue(refreshPrivilege); @@ -615,13 +648,9 @@ public class StoreLogic implements IEventHandler { if (!result){ throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } -// playerInfoManager.updateVipPrivilage(refreshPrivilege,1); - Map itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); - storeInfo.setItemNumMap(itemNumMap); - CommonProto.StoreInfo.Builder storeBuilder = getBuilder(storeInfo); - PlayerInfoProto.StoreGoodsRefreshResponse builder = PlayerInfoProto.StoreGoodsRefreshResponse.newBuilder().setStoreInfo(storeBuilder).build(); - MessageUtil.sendMessage(iSession, 1,msgId, builder, true); } + + //自动刷新商店 public static void automaticRefreStore(ISession iSession,int storeId) throws Exception { int msgId = MessageTypeProto.MessageType.STORE_GOODS_REFRESH_RESPONSE_VALUE; diff --git a/tablemanager/src/main/java/config/SStoreTypeConfig.java b/tablemanager/src/main/java/config/SStoreTypeConfig.java index 6799e25d7..67f2768c2 100644 --- a/tablemanager/src/main/java/config/SStoreTypeConfig.java +++ b/tablemanager/src/main/java/config/SStoreTypeConfig.java @@ -27,7 +27,7 @@ public class SStoreTypeConfig implements BaseConfig { private String endTime; - private int ifManualRefresh; + private int[] ifManualRefresh; private int storeType; @@ -99,7 +99,7 @@ public class SStoreTypeConfig implements BaseConfig { public int getNumber() { return number; } - public int getIfManualRefresh() { + public int[] getIfManualRefresh() { return ifManualRefresh; }