循环活动

master_ob2
grimm 2024-04-01 18:02:04 +08:00
parent 79852857ee
commit cf5bd2e6be
2 changed files with 19 additions and 53 deletions

View File

@ -1,6 +1,5 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.GameApplication;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.OnlineUserManager;
@ -14,7 +13,11 @@ 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 config.*;
import com.ljsd.jieling.util.ToolsUtil;
import config.SGlobalActivity;
import config.SGoodsConfig;
import config.SRechargeCommodityNewConfig;
import config.SThemeActivityShop;
import manager.STableManager;
import rpc.protocols.CommonProto;
import util.TimeUtils;
@ -49,6 +52,7 @@ public class ContinuousGiftActivity extends AbstractActivity {
// 初始化阶段奖励
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
user.getActivityManager().getActivityMissionMap().put(id, mission);
LOGGER.info("连续礼包活动初始化..."+id);
}
@Override
@ -74,7 +78,7 @@ public class ContinuousGiftActivity extends AbstractActivity {
* @param giftId
* @param missionMap
*/
private void giftHandle(User user, int giftId, int giftNum, int type){
public void giftHandle(User user, int giftId, int giftNum, int type){
if (giftId < 0 || giftNum <= 0){
// 非礼包处理
return;
@ -87,6 +91,7 @@ public class ContinuousGiftActivity extends AbstractActivity {
Collection<SThemeActivityShop> themeShops = SThemeActivityShop.themeMap.getOrDefault(id, new HashMap<>(0)).values();
for (SThemeActivityShop theme : themeShops) {
LOGGER.info("连续礼包活动日志acid:{},uid:{},giftid:{},num:{},themeid:{},themegiftid:{},themetype:{}",id,user.getId(),giftId,giftNum,theme.getId(),theme.getGoodId(),theme.getGoodType());
if (theme.getGoodId() == giftId && theme.getGoodType() == type){
// 记录礼包购买次数
ActivityProgressInfo current = missionMap.getOrDefault(theme.getId(),new ActivityProgressInfo());
@ -94,8 +99,8 @@ public class ContinuousGiftActivity extends AbstractActivity {
// 当前礼包状态处理
if (checkBuyGiftLimit(user,theme.getId(),current.getProgrss())){
current.setState(8);
missionMap.put(theme.getId(),current);
}
missionMap.put(theme.getId(),current);
break;
}
}
@ -171,16 +176,18 @@ public class ContinuousGiftActivity 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);
// 库里存储的活动档位信息
@ -239,53 +246,13 @@ public class ContinuousGiftActivity 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
* @param boxId
* @return
*/
private boolean checkBuyAgo(User user, int boxId){
public boolean checkBuyAgo(User user, int boxId){
// 获取消息
Map<Integer, ActivityProgressInfo> missionMap = user.getActivityManager().getActivityMissionMap().get(id).getActivityMissionMap();
SThemeActivityShop themes = STableManager.getConfig(SThemeActivityShop.class).get(boxId);

View File

@ -1,6 +1,5 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.GameApplication;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;