时间修改

back_recharge
lvxinran 2019-07-25 15:44:10 +08:00
parent 77d4d2c791
commit 7ff90d3a74
2 changed files with 78 additions and 76 deletions

View File

@ -17,6 +17,6 @@ public class BlessInitHandler extends BaseHandler {
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
ActivityLogic.getInstance().blessActivityInit(iSession, MessageTypeProto.MessageType.BLESS_INIT_RESPONSE);
// ActivityLogic.getInstance().blessActivityInit(iSession, MessageTypeProto.MessageType.BLESS_INIT_RESPONSE);
}
}

View File

@ -4,6 +4,7 @@ import com.ljsd.jieling.config.*;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.handler.activity.BlessInfoConfig;
import com.ljsd.jieling.ktbeans.KtEventUtils;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
import com.ljsd.jieling.logic.dao.*;
@ -590,24 +591,24 @@ public class ActivityLogic {
secretBoxSeasonTimes=0;
}
//云梦祈福初始化
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);
}
// 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 void blessInfoInit(ActivityManager activityManager,int activityId){
private ActivityMission blessInfoInit(ActivityManager activityManager,int activityId){
//第一次9种
int fixRewardPool = SBlessingConfig.sBlessingConfig.getRandomPoolId();
int fixRewardNum = SBlessingConfig.sBlessingConfig.getRandomNum();
@ -671,39 +672,42 @@ public class ActivityLogic {
ActivityMission activityMission =new ActivityMission();
for(int i=16;i>0;i--){
for(int i = BlessInfoConfig.START_CAPACITY; i>0; i--){
ActivityProgressInfo progressInfo =new ActivityProgressInfo();
if(16-i<fixResult.length){
if(BlessInfoConfig.START_CAPACITY-i<fixResult.length){
progressInfo.setState(0);
LOGGER.info("第一次第{}个数据",16-i,fixResult[16-i]);
progressInfo.setProgrss(fixResult[16-i]);
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=17;i<=32;i++){
for(int i=BlessInfoConfig.CHOOSE_START_ID;i<=BlessInfoConfig.CHOOSE_END_ID;i++){
ActivityProgressInfo progressInfo =new ActivityProgressInfo();
activityMission.updateProgressInfo(i,progressInfo);
}
//初始化状态
activityMission.updateProgressInfo(99,new ActivityProgressInfo());
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS,new ActivityProgressInfo());
//初始化上次刷新时间
activityMission.updateProgressInfo(100,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(200+i,progressInfo);
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(500+i,progressInfo);
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(1000+counts[i],progressInfo);
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 {
@ -714,40 +718,40 @@ public class ActivityLogic {
return;
}
PlayerInfoProto.blessResponse.Builder response = getBlessInfoResponse(activityMission);
LOGGER.info("{},{},{}",response.getFixRewardList().toString(),response.getLegendRewardList().toString(),response.getSupremeRewardList().toString());
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
// LOGGER.info("{},{},{}",response.getFixRewardList().toString(),response.getLegendRewardList().toString(),response.getSupremeRewardList().toString());
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
}
private PlayerInfoProto.blessResponse.Builder getBlessInfoResponse(ActivityMission activityMission){
PlayerInfoProto.blessResponse.Builder response = PlayerInfoProto.blessResponse.newBuilder();
Map<Integer, ActivityProgressInfo> blessInfoMap = activityMission.getActivityProgressInfoMap();
//保存之前
if(blessInfoMap.get(99).getProgrss()==0){
if(blessInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()==0){
for(Map.Entry<Integer,ActivityProgressInfo> entry:blessInfoMap.entrySet()){
if(entry.getKey()/1000>0){
if(entry.getKey()/BlessInfoConfig.COUNT_REWARD_START_ID>0){
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(entry.getKey()%1000)
.setLocationId(entry.getKey()%BlessInfoConfig.COUNT_REWARD_START_ID)
.setState(0)
.setRewardId(entry.getValue().getProgrss())
.build();
response.addCountReward(blessReward);
continue;
}else if(entry.getKey()/500>0){
}else if(entry.getKey()/BlessInfoConfig.SUPREME_REWARD_START_ID>0){
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(entry.getKey()%500+1)
.setLocationId(entry.getKey()%BlessInfoConfig.SUPREME_REWARD_START_ID+1)
.setState(0)
.setRewardId(entry.getValue().getProgrss())
.build();
response.addSupremeReward(blessReward);
continue;
}else if(entry.getKey()/200>0){
}else if(entry.getKey()/BlessInfoConfig.LEGEND_REWARD_START_ID>0){
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(entry.getKey()%200+1)
.setLocationId(entry.getKey()%BlessInfoConfig.LEGEND_REWARD_START_ID+1)
.setState(0)
.setRewardId(entry.getValue().getProgrss())
.build();
response.addLegendReward(blessReward);
continue;
}else if(entry.getKey()<=16){
}else if(entry.getKey()<=BlessInfoConfig.START_CAPACITY){
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(entry.getKey())
.setState(0)
@ -758,26 +762,26 @@ public class ActivityLogic {
}
}else{//保存之后
for(Map.Entry<Integer,ActivityProgressInfo> entry:blessInfoMap.entrySet()){
if(entry.getKey()/1000>0){
if(entry.getKey()/BlessInfoConfig.COUNT_REWARD_START_ID>0){
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(entry.getKey()%1000)
.setLocationId(entry.getKey()%BlessInfoConfig.COUNT_REWARD_START_ID)
.setState(1)
.setRewardId(entry.getValue().getProgrss())
.build();
response.addCountReward(blessReward);
continue;
}else if(entry.getKey()/500>0){
}else if(entry.getKey()/BlessInfoConfig.SUPREME_REWARD_START_ID>0){
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(entry.getKey()%500+1)
.setLocationId(entry.getKey()%BlessInfoConfig.SUPREME_REWARD_START_ID+1)
.setState(1)
.setRewardId(entry.getValue().getProgrss())
.build();
response.addSupremeReward(blessReward);
continue;
}else if(entry.getKey()/200>0){
}else if(entry.getKey()/BlessInfoConfig.LEGEND_REWARD_START_ID>0){
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(entry.getKey()%200+1)
.setLocationId(entry.getKey()%BlessInfoConfig.LEGEND_REWARD_START_ID+1)
.setState(1)
.setRewardId(entry.getValue().getProgrss())
.build();
@ -785,21 +789,21 @@ public class ActivityLogic {
continue;
}
}
for(int i = 17;i<=48;i++){
for(int i = BlessInfoConfig.CHOOSE_START_ID;i<=BlessInfoConfig.REWARD_VIEW_END_ID;i++){
for(Map.Entry<Integer,ActivityProgressInfo> entry:blessInfoMap.entrySet()) {
if(entry.getKey()!=i){
continue;
}if (i<33){
}if (i<BlessInfoConfig.REWARD_VIEW_START_ID){
LOGGER.info("显示顺序是{}",entry.getKey());
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(i-16)
.setLocationId(i-BlessInfoConfig.START_CAPACITY)
.setState(1)
.setRewardId(entry.getValue().getProgrss())
.build();
response.addFixReward(blessReward);
}else{
CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder()
.setLocationId(i-32)
.setLocationId(i-BlessInfoConfig.CHOOSE_END_ID)
.setState(1)
.setRewardId(entry.getValue().getProgrss())
.build();
@ -809,16 +813,16 @@ public class ActivityLogic {
}
}
response.setLastRefreshTime(blessInfoMap.get(100).getProgrss());
response.setLastRefreshTime(blessInfoMap.get(BlessInfoConfig.LAST_REFRESH_TIME).getProgrss());
return response;
}
public void blessSaveOptionalReward(ISession session, int[] rewardIds, MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(session.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
if(activityMission.getActivityProgressInfoMap().get(99).getProgrss()!=0){
if(activityMission.getActivityProgressInfoMap().get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()!=0){
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"您当前不能进行保存!");
}
if(SBlessingConfig.sBlessingConfig.getRandomNum()!=16-rewardIds.length){
if(SBlessingConfig.sBlessingConfig.getRandomNum()!=BlessInfoConfig.START_CAPACITY-rewardIds.length){
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"选择数量不对");
}
for (int i = 0 ; i <rewardIds.length;i++){
@ -827,11 +831,10 @@ public class ActivityLogic {
activityMission.updateProgressInfo(i+1,info);
}
//奖励预览赋值
for(int i = 0 ;i <16;i++){
activityMission.updateProgressInfo(i+33,activityMission.getActivityProgressInfoMap().get(i+1));
for(int i = 0 ;i <BlessInfoConfig.START_CAPACITY;i++){
activityMission.updateProgressInfo(i+BlessInfoConfig.REWARD_VIEW_START_ID,activityMission.getActivityProgressInfoMap().get(i+1));
}
// activityMission.updateActivityState(-1);
activityMission.updateProgressInfo(99,new ActivityProgressInfo(-1,0));
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS,new ActivityProgressInfo(-1,0));
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}
@ -846,17 +849,17 @@ public class ActivityLogic {
User user = UserManager.getUser(session.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
if(activityProgressInfoMap.get(locationId+16).getProgrss()!=0){
if(activityProgressInfoMap.get(locationId+BlessInfoConfig.START_CAPACITY).getProgrss()!=0){
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"已经抽过改格子");
return;
}
int resultRewardId = 0;
if(activityProgressInfoMap.get(99).getProgrss()==-1){
if(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()==-1){
Map<Integer, SBlessingRewardPool> poolMap = SBlessingRewardPool.sBlessingRewardPoolMap;
int[][] result = new int[16][];
int[][] result = new int[BlessInfoConfig.START_CAPACITY][];
int index = 0;
for (Map.Entry<Integer,ActivityProgressInfo> entry :activityProgressInfoMap.entrySet()) {
if(entry.getKey()>16){
if(entry.getKey()>BlessInfoConfig.START_CAPACITY){
continue;
}
int[] temp = new int[2];
@ -865,13 +868,13 @@ public class ActivityLogic {
result[index] = temp;
index++;
}
int[] order = MathUtils.randomFromWeightWithTaking(result, 16);
int[] order = MathUtils.randomFromWeightWithTaking(result, BlessInfoConfig.START_CAPACITY);
for (int i = 0; i <order.length ; i++) {
LOGGER.info("获取顺序{}",order[i]);
}
index = 0;
for (Map.Entry<Integer,ActivityProgressInfo> entry :activityProgressInfoMap.entrySet()) {
if(entry.getKey()>16){
if(entry.getKey()>BlessInfoConfig.START_CAPACITY){
continue;
}
ActivityProgressInfo progress = new ActivityProgressInfo();
@ -879,24 +882,24 @@ public class ActivityLogic {
activityMission.updateProgressInfo(entry.getKey(),progress);
index++;
}
activityMission.updateProgressInfo(99,new ActivityProgressInfo(1,0));
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS,new ActivityProgressInfo(1,0));
}
//检验消耗道具
int[][] costConfig = SBlessingConfig.sBlessingConfig.getCost();
int[][] cost = new int[1][];
int[] temp = new int[2];
temp[0] = costConfig[0][0];
temp[1] = (int)MathUtils.calABX(activityProgressInfoMap.get(99).getProgrss(),costConfig[1]);
temp[1] = (int)MathUtils.calABX(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss(),costConfig[1]);
cost[0] = temp;
LOGGER.info("本次为第{}次抽取,消耗{}个数为{}",activityProgressInfoMap.get(99).getProgrss(),temp[0],temp[1]);
LOGGER.info("本次为第{}次抽取,消耗{}个数为{}",activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss(),temp[0],temp[1]);
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.BLESS_CHOOSE_CONSUME,1);
if(!costResult){
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"道具不足");
return;
}
if(activityProgressInfoMap.get(99).getProgrss()>0){
if(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()>0){
for (Map.Entry<Integer,ActivityProgressInfo> entry :activityProgressInfoMap.entrySet()) {
if(entry.getKey()>16){
if(entry.getKey()>BlessInfoConfig.START_CAPACITY){
continue;
}
if(entry.getValue().getProgrss()==0){
@ -905,7 +908,7 @@ public class ActivityLogic {
resultRewardId = entry.getValue().getProgrss();
ActivityProgressInfo progress = new ActivityProgressInfo();
progress.setProgrss(entry.getValue().getProgrss());
activityMission.updateProgressInfo(locationId+16,progress);
activityMission.updateProgressInfo(locationId+BlessInfoConfig.START_CAPACITY,progress);
activityMission.updateProgressInfo(entry.getKey(),new ActivityProgressInfo());
break;
}
@ -914,16 +917,17 @@ public class ActivityLogic {
Map<Integer, SBlessingRewardPool> poolMap = SBlessingRewardPool.sBlessingRewardPoolMap;
int[][] dropItem = new int[1][];
for(Integer count:SBlessingConfig.sBlessingConfig.getCounts()){
if (count!=activityProgressInfoMap.get(99).getProgrss()){
if (count!=activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()){
continue;
}
dropItem = new int[2][];
dropItem[1] = poolMap.get(activityProgressInfoMap.get(1000+count).getProgrss()).getReward();
dropItem[1] = poolMap.get(activityProgressInfoMap.get(BlessInfoConfig.COUNT_REWARD_START_ID+count).getProgrss()).getReward();
break;
}
int[] reward = poolMap.get(resultRewardId).getReward();
dropItem[0] = reward;
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropItem, BIReason.BLESS_REWARD);
activityMission.updateProgressInfo(99,new ActivityProgressInfo(activityProgressInfoMap.get(99).getProgrss()+1,0));
activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS,new ActivityProgressInfo(activityProgressInfoMap.get(99).getProgrss()+1,0));
PlayerInfoProto.blessChooseResponse response = PlayerInfoProto.blessChooseResponse.newBuilder().setReward(drop).setChooseRewardId(resultRewardId).build();
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
}
@ -940,18 +944,16 @@ public class ActivityLogic {
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"活动不可刷新");
return;
}
// boolean check = user.getPlayerInfoManager().check(SBlessingConfig.sBlessingConfig.getDailyRefreshTimes(), 1);
// if(!check){
// MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"无刷新次数");
// return;
// }
// user.getPlayerInfoManager().updateVipPrivilage(SBlessingConfig.sBlessingConfig.getDailyRefreshTimes(),1);
ActivityManager activityManager = user.getActivityManager();
ActivityMission activityMission = activityManager.getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
activityMission.initMissionInfo(SBlessingConfig.sBlessingConfig.getActivityId());
activityMission.updateProgressInfo(99,new ActivityProgressInfo());
activityMission.updateProgressInfo(100,new ActivityProgressInfo((int)(TimeUtils.now()/1000),0));
blessInfoInit(activityManager,7);
ActivityProgressInfo tempProgress = new ActivityProgressInfo();
//数据清空
for(Map.Entry<Integer,ActivityProgressInfo> entry:activityMission.getActivityProgressInfoMap().entrySet()){
activityMission.updateProgressInfo(entry.getKey(),tempProgress);
}
activityMission = blessInfoInit(activityManager, 7);
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);
}