Merge branch 'master_online_hw' into master_test_hw

# Conflicts:
#	serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SheJiActivity.java
#	tablemanager/src/main/java/config/SGodSacrificeSetting.java
zhangshanxue 2020-11-04 00:32:18 +08:00
commit 345de35e8e
8 changed files with 139 additions and 72 deletions

View File

@ -217,12 +217,13 @@ public class RedisKey {
public final static String CHAMPION_CHOSE_TEAM_INFO = "CHAMPION_CHOSE_TEAM_INFO";
public final static String CHAMPION_FINAL_TEAM_INFO = "CHAMPION_FINAL_TEAM_INFO";
public final static String CHAMPION_BET_MINE = "CHAMPION_BET_MINE"; // 我的竞猜 selectIdForRedis value: winUid
public final static String CHAMPION_BET_DETAIL = "CHAMPION_BET_DETAIL"; // 我的竞猜 selectUid + ":" +winUid
public final static String CHAMPION_BET_DETAIL = "CHAMPION_BET_DETAIL"; // 我的竞猜 selectUid + ":" +winUid 本次比赛竞猜当前玩家的的 所有玩家及竞猜道具信息
public final static String CHAMPION_BET_ALL = "CHAMPION_BET_ALL"; // 竞猜信息 selectUid + ":" +winUid
public final static String CHAMPION_FINAL_RECODED_IDS = "CHAMPION_FINAL_RECODED_IDS"; // 巅峰赛決賽信息 //没发现什么用
public final static String CHAMPION_GUESSS_UIDS = "CHAMPION_GUESSS_UIDS"; // 巅峰赛发送竞猜币信息
public final static String CHAMPION_ARENA_RECORD_THREE = "CHAMPION_ARENA_RECORD_THREE";//三局两胜缓存
public final static String CHAMPION_SCHEDULE = "CHAMPION_SCHEDULE";//赛程
public final static String PIDGIDTEMP = "PIDGIDTEMP";
public final static String GUILDBOSS_ARENA_RECORD = "GUILDBOSS_ARENA_RECORD";

View File

@ -282,6 +282,9 @@ public class EndExpeditionBattleRequest extends BaseHandler<Expedition.EndExpedi
}
Hero hero1 = ExpeditionLogic.createHero(i, uid, hero,-1);
drop.addHero(CBean2Proto.getHero(hero1));
for(Integer equipId : hero1.getEquipByPositionMap().values()){
drop.addEquipId(CBean2Proto.getEquipProto(equipId));
}
}
}

View File

@ -124,8 +124,8 @@ public class ReliveExpeditionHeroRequest extends BaseHandler<Expedition.ReliveEx
MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_NOINFO_INDICATION_VALUE, builder.build(), true);
ReportUtil.onReportEvent(user, ReportEventEnum.START_TIANGONG.getType(),expeditionManager.getExpeditionLeve(),oldLay-1,expeditionManager.getExpeditionNodeInfos().get(nodeId).getType());
Poster.getPoster().dispatchEvent(new EndExpeditionNodeEvent(user.getId(),user.getExpeditionManager().getExpeditionLeve()));
}
Poster.getPoster().dispatchEvent(new EndExpeditionNodeEvent(user.getId(),user.getExpeditionManager().getExpeditionLeve()));
Expedition.ReliveExpeditionHeroResponse build = Expedition.ReliveExpeditionHeroResponse.newBuilder()
.setHeroInfo(CommonProto.ExpeditionSimpleHeroInfo.newBuilder().setHeroId(heroId).setRemainHp(1d).build()).build();
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_RELIVE_HERO_RESONSE_VALUE, build, true);

View File

@ -174,6 +174,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
//hotfix 月卡
PlayerLogic.getInstance().getMonthCardInfo(user);
int monthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.MONTHCARDID).getPrice();
int lmonthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.LMONTHCARDID).getPrice();
if(rechargeInfo.getMonthSaveAmt()>=monthline&&playerInfoManager.getMonthCard().getOrDefault(1,0)==0){

View File

@ -76,7 +76,7 @@ public class CommitShejiActivityItemRequestHandler extends BaseHandler<ActivityP
//
// }
Set<Integer> openActivityIdsByType = ActivityLogic.getInstance().getOpenActivityIdsByType(user, ActivityTypeEnum.SHEJI_ACTIVITY.getType(), true);
Set<Integer> openActivityIdsByType = ActivityLogic.getInstance().getOpenActivityIdsByType(user, ActivityTypeEnum.SHEJI_ACTIVITY.getType(), false);
if(openActivityIdsByType.size()==0){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}

View File

@ -1,8 +1,10 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.core.Lockeys;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
@ -19,9 +21,12 @@ import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
import com.ljsd.jieling.network.server.ProtocolsManager;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.ArenaInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.thread.ThreadManager;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.*;
import config.*;
import manager.STableManager;
import org.springframework.data.redis.core.ZSetOperations;
@ -130,15 +135,15 @@ class SheJiActivity extends AbstractActivity {
protected void sendReward() {
Thread.currentThread().setName("sendReward-Activity-" + id);
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if (sGlobalActivity.getOpenRanking() == 0) {
return;
}
// if (sGlobalActivity.getOpenRanking() == 0) {
// return;
// }
Map<Integer, List<SGodSacrificeConfig>> integerListMap = SGodSacrificeConfig.getIntegerListMap().get(1);
if (integerListMap == null) {
return;
}
SGodSacrificeSetting sGodSacrificeSetting = STableManager.getConfig(SGodSacrificeSetting.class).get(1);
InnerResult rewardMap = getRewardMap(2);
InnerResult rewardMap = getRewardMap(1);
Map<Integer, Integer> rank2miss = rewardMap.getRank2miss();
int maxRank = rewardMap.getMaxRamk();
int maxRewardId = rewardMap.getMaxRewardId();
@ -166,7 +171,7 @@ class SheJiActivity extends AbstractActivity {
// }
if (rank2miss.containsKey(rank)) {
if (rank <= 10 && score <2500) {
missionId = 11;
missionId = rank2miss.get(11);
} else {
missionId = rank2miss.get(rank);
}
@ -177,14 +182,25 @@ class SheJiActivity extends AbstractActivity {
continue;
}
}
//checkAndUpdate value
SGodSacrificeConfig sActivityRankingReward1 = SGodSacrificeConfig.getsGodSacrificeConfigMap().get(missionId);
//sendmail
String title = SErrorCodeEerverConfig.getI18NMessage("personal_activity_reward_title", new Object[]{sGlobalActivity.getSesc()});
String content = SErrorCodeEerverConfig.getI18NMessage("personal_activity_reward_txt", new Object[]{sGlobalActivity.getSesc(), rank++});
String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward());
MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
final int finalIndex = rank;
AyyncWorker ayyncWorker = new AyyncWorker(user, true, new AyncWorkerRunnable() {
@Override
public void work(User user) throws Exception {
//checkAndUpdate value
SGodSacrificeConfig sActivityRankingReward1 = SGodSacrificeConfig.getsGodSacrificeConfigMap().get(missionId);
//sendmail
String title = SErrorCodeEerverConfig.getI18NMessage("personal_activity_reward_title", new Object[]{sGlobalActivity.getSesc()});
String content = SErrorCodeEerverConfig.getI18NMessage("personal_activity_reward_txt", new Object[]{sGlobalActivity.getSesc(), finalIndex});
String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward());
MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
}
});
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
rank++;
} catch (Exception e) {
LOGGER.error("id为{}的玩家,{}活动排行奖励没有发成功", uid, id);
System.out.println(e);
@ -222,20 +238,23 @@ class SheJiActivity extends AbstractActivity {
sendUids.addAll(items);
}
for (Integer uid : sendUids) {
try {
User user = UserManager.getUser(uid, true);
if (null == user) {
continue;
}
long l = user.getPlayerInfoManager().getCreateTime() + sGodSacrificeSetting.getLifeLimit() * TimeUtils.ONE_DAY;
int i = nowTime * 1000;
if (user.getPlayerInfoManager().getCreateTime() + sGodSacrificeSetting.getLifeLimit() * TimeUtils.ONE_DAY - TimeUtils.now() > 0) {
continue;
}
if (user.getGuildMyInfo().getJoinTime() + sGodSacrificeSetting.getJoinLimit() * TimeUtils.ONE_DAY - TimeUtils.now() > 0) {
continue;
}
// if (user.getGuildMyInfo().getJoinTime() + sGodSacrificeSetting.getJoinLimit() * TimeUtils.ONE_DAY - TimeUtils.now() > 0) {
// continue;
// }
int missionId;
if (rank2miss.containsKey(rankIndex)) {
missionId = rank2miss.get(rankIndex);
@ -246,13 +265,24 @@ class SheJiActivity extends AbstractActivity {
continue;
}
}
//checkAndUpdate value
SGodSacrificeConfig sActivityRankingReward1 = SGodSacrificeConfig.getsGodSacrificeConfigMap().get(missionId);
//sendmail
String title = SErrorCodeEerverConfig.getI18NMessage("guild_activity_reward_title", new Object[]{sGlobalActivity.getSesc()});
String content = SErrorCodeEerverConfig.getI18NMessage("guild_activity_reward_txt", new Object[]{sGlobalActivity.getSesc(), rankIndex});
String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward());
MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
final int finalIndex = rankIndex;
AyyncWorker ayyncWorker = new AyyncWorker(user, true, new AyncWorkerRunnable() {
@Override
public void work(User user) throws Exception {
//checkAndUpdate value
SGodSacrificeConfig sActivityRankingReward1 = SGodSacrificeConfig.getsGodSacrificeConfigMap().get(missionId);
//sendmail
String title = SErrorCodeEerverConfig.getI18NMessage("guild_activity_reward_title", new Object[]{sGlobalActivity.getSesc()});
String content = SErrorCodeEerverConfig.getI18NMessage("guild_activity_reward_txt", new Object[]{sGlobalActivity.getSesc(), finalIndex});
String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward());
MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
}
});
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
} catch (Exception e) {
LOGGER.error("id为{}的玩家,{}活动排行奖励没有发成功", uid, id);
System.out.println(e);

View File

@ -69,8 +69,22 @@ public class ChampionshipLogic {
gameFightTypeMap.put(0, GameFightType.TOPArenaPersonFight);
gameFightTypeMap.put(1, GameFightType.TOPArenaRobotFight);
gameFightTypeMap.put(2, GameFightType.TOPArena2RobotFight);
init();
}
public static void init(){
try {
String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_SCHEDULE, "");
Object result = RedisUtil.getInstence().get(key);
if (result != null) {
schedule = Integer.valueOf((String) result);
}
}catch (Exception e){
LOGGER.info("Exception the init={}");
}
}
public static int getProgress() {
return progress;
}
@ -87,6 +101,13 @@ public class ChampionshipLogic {
return schedule;
}
public static void setSchedule(int schedule) {
ChampionshipLogic.schedule = schedule;
String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_SCHEDULE, "");
RedisUtil.getInstence().set(key, String.valueOf(ChampionshipLogic.schedule));
}
public static int getRealTimes() {
return realTimes;
}
@ -779,7 +800,7 @@ public class ChampionshipLogic {
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_FINAL_RECODED_IDS, ""));
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_GUESSS_UIDS, ""));
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_ARENA_RECORD_THREE, ""));
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_SCHEDULE, ""));
//我的历史结果
joinUids.forEach(uid -> {
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(uid)));
@ -866,6 +887,13 @@ public class ChampionshipLogic {
/**
* 1.
*
* arenaRecordMap
* CHAMPION_ARENA_RECORD
* CHAMPION_CUR_JOIN_IDS id
* CHAMPION_JOIN
*
*
*/
public static void selectToBattle() {
RedisUtil.getInstence().del(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_CUR_JOIN_IDS, ""));
@ -959,6 +987,7 @@ public class ChampionshipLogic {
arenaRecordIds.addAll(arenaRecordMap.keySet());
RedisUtil.getInstence().lSet(RedisKey.CHAMPION_CUR_JOIN_IDS, "", arenaRecordIds);
if (schedule == 2) {
//记录4强 8强的人 方便索引
if (arenaRecordIds.size() >= 4) {
RedisUtil.getInstence().lSet(RedisKey.CHAMPION_FINAL32_JOIN_IDS, "", arenaRecordIds);
LOGGER.info("the rountTimes={},the size={}", roundTimes, arenaRecordIds.size());
@ -990,6 +1019,9 @@ public class ChampionshipLogic {
return RedisUtil.getInstence().getMapEntrys(RedisKey.CHAMPION_ARENA_RECORD, "", ids, ArenaRecord.class);
}
/**
* id
*/
public static String getSelectIdForRedis() {
String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_CUR_BETID, "");
Object result = RedisUtil.getInstence().get(key);
@ -1197,7 +1229,7 @@ public class ChampionshipLogic {
// //竞猜阶段取消,改成直接战斗 fix 又改回来了
// progressState = progressState==1?2:progressState;
progressTmp = 100 + roundTimes * 10 + progressState;
schedule = 1;
setSchedule(1);
fightTime=2;
if (progressTmp == progress) {
return;
@ -1205,7 +1237,7 @@ public class ChampionshipLogic {
} else {//决赛
if (realTimes>5) {
schedule = 2;
setSchedule(2);
if (progress != -2) {
progress = -2;
ChampionshipLogic.close();
@ -1219,7 +1251,7 @@ public class ChampionshipLogic {
scoreToRedis();
realTimes=1;
fightTime=0;
schedule = 2;
setSchedule(2);
selectToJoinFinal();
}

View File

@ -6,122 +6,122 @@ import manager.Table;
import java.util.HashMap;
import java.util.Map;
@Table(name ="GodSacrificeSetting")
@Table(name = "GodSacrificeSetting")
public class SGodSacrificeSetting implements BaseConfig {
private int id;
private int id;
private int activityId;
private int activityId;
private int[] activityItems;
private int[] activityItems;
private int activityMoney;
private int activityMoney;
private int[] rankType;
private int[] rankType;
private int[] rewardItemChangRate;
private int[] rewardItemChangRate;
private int qAId;
private int qAId;
private int itemDelete;
private int itemDelete;
private int timeRewardNum;
private int timeRewardNum;
private int[] timePointList;
private int[] timePointList;
private int timeRewardGroup;
private int timeRewardGroup;
private int lastTime;
private int lastTime;
public static HashMap<Integer,Integer> exchangeRate= new HashMap<>();
public static HashMap<Integer, Integer> exchangeRate = new HashMap<>();
private int levelLimit;
private int lifeLimit;
private int lifeLimit;
private int joinLimit;
private int joinLimit;
private int[][] mailId;
private int[][] mailId;
private int l1Score;
private int l1Score;
@Override
@Override
public void init() throws Exception {
SGodSacrificeSetting sGodSacrificeSetting = STableManager.getConfig(SGodSacrificeSetting.class).get(1);
if(null!=sGodSacrificeSetting){
if (null != sGodSacrificeSetting) {
int[] activityItems = sGodSacrificeSetting.getActivityItems();
for (int i = 0; i <activityItems.length ; i++) {
exchangeRate.put(activityItems[i],i);
for (int i = 0; i < activityItems.length; i++) {
exchangeRate.put(activityItems[i], i);
}
}
}
public int getId() {
public int getId() {
return id;
}
public int getActivityId() {
public int getActivityId() {
return activityId;
}
public int[] getActivityItems() {
public int[] getActivityItems() {
return activityItems;
}
public int getActivityMoney() {
public int getActivityMoney() {
return activityMoney;
}
public int[] getRankType() {
public int[] getRankType() {
return rankType;
}
public int[] getRewardItemChangRate() {
public int[] getRewardItemChangRate() {
return rewardItemChangRate;
}
public int getQAId() {
public int getQAId() {
return qAId;
}
public int getItemDelete() {
public int getItemDelete() {
return itemDelete;
}
public int getTimeRewardNum() {
public int getTimeRewardNum() {
return timeRewardNum;
}
public int[] getTimePointList() {
public int[] getTimePointList() {
return timePointList;
}
public int getTimeRewardGroup() {
public int getTimeRewardGroup() {
return timeRewardGroup;
}
public int getLastTime() {
public int getLastTime() {
return lastTime;
}
public int getLevelLimit() {
public int getLevelLimit() {
return levelLimit;
}
public int getLifeLimit() {
public int getLifeLimit() {
return lifeLimit;
}
public int getJoinLimit() {
public int getJoinLimit() {
return joinLimit;
}
public int[][] getMailId() {
public int[][] getMailId() {
return mailId;
}
public int getL1Score() {
public int getL1Score() {
return l1Score;
}