循环活动
parent
18c2f7fb7e
commit
79852857ee
|
|
@ -898,4 +898,42 @@ public class TimeUtils {
|
|||
public static long getToTomorrowTimeS(){
|
||||
return getTomorrowZero() - now();
|
||||
}
|
||||
|
||||
/**
|
||||
* 给定三个时间,一个开始时间,一个间隔时间,一个当前时间
|
||||
* 计算距离当前时间最近的开始时间,两个开始时间需间隔一个间隔时间
|
||||
* @param startTimeMillis 开始时间
|
||||
* @param currentMillis 当前时间
|
||||
* @param intervalMillis 间隔时间
|
||||
* @return 最近得开始时间
|
||||
*/
|
||||
public static long getLatelyTime(long startTimeMillis, long intervalMillis, long currentMillis){
|
||||
return startTimeMillis + (currentMillis - startTimeMillis) / intervalMillis * intervalMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算距离当前时间最近的开始时间
|
||||
*
|
||||
* @param startTime 开始时间的时间戳(毫秒)
|
||||
* @param interval 间隔时间(毫秒)
|
||||
* @param currentTime 当前时间的时间戳(毫秒)
|
||||
* @return 最近的开始时间的时间戳(毫秒)
|
||||
*/
|
||||
public static long calculateNextStartTime(long startTime, long interval, long currentTime) {
|
||||
// 计算从开始时间到当前时间的差异
|
||||
long timeDiff = currentTime - startTime;
|
||||
|
||||
// 计算间隔时间的完整倍数
|
||||
long intervalCount = timeDiff / interval;
|
||||
|
||||
// 计算距离当前时间最近的开始时间
|
||||
long nextStartTime = startTime + interval * intervalCount;
|
||||
|
||||
// 如果计算出的时间小于或等于当前时间,则选择下一个开始时间
|
||||
if (nextStartTime <= currentTime) {
|
||||
nextStartTime += interval;
|
||||
}
|
||||
|
||||
return nextStartTime;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,20 +1,15 @@
|
|||
package com.ljsd.jieling.handler;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.util.CBean2Proto;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.*;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@ public class EquipUpLevelHandler extends BaseHandler<PlayerInfoProto.EquipUpLeve
|
|||
public void processWithProto(ISession iSession, PlayerInfoProto.EquipUpLevelRequest proto) throws Exception {
|
||||
int activityId = proto.getActivityId();
|
||||
int equipId = proto.getEquipId();
|
||||
int itemId = proto.getItemId();
|
||||
int itemNum = proto.getItemNum();
|
||||
ItemLogic.getInstance().equipUpLevel(iSession,activityId,equipId,itemId,itemNum, MessageTypeProto.MessageType.EQUIP_UPLEVEL_RESPONSE);
|
||||
ItemLogic.getInstance().equipUpLevel(iSession,activityId,equipId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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, sGlobalActivity.getCycleMinute());
|
||||
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2, sGlobalActivity.getCycleMinute());
|
||||
StoreLogic.getInstance().initOnsStoereWithTime(user,10,startTime,endTime);
|
||||
LOGGER.info("hotfix user={} store end",user.getId());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
*
|
||||
*/
|
||||
// private void webPayHandlerLogin(User user){
|
||||
// 获取key
|
||||
// 获取key
|
||||
// String subKey = RedisUtil.getInstence().getKey(String.valueOf(user.getId()), String.valueOf(ActivityType.DAILY_RECHARGE),false);
|
||||
// String key = RedisUtil.getInstence().getKey(RedisKey.WEB_PAY, subKey);
|
||||
//
|
||||
|
|
@ -168,66 +168,71 @@ public class ActivityLogic implements IEventHandler{
|
|||
|
||||
//检查开启的活动 非相对创角时间
|
||||
for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) {
|
||||
int id = sGlobalActivity.getId();
|
||||
int time = sGlobalActivity.getTime();
|
||||
ActivityTypeEnum.getActicityById(sGlobalActivity.getId());
|
||||
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(sGlobalActivity.getId());
|
||||
openActivityIds.remove(id);
|
||||
continue;
|
||||
}
|
||||
// 开服条件判断
|
||||
boolean open = SGlobalActivity.checkActivityIfOpen(sGlobalActivity.getId(),0,GameApplication.serverConfig.getCacheOpenTime());
|
||||
boolean open = SGlobalActivity.checkActivityIfOpen(id,0,GameApplication.serverConfig.getCacheOpenTime());
|
||||
if (!open){
|
||||
openActivityIds.remove(sGlobalActivity.getId());
|
||||
openActivityIds.remove(id);
|
||||
continue;
|
||||
}
|
||||
long gapEndTime = endTime+sGlobalActivity.getGapTime()*TimeUtils.DAY;
|
||||
long gapEndTime = endTime + sGlobalActivity.getGapTime() * TimeUtils.DAY;
|
||||
if (endTime != 0 && now > endTime) {
|
||||
if (!openActivityIds.contains(sGlobalActivity.getId())) {
|
||||
if(now<gapEndTime){
|
||||
openActivityIds.add(sGlobalActivity.getId());
|
||||
if (!openActivityIds.contains(id)) {
|
||||
if(now < gapEndTime){
|
||||
openActivityIds.add(id);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if(now>gapEndTime){
|
||||
openActivityIds.remove(sGlobalActivity.getId());
|
||||
if(now > gapEndTime){
|
||||
openActivityIds.remove(id);
|
||||
}
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(sGlobalActivity.getId());
|
||||
if (null == abstractActivity) {
|
||||
if (null == activity) {
|
||||
continue;
|
||||
}
|
||||
//活動結束 預約的展示期間
|
||||
if(now<gapEndTime){
|
||||
if(now < gapEndTime){
|
||||
GlobalSystemControl globalSystemControl = GlobalSystemControl.getGlobalSystemControl();
|
||||
HashMap<Integer, Long> activityPreMap = globalSystemControl.getActivityPreEnd();
|
||||
if(activityPreMap.containsKey(sGlobalActivity.getId())){
|
||||
if(activityPreMap.get(sGlobalActivity.getId())>=endTime && activityPreMap.get(sGlobalActivity.getId())<=gapEndTime){
|
||||
continue;
|
||||
if(activityPreMap.containsKey(id)){
|
||||
if(activityPreMap.get(id)>=endTime && activityPreMap.get(id)<=gapEndTime){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
abstractActivity.onActivityPreEnd();
|
||||
activity.onActivityPreEnd();
|
||||
continue;
|
||||
}
|
||||
abstractActivity.onActivityEnd();
|
||||
activity.onActivityEnd();
|
||||
continue;
|
||||
}
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(sGlobalActivity.getId());
|
||||
if (null == abstractActivity) {
|
||||
if (null == activity) {
|
||||
continue;
|
||||
}
|
||||
if(openActivityIds.contains(sGlobalActivity.getId())) {
|
||||
if(openActivityIds.contains(id)) {
|
||||
continue;
|
||||
}
|
||||
abstractActivity.onActivityStart();
|
||||
openActivityIds.add(sGlobalActivity.getId());
|
||||
activity.onActivityStart();
|
||||
openActivityIds.add(id);
|
||||
}
|
||||
//活动数据处理分发到角色线程
|
||||
InnerMessageUtil.broadcastWithRandom(user1 -> {
|
||||
|
|
@ -270,6 +275,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
}, new LinkedList<>(OnlineUserManager.sessionMap.keySet()),2);
|
||||
|
||||
}
|
||||
|
||||
public void newPlayerOpenActivityMission(User user) throws Exception {
|
||||
checkActivityOfUser(user, null);
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
|
|
@ -321,7 +327,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo();
|
||||
activityProgressInfo.setProgrss(0);
|
||||
activityProgressInfo.setState(0);
|
||||
activityMission.getActivityMissionMap().put(missionId, activityProgressInfo);
|
||||
activityMission.getActivityMissionMap().put(missionId, activityProgressInfo);
|
||||
}
|
||||
activityMission.setOpenType(1);
|
||||
activityMission.setV(0);
|
||||
|
|
@ -355,40 +361,16 @@ public class ActivityLogic implements IEventHandler{
|
|||
LOGGER.info("checkActivityOfUser uid={} remove activity={}", user.getId(), openActivityId);
|
||||
continue;
|
||||
}
|
||||
//多少天内不会出现 创角判断
|
||||
int[] ifOpen = sGlobalActivity.getIfOpen();
|
||||
//创角
|
||||
if(ifOpen!=null && ifOpen.length>0 && ifOpen[0]==1){
|
||||
if(userCreateTime + ifOpen[1]*TimeUtils.ONE_DAY > now){
|
||||
if(userCreateTime + ifOpen[1] * TimeUtils.ONE_DAY > now){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(openActivityId);
|
||||
if (activityMission != null) {
|
||||
if(openActivityId == ActivityType.RechargeTotal){
|
||||
//首冲3天 -> 7天 容错
|
||||
int chargeMoneyCount = 0;
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(openActivityId);
|
||||
if(sActivityRewardConfigs.size() != activityMission.getActivityMissionMap().size()){
|
||||
for(ActivityProgressInfo progressInfo:activityMission.getActivityMissionMap().values()){
|
||||
if(chargeMoneyCount != progressInfo.getProgrss()){
|
||||
chargeMoneyCount = progressInfo.getProgrss();
|
||||
}
|
||||
}
|
||||
}
|
||||
for (SActivityRewardConfig config:sActivityRewardConfigs) {
|
||||
if(!activityMission.getActivityMissionMap().containsKey(config.getId())){
|
||||
if(activityMission.getActivityState()==2){
|
||||
activityMission.setActivityState(1);
|
||||
}
|
||||
ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo();
|
||||
activityProgressInfo.setProgrss(ActivityLogic.getInstance().getInitActivityMissionProgress(openActivityId));
|
||||
activityProgressInfo.setState(0);
|
||||
activityProgressInfo.setProgrss(chargeMoneyCount);
|
||||
activityMission.getActivityMissionMap().put(config.getId(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 登录检测已开启的活动,商店是否开启
|
||||
// 商店初始化
|
||||
int[] shopId = sGlobalActivity.getShopId();
|
||||
if (shopId != null && shopId.length > 0 && shopId[0] != 0) {
|
||||
boolean b = user.getStoreManager().getStoreInfoMap().containsKey(shopId[0]);
|
||||
|
|
@ -397,19 +379,15 @@ public class ActivityLogic implements IEventHandler{
|
|||
Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),openActivityId,1));
|
||||
}
|
||||
}
|
||||
// 循环活动初始化
|
||||
int time = sGlobalActivity.getTime();
|
||||
if (time == ActivityType.OPEN_TYPE_CYCLE){
|
||||
refreshCycleActivity(user, sGlobalActivity, builder);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
initAllActivityMission(activityManager.getActivityMissionMap(),openActivityId);
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(openActivityId);
|
||||
if (null==abstractActivity) {
|
||||
continue;
|
||||
}
|
||||
|
||||
abstractActivity.initActivity(user);
|
||||
// ReportUtil.onReportEvent(user, ReportEventEnum.JOIN_ACTIVITY.getType(),String.valueOf(openActivityId));
|
||||
int activityOpenState = getActivityOpenState(user, openActivityId);
|
||||
abstractActivity.setOpenState(user,activityOpenState);
|
||||
if(activityOpenState == ActivityType.UNOPEN_STATE){
|
||||
boolean checked = checkStateAndInitFromActivity(user, openActivityId);
|
||||
if (checked){
|
||||
continue;
|
||||
}
|
||||
//非角色活动开启通知
|
||||
|
|
@ -417,7 +395,19 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
||||
for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) {
|
||||
if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){
|
||||
|
||||
long startTimeLong = sGlobalActivity.getStartTimeLong();
|
||||
long endTimeLong = sGlobalActivity.getEndTimeLong();
|
||||
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, cycleMinute);
|
||||
long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2, cycleMinute);
|
||||
long gepTimeLong = endTime + gapTime * TimeUtils.ONE_DAY;
|
||||
|
||||
if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){
|
||||
continue;
|
||||
}
|
||||
int activityId = sGlobalActivity.getId();
|
||||
|
|
@ -444,73 +434,100 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
} else if (activityMissionMap.containsKey(activityId)) {
|
||||
//如果活动没有开启,但是玩家有这个活动的数据,则清除,并通知客户端活动关闭
|
||||
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1);
|
||||
if(TimeUtils.now() < startTime){
|
||||
LOGGER.info("[活动延期,清除遗留玩家数据] [uid:{}] [activityId:{}] [activityType:{}] [activityStartTime:{}]",user.getId(),activityId,sGlobalActivity.getType(),sGlobalActivity.getStartTimeLong());
|
||||
if(now < startTime){
|
||||
LOGGER.info("[活动延期,清除遗留玩家数据] [uid:{}] [activityId:{}] [activityType:{}] [activityStartTime:{}]",user.getId(),activityId, type, startTimeLong);
|
||||
activityMissionMap.remove(activityId);
|
||||
if (builder != null) {
|
||||
builder.addCloseActivityId(activityId);
|
||||
}
|
||||
}
|
||||
}
|
||||
int time = sGlobalActivity.getTime();
|
||||
if (time == ActivityType.OPEN_TYPE_ROLE) {
|
||||
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1);
|
||||
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2);
|
||||
boolean isRemove = now > gepTimeLong;
|
||||
if (time == ActivityType.OPEN_TYPE_ROLE) {//创角
|
||||
if (now < startTime) {
|
||||
continue;
|
||||
}
|
||||
if (endTime != 0 && now > endTime) {
|
||||
goRewardActivity(user,activityId,builder,now>endTime+sGlobalActivity.getGapTime()*TimeUtils.ONE_DAY);
|
||||
goRewardActivity(user,activityId,builder, isRemove);
|
||||
continue;
|
||||
}
|
||||
ActivityMission activityMission = activityMissionMap.get(activityId);
|
||||
if (activityMission != null) {
|
||||
continue;
|
||||
}
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId);
|
||||
if (null==abstractActivity) {
|
||||
continue;
|
||||
}
|
||||
// ReportUtil.onReportEvent(user, ReportEventEnum.JOIN_ACTIVITY.getType(),String.valueOf(activityId));
|
||||
abstractActivity.initActivity(user);
|
||||
// if(!initOtherActivity(user, sGlobalActivity)){
|
||||
initAllActivityMission(activityManager.getActivityMissionMap(),activityId);
|
||||
//
|
||||
int activityOpenState = getActivityOpenState(user, activityId );
|
||||
abstractActivity.setOpenState(user,activityOpenState);
|
||||
if(activityOpenState == ActivityType.UNOPEN_STATE){
|
||||
boolean checked = checkStateAndInitFromActivity(user, activityId);
|
||||
if (checked){
|
||||
continue;
|
||||
}
|
||||
openNewActivityIds.add(activityId);
|
||||
|
||||
} else {
|
||||
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2);
|
||||
goRewardActivity(user,activityId,builder,now>endTime + sGlobalActivity.getGapTime()*TimeUtils.ONE_DAY);
|
||||
}
|
||||
else {
|
||||
goRewardActivity(user, activityId, builder, isRemove);
|
||||
}
|
||||
}
|
||||
return openNewActivityIds;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新循环活动
|
||||
* @param user 玩家
|
||||
* @param activity 活动
|
||||
* @param builder 返回roto
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public void refreshCycleActivity(User user, SGlobalActivity activity, PlayerInfoProto.ActivityUpateIndication.Builder builder) throws Exception {
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
int activityId = activity.getId();
|
||||
long now = TimeUtils.now();
|
||||
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), 0, 1, activity.getCycleMinute());
|
||||
long endTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), 0, 2, activity.getCycleMinute());
|
||||
// 当前期活动未开始
|
||||
if (now < startTime || now > endTime) {
|
||||
return;
|
||||
}
|
||||
ActivityMission mission = activityManager.getActivityMissionMap().get(activityId);
|
||||
// 活动存在,(当前时间大于最近的结束时间 或 活动创建时间大于最近得开启时间),表示当期活动结束
|
||||
if (mission.getCreatTime() < startTime){
|
||||
goRewardActivity(user, activityId, builder, true);
|
||||
checkStateAndInitFromActivity(user, activityId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化活动并校验活动状态是否开启
|
||||
* @return true 未开启, false 开启
|
||||
*/
|
||||
private boolean checkStateAndInitFromActivity(User user, int activityId) throws Exception {
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
initAllActivityMission(activityManager.getActivityMissionMap(),activityId);
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId);
|
||||
if (null == abstractActivity) {
|
||||
return true;
|
||||
}
|
||||
abstractActivity.initActivity(user);
|
||||
int activityOpenState = getActivityOpenState(user, activityId);
|
||||
abstractActivity.setOpenState(user,activityOpenState);
|
||||
return activityOpenState == ActivityType.UNOPEN_STATE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 活动结束,(存在发奖操作,看配置)删除活动
|
||||
*/
|
||||
private static void goRewardActivity(User user,int activityId,PlayerInfoProto.ActivityUpateIndication.Builder builder,boolean isRemoveInfo) throws Exception {
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
if (activityMission != null) {
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId);
|
||||
if (null==abstractActivity) {
|
||||
return;
|
||||
}
|
||||
if(activityMission.getOpenType()!=ActivityType.CLOSE_STATE){
|
||||
abstractActivity.onActivityEndSelfWithDealReward(user);
|
||||
abstractActivity.setOpenState(user,ActivityType.CLOSE_STATE);
|
||||
Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),activityId,ActivityType.CLOSE_STATE));
|
||||
}
|
||||
|
||||
if(isRemoveInfo){
|
||||
user.getActivityManager().getActivityMissionMap().remove(activityId);
|
||||
LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId);
|
||||
if (builder != null) {
|
||||
builder.addCloseActivityId(activityId);
|
||||
}
|
||||
if (activityMission == null) {
|
||||
return;
|
||||
}
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId);
|
||||
if (null == abstractActivity) {
|
||||
return;
|
||||
}
|
||||
if(activityMission.getOpenType() != ActivityType.CLOSE_STATE){
|
||||
abstractActivity.onActivityEndSelfWithDealReward(user);
|
||||
abstractActivity.setOpenState(user,ActivityType.CLOSE_STATE);
|
||||
Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),activityId,ActivityType.CLOSE_STATE));
|
||||
}
|
||||
if(isRemoveInfo){
|
||||
user.getActivityManager().getActivityMissionMap().remove(activityId);
|
||||
LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId);
|
||||
if (builder != null) {
|
||||
builder.addCloseActivityId(activityId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -577,15 +594,16 @@ public class ActivityLogic implements IEventHandler{
|
|||
if(sGlobalActivity == null){
|
||||
continue;
|
||||
}
|
||||
///旧版积天豪礼数据兼容
|
||||
if (sGlobalActivity.getType()==ActivityType.RECHARGE_SUM_DAY){
|
||||
if (activityMissionMap.get(activityId).getV()<=0||activityMissionMap.get(activityId).getV()>=15) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
long startTimeLong = sGlobalActivity.getStartTimeLong();
|
||||
long endTimeLong = sGlobalActivity.getEndTimeLong();
|
||||
int timeType = sGlobalActivity.getTime();
|
||||
int type = sGlobalActivity.getType();
|
||||
int gapTime = sGlobalActivity.getGapTime();
|
||||
int cycleMinute = sGlobalActivity.getCycleMinute();
|
||||
|
||||
if(activityStatus == ActivityType.CLOSE_STATE){
|
||||
long prepareTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, sGlobalActivity.getGapTime());
|
||||
long prepareTime = ToolsUtil.getEndTimeLong(startTimeLong, endTimeLong, timeType,0, gapTime, cycleMinute);
|
||||
activityInfoList.add(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).setEndTime((int)(prepareTime/1000)).build());
|
||||
continue;
|
||||
}
|
||||
|
|
@ -609,24 +627,22 @@ public class ActivityLogic implements IEventHandler{
|
|||
if (sGlobalActivity.getIsSaving()==0 && activityStatus != ActivityType.OPEN_STATE) {
|
||||
continue;
|
||||
}
|
||||
int startTime,endTime;
|
||||
if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){
|
||||
startTime=(int)(activityState.getValue().getCreatTime()/1000);
|
||||
int startTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 1, cycleMinute) / 1000);
|
||||
int endTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 2, cycleMinute) / 1000);
|
||||
|
||||
if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ // 每日特惠活动
|
||||
startTime = (int)(activityState.getValue().getCreatTime()/1000);
|
||||
endTime = startTime+604800;
|
||||
}else{
|
||||
startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000);
|
||||
if(sGlobalActivity.getGapTime()!=0){
|
||||
endTime = (int) (ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, sGlobalActivity.getGapTime()) / 1000);
|
||||
}else{
|
||||
endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);
|
||||
}
|
||||
}
|
||||
else{
|
||||
endTime = endTime + (int) (TimeUtils.DAY * gapTime / 1000);
|
||||
}
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(sGlobalActivity.getId());
|
||||
if(abstractActivity==null){
|
||||
LOGGER.error(sGlobalActivity.getId()+":活动类型不存在");
|
||||
continue;
|
||||
}
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missionInfos =abstractActivity.getAllMissInfo(user,activityMission);
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missionInfos = abstractActivity.getAllMissInfo(user,activityMission);
|
||||
CommonProto.ActivityInfo build = CommonProto.ActivityInfo.newBuilder()
|
||||
.setActivityId(activityId)
|
||||
.addAllMission(missionInfos)
|
||||
|
|
@ -799,8 +815,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, sGlobalActivity.getCycleMinute()) / 1000);
|
||||
int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2, sGlobalActivity.getCycleMinute()) / 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());
|
||||
|
|
@ -1401,9 +1417,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, v.getCycleMinute());
|
||||
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, v.getCycleMinute()) > TimeUtils.now());
|
||||
List<SGlobalActivity> collect = stream.collect(Collectors.toList());
|
||||
if(collect.isEmpty()){
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
|
|
@ -1413,7 +1429,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, sGlobalActivity.getCycleMinute());
|
||||
PlayerInfoProto.NextActivityResponse response = PlayerInfoProto.NextActivityResponse.newBuilder().setId(id).setTime((int)(startTime/1000)).build();
|
||||
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
|
|
@ -1577,13 +1593,9 @@ public class ActivityLogic implements IEventHandler{
|
|||
|
||||
public static long[] getStartAndEndTime(User user,int 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];
|
||||
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(),user.getPlayerInfoManager().getCreateTime(), 1, sGlobalActivity.getCycleMinute());
|
||||
result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, sGlobalActivity.getCycleMinute());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -1690,16 +1702,16 @@ public class ActivityLogic implements IEventHandler{
|
|||
*/
|
||||
private CommonProto.Drop.Builder getDrawReward(User user,int activityId,int num,int[][] reward) throws Exception {
|
||||
if (num == 1){
|
||||
return getDrawRewardOne(user,activityId,num,reward);
|
||||
return getDrawRewardOne(user, activityId, reward);
|
||||
}else {
|
||||
return getDrawRewardTen(user,activityId,num,reward);
|
||||
return getDrawRewardTen(user, activityId, reward);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 心愿 获取奖励
|
||||
*/
|
||||
private CommonProto.Drop.Builder getDrawRewardOne(User user,int activityId,int num,int[][] reward) throws Exception {
|
||||
private CommonProto.Drop.Builder getDrawRewardOne(User user, int activityId, int[][] reward) throws Exception {
|
||||
// 活动信息
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
// up奖励id
|
||||
|
|
@ -1750,7 +1762,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
/**
|
||||
* 心愿 获取奖励
|
||||
*/
|
||||
private CommonProto.Drop.Builder getDrawRewardTen(User user,int activityId,int num,int[][] reward) throws Exception {
|
||||
private CommonProto.Drop.Builder getDrawRewardTen(User user, int activityId, int[][] reward) throws Exception {
|
||||
// 活动信息
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
// up奖励id
|
||||
|
|
@ -1799,9 +1811,6 @@ public class ActivityLogic implements IEventHandler{
|
|||
|
||||
/**
|
||||
* 奇门遁甲抽奖
|
||||
* @param user
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public ActivityProto.qiMenDunJiaDrawResponse qiMenDunJiaDraw(User user,int activityId,int num) throws Exception {
|
||||
// 道具消耗
|
||||
|
|
@ -1829,8 +1838,6 @@ public class ActivityLogic implements IEventHandler{
|
|||
|
||||
/**
|
||||
* 奇门遁甲消耗
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
private void qiMenConsume(User user,int count) throws Exception {
|
||||
// 获取抽奖消耗配置
|
||||
|
|
@ -1910,22 +1917,17 @@ public class ActivityLogic implements IEventHandler{
|
|||
|
||||
/**
|
||||
* 零点刷新灵兽限时抽卡活动
|
||||
* @param session
|
||||
* @throws Exception
|
||||
*/
|
||||
public void zeroResetSpecialMonsterActivity(ISession session) throws Exception {
|
||||
AbstractActivity activity = ActivityTypeEnum.getActicityById(14501);
|
||||
if (activity != null){
|
||||
activity.takeAllReward(session);
|
||||
}
|
||||
}
|
||||
// public void zeroResetSpecialMonsterActivity(ISession session) throws Exception {
|
||||
// AbstractActivity activity = ActivityTypeEnum.getActicityById(14501);
|
||||
// if (activity != null){
|
||||
// activity.takeAllReward(session);
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 根据活动类型获取活动id
|
||||
* 只支持同时同时存在一个活动的类型
|
||||
* @param user
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
public int getActivityByTypeToFirst(User user, int type){
|
||||
List<SGlobalActivity> activities = SGlobalActivity.getsGlobalActivityMapByType(type);
|
||||
|
|
@ -1944,9 +1946,6 @@ public class ActivityLogic implements IEventHandler{
|
|||
|
||||
/**
|
||||
* 获取新加入的心愿英雄
|
||||
*
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
public Set<Integer> getDesireOpenHeroList(User user) {
|
||||
// 开服时间戳
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ public interface ActivityType {
|
|||
int OPEN_TYPE_TIME = 1; // 活动开启类型:绝对时间
|
||||
int OPEN_TYPE_ROLE = 2; // 活动开启类型:创角时间
|
||||
int OPEN_TYPE_SERVER = 3; // 活动开启类型:开服时间
|
||||
|
||||
int OPEN_TYPE_MONTHS = 5 ; // 活动开启类型:开服自然月
|
||||
int OPEN_TYPE_MONTHS = 5; // 活动开启类型:开服自然月
|
||||
int OPEN_TYPE_CYCLE = 6; // 活动开启类型:循环活动
|
||||
|
||||
|
||||
int WILL_TAKE = 0; //未领取
|
||||
|
|
|
|||
|
|
@ -1,10 +1,20 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
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.util.ItemUtil;
|
||||
import config.SComposeActivity;
|
||||
import config.SComposeBook;
|
||||
import manager.STableManager;
|
||||
import rpc.protocols.CommonProto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -16,21 +26,58 @@ public class EquipUpLevelActivity extends AbstractActivity {
|
|||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
ActivityMission mission = new ActivityMission();
|
||||
Map<Integer, Map<Integer,SComposeActivity>> configMap = SComposeActivity.getConfigMap();
|
||||
Map<Integer,Integer> useTypeMap = new HashMap<>();
|
||||
for(Map.Entry<Integer,SComposeActivity> entry : configMap.get(id).entrySet()){
|
||||
useTypeMap.put(entry.getValue().getId(),entry.getValue().getCount());
|
||||
}
|
||||
for(Map.Entry<Integer,Integer> entry : useTypeMap.entrySet()){
|
||||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||
Map<Integer, SComposeActivity> composeActivityMap = SComposeActivity.getConfigMap().get(id);
|
||||
for (SComposeActivity composeActivity : composeActivityMap.values()) {
|
||||
ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo();
|
||||
activityProgressInfo.setProgrss(entry.getValue());
|
||||
activityProgressInfo.setProgrss(composeActivity.getCount());
|
||||
activityProgressInfo.setState(0);
|
||||
mission.getActivityMissionMap().put(entry.getKey(), activityProgressInfo);
|
||||
mission.getActivityMissionMap().put(composeActivity.getId(), activityProgressInfo);
|
||||
}
|
||||
mission.setOpenType(1);
|
||||
mission.setV(0);
|
||||
mission.setActivityState(ActivityType.OPEN_STATE);
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
LOGGER.info("云游商人初始化...uid={} activityId={}",user.getId(), id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 领取奖励
|
||||
* @param session 玩家缓存
|
||||
* @param equipId 装备id
|
||||
* @return 道具
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public CommonProto.Drop.Builder takeReward2(ISession session, int equipId) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
Map<Integer, SComposeBook> config = STableManager.getConfig(SComposeBook.class);
|
||||
SComposeBook composeBook = config.get(equipId);
|
||||
if(composeBook == null){
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL,"云游商人,idkey配置不存在:"+equipId);
|
||||
}
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if(mission == null){
|
||||
LOGGER.error("misson为空,activityId:{}",id);
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
Map<Integer, SComposeActivity> integerSComposeActivityMap = SComposeActivity.getConfigMap().get(id);
|
||||
int typeId = integerSComposeActivityMap.get(composeBook.getType()).getId();
|
||||
ActivityProgressInfo progress = mission.getActivityMissionMap().get(typeId);
|
||||
if(progress == null){
|
||||
LOGGER.error("progress为空,type:{}",composeBook.getType());
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
if(progress.getProgrss() <= 0){
|
||||
LOGGER.error("progress次数不足,num:{}",progress.getProgrss());
|
||||
throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT);
|
||||
}
|
||||
boolean itemCost = ItemUtil.itemCost(user, new int[][]{composeBook.getNeedItems()[0],composeBook.getNeedCost()[0]}, BIReason.EQUIP_UPLEVEL_COST, equipId);
|
||||
if(!itemCost){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
progress.setProgrss(progress.getProgrss()-1);
|
||||
mission.getActivityMissionMap().put(typeId,progress);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{composeBook.getGoalItems()[0]},BIReason.EQUIP_UPLEVEL_REWARD);
|
||||
//发推送
|
||||
sendActivityProgress(user, null);
|
||||
return drop;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public class FifteenActivity extends AbstractActivity {
|
|||
}
|
||||
long startTime = ToolsUtil.getTimeLong
|
||||
(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),
|
||||
user.getPlayerInfoManager().getCreateTime(), 1);
|
||||
user.getPlayerInfoManager().getCreateTime(), 1, globalActivity.getCycleMinute());
|
||||
int st = (int)(startTime/1000);
|
||||
for(Map.Entry<Integer,ActivityProgressInfo> entry : user.getActivityManager().getActivityMissionMap().
|
||||
get(globalActivity.getId()).getActivityMissionMap().entrySet()){
|
||||
|
|
|
|||
|
|
@ -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, sGlobalActivity.getCycleMinute());
|
||||
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, sGlobalActivity.getCycleMinute());
|
||||
for (int shopId : sGlobalActivity.getShopId()) {
|
||||
ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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, sGlobalActivity.getCycleMinute());
|
||||
user.getPlayerInfoManager().addVipByTime(155,(int)(endTime/1000));
|
||||
Set<Integer> vipInfo = new HashSet<>();
|
||||
vipInfo.add(155);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
|||
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.util.ToolsUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
import util.TimeUtils;
|
||||
|
|
@ -22,12 +23,10 @@ public class NewEightActivity extends AbstractActivity {
|
|||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
SGlobalActivity globalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (globalActivity.getTime()==1){
|
||||
return TimeUtils.getOverTimeCount(globalActivity.getStartTimeLong(), System.currentTimeMillis(), 0) >= sActivityRewardConfig.getValues()[0][0] - 1;
|
||||
}else if (globalActivity.getTime()==2){
|
||||
return TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(), System.currentTimeMillis(), 0) >= sActivityRewardConfig.getValues()[0][0] - 1;
|
||||
}
|
||||
return true;
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
long now = TimeUtils.now();
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), createTime, 1, activity.getCycleMinute());
|
||||
return TimeUtils.getOverTimeCount(startTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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, activity.getCycleMinute());
|
||||
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, activity.getCycleMinute());
|
||||
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, activity.getCycleMinute())/1000);
|
||||
return endTime-TimeUtils.nowInt();
|
||||
}
|
||||
|
||||
|
|
@ -250,7 +250,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
|
|||
backRankType = chongRankInfo.getBackRankType();
|
||||
AbstractRank backRank = RankContext.getRankEnum(backRankType);
|
||||
Set<ZSetOperations.TypedTuple<String>> backRankInfo = backRank.getRankByKey("", 0, -1);
|
||||
if (backRankInfo != null && backRankInfo.size() > 0){
|
||||
if (backRankInfo != null && !backRankInfo.isEmpty()){
|
||||
LOGGER.info("冲榜备份结束,备份数据已存在,活动id:{},排行榜类型:{},排行榜数量:{}",id,backRankType,backRankInfo.size());
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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, sGlobalActivity.getCycleMinute());
|
||||
int time = (int)(endTime / 1000);
|
||||
listValue.forEach(privilegeId -> {
|
||||
changedSet.add(privilegeId);
|
||||
|
|
|
|||
|
|
@ -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, sGlobalActivity.getCycleMinute());
|
||||
user.getActivityManager().setSenvenStartTime(startTime);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,6 +47,9 @@ public class SubActivity extends AbstractActivity {
|
|||
if(null!=subRewardPoolInfo){
|
||||
subRewardPoolInfo.setLay(0);
|
||||
}
|
||||
ActivityMission mission = new ActivityMission();
|
||||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
randomReward(user, true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import com.ljsd.jieling.logic.store.BuyGoodsNewLogic;
|
|||
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag;
|
||||
import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.SGlobalActivity;
|
||||
import config.SRechargeCommodityNewConfig;
|
||||
import config.SSurpriseBox;
|
||||
|
|
@ -161,16 +162,18 @@ public class SuperBoxActivity extends AbstractActivity {
|
|||
|
||||
@Override
|
||||
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(User user,ActivityMission activityMission, Set<Integer> filter) {
|
||||
long now = TimeUtils.now();
|
||||
long start = getSrartTime();
|
||||
long end = getEndTime();
|
||||
// 验证活动是否开启
|
||||
if (now < start || now > end){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
if (activityMission == null){
|
||||
LOGGER.error("活动不存在数据库中,id:{},uid:{}",id,user.getId());
|
||||
return new ArrayList<>();
|
||||
}
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (activity == null){
|
||||
LOGGER.error("活动不存在数据表中,id:{}",id);
|
||||
return new ArrayList<>();
|
||||
}
|
||||
long now = TimeUtils.now();
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute());
|
||||
// 更新记录天数
|
||||
activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1);
|
||||
// 库里存储的活动档位信息
|
||||
|
|
@ -229,46 +232,6 @@ public class SuperBoxActivity extends AbstractActivity {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
* @return
|
||||
*/
|
||||
public long getSrartTime(){
|
||||
long startTime = 0;
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
// 绝对时间
|
||||
if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){
|
||||
startTime = activity.getStartTimeLong();
|
||||
}
|
||||
// 开服时间
|
||||
else if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) {
|
||||
String openTime = GameApplication.serverConfig.getOpenTime();
|
||||
long timeLong2 = TimeUtils.stringToTimeLong2(openTime);
|
||||
startTime = timeLong2 + activity.getStartTimeLong() * 1000;
|
||||
}
|
||||
return startTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
* @return
|
||||
*/
|
||||
public long getEndTime(){
|
||||
long endTime = 0;
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
// 绝对时间
|
||||
if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){
|
||||
endTime = activity.getEndTimeLong();
|
||||
}
|
||||
// 开服时间
|
||||
else if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) {
|
||||
String openTime = GameApplication.serverConfig.getOpenTime();
|
||||
long timeLong2 = TimeUtils.stringToTimeLong2(openTime);
|
||||
endTime = timeLong2 + activity.getEndTimeLong() * 1000;
|
||||
}
|
||||
return endTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证前置礼包购买状态
|
||||
* @param user
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import com.ljsd.jieling.logic.dao.UserManager;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.*;
|
||||
import manager.STableManager;
|
||||
import util.TimeUtils;
|
||||
|
|
@ -37,6 +38,8 @@ public class WeekCardActivity extends AbstractActivity {
|
|||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
|
||||
// 刷新礼包信息
|
||||
// refreshGood(user);
|
||||
// 初始化礼包信息
|
||||
user.getPlayerInfoManager().setWeekCard(new HashMap<>());
|
||||
LOGGER.info("月卡初始化...uid={} activityId={}",user.getId(), id);
|
||||
|
|
@ -66,21 +69,42 @@ public class WeekCardActivity extends AbstractActivity {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新礼包信息
|
||||
*/
|
||||
// private void refreshGood(User user){
|
||||
// SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
// if (activity == null){
|
||||
// return;
|
||||
// }
|
||||
// int[] canBuyRechargeId = activity.getCanBuyRechargeId();
|
||||
// if (canBuyRechargeId == null || canBuyRechargeId.length <= 0){
|
||||
// return;
|
||||
// }
|
||||
// Map<Integer, AbstractWelfareBag> receiveMap = user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap();
|
||||
// for (int goodId : canBuyRechargeId) {
|
||||
// AbstractWelfareBag bag = receiveMap.get(goodId);
|
||||
// if (bag == null){
|
||||
// LOGGER.error("礼包刷新结束,礼包不存在,活动id:{},礼包id:{}",id, canBuyRechargeId[0]);
|
||||
// continue;
|
||||
// }
|
||||
// PerpetualWelfareBag welfareBag = (PerpetualWelfareBag) bag;
|
||||
// welfareBag.refresh();
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 封装周卡信息
|
||||
* @param cardId
|
||||
* @param activityId
|
||||
* @param valueMap
|
||||
* @return
|
||||
*/
|
||||
private Map<Integer,Integer> packagingWeekCardMap(User user, int activityId, int cardId, Map<Integer,Integer> valueMap){
|
||||
HashMap<Integer, Integer> result = new HashMap<>();
|
||||
Map<Integer, SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
|
||||
|
||||
SWeekcardConfig sWeekcardConfig = config.get(cardId);
|
||||
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
// 计算间隔时间
|
||||
long startTimeLong = WeekCardLogic.getInstance().getStartTime(user, activityId);
|
||||
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute());
|
||||
int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now()) + 1;
|
||||
|
||||
for (int[] ints : sWeekcardConfig.getBaseRewardID()) {
|
||||
|
|
@ -111,8 +135,11 @@ public class WeekCardActivity extends AbstractActivity {
|
|||
Map<Integer, Map<Integer, Integer>> weekCard = user.getPlayerInfoManager().getWeekCard();
|
||||
Map<Integer, SWeekRewardConfig> rewardConfigMap = STableManager.getConfig(SWeekRewardConfig.class);
|
||||
Map<Integer, SWeekcardConfig> configMap = STableManager.getConfig(SWeekcardConfig.class);
|
||||
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
// 计算间隔时间
|
||||
long startTimeLong = WeekCardLogic.getInstance().getStartTime(user,id);
|
||||
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute());
|
||||
int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1;
|
||||
for (Map.Entry<Integer, Map<Integer, Integer>> entry : weekCard.entrySet()) {
|
||||
|
||||
|
|
@ -151,7 +178,7 @@ public class WeekCardActivity extends AbstractActivity {
|
|||
}
|
||||
weekCard.put(weekCardId,value);
|
||||
}
|
||||
if (itemArrs.size() == 0) {
|
||||
if (itemArrs.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 更新数据
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import com.ljsd.jieling.logic.activity.event.Poster;
|
|||
import com.ljsd.jieling.logic.activity.event.XunBaoMiZongEvent;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
||||
public class XunBaoMiZongActivity extends AbstractActivity {
|
||||
public class XunBaoMiZongActivity extends DefaultEmptyActivity {
|
||||
|
||||
public XunBaoMiZongActivity(int id) {
|
||||
super(id);
|
||||
|
|
|
|||
|
|
@ -1,23 +1,16 @@
|
|||
package com.ljsd.jieling.logic.activity.activityLogic;
|
||||
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.store.newRechargeInfo.RechargeType;
|
||||
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag;
|
||||
import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler;
|
||||
import com.ljsd.jieling.network.server.SessionManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.SGlobalActivity;
|
||||
import config.SRechargeCommodityNewConfig;
|
||||
import config.SWeekRewardConfig;
|
||||
import config.SWeekcardConfig;
|
||||
import manager.STableManager;
|
||||
|
|
@ -43,37 +36,8 @@ public class WeekCardLogic {
|
|||
public final static WeekCardLogic instance = new WeekCardLogic();
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
* @return
|
||||
*/
|
||||
public long getStartTime(User user, int id){
|
||||
long startTime = 0;
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
// 绝对时间
|
||||
if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){
|
||||
startTime = activity.getStartTimeLong();
|
||||
}
|
||||
// 开服时间
|
||||
if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) {
|
||||
String openTime = GameApplication.serverConfig.getOpenTime();
|
||||
long timeLong2 = TimeUtils.stringToTimeLong2(openTime);
|
||||
startTime = timeLong2 + activity.getStartTimeLong() * 1000;
|
||||
}
|
||||
// 创角时间
|
||||
if (activity.getTime() == ActivityType.OPEN_TYPE_ROLE) {
|
||||
long timeLong2 = user.getPlayerInfoManager().getCreateTime();
|
||||
startTime = timeLong2 + activity.getStartTimeLong() * 1000;
|
||||
}
|
||||
return startTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 封装周卡信息
|
||||
* @param cardId
|
||||
* @param activityId
|
||||
* @param valueMap
|
||||
* @return
|
||||
*/
|
||||
private CommonProto.WeekCardInfo packagingWeekCardBuilder(User user, int activityId, int cardId, Map<Integer,Integer> valueMap){
|
||||
Map<Integer, SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
|
||||
|
|
@ -84,9 +48,13 @@ public class WeekCardLogic {
|
|||
SWeekcardConfig sWeekcardConfig = config.get(cardId);
|
||||
ArrayList<CommonProto.WeekCardDay> list1 = new ArrayList<>();
|
||||
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
// 计算间隔时间
|
||||
long startTimeLong = getStartTime(user, activityId);
|
||||
int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1;
|
||||
long now = TimeUtils.now();
|
||||
long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute());
|
||||
|
||||
int days = TimeUtils.differentDays(startTimeLong, now)+1;
|
||||
|
||||
for (int[] ints : sWeekcardConfig.getBaseRewardID()) {
|
||||
int day = ints[0];
|
||||
|
|
@ -111,8 +79,6 @@ public class WeekCardLogic {
|
|||
|
||||
/**
|
||||
* 查询周卡信息
|
||||
* @param user
|
||||
* @param activtiyId
|
||||
*/
|
||||
public void queryWeekCardInfo(User user, int activtiyId){
|
||||
ArrayList<CommonProto.WeekCardInfo> list = new ArrayList<>();
|
||||
|
|
@ -127,9 +93,6 @@ public class WeekCardLogic {
|
|||
|
||||
/**
|
||||
* 领取周卡奖励
|
||||
* @param user
|
||||
* @param proto
|
||||
* @throws Exception
|
||||
*/
|
||||
public void getWeekCardReward(User user, PlayerInfoProto.GetWeekCardRewardRequest proto) throws Exception {
|
||||
Map<Integer, Integer> map = user.getPlayerInfoManager().getWeekCard().get(proto.getWeekcardId());
|
||||
|
|
@ -170,9 +133,6 @@ public class WeekCardLogic {
|
|||
|
||||
/**
|
||||
* 推送
|
||||
* @param user
|
||||
* @param weekCardId
|
||||
* @param activityId
|
||||
*/
|
||||
public void weekCardInfoIndication(User user, int weekCardId, int activityId){
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
|
|
|
|||
|
|
@ -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, sGlobalActivity.getCycleMinute());
|
||||
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, sGlobalActivity.getCycleMinute());
|
||||
for (int shopId : sGlobalActivity.getShopId()) {
|
||||
ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ public class HeroLogic {
|
|||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(sLotterySetting.getActivityId());
|
||||
long endTimeLong = ToolsUtil.getEndTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), user.getPlayerInfoManager().getCreateTime(), activity.getGapTime());
|
||||
long endTimeLong = ToolsUtil.getEndTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), user.getPlayerInfoManager().getCreateTime(), activity.getGapTime(), activity.getCycleMinute());
|
||||
if (endTimeLong != 0 && TimeUtils.now() > endTimeLong) {
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
|||
import com.ljsd.jieling.ktbeans.ReportUtil;
|
||||
import com.ljsd.jieling.logic.activity.AbstractActivity;
|
||||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.activity.EquipUpLevelActivity;
|
||||
import com.ljsd.jieling.logic.activity.event.EspecialEquipUpEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
|
||||
|
|
@ -938,47 +939,17 @@ public class ItemLogic {
|
|||
/**
|
||||
*装备升星(云游商人)
|
||||
*/
|
||||
public void equipUpLevel(ISession session, int activityId,int equipId,int itemId,int itemNum,MessageTypeProto.MessageType messageType) throws Exception{
|
||||
public void equipUpLevel(ISession session, int activityId, int equipId) throws Exception{
|
||||
PlayerInfoProto.EquipUpLevelResponse.Builder response = PlayerInfoProto.EquipUpLevelResponse.newBuilder();
|
||||
response.setResult(false);
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
Map<Integer, SComposeBook> config = STableManager.getConfig(SComposeBook.class);
|
||||
SComposeBook composeBook = config.get(equipId);
|
||||
if(composeBook == null){
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL,"云游商人,idkey配置不存在:"+equipId);
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityById(activityId);
|
||||
if (abstractActivity == null){
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN,"云游商人,活动不存在:"+activityId);
|
||||
}
|
||||
ActivityMission misson = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
if(misson == null){
|
||||
LOGGER.error("misson为空,activityId:{}",activityId);
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
Map<Integer, SComposeActivity> integerSComposeActivityMap = SComposeActivity.getConfigMap().get(activityId);
|
||||
int typeId = integerSComposeActivityMap.get(composeBook.getType()).getId();
|
||||
ActivityProgressInfo progress = misson.getActivityMissionMap().get(typeId);
|
||||
if(progress == null){
|
||||
LOGGER.error("progress为空,type:{}",composeBook.getType());
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
if(progress.getProgrss() <= 0){
|
||||
LOGGER.error("progress次数不足,num:{}",progress.getProgrss());
|
||||
throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT);
|
||||
}
|
||||
boolean itemCost = ItemUtil.itemCost(user, new int[][]{composeBook.getNeedItems()[0],composeBook.getNeedCost()[0]}, BIReason.EQUIP_UPLEVEL_COST, equipId);
|
||||
if(!itemCost){
|
||||
LOGGER.error("item不足,equipId:{},itemId:{},itemNum:{}",equipId,itemId,itemNum);
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
progress.setProgrss(progress.getProgrss()-1);
|
||||
user.getActivityManager().getActivityMissionMap().put(activityId,misson);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{composeBook.getGoalItems()[0]},BIReason.EQUIP_UPLEVEL_REWARD);
|
||||
EquipUpLevelActivity activity = (EquipUpLevelActivity) abstractActivity;
|
||||
CommonProto.Drop.Builder drop = activity.takeReward2(session, equipId);
|
||||
response.setResult(true);
|
||||
response.setDrop(drop);
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||
//发推送
|
||||
AbstractActivity acticityType = ActivityTypeEnum.getActicityById(activityId);
|
||||
if(acticityType!=null){
|
||||
acticityType.sendActivityProgress(session, null);
|
||||
}
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.EQUIP_UPLEVEL_RESPONSE.getNumber(),response.build(),true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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, sGlobalActivity.getCycleMinute());
|
||||
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2, sGlobalActivity.getCycleMinute());
|
||||
if(TimeUtils.now()>endTime){
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1326,8 +1326,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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -799,10 +799,10 @@ public class CBean2Proto {
|
|||
if (friendManager != null){
|
||||
Map<Integer, Integer> giveMap =friendManager.getGiveMap();
|
||||
Map<Integer, Integer> haveRewardMap = friendManager.getHaveRewardMap();
|
||||
if (giveMap.size() != 0 && giveMap.containsKey(friendId)){
|
||||
if (!giveMap.isEmpty() && giveMap.containsKey(friendId)){
|
||||
isGrive = giveMap.get(friendId);
|
||||
}
|
||||
if (haveRewardMap.size() != 0 && giveMap.containsKey(friendId) && haveRewardMap.containsKey(friendId)){
|
||||
if (!haveRewardMap.isEmpty() && giveMap.containsKey(friendId) && haveRewardMap.containsKey(friendId)){
|
||||
haveReward = haveRewardMap.get(friendId) ==2?0:haveRewardMap.get(friendId);
|
||||
}
|
||||
if(friendManager.getMyApplyFriends().contains(friendId)){
|
||||
|
|
|
|||
|
|
@ -2,53 +2,88 @@ package com.ljsd.jieling.util;
|
|||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.*;
|
||||
|
||||
public class ToolsUtil {
|
||||
|
||||
public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type){
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ToolsUtil.class);
|
||||
/**
|
||||
* 根据不同类型获取活动时间
|
||||
*
|
||||
* @param cycleTime 循环时间
|
||||
* @param startTimeLong 表里面得开始时间
|
||||
* @param endTimeLong 表里面得结束时间
|
||||
* @param time 时间类型
|
||||
* @param createUserTime 创角时间
|
||||
* @param type 1 开始时间, 2 结束时间
|
||||
* @param cycleTime
|
||||
* @return 时间
|
||||
*/
|
||||
public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type, int cycleTime){
|
||||
long baseTime = startTimeLong;
|
||||
if(type == 2){
|
||||
baseTime = endTimeLong;
|
||||
}
|
||||
long startTime=0;
|
||||
long resultTime=0;
|
||||
switch (time){
|
||||
case ActivityType.OPEN_TYPE_TIME:
|
||||
startTime = baseTime;
|
||||
case ActivityType.OPEN_TYPE_TIME://绝对时间
|
||||
resultTime = baseTime;
|
||||
break;
|
||||
case ActivityType.OPEN_TYPE_ROLE:
|
||||
startTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000;
|
||||
case ActivityType.OPEN_TYPE_ROLE://创角时间
|
||||
resultTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000;
|
||||
break;
|
||||
case ActivityType.OPEN_TYPE_SERVER:
|
||||
case ActivityType.OPEN_TYPE_SERVER://开服时间
|
||||
long serverOpenTime = GameApplication.serverConfig.getCacheOpenTime();
|
||||
startTime = serverOpenTime + baseTime*1000;
|
||||
resultTime = serverOpenTime + baseTime * 1000;
|
||||
break;
|
||||
case ActivityType.OPEN_TYPE_MONTHS:
|
||||
if(type == 1){
|
||||
if(baseTime == 1){//第一个月
|
||||
startTime = GameApplication.serverConfig.getCacheOpenTime();
|
||||
resultTime = GameApplication.serverConfig.getCacheOpenTime();
|
||||
}else{
|
||||
startTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime-1);
|
||||
resultTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime-1);
|
||||
}
|
||||
}
|
||||
if(type == 2){
|
||||
if(baseTime ==1){
|
||||
startTime = TimeUtils.getMonthEndTime(GameApplication.serverConfig.getCacheOpenTime());
|
||||
resultTime = TimeUtils.getMonthEndTime(GameApplication.serverConfig.getCacheOpenTime());
|
||||
}else{
|
||||
startTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime);
|
||||
resultTime = TimeUtils.getMonthStartTime(GameApplication.serverConfig.getCacheOpenTime(),1,(int)baseTime);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ActivityType.OPEN_TYPE_CYCLE://循环活动
|
||||
long now = TimeUtils.now();
|
||||
// 循环时间
|
||||
long cycleTimeMils = cycleTime * TimeUtils.ONE_MINUTE;
|
||||
// 最近的开始时间
|
||||
long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, cycleTimeMils, now);
|
||||
if (type == 1){
|
||||
resultTime = latelyStartTime;
|
||||
}else {
|
||||
// 最近的结束时间
|
||||
resultTime = latelyStartTime + (endTimeLong - startTimeLong);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
// 开始时间
|
||||
if(type == 1){
|
||||
resultTime = startTimeLong;
|
||||
}
|
||||
// 结束时间
|
||||
if(type == 2){
|
||||
resultTime = endTimeLong;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return startTime;
|
||||
return resultTime;
|
||||
}
|
||||
|
||||
public static long getEndTimeLong(long startTimeLong , long endTimeLong,int time,long createUserTime,int dayOut){
|
||||
long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2);
|
||||
public static long getEndTimeLong(long startTimeLong , long endTimeLong, int time, long createUserTime, int dayOut, int cycleTime){
|
||||
long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2, cycleTime);
|
||||
return timeLong + TimeUtils.DAY * dayOut;
|
||||
}
|
||||
|
||||
|
|
@ -93,4 +128,25 @@ public class ToolsUtil {
|
|||
return array2D;
|
||||
}
|
||||
|
||||
/**
|
||||
* map转二维数组
|
||||
*/
|
||||
public static int[][] getTwoArrayInt(Map<Integer, Integer> map) {
|
||||
int[][] object = null;
|
||||
if (map != null && !map.isEmpty()) {
|
||||
int size = map.size();
|
||||
object = new int[size][2];
|
||||
|
||||
Iterator<Map.Entry<Integer, Integer>> iterator = map.entrySet().iterator();
|
||||
for (int i = 0; i < size; i++) {
|
||||
Map.Entry<Integer, Integer> entry = iterator.next();
|
||||
int key = entry.getKey();
|
||||
int value = entry.getValue();
|
||||
object[i][0] = key;
|
||||
object[i][1] = value;
|
||||
}
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,23 +9,25 @@ import java.util.*;
|
|||
@Table(name ="GlobalActivity")
|
||||
public class SGlobalActivity implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
private int id;
|
||||
|
||||
private int type;
|
||||
private int type;
|
||||
|
||||
private String startTime;
|
||||
private String startTime;
|
||||
|
||||
private String endtime;
|
||||
private String endtime;
|
||||
|
||||
private int time;
|
||||
private int time;
|
||||
|
||||
private long startTimeLong;
|
||||
private int cycleMinute;
|
||||
|
||||
private long endTimeLong;
|
||||
private long startTimeLong;
|
||||
|
||||
private static Map<Integer, SGlobalActivity> sGlobalActivityMap;
|
||||
private long endTimeLong;
|
||||
|
||||
private String sesc;
|
||||
private static Map<Integer, SGlobalActivity> sGlobalActivityMap;
|
||||
|
||||
private String sesc;
|
||||
|
||||
private int isSaving;
|
||||
|
||||
|
|
@ -74,7 +76,7 @@ public class SGlobalActivity implements BaseConfig {
|
|||
int time = sGlobalActivity.getTime();
|
||||
String startTime = sGlobalActivity.getStartTime();
|
||||
String endtime = sGlobalActivity.getEndtime();
|
||||
if(time == 1 ){//ActivityType.OPEN_TYPE_TIME
|
||||
if(time == 1 || time == 6){//ActivityType.OPEN_TYPE_TIME
|
||||
if(!"0".equals(startTime)){
|
||||
sGlobalActivity.setStartTimeLong(TimeUtils.parseTimeToMiles(startTime,TimeUtils.Stand_CeHua_Data_format));
|
||||
}
|
||||
|
|
@ -154,22 +156,26 @@ public class SGlobalActivity implements BaseConfig {
|
|||
return id;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getStartTime() {
|
||||
public String getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public String getEndtime() {
|
||||
public String getEndtime() {
|
||||
return endtime;
|
||||
}
|
||||
|
||||
public int getTime() {
|
||||
public int getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public int getCycleMinute() {
|
||||
return cycleMinute;
|
||||
}
|
||||
|
||||
public static List<SGlobalActivity> getsGlobalActivityMapByType(int type) {
|
||||
return sGlobalActivityMapByType.get(type);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue