循环活动bug处理

master_otnew
grimm 2024-03-28 16:12:01 +08:00
parent 7c421103af
commit 99acbb8dad
4 changed files with 22 additions and 25 deletions

View File

@ -1594,13 +1594,9 @@ public class ActivityLogic implements IEventHandler{
public static long[] getStartAndEndTime(User user,int activityId){ public static long[] getStartAndEndTime(User user,int activityId){
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(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]; long[] result = new long[2];
result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 1, 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(),createUserTime, 2, 0); result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, sGlobalActivity.getCycleMinute());
return result; return result;
} }

View File

@ -16,7 +16,6 @@ import com.ljsd.jieling.network.session.ISession;
import config.SActivityRankingReward; import config.SActivityRankingReward;
import config.SActivityRewardConfig; import config.SActivityRewardConfig;
import config.SErrorCodeEerverConfig; import config.SErrorCodeEerverConfig;
import config.SGlobalActivity;
import org.springframework.data.redis.core.ZSetOperations; import org.springframework.data.redis.core.ZSetOperations;
import util.StringUtil; import util.StringUtil;
import util.TimeUtils; import util.TimeUtils;
@ -98,9 +97,8 @@ public class PowerRiceActivity extends AbstractActivity{
globalSystemControl.addActivityPreEnd(id,TimeUtils.now()); globalSystemControl.addActivityPreEnd(id,TimeUtils.now());
GlobalSystemControl.save(globalSystemControl); GlobalSystemControl.save(globalSystemControl);
} }
public List<SActivityRankingReward> getRankReward() throws Exception{ public List<SActivityRankingReward> getRankReward() {
List<SActivityRankingReward> sActivityRankingReward = SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id); return SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id);
return sActivityRankingReward;
} }
/** /**
@ -108,15 +106,15 @@ public class PowerRiceActivity extends AbstractActivity{
* @param user * @param user
* @return * @return
*/ */
public int getStage(User user){ // public int getStage(User user){
long []time = ActivityLogic.getStartAndEndTime(user,id); // long []time = ActivityLogic.getStartAndEndTime(user,id);
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); // SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
long gapTime = time[1] +sGlobalActivity.getGapTime()*TimeUtils.ONE_DAY; // long gapTime = time[1] +sGlobalActivity.getGapTime()*TimeUtils.ONE_DAY;
if(TimeUtils.now()>=time[0]&&TimeUtils.now()<=time[1]){ // if(TimeUtils.now()>=time[0]&&TimeUtils.now()<=time[1]){
return 0; // return 0;
}else if(TimeUtils.now()>=time[1]&&TimeUtils.now()<=gapTime){ // }else if(TimeUtils.now()>=time[1]&&TimeUtils.now()<=gapTime){
return 1; // return 1;
} // }
return -1; // return -1;
} // }
} }

View File

@ -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.cross.CSPlayer;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.util.ToolsUtil;
import config.SActivityRankingReward; import config.SActivityRankingReward;
import config.SGlobalActivity; import config.SGlobalActivity;
import org.springframework.data.redis.core.ZSetOperations; import org.springframework.data.redis.core.ZSetOperations;
@ -59,13 +60,14 @@ public class PowerRiceRank extends AbstractRank implements IEventHandler {
} }
//判斷是否在展示期 //判斷是否在展示期
Map<Integer, SGlobalActivity> sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); Map<Integer, SGlobalActivity> sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap();
SGlobalActivity sGlobalActivity = sGlobalActivityMap.get(activityId); SGlobalActivity activity = sGlobalActivityMap.get(activityId);
if (sGlobalActivity == null) { if (activity == null) {
return; 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(); long now = TimeUtils.now();
if (now > startAndEndTime[0] && now < startAndEndTime[1]) { if (now > start && now < end) {
if (event instanceof UserMainTeamForceEvent) { if (event instanceof UserMainTeamForceEvent) {
int uid = ((UserMainTeamForceEvent) event).getUid(); int uid = ((UserMainTeamForceEvent) event).getUid();
CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid); CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);

View File

@ -17,6 +17,7 @@ public class TimeLimitWelfareBag extends AbstractWelfareBag {
int anInt = value[1]; int anInt = value[1];
if(ActivityLogic.checkActivityOpen(user,anInt)){ if(ActivityLogic.checkActivityOpen(user,anInt)){
setOpen(true); setOpen(true);
long[] result = ActivityLogic.getStartAndEndTime(user, anInt); long[] result = ActivityLogic.getStartAndEndTime(user, anInt);
setStartTime(result[0]); setStartTime(result[0]);
setEndTime(result[1]); setEndTime(result[1]);