From eaa1767284708df81e5486bd17935ed4f386f99f Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 22 Apr 2019 19:25:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/GameApplication.java | 2 + .../jieling/config/SActivityRewardConfig.java | 67 +++++++++ .../ljsd/jieling/config/SGlobalActivity.java | 104 +++++++++++++ .../com/ljsd/jieling/db/mongo/MongoKey.java | 2 + .../handler/GetAllActivityInfoHandler.java | 20 +++ .../handler/TakeActivityRewardHandler.java | 24 +++ .../jieling/logic/activity/ActivityLogic.java | 140 ++++++++++++++++++ .../jieling/logic/activity/ActivityType.java | 20 +++ .../jieling/logic/dao/ActivityManager.java | 37 +++++ .../jieling/logic/dao/ActivityMission.java | 35 +++++ .../ljsd/jieling/logic/dao/HeroManager.java | 2 +- .../com/ljsd/jieling/logic/dao/root/User.java | 8 + .../ljsd/jieling/logic/hero/HeroLogic.java | 2 +- .../ljsd/jieling/thread/ThreadManager.java | 2 + .../ljsd/jieling/thread/task/MinuteTask.java | 18 +++ .../java/com/ljsd/jieling/util/TimeUtils.java | 5 + 16 files changed, 486 insertions(+), 2 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/config/SActivityRewardConfig.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalActivity.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/GetAllActivityInfoHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/TakeActivityRewardHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityManager.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityMission.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java diff --git a/serverlogic/src/main/java/com/ljsd/GameApplication.java b/serverlogic/src/main/java/com/ljsd/GameApplication.java index 83339019d..ba964469c 100644 --- a/serverlogic/src/main/java/com/ljsd/GameApplication.java +++ b/serverlogic/src/main/java/com/ljsd/GameApplication.java @@ -8,6 +8,7 @@ import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.dao.MailingSystemManager; import com.ljsd.jieling.logic.fight.CheckFight; import com.ljsd.jieling.logic.fight.CombatLogic; @@ -105,6 +106,7 @@ public class GameApplication { serverConfig = serverConfigTmp; } KeyGenUtils.setMachineNum(serverConfiguration.getServerProperties().getNum()); + ActivityLogic.getInstance().checkActiviyStatus(); try { LOGGER.info("main->CoreApplication start..."); ISessionFactory sessionFactory = new ISessionFactory(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SActivityRewardConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SActivityRewardConfig.java new file mode 100644 index 000000000..5088ae049 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SActivityRewardConfig.java @@ -0,0 +1,67 @@ +package com.ljsd.jieling.config; + +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.Table; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Table(name ="ActivityRewardConfig") +public class SActivityRewardConfig implements BaseConfig { + + private int id; + + private int activityId; + + private int[][] values; + + private int[][] reward; + + private static Map sActivityRewardConfigMap; + + private static Map> sActivityRewardConfigListMap; + + + @Override + public void init() throws Exception { + Map config = STableManager.getConfig(SActivityRewardConfig.class); + Map> sActivityRewardConfigListMapTmp = new HashMap<>(); + for(SActivityRewardConfig sActivityRewardConfig : config.values()){ + int activityId = sActivityRewardConfig.getActivityId(); + if(!sActivityRewardConfigListMapTmp.containsKey(activityId)){ + sActivityRewardConfigListMapTmp.put(activityId,new ArrayList<>()); + } + sActivityRewardConfigListMapTmp.get(activityId).add(sActivityRewardConfig); + } + sActivityRewardConfigMap = config; + sActivityRewardConfigListMap = sActivityRewardConfigListMapTmp; + } + + public static SActivityRewardConfig getsActivityRewardConfigByMissionId(int missionId) { + return sActivityRewardConfigMap.get(missionId); + } + + public static List getsActivityRewardConfigByActivityId(int activityId) { + return sActivityRewardConfigListMap.get(activityId); + } + + public int getId() { + return id; + } + + public int getActivityId() { + return activityId; + } + + public int[][] getValues() { + return values; + } + + public int[][] getReward() { + return reward; + } + + +} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalActivity.java new file mode 100644 index 000000000..310710590 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalActivity.java @@ -0,0 +1,104 @@ +package com.ljsd.jieling.config; + +import com.ljsd.GameApplication; +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.Table; +import com.ljsd.jieling.logic.activity.ActivityType; +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.util.TimeUtils; + +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +@Table(name ="GlobalActivity") +public class SGlobalActivity implements BaseConfig { + + private int id; + + private int type; + + private String startTime; + + private String endtime; + + private int time; + + private long startTimeLong; + + private long endTimeLong; + + private static Map sGlobalActivityMap; + + + @Override + public void init() throws Exception { + Map config = STableManager.getConfig(SGlobalActivity.class); + for(SGlobalActivity sGlobalActivity : config.values()){ + int time = sGlobalActivity.getTime(); + String startTime = sGlobalActivity.getStartTime(); + String endtime = sGlobalActivity.getEndtime(); + if(time == 1 ){ + if("0".equals(endtime)){ + continue; + } + setStartTimeLong(TimeUtils.parseTimeToMiles(startTime,"YYYYMMdd hh:mm:ss")); + continue; + } + setStartTimeLong(Long.parseLong(startTime)); + setStartTimeLong(Long.parseLong(endtime)); + } + sGlobalActivityMap = config; + } + + public static Map getsGlobalActivityMap() { + return sGlobalActivityMap; + } + + public int getId() { + return id; + } + + public int getType() { + return type; + } + + public String getStartTime() { + return startTime; + } + + public String getEndtime() { + return endtime; + } + + public int getTime() { + return time; + } + + public long getTimeLong(long createUserTime,int type) { + long baseTime = startTimeLong; + if(type == 2){ + baseTime = endTimeLong; + } + long startTime=0; + if(time == ActivityType.OPEN_TYPE_TIME){ + startTime = baseTime; + }else if(time == ActivityType.OPEN_TYPE_SERVER){ + long serverOpenTime = GameApplication.serverConfig.getCacheOpenTime(); + startTime = serverOpenTime + baseTime*1000; + }else if(time == ActivityType.OPEN_TYPE_ROLE){ + startTime =createUserTime+baseTime*1000; + } + return startTime; + } + + public void setStartTimeLong(long startTimeLong) { + this.startTimeLong = startTimeLong; + } + + public void setEndTimeLong(long endTimeLong) { + this.endTimeLong = endTimeLong; + } + + +} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoKey.java index 6268c61b6..4df43f4d9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoKey.java @@ -26,4 +26,6 @@ public class MongoKey { public final static String levelDifficultyManager = "levelDifficultyManager"; + public final static String activityManager = "activityManager"; + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetAllActivityInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetAllActivityInfoHandler.java new file mode 100644 index 000000000..121a9abf2 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetAllActivityInfoHandler.java @@ -0,0 +1,20 @@ +package com.ljsd.jieling.handler; + +import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class GetAllActivityInfoHandler extends BaseHandler{ + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.GET_ALL_ACTIVITY_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + ActivityLogic.getInstance().getAllActivityInfo(iSession); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeActivityRewardHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeActivityRewardHandler.java new file mode 100644 index 000000000..40222b17b --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeActivityRewardHandler.java @@ -0,0 +1,24 @@ +package com.ljsd.jieling.handler; + +import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.protocols.PlayerInfoProto; +import org.springframework.stereotype.Component; + +@Component +public class TakeActivityRewardHandler extends BaseHandler{ + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] bytes = netData.parseClientProtoNetData(); + PlayerInfoProto.TakeActivityRewardRequest takeActivityRewardRequest = PlayerInfoProto.TakeActivityRewardRequest.parseFrom(bytes); + int missionId = takeActivityRewardRequest.getMissionId(); + ActivityLogic.getInstance().takeReward(iSession,missionId); + } +} 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 a43d0361f..6aa279f31 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 @@ -1,18 +1,158 @@ package com.ljsd.jieling.logic.activity; +import com.ljsd.jieling.config.SActivityRewardConfig; +import com.ljsd.jieling.config.SGlobalActivity; +import com.ljsd.jieling.logic.dao.ActivityManager; +import com.ljsd.jieling.logic.dao.ActivityMission; +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.protocols.CommonProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.protocols.PlayerInfoProto; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.*; + public class ActivityLogic { private static final Logger LOGGER = LoggerFactory.getLogger(ActivityLogic.class); private ActivityLogic(){} + private Set openActivityIds =new HashSet<>(); + + public static class Instance { public final static ActivityLogic instance = new ActivityLogic(); } + public void checkActiviyStatus() { + long now = System.currentTimeMillis(); + Map sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); + for(SGlobalActivity sGlobalActivity:sGlobalActivityMap.values()){ + int time = sGlobalActivity.getTime(); + if(time ==3 ){ + continue; + } + long startTime = sGlobalActivity.getTimeLong(0,1); + long endTime = sGlobalActivity.getTimeLong(0,2); + if(nowendTime && openActivityIds.contains(sGlobalActivity.getId())){ + openActivityIds.remove(sGlobalActivity.getId()); + continue; + } + openActivityIds.add(sGlobalActivity.getId()); + } + + } + + public void checkActivityOfUser(User user){ + long now = System.currentTimeMillis(); + ActivityManager activityManager = user.getActivityManager(); + Map activityState = activityManager.getActivityState(); + Map sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); + for(Integer openActivityId : openActivityIds){ + activityManager.initAllActivityMission(openActivityId); + } + + long userCreateTime = user.getPlayerInfoManager().getCreateTime(); + for(SGlobalActivity sGlobalActivity:sGlobalActivityMap.values()){ + int activityId = sGlobalActivity.getId(); + if(!openActivityIds.contains(activityId)){ + continue; + } + int time = sGlobalActivity.getTime(); + if(time ==3 ){ + long startTime = sGlobalActivity.getTimeLong(userCreateTime,1); + long endTime = sGlobalActivity.getTimeLong(userCreateTime,2); + if(now activityStateMap = activityManager.getActivityState(); + Map sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); + Map activityMissionMap = activityManager.getActivityMissionMap(); + List activityInfoList = new ArrayList<>(activityStateMap.size()); + for(Map.Entry activityState : activityStateMap.entrySet()){ + Integer activityId = activityState.getKey(); + Integer activityStatus = activityState.getValue(); + if(activityStatus != ActivityType.OPEN_STATE){ + continue; + } + SGlobalActivity sGlobalActivity = sGlobalActivityMap.get(activityId); + int startTime = (int)(sGlobalActivity.getTimeLong(createTime, 1)/1000); + int endTime = (int)(sGlobalActivity.getTimeLong(createTime, 2)/1000); + ActivityMission activityMission = activityMissionMap.get(activityId); + Map allMissionProgress = activityMission.getAllMissionProgress(); + Map allMissionStatus = activityMission.getAllMissionStatus(); + List missionInfos = new ArrayList<>(allMissionProgress.size()); + for( Map.Entry missionProgress : allMissionProgress.entrySet()){ + Integer missionId = missionProgress.getKey(); + Integer value = missionProgress.getValue(); + missionInfos.add(CommonProto.ActivityInfo.MissionInfo.newBuilder().setMissionId(missionId).setProgress(value).setState(allMissionStatus.get(missionId)).build()); + } + activityInfoList.add(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).addAllMission(missionInfos).setStartTime(startTime).setEndTime(endTime).build()); + } + PlayerInfoProto.GetAllActivityResponse build = PlayerInfoProto.GetAllActivityResponse.newBuilder().addAllActivityInfo(activityInfoList).build(); + MessageUtil.sendMessage(session,1,rewardResponseValue,build,true); + + } } 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 new file mode 100644 index 000000000..7de51dbb9 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -0,0 +1,20 @@ +package com.ljsd.jieling.logic.activity; + +public interface ActivityType { + + int CLOSE_STATE = 0; + int OPEN_STATE =1; + int FINISH_STATE =2; + + int OPEN_TYPE_TIME = 1; // 活动开启类型:绝对时间 + int OPEN_TYPE_SERVER = 2; // 活动开启类型:开服时间 + int OPEN_TYPE_ROLE = 3; // 活动开启类型:创角时间 + + + int WILL_TAKE = 0; //未领取 + int HAD_TAKED =1; //已领取 + + int OnlineReward =1; //在线奖励 + int SevenLogin = 2; //七日登陆 + int ChapterReward = 3; //七日登陆 +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityManager.java new file mode 100644 index 000000000..e722e7b5e --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityManager.java @@ -0,0 +1,37 @@ +package com.ljsd.jieling.logic.dao; + +import com.ljsd.common.mogodb.MongoBase; +import com.ljsd.jieling.logic.activity.ActivityType; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class ActivityManager extends MongoBase { + private Map activityState = new ConcurrentHashMap<>(); //活动状态 + private Map activityMissionMap = new ConcurrentHashMap<>(); + + public void updateActivityState(int activityId,int state){ + updateString("activityState." + activityId,state); + activityState.put(activityId,state); + } + + public void initAllActivityMission(int activityId){ + if(activityMissionMap.containsKey(activityId)){ + return; + } + ActivityMission activityMission = new ActivityMission(); + activityMission.initMissionInfo(activityId); + activityMission.init(getRootId(),getMongoKey()+".activityMissionMap." + activityId); + activityMissionMap.put(activityId,activityMission); + updateString("activityState." + activityId, ActivityType.OPEN_STATE); + updateString("activityMissionMap." + activityId,activityMission); + } + + public Map getActivityState() { + return activityState; + } + + public Map getActivityMissionMap() { + return activityMissionMap; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityMission.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityMission.java new file mode 100644 index 000000000..36b19f9a3 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityMission.java @@ -0,0 +1,35 @@ +package com.ljsd.jieling.logic.dao; + +import com.ljsd.common.mogodb.MongoBase; +import com.ljsd.jieling.config.SActivityRewardConfig; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class ActivityMission extends MongoBase { + + private Map allMissionProgress = new ConcurrentHashMap<>(); + private Map allMissionStatus = new ConcurrentHashMap<>(); + + public void updateMissionStatus(int missionId,int status){ + updateString("allMissionStatus."+missionId,status); + allMissionStatus.put(missionId,status); + } + + public void initMissionInfo(int activityId){ + List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(activityId); + for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){ + allMissionStatus.put(sActivityRewardConfig.getId(), 0); + allMissionProgress.put(sActivityRewardConfig.getId(), 0); + } + } + + public Map getAllMissionProgress() { + return allMissionProgress; + } + + public Map getAllMissionStatus() { + return allMissionStatus; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 8e13271cd..edc582b90 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -45,7 +45,7 @@ public class HeroManager extends MongoBase { public void removeHero(String heroId) { if (heroMap.containsKey(heroId)){ - removeString("heroMap." + heroId); + removeString(getMongoKey()+".heroMap." + heroId); heroMap.remove(heroId); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java index e0bf7f99d..231c39a76 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java @@ -34,6 +34,8 @@ public class User { private LevelDifficultyManager levelDifficultyManager; // 关卡信息 + private ActivityManager activityManager; + //构造函数必须要声明,否则从mongodb读出来反编译成类不通过 public User(){ } @@ -51,6 +53,7 @@ public class User { this.pokemonManager = new PokemonManager(); this.workShopController = new WorkShopController(); this.levelDifficultyManager = new LevelDifficultyManager(); + this.activityManager = new ActivityManager(); //綁定关系 this.playerManager.init(id, MongoKey.playerManager); @@ -64,6 +67,7 @@ public class User { this.pokemonManager.init(id, MongoKey.pokemonManager); this.workShopController.init(id, MongoKey.workShopController); this.levelDifficultyManager.init(id, MongoKey.levelDifficultyManager); + this.activityManager.init(id, MongoKey.activityManager); } public String getId() { @@ -149,4 +153,8 @@ public class User { public void setLevelDifficultyManager(LevelDifficultyManager levelDifficultyManager) { this.levelDifficultyManager = levelDifficultyManager; } + + public ActivityManager getActivityManager() { + return activityManager; + } } 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 8427bc1cd..0ba98c67b 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 @@ -848,7 +848,7 @@ public class HeroLogic { hero.updateMutliEquipPositionMap(equipInfoTmp); - LOGGER.info("the heroTid={},the force={}",hero.getTemplateId(),calHeoForce(user,hero)); + // LOGGER.info("the heroTid={},the force={}",hero.getTemplateId(),calHeoForce(user,hero)); //发送成功消息 MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.EQUIP_WEAR_RESPONSE_VALUE,null,true); 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 28fbf4fa8..33415f464 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.thread; +import com.ljsd.jieling.thread.task.MinuteTask; import com.ljsd.jieling.thread.task.PlatConfigureTask; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,6 +64,7 @@ public class ThreadManager { // testTask 已秒为单位 延迟10s, 间隔30s为周期执行 scheduledExecutor.scheduleAtFixedRate(platConfigureTask, 10, PlatConfigureTask.SLEEP_INTEVAL_TIME, TimeUnit.SECONDS); + scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), 10, 60, TimeUnit.SECONDS); } public ScheduledThreadPoolExecutor getScheduledExecutor() { 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 new file mode 100644 index 000000000..763fdea84 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -0,0 +1,18 @@ +package com.ljsd.jieling.thread.task; + +import com.ljsd.jieling.logic.activity.ActivityLogic; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MinuteTask extends Thread { + private static final Logger LOGGER = LoggerFactory.getLogger(MinuteTask.class); + + public MinuteTask(){ + this.setName("MinuteTask"); + } + + @Override + public void run() { + ActivityLogic.getInstance().checkActiviyStatus(); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/TimeUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/util/TimeUtils.java index 9d4a15ac4..27dac1057 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/TimeUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/TimeUtils.java @@ -1143,4 +1143,9 @@ public class TimeUtils { } } + public static long parseTimeToMiles(String date, String datePattern) throws ParseException { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(datePattern); + return simpleDateFormat.parse(date).getTime(); + } + } \ No newline at end of file