天天0.1折活动bug修复

grimm 2024-06-10 17:11:45 +08:00
parent 21e7993726
commit 0077a33e52
8 changed files with 67 additions and 24 deletions

View File

@ -33,5 +33,4 @@ public class TakeActivityRewardHandler extends BaseHandler<PlayerInfoProto.TakeA
user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_ACTIVITY_REWARD,activityId);
}
}
}

View File

@ -119,6 +119,23 @@ public class EveryDayDiscountActivity extends AbstractActivity {
mission.getActivityMissionMap().put(packId, storage);
}
}
// 购买礼包
// if (event instanceof SuperBoxEvent) {
// SuperBoxEvent event1 = (SuperBoxEvent) event;
// user = UserManager.getUser(event1.getUserId());
// SEveryDayGift dayGift = SEveryDayGift.activitygiftmap.getOrDefault(id, new HashMap<>()).get(event1.getGiftId());
// if (dayGift == null){
// return;
// }
// ISession session = OnlineUserManager.getSessionByUid(user.getId());
// if (session == null){
// LOGGER.error("天天0.1折扣活动用户未登录活动id{}uid{},耗时:{}",id, user.getId(),TimeUtils.now()-now);
// return;
// }
// takeReward(session, dayGift.getId());
// }
if (user == null) {
LOGGER.error("天天0.1折扣活动未知监听退出:{},耗时:{}",id,TimeUtils.now()-now);
return;
@ -181,11 +198,11 @@ public class EveryDayDiscountActivity extends AbstractActivity {
*
*/
public int[][] makeRandomArray(List<SEveryDayGift> list) {
int[][] result = new int[2][];
int[][] result = new int[list.size()][2];
for (int i = 0; i < list.size(); i++) {
SEveryDayGift dayGift = list.get(i);
result[0][i] = dayGift.getId();
result[1][i] = dayGift.getProbability();
result[i][0] = dayGift.getId();
result[i][1] = dayGift.getProbability();
}
return result;
}
@ -215,6 +232,14 @@ public class EveryDayDiscountActivity extends AbstractActivity {
.build();
missionInfos.add(build);
}
// 可刷新次数
ActivityProgressInfo progressInfo = progressInfoMap.getOrDefault(countProgress, new ActivityProgressInfo());
CommonProto.ActivityInfo.MissionInfo build = CommonProto.ActivityInfo.MissionInfo.newBuilder()
.setMissionId(countProgress)
.setProgress(progressInfo.getProgrss())
.setState(progressInfo.getState())
.build();
missionInfos.add(build);
return missionInfos;
}
@ -250,9 +275,12 @@ public class EveryDayDiscountActivity extends AbstractActivity {
}
list.add(dayGift);
}
if (list.size() <= 0){
throw new ErrorTableException(183);// 档位不存在
}
int[][] randomArray = makeRandomArray(list);
int index = ToolsUtil.getRandomInt(randomArray[1]);
int missId = randomArray[0][index];
int missId = randomArray[index][0];
ActivityProgressInfo info = mission.getActivityMissionMap().get(missId);
// 道具日志记录
int itemID = dayGiftMap.get(missId).getItemID();
@ -290,15 +318,12 @@ public class EveryDayDiscountActivity extends AbstractActivity {
progressInfo.setProgrss(progressInfo.getProgrss() - 1);
// 更新数据库
mission.getActivityMissionMap().put(missionId,progressInfo);
// 协议返回
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().build();
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
}
// 协议返回
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().build();
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
// 状态推送
sendActivityProgress(session, null);
// 打点上报
reportTakeActivityReward(user, new int[][]{}, missionId);
return true;
}

View File

@ -1167,9 +1167,6 @@ public class MissionLoigc {
case FRIEND_APPLY:
count = cumulationData.friendApplyCount;
break;
case LOGIN_TIMES:
count = cumulationData.loginTimesDay.get(missionSubType[0]);
break;
case REARGE_TOTAL:
count = cumulationData.rechargeTotal;
break;

View File

@ -1,13 +1,26 @@
package com.ljsd.jieling.logic.mission.data;
import com.ljsd.jieling.logic.dao.CumulationData;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.MissionType;
public class LoginTimeManager implements BaseDataManager{
public class LoginTimeManager extends AbstractDataManager {
@Override
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
int dayTh = (int) parm[1];
data.loginTimesDay.put(dayTh, data.loginTimesDay.getOrDefault(dayTh,0) + 1);
return new CumulationData.Result(missionType);
}
@Override
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
return getProcess(user, data, cfgValue[0]) >= cfgValue[1][0];
}
@Override
public int getProcess(User user, CumulationData data, int[] missionSubType) {
return data.loginTimesDay.getOrDefault(missionSubType[0], 0);
}
}

View File

@ -19,15 +19,14 @@ import java.util.Map;
public class EveryDayDiscountDataEventProcessor implements BaseGameEventProcessor{
@Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
List<MissionType> typeList = MissionEventDistributor.eventEnumListMap.get(event);
UserMissionManager userMissionManager = user.getUserMissionManager();
EveryDayDiscountType everyDayDiscountType = userMissionManager.getEveryDayDiscountType();
CumulationData cumulationData = userMissionManager.getEveryDayDiscountCumulationData();
List<MissionStateChangeInfo> missionStateChangeInfos = misionTypeListMap.get(GameMisionType.EVERY_DAY_DISCOUNT);
for (MissionType type : typeList) {
CumulationData.Result result = cumulationData.updateData(type, parm);
everyDayDiscountType.calCumulationDataResult(user,result,missionStateChangeInfos,cumulationData);
}
MissionType missionType = (MissionType) parm[0];
CumulationData.Result result = cumulationData.updateData(missionType, parm);
everyDayDiscountType.calCumulationDataResult(user,result,missionStateChangeInfos,cumulationData);
userMissionManager.setEveryDayDiscountType(everyDayDiscountType);
userMissionManager.setEveryDayDiscountCumulationData(cumulationData);
}

View File

@ -86,6 +86,7 @@ public class MissionEventDistributor {
eventProcessor.put(GameEvent.HOME_TASK_UPDATE,new CumulationDataEventProcessor());
// 天天0.1折修改
typeList.clear();
typeList.add(MissionType.LOGIN_TIMES);
typeList.add(MissionType.DAILY_TASK_FINISH);
typeList.add(MissionType.ARENA_CHALLENEGE_NUMS);
@ -410,6 +411,10 @@ public class MissionEventDistributor {
SExploreTask exploreTask = STableManager.getConfig(SExploreTask.class).get(missionStateChangeInfo.getMissionId());
progress = exploreTask.getValues()[1][0];
}
if(gameMisionType == GameMisionType.EVERY_DAY_DISCOUNT){
SEveryDayGiftTask task = SEveryDayGiftTask.map.get(missionStateChangeInfo.getMissionId());
progress = task.getTaskValue()[1][0];
}
if(gameMisionType == GameMisionType.SEVENMISSION){
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionStateChangeInfo.getMissionId());
if(sTreasureTaskConfig.getTaskType() != MissionType.SENVER_HAPPY.getMissionTypeValue()){

View File

@ -29,12 +29,17 @@ public class SEveryDayGift implements BaseConfig {
public static Map<Integer, Map<Integer, SEveryDayGift>> activitymap = new HashMap<>();
public static Map<Integer, Map<Integer, SEveryDayGift>> activitygiftmap = new HashMap<>();
@Override
public void init() throws Exception {
map = STableManager.getConfig(SEveryDayGift.class);
for (SEveryDayGift value : map.values()) {
activitymap.putIfAbsent(value.globalActivity, new HashMap<>());
activitymap.get(value.globalActivity).put(value.id, value);
activitymap.putIfAbsent(value.getGlobalActivity(), new HashMap<>());
activitymap.get(value.getGlobalActivity()).put(value.getId(), value);
activitygiftmap.putIfAbsent(value.getGlobalActivity(), new HashMap<>());
activitygiftmap.get(value.getGlobalActivity()).put(value.getRechargeID(), value);
}
}

View File

@ -33,10 +33,10 @@ public class SEveryDayGiftTask implements BaseConfig {
public void init() throws Exception {
map = STableManager.getConfig(SEveryDayGiftTask.class);
for (SEveryDayGiftTask task : map.values()) {
activitymap.put(task.getGlobalActivity(), new HashMap<>());
activitymap.putIfAbsent(task.getGlobalActivity(), new HashMap<>());
activitymap.get(task.getGlobalActivity()).put(task.getId(), task);
taskmap.put(task.getTaskType(), new HashMap<>());
taskmap.putIfAbsent(task.getTaskType(), new HashMap<>());
taskmap.get(task.getTaskType()).put(task.getId(), task);
}
}