Merge branch 'master_test_gn' of http://60.1.1.230/backend/jieling_server into master_test_gn
commit
20cf1f52b2
|
@ -843,6 +843,43 @@ public class TimeUtils {
|
|||
return c.getTimeInMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前月份最后一天23:59:59秒时间戳
|
||||
*/
|
||||
public static long getCurMonthEndTime(){
|
||||
//获取当前月最后一天
|
||||
Calendar ca = Calendar.getInstance();
|
||||
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
//将小时至0
|
||||
ca.set(Calendar.HOUR_OF_DAY, 23);
|
||||
//将分钟至0
|
||||
ca.set(Calendar.MINUTE, 59);
|
||||
//将秒至0
|
||||
ca.set(Calendar.SECOND,59);
|
||||
//将毫秒至0
|
||||
ca.set(Calendar.MILLISECOND, 1000);
|
||||
return ca.getTimeInMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取某个时间戳当前月份最后一天23:59:59秒时间戳
|
||||
*/
|
||||
public static long getMonthEndTime(Long time){
|
||||
//获取当前月最后一天
|
||||
Calendar ca = Calendar.getInstance();
|
||||
ca.setTimeInMillis(time);
|
||||
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
//将小时至0
|
||||
ca.set(Calendar.HOUR_OF_DAY, 23);
|
||||
//将分钟至0
|
||||
ca.set(Calendar.MINUTE, 59);
|
||||
//将秒至0
|
||||
ca.set(Calendar.SECOND,59);
|
||||
//将毫秒至0
|
||||
ca.set(Calendar.MILLISECOND, 1000);
|
||||
return ca.getTimeInMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* x:第几天
|
||||
* next:距离当前月几个月
|
||||
|
@ -860,6 +897,24 @@ public class TimeUtils {
|
|||
return c.getTimeInMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* time :时间戳
|
||||
* x:第几天
|
||||
* next:距离当前月几个月
|
||||
* 获取距离时间戳 几个月份第几天0点时间戳
|
||||
*/
|
||||
public static long getMonthStartTime(long time,int x,int next){
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTime(new Date(time));
|
||||
c.add(Calendar.MONTH,next);
|
||||
c.set(Calendar.DAY_OF_MONTH, x);
|
||||
c.set(Calendar.HOUR_OF_DAY, 0);
|
||||
c.set(Calendar.MINUTE, 0);
|
||||
c.set(Calendar.SECOND,0);
|
||||
c.set(Calendar.MILLISECOND, 0);
|
||||
return c.getTimeInMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取距离现在最早的下一个周几的时间
|
||||
* @param targetWeekday
|
||||
|
|
|
@ -148,7 +148,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
//开服日期
|
||||
String openTime = GameApplication.serverConfig.getOpenTime().split(" ")[0];
|
||||
String nowTime = TimeUtils.getTimeStampYMDnew(TimeUtils.now());
|
||||
now = TimeUtils.getGapMonthsByTwoTime(openTime, nowTime)+1;
|
||||
//now = TimeUtils.getGapMonthsByTwoTime(openTime, nowTime)+1;
|
||||
}
|
||||
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1);
|
||||
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2);
|
||||
|
|
|
@ -64,7 +64,7 @@ public class SuperFundActivity extends AbstractActivity {
|
|||
// 状态初始化
|
||||
initState(user,event1.getGiftId());
|
||||
// 礼包处理
|
||||
updateValue(user);
|
||||
updateValue(user,event1.getGiftId());
|
||||
// 状态刷新
|
||||
updateState(user);
|
||||
// 状态推送
|
||||
|
@ -75,22 +75,32 @@ public class SuperFundActivity extends AbstractActivity {
|
|||
* 礼包处理
|
||||
* @param user
|
||||
*/
|
||||
private void updateValue(User user) throws Exception {
|
||||
private void updateValue(User user, int giftId){
|
||||
// 活动详情
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (mission == null || mission.getV() == 2){
|
||||
// 活动不存在或者已经购买了
|
||||
return;
|
||||
}
|
||||
// 获取活动信息
|
||||
ReceiveWelfareBag bag = getBagInfo(user);
|
||||
// 已购买月卡
|
||||
if (bag.isOpen()){
|
||||
Map<Integer, Integer> monthCard = user.getPlayerInfoManager().getMonthCard();
|
||||
int monthTime = 0;
|
||||
// 普通月卡
|
||||
if (id == 78){
|
||||
monthTime = monthCard.getOrDefault(1, 0);
|
||||
}
|
||||
// 高级月卡
|
||||
if (id == 79){
|
||||
monthTime = monthCard.getOrDefault(2, 0);
|
||||
}
|
||||
// 已激活月卡
|
||||
if (monthTime > 0){
|
||||
mission.setV(1);
|
||||
}
|
||||
// 已购买基金
|
||||
if (bag.isBought()){
|
||||
if (giftId == id){
|
||||
mission.setV(2);
|
||||
// 初始化基金
|
||||
reSetValue(user);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -136,15 +146,14 @@ public class SuperFundActivity extends AbstractActivity {
|
|||
* @throws ErrorCodeException
|
||||
*/
|
||||
private void updateState(User user) throws Exception {
|
||||
// 获取礼包信息
|
||||
AbstractWelfareBag bag = getBagInfo(user);
|
||||
if (bag.getLastBuyTime() == 0){
|
||||
// 活动信息
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (mission.getV() != 2){
|
||||
return;
|
||||
}
|
||||
// 间隔天数,购买当天算第一天,所以需要+1
|
||||
int days = TimeUtils.differentDays(bag.getLastBuyTime(), TimeUtils.getTodayZero())+1;
|
||||
// 活动信息
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
int days = TimeUtils.differentDays(mission.getCreatTime(), TimeUtils.getTodayZero())+1;
|
||||
|
||||
Map<Integer, ActivityProgressInfo> infoMap = getMissionMap(mission);
|
||||
// 遍历
|
||||
infoMap.forEach((k,v)->{
|
||||
|
@ -204,26 +213,30 @@ public class SuperFundActivity extends AbstractActivity {
|
|||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> infoMap = getMissionMap(mission);
|
||||
// 领取得天数
|
||||
int days = TimeUtils.differentDays(bag.getGetRewardTime(), TimeUtils.getTodayZero())+1;
|
||||
int days = TimeUtils.differentDays(bag.getStartTime(), TimeUtils.getTodayZero())+1;
|
||||
// 老玩家活动重置
|
||||
reSetValue(user);
|
||||
// 遍历
|
||||
infoMap.forEach((k,v)->{
|
||||
// 已领取得不做处理
|
||||
if (days >= k){
|
||||
v.setProgrss(1);
|
||||
v.setState(1);
|
||||
mission.getActivityMissionMap().put(k,v);
|
||||
}
|
||||
});
|
||||
mission.setV(2);
|
||||
bag.setGetRewardTime(0);
|
||||
LOGGER.info("================超值基金老玩家兼容===============,uid:{},id:{}",user.getId(),id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reSetValue(User user) throws Exception {
|
||||
public void reSetValue(User user){
|
||||
// 活动信息重置
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
activityManager.getActivityMissionMap().remove(id);
|
||||
initActivity(user);
|
||||
// 礼包信息重置
|
||||
ReceiveWelfareBag bagInfo = getBagInfo(user);
|
||||
bagInfo.refresh();
|
||||
LOGGER.info("================超值基金礼包刷新===============,uid:{},id:{}",user.getId(),id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -591,7 +591,7 @@ public class UserMissionManager extends MongoBase {
|
|||
//缥缈之旅
|
||||
if(!mistyTripMissionType.getDoingMissionIds().isEmpty() ){
|
||||
|
||||
Map<Integer, SEndlessTask> config = STableManager.getConfig(SEndlessTask.class);
|
||||
Map<Integer, SJourneyWithWind> config = STableManager.getConfig(SJourneyWithWind.class);
|
||||
if(config!=null&&config.size()!=0){
|
||||
int starSum = HardStageLogic.getHardStageStarsSum(user);
|
||||
if(starSum != 0 && mistyTripCumulationData.getHardstage_stars() == 0){
|
||||
|
|
|
@ -34,6 +34,7 @@ import config.*;
|
|||
import manager.STableManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -387,23 +388,26 @@ public class MissionLoigc {
|
|||
values.forEach(v->{
|
||||
int id = v.getId();
|
||||
SEndlessTask config = STableManager.getConfig(SEndlessTask.class).get(id);
|
||||
CommonProto.UserMissionInfo.Builder info = CommonProto.UserMissionInfo.newBuilder();
|
||||
info.setMissionId(id);
|
||||
info.setType(GameMisionType.ENDLESS_MISSION.getType());
|
||||
if (doingMissionIds.contains(id)){
|
||||
info.setState(MissionState.DOING.getState());
|
||||
int doingProgress = getDoingProgress(user, treasureCumulationData, config.getType(), config.getValues()[0]);
|
||||
info.setProgress(doingProgress);
|
||||
int day =new Date(TimeUtils.now()).getDate();//当月第几天
|
||||
if(day >= config.getViewDateUp() && day <= config.getViewDataDown()){
|
||||
CommonProto.UserMissionInfo.Builder info = CommonProto.UserMissionInfo.newBuilder();
|
||||
info.setMissionId(id);
|
||||
info.setType(GameMisionType.ENDLESS_MISSION.getType());
|
||||
if (doingMissionIds.contains(id)){
|
||||
info.setState(MissionState.DOING.getState());
|
||||
int doingProgress = getDoingProgress(user, treasureCumulationData, config.getType(), config.getValues()[0]);
|
||||
info.setProgress(doingProgress);
|
||||
}
|
||||
if (finishMissionIds.contains(id)){
|
||||
int finishProgress = config.getValues()[1][0];
|
||||
info.setState(MissionState.FINISH.getState());
|
||||
info.setProgress(finishProgress);
|
||||
}
|
||||
if (rewardedMissionIds.get(id)){
|
||||
info.setState(MissionState.REWARD.getState());
|
||||
}
|
||||
missionList.add(info.build());
|
||||
}
|
||||
if (finishMissionIds.contains(id)){
|
||||
int finishProgress = config.getValues()[1][0];
|
||||
info.setState(MissionState.FINISH.getState());
|
||||
info.setProgress(finishProgress);
|
||||
}
|
||||
if (rewardedMissionIds.get(id)){
|
||||
info.setState(MissionState.REWARD.getState());
|
||||
}
|
||||
missionList.add(info.build());
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -12,13 +12,28 @@ public class ToolsUtil {
|
|||
baseTime = endTimeLong;
|
||||
}
|
||||
long startTime=0;
|
||||
if(time == ActivityType.OPEN_TYPE_TIME || time == ActivityType.OPEN_TYPE_MONTHS){
|
||||
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 = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000;
|
||||
}else if(time == ActivityType.OPEN_TYPE_MONTHS){
|
||||
if(type == 1){
|
||||
if(baseTime ==1){
|
||||
//第一个月
|
||||
startTime = GameApplication.serverConfig.getCacheOpenTime();
|
||||
}else{
|
||||
startTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime-1);
|
||||
}
|
||||
}else if(type ==2){
|
||||
if(baseTime ==1){
|
||||
startTime = TimeUtils.getMonthEndTime(GameApplication.serverConfig.getCacheOpenTime());
|
||||
}else{
|
||||
startTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
return startTime;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue