Merge branch 'master_test_gn' of http://60.1.1.230/backend/jieling_server into master_test_gn

lvxinran 2021-07-29 23:16:26 +08:00
commit 20cf1f52b2
6 changed files with 124 additions and 37 deletions

View File

@ -843,6 +843,43 @@ public class TimeUtils {
return c.getTimeInMillis();
}
/**
* 235959
*/
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();
}
/**
* 235959
*/
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

View File

@ -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);

View File

@ -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);
}
/**

View File

@ -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){

View File

@ -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());
});
}

View File

@ -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;
}