Merge branch 'master' of 60.1.1.230:backend/jieling_server

back_recharge
wangyuan 2019-10-17 13:48:01 +08:00
commit b77dd92777
4 changed files with 178 additions and 183 deletions

View File

@ -16,6 +16,6 @@ public class BlessRefreshHandler extends BaseHandler {
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
ActivityLogic.getInstance().blessRefreshReward(iSession,MessageTypeProto.MessageType.BLESS_REFRESH_RESPONSE);
// ActivityLogic.getInstance().blessRefreshReward(iSession,MessageTypeProto.MessageType.BLESS_REFRESH_RESPONSE);
}
}

View File

@ -205,9 +205,9 @@ public class ActivityLogic {
if (activityMission != null) {
continue;
}
if(!initOtherActivity(user, sGlobalActivity)){
// if(!initOtherActivity(user, sGlobalActivity)){
activityManager.initAllActivityMission(openActivityId);
}
// }
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(openActivityId);
if (null==abstractActivity) {
continue;
@ -268,9 +268,9 @@ public class ActivityLogic {
continue;
}
abstractActivity.initActivity(user);
if(!initOtherActivity(user, sGlobalActivity)){
// if(!initOtherActivity(user, sGlobalActivity)){
activityManager.initAllActivityMission(activityId);
}
// }
openNewActivityIds.add(activityId);
checkNeedOpenStore(user,sGlobalActivity.getShopId(),startTime,endTime);
} else {
@ -296,25 +296,16 @@ public class ActivityLogic {
/**
*
*/
public boolean initOtherActivity(User user, SGlobalActivity sGlobalActivity) throws Exception {
int type = sGlobalActivity.getType();
switch (type) {
case ActivityType.BLESSACTIVITY:
blessInfoInit(user.getActivityManager(), sGlobalActivity.getId());
return true;
case ActivityType.TREASURE:
case ActivityType.LUCKYCAT:
case ActivityType.SERVERHAPPY:
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(sGlobalActivity.getId());
if (abstractActivity == null) {
return false;
}
abstractActivity.initActivity(user);
return true;
default:
return false;
}
}
// public boolean initOtherActivity(User user, SGlobalActivity sGlobalActivity) throws Exception {
// int type = sGlobalActivity.getType();
// switch (type) {
// case ActivityType.BLESSACTIVITY:
// blessInfoInit(user.getActivityManager(), sGlobalActivity.getId());
// return true;
// default:
// return false;
// }
// }
public static ActivityLogic getInstance() {
@ -652,125 +643,6 @@ public class ActivityLogic {
}
}
//云梦祈福初始化
// public void blessActivityInit(ISession session,MessageTypeProto.MessageType messageType) throws Exception {
// User user = UserManager.getUser(session.getUid());
// ActivityManager activityManager = user.getActivityManager();
// if(activityManager.getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId()).getActivityProgressInfoMap().size()>0){
//// MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"已经初始化过,不需要初始化");
// MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
// return;
// }
// //祈福信息初始化
// blessInfoInit(activityManager,7);
// MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
// }
/**
*
*
* @param activityManager
*/
private ActivityMission blessInfoInit(ActivityManager activityManager, int activityId) {
//第一次9种
int fixRewardPool = SBlessingConfig.sBlessingConfig.getRandomPoolId();
int fixRewardNum = SBlessingConfig.sBlessingConfig.getRandomNum();
List<int[]> fixRewardArray = new ArrayList<>();
//第二次6,6种
int legendPool = SBlessingConfig.sBlessingConfig.getLegendPoolId();
int legendNum = SBlessingConfig.sBlessingConfig.getLegendNum();
List<int[]> legendRewardArray = new ArrayList<>();
int supremePool = SBlessingConfig.sBlessingConfig.getSupremePoolId();
int supremeNum = SBlessingConfig.sBlessingConfig.getSupremeNum();
List<int[]> supremeRewardArray = new ArrayList<>();
for (Map.Entry<Integer, SBlessingRewardPool> entry : STableManager.getConfig(SBlessingRewardPool.class).entrySet()) {
if (entry.getValue().getPoolId() == fixRewardPool) {
fixRewardArray.add(new int[]{entry.getValue().getId(), entry.getValue().getInitializeWeight()});
} else if (entry.getValue().getPoolId() == legendPool) {
legendRewardArray.add(new int[]{entry.getValue().getId(), entry.getValue().getInitializeWeight()});
} else if (entry.getValue().getPoolId() == supremePool) {
supremeRewardArray.add(new int[]{entry.getValue().getId(), entry.getValue().getInitializeWeight()});
}
}
//第三次次数奖励6个
int[] countPool = SBlessingConfig.sBlessingConfig.getCopuntsPoolId();
int[] counts = SBlessingConfig.sBlessingConfig.getCounts();
int[] countResult = new int[counts.length];
int countIndex = 0;
for (Integer cpool : countPool) {
List<int[]> countRewardArray = new ArrayList<>();
for (Map.Entry<Integer, SBlessingRewardPool> entry : STableManager.getConfig(SBlessingRewardPool.class).entrySet()) {
if (entry.getValue().getPoolId() == cpool) {
countRewardArray.add(new int[]{entry.getValue().getId(), entry.getValue().getInitializeWeight()});
}
}
int[][] countReward = new int[countRewardArray.size()][];
for (int i = 0; i < countRewardArray.size(); i++) {
countReward[i] = countRewardArray.get(i);
}
countResult[countIndex] = MathUtils.randomFromWeight(countReward);
countIndex++;
}
int[][] fixReward = new int[fixRewardArray.size()][];
for (int i = 0; i < fixRewardArray.size(); i++) {
fixReward[i] = fixRewardArray.get(i);
}
int[][] legendReward = new int[legendRewardArray.size()][];
for (int i = 0; i < legendRewardArray.size(); i++) {
legendReward[i] = legendRewardArray.get(i);
}
int[][] supremeReward = new int[supremeRewardArray.size()][];
for (int i = 0; i < supremeRewardArray.size(); i++) {
supremeReward[i] = supremeRewardArray.get(i);
}
int[] fixResult = MathUtils.randomFromWeightWithTaking(fixReward, fixRewardNum);
int[] legendResult = MathUtils.randomFromWeightWithTaking(legendReward, legendNum);
int[] supremeResult = MathUtils.randomFromWeightWithTaking(supremeReward, supremeNum);
ActivityMission activityMission = new ActivityMission();
for (int i = BlessInfoConfig.START_CAPACITY; i > 0; i--) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
if (BlessInfoConfig.START_CAPACITY - i < fixResult.length) {
progressInfo.setState(0);
LOGGER.info("第一次第{}个数据", BlessInfoConfig.START_CAPACITY - i, fixResult[BlessInfoConfig.START_CAPACITY - i]);
progressInfo.setProgrss(fixResult[BlessInfoConfig.START_CAPACITY - i]);
}
activityMission.updateProgressInfo(i, progressInfo);
}
for (int i = BlessInfoConfig.CHOOSE_START_ID; i <= BlessInfoConfig.CHOOSE_END_ID; i++) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
activityMission.updateProgressInfo(i, progressInfo);
}
//初始化状态
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo());
//初始化上次刷新时间
if (activityMission.getActivityProgressInfoMap().get(BlessInfoConfig.LAST_REFRESH_TIME) == null) {
activityMission.updateProgressInfo(BlessInfoConfig.LAST_REFRESH_TIME, new ActivityProgressInfo());
}
for (int i = 0; i < legendResult.length; i++) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setProgrss(legendResult[i]);
activityMission.updateProgressInfo(BlessInfoConfig.LEGEND_REWARD_START_ID + i, progressInfo);
}
for (int i = 0; i < supremeResult.length; i++) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setProgrss(supremeResult[i]);
activityMission.updateProgressInfo(BlessInfoConfig.SUPREME_REWARD_START_ID + i, progressInfo);
}
for (int i = 0; i < countResult.length; i++) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setProgrss(countResult[i]);
activityMission.updateProgressInfo(BlessInfoConfig.COUNT_REWARD_START_ID + counts[i], progressInfo);
}
activityManager.addActivity(activityId, activityMission);
return activityMission;
}
//云梦请求数据
public void blessInfo(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
@ -1000,45 +872,45 @@ public class ActivityLogic {
dropItem[0] = reward;
CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, dropItem, BIReason.BLESS_REWARD);
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() + 1, 0));
if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == BlessInfoConfig.START_CAPACITY + 1) {
if (SBlessingConfig.sBlessingConfig.getIsRefresh() != 0) {
blessRefresh(user);
}
}
// if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == BlessInfoConfig.START_CAPACITY + 1) {
// if (SBlessingConfig.sBlessingConfig.getIsRefresh() != 0) {
// blessRefresh(user);
// }
// }
PlayerInfoProto.blessChooseResponse response = PlayerInfoProto.blessChooseResponse.newBuilder().setReward(drop).setChooseRewardId(resultRewardId).build();
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
}
/**
*
*
* @param session
* @param messageType
* @throws Exception
*/
public void blessRefreshReward(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(session.getUid());
if (SBlessingConfig.sBlessingConfig.getIsRefresh() == 0) {
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "活动不可刷新");
return;
}
ActivityMission activityMission = blessRefresh(user);
activityMission.updateProgressInfo(BlessInfoConfig.LAST_REFRESH_TIME, new ActivityProgressInfo((int) (TimeUtils.now() / 1000), 0));
PlayerInfoProto.blessRefresh res = PlayerInfoProto.blessRefresh.newBuilder().setReward(getBlessInfoResponse(activityMission).build()).build();
MessageUtil.sendMessage(session, 1, messageType.getNumber(), res, true);
}
// /**
// * 云梦手动刷新
// *
// * @param session
// * @param messageType
// * @throws Exception
// */
// public void blessRefreshReward(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
// User user = UserManager.getUser(session.getUid());
// if (SBlessingConfig.sBlessingConfig.getIsRefresh() == 0) {
// MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "活动不可刷新");
// return;
// }
// ActivityMission activityMission = blessRefresh(user);
// activityMission.updateProgressInfo(BlessInfoConfig.LAST_REFRESH_TIME, new ActivityProgressInfo((int) (TimeUtils.now() / 1000), 0));
// PlayerInfoProto.blessRefresh res = PlayerInfoProto.blessRefresh.newBuilder().setReward(getBlessInfoResponse(activityMission).build()).build();
// MessageUtil.sendMessage(session, 1, messageType.getNumber(), res, true);
// }
private ActivityMission blessRefresh(User user) {
ActivityManager activityManager = user.getActivityManager();
ActivityMission activityMission = activityManager.getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
ActivityProgressInfo tempProgress = new ActivityProgressInfo();
//数据清空
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityMission.getActivityProgressInfoMap().entrySet()) {
activityMission.updateProgressInfo(entry.getKey(), tempProgress);
}
activityMission = blessInfoInit(activityManager, 7);
return activityMission;
}
// private ActivityMission blessRefresh(User user) {
// ActivityManager activityManager = user.getActivityManager();
// ActivityMission activityMission = activityManager.getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
// ActivityProgressInfo tempProgress = new ActivityProgressInfo();
// //数据清空
// for (Map.Entry<Integer, ActivityProgressInfo> entry : activityMission.getActivityProgressInfoMap().entrySet()) {
// activityMission.updateProgressInfo(entry.getKey(), tempProgress);
// }
// activityMission = blessInfoInit(activityManager, 7);
// return activityMission;
// }
/**

View File

@ -1,8 +1,20 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.handler.activity.BlessInfoConfig;
import com.ljsd.jieling.logic.dao.ActivityManager;
import com.ljsd.jieling.logic.dao.ActivityMission;
import com.ljsd.jieling.logic.dao.ActivityProgressInfo;
import com.ljsd.jieling.logic.dao.root.User;
import config.SBlessingConfig;
import config.SBlessingRewardPool;
import config.SGlobalActivity;
import manager.STableManager;
import util.MathUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class BlessActivity extends AbstractActivity {
@ -10,9 +22,121 @@ public class BlessActivity extends AbstractActivity {
super(id);
}
@Override
public void onResume(User user) {
}
@Override
public void initActivity(User user) throws Exception {
ActivityLogic.getInstance().initOtherActivity(user, SGlobalActivity.getsGlobalActivityMap().get(id));
public void initActivity(User user){
blessInfoInit(user.getActivityManager(), id);
}
/**
*
* @param activityManager
* @param activityId
* @return
*/
private ActivityMission blessInfoInit(ActivityManager activityManager, int activityId) {
//第一次9种
int fixRewardPool = SBlessingConfig.sBlessingConfig.getRandomPoolId();
int fixRewardNum = SBlessingConfig.sBlessingConfig.getRandomNum();
List<int[]> fixRewardArray = new ArrayList<>();
//第二次6,6种
int legendPool = SBlessingConfig.sBlessingConfig.getLegendPoolId();
int legendNum = SBlessingConfig.sBlessingConfig.getLegendNum();
List<int[]> legendRewardArray = new ArrayList<>();
int supremePool = SBlessingConfig.sBlessingConfig.getSupremePoolId();
int supremeNum = SBlessingConfig.sBlessingConfig.getSupremeNum();
List<int[]> supremeRewardArray = new ArrayList<>();
for (Map.Entry<Integer, SBlessingRewardPool> entry : STableManager.getConfig(SBlessingRewardPool.class).entrySet()) {
if (entry.getValue().getPoolId() == fixRewardPool) {
fixRewardArray.add(new int[]{entry.getValue().getId(), entry.getValue().getInitializeWeight()});
} else if (entry.getValue().getPoolId() == legendPool) {
legendRewardArray.add(new int[]{entry.getValue().getId(), entry.getValue().getInitializeWeight()});
} else if (entry.getValue().getPoolId() == supremePool) {
supremeRewardArray.add(new int[]{entry.getValue().getId(), entry.getValue().getInitializeWeight()});
}
}
//第三次次数奖励6个
int[] countPool = SBlessingConfig.sBlessingConfig.getCopuntsPoolId();
int[] counts = SBlessingConfig.sBlessingConfig.getCounts();
int[] countResult = new int[counts.length];
int countIndex = 0;
for (Integer cpool : countPool) {
List<int[]> countRewardArray = new ArrayList<>();
for (Map.Entry<Integer, SBlessingRewardPool> entry : STableManager.getConfig(SBlessingRewardPool.class).entrySet()) {
if (entry.getValue().getPoolId() == cpool) {
countRewardArray.add(new int[]{entry.getValue().getId(), entry.getValue().getInitializeWeight()});
}
}
int[][] countReward = new int[countRewardArray.size()][];
for (int i = 0; i < countRewardArray.size(); i++) {
countReward[i] = countRewardArray.get(i);
}
countResult[countIndex] = MathUtils.randomFromWeight(countReward);
countIndex++;
}
int[][] fixReward = new int[fixRewardArray.size()][];
for (int i = 0; i < fixRewardArray.size(); i++) {
fixReward[i] = fixRewardArray.get(i);
}
int[][] legendReward = new int[legendRewardArray.size()][];
for (int i = 0; i < legendRewardArray.size(); i++) {
legendReward[i] = legendRewardArray.get(i);
}
int[][] supremeReward = new int[supremeRewardArray.size()][];
for (int i = 0; i < supremeRewardArray.size(); i++) {
supremeReward[i] = supremeRewardArray.get(i);
}
int[] fixResult = MathUtils.randomFromWeightWithTaking(fixReward, fixRewardNum);
int[] legendResult = MathUtils.randomFromWeightWithTaking(legendReward, legendNum);
int[] supremeResult = MathUtils.randomFromWeightWithTaking(supremeReward, supremeNum);
ActivityMission activityMission = new ActivityMission();
for (int i = BlessInfoConfig.START_CAPACITY; i > 0; i--) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
if (BlessInfoConfig.START_CAPACITY - i < fixResult.length) {
progressInfo.setState(0);
LOGGER.info("第一次第{}个数据", BlessInfoConfig.START_CAPACITY - i, fixResult[BlessInfoConfig.START_CAPACITY - i]);
progressInfo.setProgrss(fixResult[BlessInfoConfig.START_CAPACITY - i]);
}
activityMission.updateProgressInfo(i, progressInfo);
}
for (int i = BlessInfoConfig.CHOOSE_START_ID; i <= BlessInfoConfig.CHOOSE_END_ID; i++) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
activityMission.updateProgressInfo(i, progressInfo);
}
//初始化状态
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo());
//初始化上次刷新时间
if (activityMission.getActivityProgressInfoMap().get(BlessInfoConfig.LAST_REFRESH_TIME) == null) {
activityMission.updateProgressInfo(BlessInfoConfig.LAST_REFRESH_TIME, new ActivityProgressInfo());
}
for (int i = 0; i < legendResult.length; i++) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setProgrss(legendResult[i]);
activityMission.updateProgressInfo(BlessInfoConfig.LEGEND_REWARD_START_ID + i, progressInfo);
}
for (int i = 0; i < supremeResult.length; i++) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setProgrss(supremeResult[i]);
activityMission.updateProgressInfo(BlessInfoConfig.SUPREME_REWARD_START_ID + i, progressInfo);
}
for (int i = 0; i < countResult.length; i++) {
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setProgrss(countResult[i]);
activityMission.updateProgressInfo(BlessInfoConfig.COUNT_REWARD_START_ID + counts[i], progressInfo);
}
activityManager.addActivity(activityId, activityMission);
return activityMission;
}
}

View File

@ -29,7 +29,7 @@ public class TreasureActivity extends AbstractActivity {
@Override
public void onResume(User user) throws Exception {
// user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_MONTH_REFRESH, id);
LOGGER.info("戒灵秘宝日常刷新...");
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_WEEK_REFRESH, id);
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, id);
}
@ -48,10 +48,9 @@ public class TreasureActivity extends AbstractActivity {
levels.remove(0);
}
activityMission.initOtherMission(levels);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2) - 24 * 3600 * 1000;
// long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2) - 24 * 3600 * 1000;
user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission);
// PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder().setLevel(user.getPlayerInfoManager().getTreasureLevel()).build();
// MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true);
}
@Override