From 5e3980c94d5b83ae68b418e74bfc4c2babbe93be Mon Sep 17 00:00:00 2001 From: wangyuan Date: Wed, 25 Dec 2019 17:49:12 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=BC=82=E5=A6=96=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 4 ++-- .../main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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 e043c887f..057b688af 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 @@ -1890,10 +1890,10 @@ public class HeroLogic{ MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.POKEMON_ADVANCED_RESPONSE_VALUE,null,true); String message=null; if(pokemon.getAllStage()==1){ - message = SErrorCodeEerverConfig.getI18NMessage("lamp_activate_differ_content", new Object[]{user.getPlayerInfoManager().getNickName(),sDifferDemonsConfig.getName() }); + message = SErrorCodeEerverConfig.getI18NMessage("lamp_activate_differ_content_"+sDifferDemonsConfig.getQuality(), new Object[]{user.getPlayerInfoManager().getNickName(),sDifferDemonsConfig.getName() }); }else if(pokemon.getAllStage()>=SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_differ_content_parm)){ - message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_differ_content", new Object[]{user.getPlayerInfoManager().getNickName(), sDifferDemonsConfig.getName(),pokemon.getAllStage()}); + message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_differ_content_"+sDifferDemonsConfig.getQuality(), new Object[]{user.getPlayerInfoManager().getNickName(), sDifferDemonsConfig.getName(),pokemon.getAllStage()}); } if(message!=null){ ChatLogic.getInstance().sendSysChatMessage(message,Global.DILIGENT,sDifferDemonsConfig.getId(),0,0,0,0,0); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 6312d48f7..d26dfc19f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -114,7 +114,7 @@ public class BuyGoodsLogic { Map goodsDurationMap = rechargeInfo.getGoodsDurationMap(); boolean needSendMail = false; for(Map.Entry goodsDurationItem : goodsDurationMap.entrySet()){ - if(sRechargeCommodityConfig.getType() == type){ + if( SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsDurationItem.getKey()).getType() == type){ endTime = goodsDurationItem.getValue(); } } @@ -123,7 +123,7 @@ public class BuyGoodsLogic { needSendMail = true; } - if(nowTime Date: Wed, 25 Dec 2019 17:49:52 +0800 Subject: [PATCH 2/9] add --- tablemanager/src/main/java/config/SDifferDemonsConfig.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tablemanager/src/main/java/config/SDifferDemonsConfig.java b/tablemanager/src/main/java/config/SDifferDemonsConfig.java index fbe25d539..03604cdda 100644 --- a/tablemanager/src/main/java/config/SDifferDemonsConfig.java +++ b/tablemanager/src/main/java/config/SDifferDemonsConfig.java @@ -17,6 +17,8 @@ public class SDifferDemonsConfig implements BaseConfig { private String name; + private int quality; + public static Map sDifferDemonsConfigMap; public static Map sDifferDemonsConfigMapByComId; @@ -56,4 +58,8 @@ public class SDifferDemonsConfig implements BaseConfig { public String getName() { return name; } + + public int getQuality() { + return quality; + } } \ No newline at end of file From bb75dfbcfae4ec63ea28789ba85dee4e9114b366 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Thu, 26 Dec 2019 10:09:06 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E3=80=90ID1005331=E3=80=91=E3=80=90?= =?UTF-8?q?=E6=98=9F=E7=BA=A7=E6=88=90=E9=95=BF=E7=A4=BC=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/GameLogicService.java | 8 ++++++ .../config/reportData/DataMessageUtils.java | 11 +++++--- .../activity/event/HeroFiveStarGetEvent.java | 10 +++++++ .../HeroFiveStarGetEventHandler.java | 28 ++++++++++++++++++- .../ljsd/jieling/logic/dao/RechargeInfo.java | 26 ++++++++++++++++- .../ljsd/jieling/logic/hero/HeroLogic.java | 5 ++++ .../ljsd/jieling/logic/item/ItemLogUtil.java | 5 +++- .../jieling/logic/store/BuyGoodsLogic.java | 25 +++++++++++------ .../java/com/ljsd/jieling/util/ItemUtil.java | 5 ++-- .../java/config/SRechargeCommodityConfig.java | 21 ++++++++++---- 10 files changed, 121 insertions(+), 23 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/GameLogicService.java b/serverlogic/src/main/java/com/ljsd/GameLogicService.java index 82a7bc66d..df379ca11 100644 --- a/serverlogic/src/main/java/com/ljsd/GameLogicService.java +++ b/serverlogic/src/main/java/com/ljsd/GameLogicService.java @@ -22,6 +22,7 @@ import com.ljsd.jieling.util.ConfigurableApplicationContextManager; import com.ljsd.jieling.util.KeyGenUtils; import com.ljsd.jieling.util.SensitivewordFilter; import com.ljsd.jieling.util.http.HttpPool; +import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader; import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,6 +42,7 @@ public class GameLogicService implements IService { public static GameLogicService getInstance() { return instance; } + private static volatile boolean isShutdown = false; @Override @@ -107,8 +109,10 @@ public class GameLogicService implements IService { LOGGER.info(resource.getFile()); } + Runtime.getRuntime().addShutdownHook(new Thread(() -> { LOGGER.info("ShutdownHook start"); + isShutdown= true; Thread.currentThread().setName("addShutdownHook"); try { GameApplication.close(); @@ -116,4 +120,8 @@ public class GameLogicService implements IService { })); } + + public static boolean isServiceShutdown() { + return isShutdown; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/reportData/DataMessageUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/config/reportData/DataMessageUtils.java index 405db9b1a..f6f9fc500 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/reportData/DataMessageUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/reportData/DataMessageUtils.java @@ -5,6 +5,7 @@ import com.google.gson.FieldAttributes; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.ljsd.GameApplication; +import com.ljsd.GameLogicService; import com.ljsd.common.mogodb.util.BlockingUniqueQueue; import com.ljsd.jieling.config.json.SDK37Constans; import com.ljsd.jieling.dataReport.reportBeans_37.*; @@ -37,10 +38,12 @@ public class DataMessageUtils { private static final String sendChatContent37 = "http://cm3.api.37.com.cn/Content/_checkContent/"; //入队列 public static void addLogQueue(Object info) { - if (info instanceof KTParam) { - logQueue.offer(info); - } else if (info instanceof Report37Param && GameApplication.serverProperties.isSendlog37()) { - logQueue_37.offer(info); + if(!GameLogicService.isServiceShutdown()){ + if (info instanceof KTParam) { + logQueue.offer(info); + } else if (info instanceof Report37Param && GameApplication.serverProperties.isSendlog37()) { + logQueue_37.offer(info); + } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HeroFiveStarGetEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HeroFiveStarGetEvent.java index 3126fde3b..6f7b3a605 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HeroFiveStarGetEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HeroFiveStarGetEvent.java @@ -7,6 +7,16 @@ package com.ljsd.jieling.logic.activity.event; */ public class HeroFiveStarGetEvent implements IEvent { private int uid; + private int star; + + public HeroFiveStarGetEvent(int uid, int star) { + this.uid = uid; + this.star = star; + } + + public int getStar() { + return star; + } public HeroFiveStarGetEvent(int uid) { this.uid = uid; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java index 52eab25a9..76c5d0428 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java @@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.activity.eventhandler; import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.core.SimpleTransaction; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.IEventHandler; import com.ljsd.jieling.logic.activity.event.HeroFiveStarGetEvent; @@ -19,6 +21,7 @@ import config.SRechargeCommodityConfig; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * Description: des @@ -34,10 +37,33 @@ public class HeroFiveStarGetEventHandler implements IEventHandler { User user = UserManager.getUser(((HeroFiveStarGetEvent) event).getUid()); RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo(); - rechargeInfo.addTypeBagMap(5,System.currentTimeMillis()); + long now = System.currentTimeMillis(); + + Map typeBagMap = rechargeInfo.getTypeBagMap(); + + int goodsId =SRechargeCommodityConfig.getRecharegeHeroTime().getOrDefault(((HeroFiveStarGetEvent) event).getStar(),0); + if(goodsId!=0){ + if(typeBagMap.containsKey(((HeroFiveStarGetEvent) event).getStar())){ + long lasttime = rechargeInfo.getTypeBagMap().get(((HeroFiveStarGetEvent) event).getStar()); + + int diffHourTemp = (int) ((now - lasttime) / 3600 / 1000); + if (diffHourTemp < 2) { + rechargeInfo.addDyGoodsCanBuyTimes(goodsId); + }else { + rechargeInfo.putDyGoodsCanBuyTimes(goodsId,1); + } + }else { + rechargeInfo.putDyGoodsCanBuyTimes(goodsId,1); + } + }else { + throw new ErrorCodeException(ErrorCode.CFG_NULL); + } + + rechargeInfo.addTypeBagMap(((HeroFiveStarGetEvent) event).getStar(),System.currentTimeMillis()); List goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size()); BuyGoodsLogic.getGoodsBagInfo(user.getId(), goodsBagInfo,false); + System.out.print(goodsBagInfo.toString()); ISession session = OnlineUserManager.getSessionByUid(user.getId()); if(session!=null){ if(null!= HandlerLogicThread.current()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java index 15558663d..6ecbcebf7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java @@ -29,11 +29,12 @@ public class RechargeInfo extends MongoBase{ //特殊类型控制触发开启的商品表 如五星妖灵师类型5 private Map typeBagMap = new HashMap<>(); + //动态商品可买数量 + private Map dyGoodsCanBuyTimes = new HashMap<>(); @Transient private Map cacheSendedTypes = new HashMap<>(); - public RechargeInfo(){ } @@ -201,4 +202,27 @@ public class RechargeInfo extends MongoBase{ public void setCacheSendedTypes(Map cacheSendedTypes) { this.cacheSendedTypes = cacheSendedTypes; } + + + public Map getDyGoodsCanBuyTimes() { + return dyGoodsCanBuyTimes; + } + + public void addDyGoodsCanBuyTimes(Integer type) { + this.dyGoodsCanBuyTimes.put(type,this.dyGoodsCanBuyTimes.get(type)+1 ); + updateString("dyGoodsCanBuyTimes",dyGoodsCanBuyTimes); + } + + public void putDyGoodsCanBuyTimes(Integer type,Integer value) { + this.dyGoodsCanBuyTimes.put(type,value ); + updateString("dyGoodsCanBuyTimes",dyGoodsCanBuyTimes); + } + public void removeDyGoodsCanBuyTimes(Integer type) { + this.dyGoodsCanBuyTimes.remove(type); + updateString("dyGoodsCanBuyTimes",dyGoodsCanBuyTimes); + } + public void setDyGoodsCanBuyTimes(Map dyGoodsCanBuyTimes) { + updateString("dyGoodsCanBuyTimes",dyGoodsCanBuyTimes); + this.dyGoodsCanBuyTimes = dyGoodsCanBuyTimes; + } } 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 c272eb6ef..c90f61410 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 @@ -785,6 +785,11 @@ public class HeroLogic{ // recyleHeroBySystem(user,removeHeroIds); targetHero.upStar( 1 ); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getStar())); + if(targetHero.getStar()>=5&&targetHero.getStar()!=15){ + if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5) + Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId(),targetHero.getStar())); + } + // if(targetHero.getStar()==5){ // Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId())); // } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogUtil.java index 277957534..93814a4f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogUtil.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.item; +import com.ljsd.GameLogicService; import com.ljsd.common.mogodb.util.BlockingUniqueQueue; import com.ljsd.jieling.db.mongo.MongoUtil; @@ -11,7 +12,9 @@ public class ItemLogUtil { public static BlockingQueue logQueue = new BlockingUniqueQueue<>(); public static void addLogQueue(ItemLog itemLog) { - logQueue.offer(itemLog); + if(!GameLogicService.isServiceShutdown()){ + logQueue.offer(itemLog); + } } public static void record () { List sendDataList = new ArrayList<>(10); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 19b20f394..4fabf6a48 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -228,12 +228,18 @@ public class BuyGoodsLogic { int[] discountType = sRechargeCommodityConfig.getDiscountType(); int temptype = discountType[0]; int tempvalue = discountType[1]; - if(temptype == 4&&tempvalue==5){ - if (rechargeInfo.getTypeBagMap().containsKey(tempvalue)){ - rechargeInfo.removeTypeBagMap(tempvalue); - } - if (rechargeInfo.getCacheSendedTypes().containsKey(tempvalue)){ - rechargeInfo.getCacheSendedTypes().remove(tempvalue); + if(temptype == 4){ + + int dytime = rechargeInfo.getDyGoodsCanBuyTimes().getOrDefault(tempvalue,0)-1; + if(dytime <=0){ + if (rechargeInfo.getTypeBagMap().containsKey(tempvalue)){ + rechargeInfo.removeTypeBagMap(tempvalue); + } + if (rechargeInfo.getCacheSendedTypes().containsKey(tempvalue)){ + rechargeInfo.getCacheSendedTypes().remove(tempvalue); + } + }else { + rechargeInfo.putDyGoodsCanBuyTimes(dytime,dytime); } List goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size()); @@ -364,6 +370,7 @@ public class BuyGoodsLogic { int time = sRechargeCommodityConfig.getTime(); long startTime=0; long endTime=0; + int dybuytime = 0; if(time == 4){ int type = discountType[0]; int value = discountType[1]; @@ -388,6 +395,7 @@ public class BuyGoodsLogic { int addtime = discountType[2]; int diffHour = (int) ((now - startTime) / 3600 / 1000); if (diffHour >= addtime) { + rechargeInfo.removeDyGoodsCanBuyTimes(value); continue; } endTime = startTime + addtime * 3600 * 1000; @@ -405,7 +413,7 @@ public class BuyGoodsLogic { }else { rechargeInfo.getCacheSendedTypes().put(value, startTime); } - + dybuytime = rechargeInfo.getDyGoodsCanBuyTimes().getOrDefault(value,0); } }else{ @@ -431,7 +439,8 @@ public class BuyGoodsLogic { } } goodsOrder.put(sRechargeCommodityConfig.getType(),order*10000 + goodsId); - giftGoodsInfoMap.put(goodsId,CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setStartTime((int)(startTime/1000)).setBuyTimes(buyTimes).setEndTime((int)(endTime/1000)).build()); + giftGoodsInfoMap.put(goodsId,CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setStartTime((int)(startTime/1000)).setBuyTimes(buyTimes).setEndTime((int)(endTime/1000)) + .setDynamicBuyTimes(dybuytime).build()); boolean isNew = rechargeInfo.addNewSendId(goodsId); if(isNew){ needChange = 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 9b7522a6c..c944cd6f3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1205,8 +1205,9 @@ public class ItemUtil { } } user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,heroStar[0],heroStar[1]); - if(scHero.getStar()==5){ - Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId())); + if(scHero.getStar()>=5){ + if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5) + Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId(),scHero.getStar())); } KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,reason,GlobalsDef.addReason,cardId,1,heroStar[1]); } diff --git a/tablemanager/src/main/java/config/SRechargeCommodityConfig.java b/tablemanager/src/main/java/config/SRechargeCommodityConfig.java index 8ed6cc6d3..c775173b3 100644 --- a/tablemanager/src/main/java/config/SRechargeCommodityConfig.java +++ b/tablemanager/src/main/java/config/SRechargeCommodityConfig.java @@ -5,10 +5,7 @@ import manager.Table; import util.TimeUtils; import util.StringUtil; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; @Table(name ="RechargeCommodityConfig") public class SRechargeCommodityConfig implements BaseConfig { @@ -59,21 +56,24 @@ public class SRechargeCommodityConfig implements BaseConfig { public static Map rechargeCommodityConfigMap; public static Map rechargeLevelMap; private static Set rchargeHeroGet; - + private static Map recharegeHeroTime; @Override public void init() throws Exception { Map config = STableManager.getConfig(SRechargeCommodityConfig.class); Map rechargeLevelMapTmp = new HashMap<>(); Set rchargeHeroGetTemp = new HashSet<>(); + + Map recharegeHeroTimeTmp = new HashMap<>(); for(SRechargeCommodityConfig sRechargeCommodityConfig : config.values()){ int[] discountType = sRechargeCommodityConfig.getDiscountType(); if(discountType!=null && discountType.length>0 &&discountType[0] == 2){ int level = discountType[1]; rechargeLevelMapTmp.put(level,sRechargeCommodityConfig); } - if(discountType!=null && discountType.length>0 &&discountType[0] == 4){ + if(discountType!=null && discountType.length>0 &&discountType[0] == 4&&sRechargeCommodityConfig.getTime()==4&&sRechargeCommodityConfig.getDiscountType().length==3){ rchargeHeroGetTemp.add(sRechargeCommodityConfig.getId()); + recharegeHeroTimeTmp.put(discountType[1],sRechargeCommodityConfig.getId()); } int time = sRechargeCommodityConfig.getTime(); @@ -99,6 +99,7 @@ public class SRechargeCommodityConfig implements BaseConfig { rechargeCommodityConfigMap = config; rechargeLevelMap = rechargeLevelMapTmp; rchargeHeroGet = rchargeHeroGetTemp; + recharegeHeroTime = recharegeHeroTimeTmp; } @@ -202,4 +203,12 @@ public class SRechargeCommodityConfig implements BaseConfig { public static Set getRchargeHeroGet() { return rchargeHeroGet; } + + public static Map getRecharegeHeroTime() { + return recharegeHeroTime; + } + + public static void setRecharegeHeroTime(Map recharegeHeroTime) { + SRechargeCommodityConfig.recharegeHeroTime = recharegeHeroTime; + } } \ No newline at end of file From dc80e9b288e86815b5acacb52ac50b631bf58b9e Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 26 Dec 2019 10:19:20 +0800 Subject: [PATCH 4/9] format champion mail content --- .../ljsd/jieling/logic/championship/ChampionshipLogic.java | 3 ++- tablemanager/src/main/java/config/SChampionshipReward.java | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index 7fc4c78ba..61c4ad298 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -361,8 +361,9 @@ public class ChampionshipLogic { if(user.getArenaManager().getTopMaxRank()==0 || user.getArenaManager().getTopMaxRank()>rank){ user.getArenaManager().setTopMaxRank(rank); } + rank++; String title = SErrorCodeEerverConfig.getI18NMessage("champion_reward_title"); - String content = SErrorCodeEerverConfig.getI18NMessage("champion_reward_txt",new Object[]{rank++}); + String content = SErrorCodeEerverConfig.getI18NMessage("champion_reward_txt",new Object[]{sChampionshipReward.getTitleDesc()}); MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sChampionshipReward.getSeasonReward()),nowTime, Global.MAIL_EFFECTIVE_TIME); } MongoUtil.getLjsdMongoTemplate().lastUpdate(); diff --git a/tablemanager/src/main/java/config/SChampionshipReward.java b/tablemanager/src/main/java/config/SChampionshipReward.java index 86130b4bd..66e1ff775 100644 --- a/tablemanager/src/main/java/config/SChampionshipReward.java +++ b/tablemanager/src/main/java/config/SChampionshipReward.java @@ -16,6 +16,8 @@ public class SChampionshipReward implements BaseConfig { private int[][] seasonReward; + private String titleDesc; + @Override public void init() throws Exception { @@ -39,5 +41,7 @@ public class SChampionshipReward implements BaseConfig { return seasonReward; } - + public String getTitleDesc() { + return titleDesc; + } } \ No newline at end of file From 0bc42cbe76302066c4332801ab8b107d7acfc42a Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 28 Dec 2019 15:38:49 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E3=80=90ID1005331=E3=80=91=E3=80=90?= =?UTF-8?q?=E6=98=9F=E7=BA=A7=E6=88=90=E9=95=BF=E7=A4=BC=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/store/BuyGoodsLogic.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 30d8a4c48..8fa2588f5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -230,7 +230,7 @@ public class BuyGoodsLogic { int tempvalue = discountType[1]; if(temptype == 4){ - int dytime = rechargeInfo.getDyGoodsCanBuyTimes().getOrDefault(tempvalue,0)-1; + int dytime = rechargeInfo.getDyGoodsCanBuyTimes().getOrDefault(goodsId,0)-1; if(dytime <=0){ if (rechargeInfo.getTypeBagMap().containsKey(tempvalue)){ rechargeInfo.removeTypeBagMap(tempvalue); @@ -239,7 +239,7 @@ public class BuyGoodsLogic { rechargeInfo.getCacheSendedTypes().remove(tempvalue); } }else { - rechargeInfo.putDyGoodsCanBuyTimes(dytime,dytime); + rechargeInfo.putDyGoodsCanBuyTimes(goodsId,dytime); } List goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size()); @@ -393,7 +393,7 @@ public class BuyGoodsLogic { int addtime = discountType[2]; int diffHour = (int) ((now - startTime) / 3600 / 1000); if (diffHour >= addtime) { - rechargeInfo.removeDyGoodsCanBuyTimes(value); + rechargeInfo.removeDyGoodsCanBuyTimes(goodsId); continue; } endTime = startTime + addtime * 3600 * 1000; @@ -411,7 +411,7 @@ public class BuyGoodsLogic { }else { rechargeInfo.getCacheSendedTypes().put(value, startTime); } - dybuytime = rechargeInfo.getDyGoodsCanBuyTimes().getOrDefault(value,0); + dybuytime = rechargeInfo.getDyGoodsCanBuyTimes().getOrDefault(goodsId,0); } }else{ @@ -437,8 +437,7 @@ public class BuyGoodsLogic { } } goodsOrder.put(sRechargeCommodityConfig.getType(),order*10000 + goodsId); - giftGoodsInfoMap.put(goodsId,CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setStartTime((int)(startTime/1000)).setBuyTimes(buyTimes).setEndTime((int)(endTime/1000)) - .setDynamicBuyTimes(dybuytime).build()); + giftGoodsInfoMap.put(goodsId,CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setStartTime((int)(startTime/1000)).setBuyTimes(buyTimes).setEndTime((int)(endTime/1000)).build()); boolean isNew = rechargeInfo.addNewSendId(goodsId); if(isNew){ needChange = true; @@ -449,7 +448,12 @@ public class BuyGoodsLogic { if(isNew){ needChange = true; } - giftGoodsInfoList.add(CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setBuyTimes(buyTimes).setStartTime((int)(startTime/1000)).setEndTime((int)(endTime/1000)).build()); + CommonProto.GiftGoodsInfo.Builder builder = CommonProto.GiftGoodsInfo.newBuilder(); + builder.setGoodsId(goodsId).setStartTime((int)(startTime/1000)).setBuyTimes(buyTimes).setEndTime((int)(endTime/1000)); + if(dybuytime!=-1){ + builder.setDynamicBuyTimes(dybuytime); + } + giftGoodsInfoList.add(builder.build()); } giftGoodsInfoList.addAll(giftGoodsInfoMap.values()); return needChange; From e248d77b3c49303efb1e21287d9bc1e6e5df88df Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 28 Dec 2019 15:41:23 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E3=80=90ID1005331=E3=80=91=E3=80=90?= =?UTF-8?q?=E6=98=9F=E7=BA=A7=E6=88=90=E9=95=BF=E7=A4=BC=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/src/main/java/com/ljsd/GameLogicService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/GameLogicService.java b/serverlogic/src/main/java/com/ljsd/GameLogicService.java index df379ca11..937c590ba 100644 --- a/serverlogic/src/main/java/com/ljsd/GameLogicService.java +++ b/serverlogic/src/main/java/com/ljsd/GameLogicService.java @@ -22,7 +22,6 @@ import com.ljsd.jieling.util.ConfigurableApplicationContextManager; import com.ljsd.jieling.util.KeyGenUtils; import com.ljsd.jieling.util.SensitivewordFilter; import com.ljsd.jieling.util.http.HttpPool; -import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader; import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; From 6f2a47c3ef6f8361c5e76586c8d0758f2a112cec Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 28 Dec 2019 16:48:55 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E6=AF=8F=E5=88=86=E9=92=9F=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/hotfix/HotfixUtil.java | 19 +- .../com/ljsd/jieling/kefu/Cmd_out_cfg.java | 229 ++++++++++++++++-- .../jieling/logic/activity/ActivityLogic.java | 15 +- .../logic/activity/event/MinuteTaskEvent.java | 5 + .../ljsd/jieling/thread/task/MinuteTask.java | 7 +- 5 files changed, 249 insertions(+), 26 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/MinuteTaskEvent.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/hotfix/HotfixUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/hotfix/HotfixUtil.java index 73a2e78df..035794538 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/hotfix/HotfixUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/hotfix/HotfixUtil.java @@ -2,6 +2,11 @@ package com.ljsd.jieling.hotfix; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.ljsd.jieling.logic.activity.IEventHandler; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.MinuteTaskEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.util.SysUtil; import com.sun.tools.attach.AgentInitializationException; import com.sun.tools.attach.AgentLoadException; import com.sun.tools.attach.AttachNotSupportedException; @@ -16,12 +21,14 @@ import java.io.InputStream; import java.lang.management.ManagementFactory; import java.util.List; -public class HotfixUtil{ +public class HotfixUtil implements IEventHandler { private static final Logger LOGGER = LoggerFactory.getLogger(HotfixUtil.class); private String currVerion = "0"; - private HotfixUtil(){} + private HotfixUtil(){ + Poster.getPoster().listenEvent(this, MinuteTaskEvent.class); + } public static class Instance { public final static HotfixUtil instance = new HotfixUtil(); @@ -31,7 +38,13 @@ public class HotfixUtil{ return HotfixUtil.Instance.instance; } - public void doWork(String pathName){ + @Override + public void onEvent(IEvent event) throws Exception { + doWork(SysUtil.getPath("../conf/hotfix.json")); + + } + + private void doWork(String pathName){ try{ File file = new File(pathName); if(!file.exists()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_out_cfg.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_out_cfg.java index 6203a4b69..62aef3f8b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_out_cfg.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_out_cfg.java @@ -1,28 +1,223 @@ package com.ljsd.jieling.kefu; import com.google.gson.Gson; +import com.ljsd.common.mogodb.LjsdMongoTemplate; +import com.ljsd.jieling.db.mongo.MongoUtil; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.item.ItemLog; +import config.SMainLevelConfig; import manager.STableManager; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; + +import java.io.FileWriter; +import java.io.IOException; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; public class Cmd_out_cfg extends GmAbstract { @Override public boolean exec(String[] args) throws Exception { - try { - if(args.length!=2){ - return false; - } - String name = args[0]; - int id = Integer.valueOf(args[1]); - if(!STableManager.getConfig(Class.forName(name)).containsKey(id)){ - System.out.print("--systemConfig-id not found"); - return false; - } - Gson gson = new Gson(); - System.out.print("--Config-"+name+"::"+gson.toJson(STableManager.getConfig(Class.forName(name)).get(id))); - return true; - }catch (Exception e){ - e.printStackTrace(); - } - return false; +// try { +// if(args.length!=2){ +// return false; +// } +// String name = args[0]; +// int id = Integer.valueOf(args[1]); +// if(!STableManager.getConfig(Class.forName(name)).containsKey(id)){ +// System.out.print("--systemConfig-id not found"); +// return false; +// } +// Gson gson = new Gson(); +// System.out.print("--Config-"+name+"::"+gson.toJson(STableManager.getConfig(Class.forName(name)).get(id))); +// return true; +// }catch (Exception e){ +// e.printStackTrace(); +// } +// Gson gson = new Gson(); +// TreeMap map = new TreeMap<>(); +// FileWriter fileWriter = null; +// FileWriter fileWriter1 = null; +// FileWriter fileWriter2 = null; +// FileWriter fileWriter3 = null; +// int i = 0; +// try { +// fileWriter = new FileWriter("D:/sumitem16.txt"); +// fileWriter1 = new FileWriter("D:/day1.txt"); +// fileWriter2 = new FileWriter("D:/day2.txt"); +// fileWriter3 = new FileWriter("D:/day3.txt"); +// +// +// int allUser=0; +// for (User user : Cmd_global_gm.usersInDB) { +//// +// if (user.getId() > 10003789) { +// continue; +// } +// if (!get(user, fileWriter, fileWriter1, fileWriter2, fileWriter3)) { +// continue; +// } +//// if (!get(user, fileWriter)) { +//// continue; +//// } +// allUser++; +// System.out.print("alluser::"+allUser); +// } +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } finally { +// fileWriter.write("共" + i + "条"); +// fileWriter.flush(); +// fileWriter.close(); +// fileWriter1.write("共" + i + "条"); +// fileWriter1.flush(); +// fileWriter1.close(); +// fileWriter2.write("共" + i + "条"); +// fileWriter2.flush(); +// fileWriter2.close(); +// fileWriter3.write("共" + i + "条"); +// fileWriter3.flush(); +// fileWriter3.close(); +// } + System.exit(0); + + return true; } + + + private boolean get(User user, FileWriter fileWriter, FileWriter fileWriter1, FileWriter fileWriter2, FileWriter fileWriter3) throws Exception { +// +// long time1 = 1575388744000L; +// long time2 = 1575475198000L; +// long time3 = 1575561598000L; +// Criteria criteria = new Criteria().andOperator( +// Criteria.where("uid").is(user.getId()), +// Criteria.where("itemId").is(16), +// Criteria.where("type").is(-1) +// ); +// +// if (user.getPlayerInfoManager().getRechargeInfo().getSaveAmt() == 0) { +// return false; +// } +// Query query = new Query(criteria); +// query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "time"))); +// LjsdMongoTemplate ljsdMongoTemplate = MongoUtil.getLjsdMongoTemplate(); +// List itemLogs = ljsdMongoTemplate.findAllByCondition(query, ItemLog.class); +// if (itemLogs.size() == 0) { +// return false; +// } +// boolean one1 = false; +// boolean one2 = false; +// boolean one3 = false; +// int daynum1 = -1; +// int daynum2 = -1; +// int daynum3 = -1; +// +// for (ItemLog itemLog : itemLogs) { +// +// if (!one3 && Long.valueOf(itemLog.getTime()) < time3) { +// fileWriter3.write("uid:" + user.getId() + " totalnum: " + itemLog.getItemTotalNum() + "\r\n");//写入 \r\n换行 +// daynum3 = itemLog.getItemTotalNum(); +// one3 = true; +// } +// +// if (!one2 && Long.valueOf(itemLog.getTime()) < time2 && Long.valueOf(itemLog.getTime()) > time1) { +// fileWriter2.write("uid:" + user.getId() + " totalnum: " + itemLog.getItemTotalNum() + "\r\n");//写入 \r\n换行 +// daynum2 = itemLog.getItemTotalNum(); +// one2 = true; +// } +// +// if (Long.valueOf(itemLog.getTime()) < time1) { +// fileWriter1.write("uid:" + user.getId() + " totalnum: " + itemLog.getItemTotalNum() + "\r\n");//写入 \r\n换行 +// daynum1 = itemLog.getItemTotalNum(); +// break; +// } +// +// } +// if (daynum1 != -1 && daynum2 == -1) { +// fileWriter2.write("uid:" + user.getId() + " totalnum: " + daynum1 + "\r\n");//写入 \r\n换行 +// daynum2 = daynum1; +// } +// if (daynum2 != -1 && daynum3 == -1) { +// fileWriter3.write("uid:" + user.getId() + " totalnum: " + daynum1 + "\r\n");//写入 \r\n换行 +// } +// +// fileWriter.write("uid:" + user.getId() + " " + daynum1 + " " + daynum2 + " " + daynum3 + " " + itemLogs.get(0).getItemTotalNum() + " \r\n");//写入 \r\n换行 +// +// // fileWriter.write("uid:"+user.getId()+" totalnum: "+itemLogs.get(0).getItemTotalNum()+"\r\n");//写入 \r\n换行 +// fileWriter.flush(); +// fileWriter1.flush(); +// fileWriter2.flush(); +// fileWriter3.flush(); +// throw new Exception("1111"); + + if (user.getUserMissionManager().getCumulationData().takeSenvenLoinRewardTimes >=2) { + return false; + } + Criteria criteria = new Criteria().andOperator( + Criteria.where("uid").is(user.getId()), + Criteria.where("itemId").is(16), + Criteria.where("type").is(1) + ); + + Query query = new Query(criteria); + // query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "time"))); + LjsdMongoTemplate ljsdMongoTemplate = MongoUtil.getLjsdMongoTemplate(); + List itemLogs = ljsdMongoTemplate.findAllByCondition(query, ItemLog.class); + if (itemLogs.size() == 0) { + return false; + } + int sum =0; + for (ItemLog itemLog : itemLogs) { + sum=+itemLog.getItemNum(); + } + + if(sum==0){ +// System.out.print("\r\n");//写入 \r\n换行 +// Gson gson = new Gson(); +// System.out.print("uid:" + user.getId()+" " + gson.toJson(itemLogs)+ " " + "\r\n");//写入 \r\n换行 + } + long off = user.getPlayerInfoManager().getOffLineTime()-user.getPlayerInfoManager().getLoginTime(); + System.out.print("uid:" + user.getId()+" " + sum+ " " + off/60000 + "\r\n");//写入 \r\n换行 + fileWriter.write("uid:" + user.getId() + " " + sum+ " " + off/60000+" \r\n");//写入 \r\n换行 + fileWriter.flush(); + return true; + // throw new Exception("1111"); + } + + + + +// private boolean get(User user, FileWriter fileWriter) throws Exception { +// +// Criteria criteria = new Criteria().andOperator( +// Criteria.where("uid").is(user.getId()), +// Criteria.where("itemId").is(16), +// Criteria.where("type").is(1) +// ); +// +// if (user.getUserMissionManager().getCumulationData().takeSenvenLoinRewardTimes >2) { +// return false; +// } +// +// Query query = new Query(criteria); +// // query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "time"))); +// LjsdMongoTemplate ljsdMongoTemplate = MongoUtil.getLjsdMongoTemplate(); +// List itemLogs = ljsdMongoTemplate.findAllByCondition(query, ItemLog.class); +// if (itemLogs.size() == 0) { +// return false; +// } +// int sum =0; +// for (ItemLog itemLog : itemLogs) { +// sum=+itemLog.getItemNum(); +// } +// fileWriter.write("uid:" + user.getId() + " " + sum+ " \r\n");//写入 \r\n换行 +// fileWriter.flush(); +// return true; +// } + + } 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 d307d1dff..52225078d 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 @@ -10,9 +10,7 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.activity.BlessInfoConfig; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; -import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; -import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; @@ -41,16 +39,25 @@ import java.util.stream.Stream; /** * */ -public class ActivityLogic { +public class ActivityLogic implements IEventHandler{ private static final Logger LOGGER = LoggerFactory.getLogger(ActivityLogic.class); private ActivityLogic() { + Poster.getPoster().listenEvent(this,MinuteTaskEvent.class); } private Set openActivityIds = new HashSet<>(); private int secretBoxSeasonTimes = 0; //秘盒赛季 + @Override + public void onEvent(IEvent event) throws Exception { + + if(event instanceof MinuteTaskEvent){ + checkActiviyStatus(); + } + } + public void flushEveryDay(User user, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception { //跟新签到天数 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/MinuteTaskEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/MinuteTaskEvent.java new file mode 100644 index 000000000..8c0ff0aa4 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/MinuteTaskEvent.java @@ -0,0 +1,5 @@ +package com.ljsd.jieling.logic.activity.event; + +public class MinuteTaskEvent implements IEvent { + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index f535199d2..8b01aaef3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -17,6 +17,8 @@ import com.ljsd.jieling.ktbeans.sendbeans.KTAppOnline; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.logic.activity.event.MinuteTaskEvent; +import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.championship.ChampionshipLogic; import com.ljsd.jieling.logic.family.GuildFightLogic; @@ -47,8 +49,9 @@ public class MinuteTask extends Thread { try { LOGGER.info("MinuteTask start..."); LOGGER.info("online use num::"+ OnlineUserManager.sessionMap.entrySet().size()); - HotfixUtil.getInstance().doWork("../conf/hotfix.json"); - ActivityLogic.getInstance().checkActiviyStatus(); + //TODO 每分钟逻辑通过监听事件处理 已经迁移活动和热更新 + Poster.getPoster().dispatchEvent(new MinuteTaskEvent()); + MessageUtil.checkAndSendMsg(); STableManager.updateTablesWithTableNames(true); ActivityLogic.getInstance().checkSecretBoxSeason(); From 1957bd54da4127a84e4c56639ff3579ce4b234d7 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 28 Dec 2019 17:48:57 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eventhandler/HeroFiveStarGetEventHandler.java | 4 ++-- .../java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java index 76c5d0428..d21d70f53 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java @@ -46,8 +46,8 @@ public class HeroFiveStarGetEventHandler implements IEventHandler { if(typeBagMap.containsKey(((HeroFiveStarGetEvent) event).getStar())){ long lasttime = rechargeInfo.getTypeBagMap().get(((HeroFiveStarGetEvent) event).getStar()); - int diffHourTemp = (int) ((now - lasttime) / 3600 / 1000); - if (diffHourTemp < 2) { + long diffHourTemp =(now - lasttime) / 60 ; + if (diffHourTemp < 1000) { rechargeInfo.addDyGoodsCanBuyTimes(goodsId); }else { rechargeInfo.putDyGoodsCanBuyTimes(goodsId,1); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 8fa2588f5..8c184fe59 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -390,20 +390,20 @@ public class BuyGoodsLogic { } startTime = typeBagMap.get(value); - int addtime = discountType[2]; - int diffHour = (int) ((now - startTime) / 3600 / 1000); + int addtime = 1000; + int diffHour = (int) ((now - startTime) / 60 ); if (diffHour >= addtime) { rechargeInfo.removeDyGoodsCanBuyTimes(goodsId); continue; } - endTime = startTime + addtime * 3600 * 1000; + endTime = startTime + addtime * 60 * 1000; if (rechargeInfo.getCacheSendedTypes().containsKey(value)) { long lasttime = rechargeInfo.getCacheSendedTypes().get(value); if(lasttime != startTime){ needChange = true; rechargeInfo.getCacheSendedTypes().put(value, startTime); - int diffHourTemp = (int) ((now - lasttime) / 3600 / 1000); + int diffHourTemp = (int) ((now - lasttime) / 60 ); if (diffHourTemp < addtime) { startTime =0; } From 4302c8df42488db1fa8d4220a5f18e5691b508c0 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 28 Dec 2019 17:57:54 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 8c184fe59..b40b1d3ba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -396,7 +396,7 @@ public class BuyGoodsLogic { rechargeInfo.removeDyGoodsCanBuyTimes(goodsId); continue; } - endTime = startTime + addtime * 60 * 1000; + endTime = startTime + addtime * 60; if (rechargeInfo.getCacheSendedTypes().containsKey(value)) { long lasttime = rechargeInfo.getCacheSendedTypes().get(value);