Merge branch 'master_test_hw' of http://60.1.1.230/backend/jieling_server into master_test_hw

back_recharge
zhangshanxue 2020-08-28 18:02:29 +08:00
commit 5ff3eb46ba
4 changed files with 55 additions and 26 deletions

View File

@ -128,8 +128,8 @@ public class ExpeditionManager extends MongoBase {
return effectItems;
}
public void resetTreasureReward(int round){
worldTreasureReward.reset(round);
public void resetTreasureReward(){
worldTreasureReward.reset();
onlyUpdateTreasureReward();
}

View File

@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.logic.dao.root.User;
import config.SExpeditionSetting;
import manager.STableManager;
import util.TimeUtils;
import java.util.HashMap;
@ -9,8 +11,10 @@ import java.util.Map;
public class WorldTreasureReward extends MongoBase {
private int firstStartTime;
private int createTime; //取当天零点 根据其可以推算出期数。
private int round=1;
private int round;
private int score;
private Map<Integer,Integer> rewardStatusMap = new HashMap<>(); //领取状态 1表示领取基础奖励 2表示领取额外奖励。
@ -18,17 +22,19 @@ public class WorldTreasureReward extends MongoBase {
this.setRootCollection(User._COLLECTION_NAME);
}
public void reset(int round){
public void reset(){
SExpeditionSetting setting = STableManager.getConfig(SExpeditionSetting.class).get(1);
int treasureTime = setting.getTreasureTime()[0][1];
if(createTime == 0){
createTime =(int)((TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, true)+TimeUtils.DAY*30)/1000);
createTime =(int)((TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, true)+TimeUtils.DAY*treasureTime)/1000);
}else{
do{
createTime+=TimeUtils.DAY*30/1000;
createTime+=TimeUtils.DAY*treasureTime/1000;
}while(createTime<TimeUtils.nowInt());
}
score = 0;
rewardStatusMap = new HashMap<>();
this.round = round;
updateRound(round+1);
}
@Override
@ -47,6 +53,11 @@ public class WorldTreasureReward extends MongoBase {
}
return round;
}
public void updateRound(int round) {
this.round = round;
updateString("round", round);
}
public int getScore() {
return score;
@ -64,4 +75,14 @@ public class WorldTreasureReward extends MongoBase {
rewardStatusMap.put(id,value);
updateString("rewardStatusMap."+id, value);
}
public int getFirstStartTime() {
return firstStartTime;
}
public void setFirstStartTime(int firstStartTime) {
this.firstStartTime = firstStartTime;
}
}

View File

@ -763,23 +763,26 @@ public class ExpeditionLogic {
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
int openRule = sExpeditionSetting.getOpenRules()[0];
if(openRule == type && sExpeditionSetting.getOpenRules()[1] == parm){
user.getExpeditionManager().resetTreasureReward(1);
sendAllTreasureInfo(user);
//设置第一次七天后开启
user.getExpeditionManager().getWorldTreasureReward().setFirstStartTime((int)((TimeUtils.now()+7*TimeUtils.ONE_DAY)/1000));
// user.getExpeditionManager().resetTreasureReward(1);
// sendAllTreasureInfo(user);
}
}
public static void checkAndResetTreasure(User user) throws Exception {
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
WorldTreasureReward worldTreasureReward = user.getExpeditionManager().getWorldTreasureReward();
int createTime =worldTreasureReward.getCreateTime();
if(createTime==0){
if(worldTreasureReward.getFirstStartTime()>TimeUtils.nowInt()){
return;
}
int createTime =worldTreasureReward.getCreateTime();
//重置
if(TimeUtils.nowInt()>=worldTreasureReward.getCreateTime()){
user.getExpeditionManager().resetTreasureReward(1);
if(TimeUtils.nowInt()>=createTime){
user.getExpeditionManager().resetTreasureReward();
sendAllTreasureInfo(user);
BuyGoodsLogic.sendGiftGooodsIndication(user.getId());
user.getPlayerInfoManager().getRechargeInfo().updateBuyGoodsTimes(106,0);
user.getPlayerInfoManager().getRechargeInfo().updateBuyGoodsTimes(sExpeditionSetting.getTreasureTime()[0][2],0);
}
}
@ -1012,17 +1015,22 @@ public class ExpeditionLogic {
WorldTreasureReward worldTreasureReward = user.getExpeditionManager().getWorldTreasureReward();
Expedition.ExpeditionTreasureInfoResponse.Builder response = Expedition.ExpeditionTreasureInfoResponse.newBuilder();
Map<Integer, Integer> rewardStatusMap = worldTreasureReward.getRewardStatusMap();
WorldBossTreasureStaticConfig worldBossTreasureStaticConfig = STableManager.getFigureConfig(WorldBossTreasureStaticConfig.class);
Set<SWorldBossTreasureConfig> sWorldBossTreasureConfigs = worldBossTreasureStaticConfig.getIdsByPeriods().get(worldTreasureReward.getRound());
List<Expedition.TreasureRewardState> states = new ArrayList<>(100);
sWorldBossTreasureConfigs.forEach(item->{
Expedition.TreasureRewardState.Builder builder = Expedition.TreasureRewardState.newBuilder().setId(item.getId()).setState(rewardStatusMap.getOrDefault(item.getId(),0));
states.add(builder.build());
});
response.addAllTreasureRewardState(states);
response.setScore(worldTreasureReward.getScore());
response.setResetTime(worldTreasureReward.getCreateTime());
if(worldTreasureReward.getFirstStartTime()<=TimeUtils.nowInt()){
Map<Integer, Integer> rewardStatusMap = worldTreasureReward.getRewardStatusMap();
WorldBossTreasureStaticConfig worldBossTreasureStaticConfig = STableManager.getFigureConfig(WorldBossTreasureStaticConfig.class);
Set<SWorldBossTreasureConfig> sWorldBossTreasureConfigs = worldBossTreasureStaticConfig.getIdsByPeriods().get(worldTreasureReward.getRound());
List<Expedition.TreasureRewardState> states = new ArrayList<>(100);
sWorldBossTreasureConfigs.forEach(item->{
Expedition.TreasureRewardState.Builder builder = Expedition.TreasureRewardState.newBuilder().setId(item.getId()).setState(rewardStatusMap.getOrDefault(item.getId(),0));
states.add(builder.build());
});
response.addAllTreasureRewardState(states);
response.setScore(worldTreasureReward.getScore());
response.setResetTime(worldTreasureReward.getCreateTime());
}else {
response.setResetTime(-1);
}
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
}
}

View File

@ -615,7 +615,7 @@ public class ItemUtil {
extraDropAop(user,dropBuilder,sItem);
sendToFront.add(CBean2Proto.getItem(item,-1));
if(sItem.getItemType()==GlobalItemType.EQUIP){
if(reason!=BIReason.EQUIP_UNLOAD_REWARD&&reason!=BIReason.DECOMPOS_HERO_REWARD){
if(reason!=BIReason.EQUIP_UNLOAD_REWARD&&reason!=BIReason.DECOMPOS_HERO_REWARD&&reason!=BIReason.UPHERO_DECOMPOS_HERO_REWARD){
user.getUserMissionManager().onGameEvent(user,GameEvent.GET_EQUIP,sItem.getId(),itemNum);
ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),itemNum,reason);
}