循环活动临时版

master_otnew
grimm 2024-03-06 16:14:32 +08:00
parent d5d62aaf00
commit 7fc1d5c3a9
17 changed files with 84 additions and 61 deletions

View File

@ -62,8 +62,8 @@ public class Cmd_changename extends GmRoleAbstract {
if(!storeInfoMap.containsKey(10) && !storeInfoMap.containsKey(15)){
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(10);
long userCreateTime = user.getPlayerInfoManager().getCreateTime();
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1, 0);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2, 0);
StoreLogic.getInstance().initOnsStoereWithTime(user,10,startTime,endTime);
LOGGER.info("hotfix user={} store end",user.getId());
}

View File

@ -168,17 +168,23 @@ public class ActivityLogic implements IEventHandler{
//检查开启的活动 非相对创角时间
for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) {
int time = sGlobalActivity.getTime();
int id = sGlobalActivity.getId();
int time = sGlobalActivity.getTime();
int type = sGlobalActivity.getType();
long startTimeLong = sGlobalActivity.getStartTimeLong();
long endTimeLong = sGlobalActivity.getEndTimeLong();
int cycleMinute = sGlobalActivity.getCycleMinute();
AbstractActivity activity = ActivityTypeEnum.getActicityById(id);
if (time == ActivityType.OPEN_TYPE_ROLE) {
// 创角时间活动
continue;
}
if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){
if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){
continue;
}
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2);
long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time,0, 1, cycleMinute);
long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time,0, 2, cycleMinute);
if (now < startTime) {
//如果没到活动开启时间但是openActivityIds里有了这个活动证明是热更延迟开启的活动需要清除掉
openActivityIds.remove(id);
@ -355,8 +361,8 @@ public class ActivityLogic implements IEventHandler{
LOGGER.info("checkActivityOfUser uid={} remove activity={}", user.getId(), openActivityId);
continue;
}
int[] ifOpen = sGlobalActivity.getIfOpen();
//创角
int[] ifOpen = sGlobalActivity.getIfOpen();
if(ifOpen!=null && ifOpen.length>0 && ifOpen[0]==1){
if(userCreateTime + ifOpen[1]*TimeUtils.ONE_DAY > now){
continue;
@ -390,9 +396,10 @@ public class ActivityLogic implements IEventHandler{
int time = sGlobalActivity.getTime();
int gapTime = sGlobalActivity.getGapTime();
int type = sGlobalActivity.getType();
int cycleMinute = sGlobalActivity.getCycleMinute();
long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 1);
long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2);
long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 1, cycleMinute);
long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2, cycleMinute);
long gepTimeLong = endTime + gapTime * TimeUtils.ONE_DAY;
if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){
@ -447,7 +454,7 @@ public class ActivityLogic implements IEventHandler{
}
else if (time == ActivityType.OPEN_TYPE_CYCLE){//循环
// 循环时间
long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE;
long cycleTime = cycleMinute * TimeUtils.ONE_MINUTE;
// 最近的开始时间
long latelyStartTime = TimeUtils.getLatelyTime(startTime, now, cycleTime);
// 当前期活动未开始
@ -586,11 +593,15 @@ public class ActivityLogic implements IEventHandler{
if(sGlobalActivity == null){
continue;
}
long startTimeLong = sGlobalActivity.getStartTimeLong();
long endTimeLong = sGlobalActivity.getEndTimeLong();
int timeType = sGlobalActivity.getTime();
int type = sGlobalActivity.getType();
int gapTime = sGlobalActivity.getGapTime();
if(activityStatus == ActivityType.CLOSE_STATE){
long prepareTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, gapTime);
long prepareTime = ToolsUtil.getEndTimeLong(startTimeLong, endTimeLong, timeType,0, gapTime);
activityInfoList.add(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).setEndTime((int)(prepareTime/1000)).build());
continue;
}
@ -614,14 +625,14 @@ public class ActivityLogic implements IEventHandler{
if (sGlobalActivity.getIsSaving()==0 && activityStatus != ActivityType.OPEN_STATE) {
continue;
}
int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000);
int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);;
int startTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 1, 0) / 1000);
int endTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 2, 0) / 1000);;
if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ // 每日特惠活动
startTime = (int)(activityState.getValue().getCreatTime()/1000);
endTime = startTime+604800;
}
else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){
else if (timeType == ActivityType.OPEN_TYPE_CYCLE){
long now = TimeUtils.now();
long intervalTime = (endTime - startTime) * 1000L;
long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE;
@ -810,8 +821,8 @@ public class ActivityLogic implements IEventHandler{
}
long createTime = user.getPlayerInfoManager().getCreateTime();
int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000);
int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);
int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1, 0) / 1000);
int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2, 0) / 1000);
List<CommonProto.ActivityInfo.MissionInfo> missionInfos = abstractActivity.getAllMissInfo(user,activityMission);
fBuilder.addActivityInfo(CommonProto.ActivityInfo.newBuilder().setValue(activityMission.getV()).setActivityId(activityId).addAllMission(missionInfos).setStartTime(startTime).setEndTime(endTime).setReallyOpen(activityMission.getOpenType()).build());
fBuilder.setHadLuckTime(user.getPlayerInfoManager().getLuckWheelLimitTime());
@ -1412,9 +1423,9 @@ public class ActivityLogic implements IEventHandler{
if(sGlobalActivities.isEmpty()){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
Function<SGlobalActivity,Integer> function = v->(int)ToolsUtil.getTimeLong(v.getStartTimeLong(),v.getEndTimeLong(),v.getTime(),user.getPlayerInfoManager().getCreateTime(),1);
Function<SGlobalActivity,Integer> function = v->(int)ToolsUtil.getTimeLong(v.getStartTimeLong(),v.getEndTimeLong(),v.getTime(),user.getPlayerInfoManager().getCreateTime(),1, 0);
Stream<SGlobalActivity> stream = sGlobalActivities.stream().sorted(Comparator.comparing(function))
.filter(v->ToolsUtil.getTimeLong(v.getStartTimeLong(), v.getEndTimeLong(), v.getTime(), user.getPlayerInfoManager().getCreateTime(), 1) > TimeUtils.now());
.filter(v->ToolsUtil.getTimeLong(v.getStartTimeLong(), v.getEndTimeLong(), v.getTime(), user.getPlayerInfoManager().getCreateTime(), 1, 0) > TimeUtils.now());
List<SGlobalActivity> collect = stream.collect(Collectors.toList());
if(collect.isEmpty()){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
@ -1424,7 +1435,7 @@ public class ActivityLogic implements IEventHandler{
if(sGlobalActivity==null){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(),1);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(),1, 0);
PlayerInfoProto.NextActivityResponse response = PlayerInfoProto.NextActivityResponse.newBuilder().setId(id).setTime((int)(startTime/1000)).build();
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
@ -1593,8 +1604,8 @@ public class ActivityLogic implements IEventHandler{
createUserTime = user.getPlayerInfoManager().getCreateTime();
}
long[] result = new long[2];
result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 1);
result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 2);
result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 1, 0);
result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 2, 0);
return result;
}

View File

@ -187,7 +187,7 @@ public class ContinuousGiftActivity extends AbstractActivity {
}
long now = TimeUtils.now();
long createTime = user.getPlayerInfoManager().getCreateTime();
long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1);
long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0);
// 更新记录天数
activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1);
// 库里存储的活动档位信息

View File

@ -45,7 +45,7 @@ public class FifteenActivity extends AbstractActivity {
if(activityMission == null){
return;
}
long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0);
int time = (int)(startTime/1000);
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityMissionMap();
for(Map.Entry<Integer,ActivityProgressInfo> entry : progressInfoMap.entrySet()){

View File

@ -50,8 +50,8 @@ public class FightMainEventHandler implements IEventHandler{
activityMission.setActivityState(ActivityType.OPEN_STATE);
ActivityLogic.getInstance().sendActivityInfo(user,sGlobalActivity.getId());
if(sGlobalActivity.getShopId().length>0){
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, 0);
for (int shopId : sGlobalActivity.getShopId()) {
ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime);
}

View File

@ -32,7 +32,7 @@ class MissSearchExpectRankActivity extends ExpectRankActivity {
public void initActivity(User user) throws Exception {
super.initActivity(user);
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, 0);
user.getPlayerInfoManager().addVipByTime(155,(int)(endTime/1000));
Set<Integer> vipInfo = new HashSet<>();
vipInfo.add(155);

View File

@ -197,7 +197,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
if (info == null || activity == null){
return 0;
}
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1);
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, 0);
long rankEndTime = startTime + info.getCloseTime()*1000L;
return rankEndTime-TimeUtils.now();
}
@ -211,7 +211,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
if (info == null || activity == null){
return false;
}
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1);
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, 0);
long rankStartTime = startTime + info.getOpenTime()*1000L;
long rankEndTime = startTime + info.getCloseTime()*1000L;
long now = TimeUtils.now();
@ -229,7 +229,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
if (info == null || activity == null){
return 0;
}
int endTime = (int)(ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2)/1000);
int endTime = (int)(ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2, 0)/1000);
return endTime-TimeUtils.nowInt();
}

View File

@ -6,8 +6,6 @@ import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SecretEvent;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.ToolsUtil;
import config.SGlobalActivity;
@ -30,7 +28,7 @@ class SecretExpectRankActivity extends ExpectRankActivity {
listValue.add(153);//额外购买次数
listValue.add(154);//额外免费次数
Set<Integer> changedSet = new HashSet<>();
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, 0);
int time = (int)(endTime / 1000);
listValue.forEach(privilegeId -> {
changedSet.add(privilegeId);

View File

@ -25,7 +25,7 @@ public class SevenHappyActivity extends DefaultEmptyActivity{
user.getActivityManager().getActivityMissionMap().put(id, mission);
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH,id);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0);
user.getActivityManager().setSenvenStartTime(startTime);
}

View File

@ -172,7 +172,7 @@ public class SuperBoxActivity extends AbstractActivity {
}
long now = TimeUtils.now();
long createTime = user.getPlayerInfoManager().getCreateTime();
long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1);
long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0);
// 更新记录天数
activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1);
// 库里存储的活动档位信息

View File

@ -104,7 +104,7 @@ public class WeekCardActivity extends AbstractActivity {
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
long createTime = user.getPlayerInfoManager().getCreateTime();
// 计算间隔时间
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1);
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0);
int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now()) + 1;
for (int[] ints : sWeekcardConfig.getBaseRewardID()) {
@ -139,7 +139,7 @@ public class WeekCardActivity extends AbstractActivity {
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
long createTime = user.getPlayerInfoManager().getCreateTime();
// 计算间隔时间
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1);
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0);
int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1;
for (Map.Entry<Integer, Map<Integer, Integer>> entry : weekCard.entrySet()) {

View File

@ -52,7 +52,7 @@ public class WeekCardLogic {
long createTime = user.getPlayerInfoManager().getCreateTime();
// 计算间隔时间
long now = TimeUtils.now();
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1);
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0);
long cycleTime = activity.getCycleMinute() * TimeUtils.ONE_MINUTE;
if (cycleTime > 0){
startTimeLong = TimeUtils.getLatelyTime(startTimeLong, now, cycleTime);

View File

@ -32,8 +32,8 @@ public class ActivityStateChangeHandler implements IEventHandler {
if(state == ActivityType.OPEN_STATE){
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
if(sGlobalActivity.getShopId().length>0){
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, 0);
for (int shopId : sGlobalActivity.getShopId()) {
ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime);
}

View File

@ -39,8 +39,8 @@ public class MissionLogic {
return null;
}
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1, 0);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2, 0);
if(TimeUtils.now()>endTime){
return null;
}

View File

@ -1019,8 +1019,8 @@ public class PlayerLogic {
if (timingMailIds.contains(sTestWelfare.getId())) {
continue;
}
long startTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 1);
long endTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 2);
long startTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 1, 0);
long endTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 2, 0);
if (now < startTime) {
continue;
}

View File

@ -58,8 +58,8 @@ public class StoreLogic {
long startTime, endTime;
switch (sStoreTypeConfig.getStoreOpenRule()){
case 3:
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 1);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 2);
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 1, 0);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 2, 0);
if (startTime != 0 && endTime != 0 && now > startTime && now < endTime && !openStoreInfo.contains(sStoreTypeConfig.getId())) {
for (ISession session : OnlineUserManager.sessionMap.values()) {
if (session.getFiveReady() == 1) {
@ -88,8 +88,8 @@ public class StoreLogic {
continue;
}
long userCreateTime = user.getPlayerInfoManager().getCreateTime();
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 1);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 2);
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 1, 0);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 2, 0);
if (now < startTime || now > endTime) {
continue;
}
@ -103,8 +103,8 @@ public class StoreLogic {
}
break;
case 7:
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 1);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 2);
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 1, 0);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 2, 0);
if (now < startTime || now > endTime) {
continue;
}
@ -300,13 +300,13 @@ public class StoreLogic {
}
if(sStoreTypeConfig.getStoreOpenRule() == 6 ){
long userCreateTime = user.getPlayerInfoManager().getCreateTime();
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_ROLE,userCreateTime, 1);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE,userCreateTime, 2);
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_ROLE,userCreateTime, 1, 0);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE,userCreateTime, 2, 0);
}
if(sStoreTypeConfig.getStoreOpenRule() == 7 ){
long userCreateTime = user.getPlayerInfoManager().getCreateTime();
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,userCreateTime, 1);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,userCreateTime, 2);
startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,userCreateTime, 1, 0);
endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,userCreateTime, 2, 0);
}
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
storeManager.newStoreInfo(sStoreTypeConfig.getId(),System.currentTimeMillis(),startTime,endTime,itemNumMap);
@ -389,8 +389,8 @@ public class StoreLogic {
continue;
}
if(sStoreTypeConfig.getStoreOpenRule() == 7){
long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,0, 1);
long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,0, 2);
long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,0, 1, 0);
long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,0, 2, 0);
long now = TimeUtils.now();
if(now>startTime&&now<endTime){
Map<Integer, Integer> itemNumMap = getStoreItem(storeId,sStoreTypeConfig,user);

View File

@ -10,14 +10,16 @@ public class ToolsUtil {
/**
*
*
* @param startTimeLong
* @param endTimeLong
* @param time
* @param endTimeLong
* @param time
* @param createUserTime
* @param type 1 2
* @param type 1 2
* @param cycleTime
* @return
*/
public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type){
public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type, int cycleTime){
long baseTime = startTimeLong;
if(type == 2){
baseTime = endTimeLong;
@ -25,7 +27,6 @@ public class ToolsUtil {
long resultTime=0;
switch (time){
case ActivityType.OPEN_TYPE_TIME://开服时间
case ActivityType.OPEN_TYPE_CYCLE://循环活动
resultTime = baseTime;
break;
case ActivityType.OPEN_TYPE_ROLE:
@ -51,6 +52,19 @@ public class ToolsUtil {
}
}
break;
case ActivityType.OPEN_TYPE_CYCLE://循环活动
long now = TimeUtils.now();
// 循环时间
long cycleTimeMils = cycleTime * TimeUtils.ONE_MINUTE;
// 最近的开始时间
long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, now, cycleTimeMils);
if (type == 1){
resultTime = latelyStartTime;
}else {
// 最近的结束时间
resultTime = latelyStartTime + (endTimeLong - startTimeLong);
}
break;
default:
// 开始时间
if(type == 1){
@ -66,7 +80,7 @@ public class ToolsUtil {
}
public static long getEndTimeLong(long startTimeLong , long endTimeLong,int time,long createUserTime,int dayOut){
long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2);
long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2, 0);
return timeLong + TimeUtils.DAY * dayOut;
}