Merge branch 'master_test_gn_zf' into master_test_gn

# Conflicts:
#	serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java
#	serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java
back_recharge
xuexinpeng 2021-08-16 14:40:38 +08:00
commit d517f05b82
14 changed files with 150 additions and 162 deletions

View File

@ -93,6 +93,7 @@ public class MongoUtil {
return MongoUtil.getInstence().getMyMongoTemplate();
}
//todo 慢查 需要修改
public List<User> getRandomUsers(int size, int uid, int level) throws Exception {
if (size <= 0) {
return null;

View File

@ -145,8 +145,9 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
String key = RedisUtil.getInstence().getKey(RedisKey.CAR_CHALLENGE_RECORD, String.valueOf(uid));
String challenegeKey = RedisUtil.getInstence().getKey(RedisKey.CAR_CHALLENGE_RECORD, String.valueOf(challeageId));
if(hurt!=0){
RedisUtil.getInstence().zsetAddOne(key,content + "|" + challeageId,(int)(System.currentTimeMillis()/1000));
RedisUtil.getInstence().zsetAddOne(challenegeKey,challengeContent + "|" + uid,(int)(System.currentTimeMillis()/1000));
int time = (int) (System.currentTimeMillis() / 1000);
RedisUtil.getInstence().zsetAddOne(key,content + "|" + challeageId+"|"+time,time);
RedisUtil.getInstence().zsetAddOne(challenegeKey,challengeContent + "|" + uid+"|"+time, time);
}
user.getUserMissionManager().onGameEvent(user, GameEvent.CAR_PLAY_LOOT,1);
}break;

View File

@ -109,7 +109,7 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
bundle_id = splitChannelS[1];
}
if(!StringUtil.isEmpty(splitChannelS[2])){
pack_Id = splitChannelS[1];
pack_Id = splitChannelS[2];
}
}

View File

@ -61,7 +61,8 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
builder.setIsStart(1);
}
if (!HandlerLogicThread.checkOpen(UserManager.getUser(iSession.getUid()),sGlobalSystemConfig)) {
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.GetWorldArenaInfoResponse.getNumber(),builder.build(),true);
return;
}

View File

@ -1,5 +1,7 @@
package com.ljsd.jieling.handler.pokemon;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.network.session.ISession;

View File

@ -1,34 +1,19 @@
package com.ljsd.jieling.kefu;
import com.ljsd.jieling.core.Lockeys;
import com.ljsd.jieling.core.SimpleTransaction;
import com.ljsd.jieling.db.mongo.AreaManager;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.activity.AbstractActivity;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
import com.ljsd.jieling.logic.activity.event.CommitSheJiEvent;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.HeroManager;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
import config.SGodSacrificeSetting;
import manager.STableManager;
import org.springframework.data.redis.core.ZSetOperations;
import com.ljsd.jieling.util.SysUtil;
import config.SCHero;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.*;
/**
* Description: gm线
@ -40,89 +25,72 @@ import java.util.Set;
public class Cmd_fixsj extends GmAbstract {
@Override
public boolean exec(String[] args) throws Exception {
// for (int i = 0; i <150 ; i++) {
// String key = RedisKey.getKey(RedisKey.FORCE_RANK, "", false);
// RedisUtil.getInstence().zsetAddOne(key, String.valueOf(10000+i), 10000+i);
// }
try {
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
AbstractRank guildRank = RankContext.getRankEnum(RankEnum.GUILD_SHEJI_SCORE_RANK.getType());
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
try {
GuildInfo guildInfo = guildInfoEntry.getValue();
Double zSetScore = RedisUtil.getInstence().getZSetScore(RankEnum.GUILD_SHEJI_SCORE_RANK.getRedisKey(), "50002", Integer.toString(guildInfo.getId()));
// if(zSetScore<0){
// continue;
// }
Double sumValue =0d;
Set<Integer> sendUids = new HashSet<>();
for (Set<Integer> items : guildInfo.getMembers().values()) {
sendUids.addAll(items);
}
for (Integer uid : sendUids) {
Double zSetScore1 = RedisUtil.getInstence().getZSetScore(RankEnum.EXPERT_RANK.getRedisKey(), "50002", Integer.toString(uid));
if(zSetScore1<0){
zSetScore1=0d;
}
sumValue+=zSetScore1;
}
if(sumValue<0){
sumValue=0d;
}
System.out.println(guildInfo.getName()+"guildInfo.get = " + guildInfo.getGuildSheJiScore());
System.out.println(guildInfo.getName()+"zSetScore = " + zSetScore);
System.out.println(guildInfo.getName()+"sumValue = " + sumValue);
SGodSacrificeSetting sGodSacrificeSetting = STableManager.getConfig(SGodSacrificeSetting.class).get(1);
if(sumValue>=sGodSacrificeSetting.getL1Score()){
guildRank.addRank(guildInfo.getId(),"50002",sumValue);
}else {
String key= RedisUtil.getInstence().getKey(RankEnum.GUILD_SHEJI_SCORE_RANK.getRedisKey(), "50002");
RedisUtil.getInstence().zsetRemoveOne(key,Integer.toString(guildInfo.getId()));
}
guildInfo.setGuildSheJiScore(sumValue.intValue());
for (Integer uid : sendUids) {
User user = UserManager.getUser(uid);
if (null == user) {
LOGGER.error("Exception::user==null,uid=>{}", uid);
continue;
}
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(50002);
if (abstractActivity == null) {
continue;
}
abstractActivity.update(user, sumValue.intValue());
// Double zSetScore1 = RedisUtil.getInstence().getZSetScore(RankEnum.EXPERT_RANK.getRedisKey(), "50002", Integer.toString(uid));
// sumValue+=zSetScore1;
}
}catch (Exception e){
LOGGER.error("Exception resetGuildInfo err");
}finally {
}
//
String path= SysUtil.getPath("conf/fix_hero.txt");
File file = new File(path);
FileReader fileReader = null;
fileReader = new FileReader(file);
BufferedReader in = new BufferedReader(fileReader);
String line = null;
Map<Integer, Map<Integer,Integer>> heroMap = new HashMap<>();
System.out.println("开始处理");
while ((line = in.readLine()) != null) {
Map<Integer,Integer> oneHeroMap = new HashMap<>();
String[] s = line.split("\t");
String[] split = s[1].split(",");
for(String sp:split){
String[] split1 = sp.split("-");
int heroId = Integer.parseInt(split1[0]);
oneHeroMap.put(heroId,oneHeroMap.getOrDefault(heroId,0)+1);
}
} catch (Exception e) {
LOGGER.info("修复排行榜异常" + e.toString());
heroMap.put(Integer.parseInt(s[0]),oneHeroMap);
System.out.println("this line" + line);
line = null;
}
Map<Integer, Map<Integer,Integer>> deleteMap = new HashMap<>();
for(Map.Entry<Integer,Map<Integer,Integer>> entry:heroMap.entrySet()){
deleteMap.put(entry.getKey(),new HashMap<>());
User user = UserManager.getUser(entry.getKey());
HeroManager heroManager = user.getHeroManager();
Map<String, Hero> heroManagerHeroMap = heroManager.getHeroMap();
Set<String> allDelId = new HashSet<>();
next:for(Map.Entry<String,Hero> entryHero:heroManagerHeroMap.entrySet()){
Hero hero= entryHero.getValue();
if(!entry.getValue().containsKey(hero.getTemplateId())){
continue;
}
if(entry.getValue().get(hero.getTemplateId())<1){
continue;
}
if(hero.getLevel(heroManager)!=1){
continue;
}
if(hero.getStar()!= SCHero.getsCHero().get(hero.getTemplateId()).getStar()){
continue;
}
Map<Integer, Integer> map = deleteMap.get(entry.getKey());
for(Map.Entry<Integer, List<TeamPosHeroInfo>> teamPosHeroInfo:user.getTeamPosManager().getTeamPosForHero().entrySet()){
List<TeamPosHeroInfo> value = teamPosHeroInfo.getValue();
for(TeamPosHeroInfo info:value){
if(info.getHeroId().equals(hero.getId())){
continue next;
}
}
}
allDelId.add(hero.getId());
map.put(hero.getTemplateId(),map.getOrDefault(hero.getTemplateId(),0)+1);
}
for(String str:allDelId){
user.getHeroManager().removeHero(entry.getKey(),str);
}
System.out.println("删除英雄动态id==>"+allDelId.toString());
}
deleteMap.forEach((k,v)-> System.out.println(k+"要删除的"+v.toString()));
in.close();
fileReader.close();
MongoUtil.getLjsdMongoTemplate().lastUpdate();
return true;
}
}

View File

@ -25,55 +25,55 @@ import java.util.Set;
public class Cmd_recharge extends GmAbstract {
@Override
public boolean exec(String[] args) throws Exception {
int serverId = GameApplication.serverId;
MongoTemplate monogTemplate = MongoUtil.getInstence().getMonogTemplate(serverId);
MongoTemplate coreMongoTemplate = MongoUtil.getCoreMongoTemplate();
Query query = new Query(Criteria.where("_id").ne("100000"));
query.fields().include("playerManager");
long count = monogTemplate.count(query, User.class, "user");
int pageSize = 10;
//分页
for(int i = 0 ; i <count/pageSize+1;i++){
Pageable pageable = new PageRequest(i,pageSize);
List<User> allByCondition = monogTemplate.find(query.with(pageable), User.class,"user");
for(User user:allByCondition){
PlayerManager playerInfoManager = user.getPlayerInfoManager();
System.out.println(user.getId());
NewRechargeInfo newRechargeInfo = playerInfoManager.getNewRechargeInfo();
RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo();
double rr = (rechargeInfo==null?0:rechargeInfo.getSaveAmt())+(newRechargeInfo==null?0:newRechargeInfo.getRr());
if(rr==0){
continue;
}
//判断是否有其他服已经加入过充值信息
Query rechargeQuery = new Query(Criteria.where("_id").is(playerInfoManager.getOpenId()));
Recharge recharge = coreMongoTemplate.findOne(rechargeQuery, Recharge.class, "recharge");
if(recharge==null){
recharge = new Recharge();
recharge.setId(playerInfoManager.getOpenId());
recharge.setRr(rr);
Set<Integer> serverIds = new HashSet<>();
serverIds.add(serverId);
recharge.setServerId(serverIds);
}else{
Set<Integer> serverIds = recharge.getServerId();
if(serverIds!=null&&serverIds.contains(serverId)){
continue;
}
recharge.setRr(recharge.getRr()+rr);
recharge.getServerId().add(serverId);
}
coreMongoTemplate.save(recharge,"recharge");
}
}
System.out.println();
// int serverId = GameApplication.serverId;
// MongoTemplate monogTemplate = MongoUtil.getInstence().getMonogTemplate(serverId);
// MongoTemplate coreMongoTemplate = MongoUtil.getCoreMongoTemplate();
//
// Query query = new Query(Criteria.where("_id").ne("100000"));
// query.fields().include("playerManager");
// long count = monogTemplate.count(query, User.class, "user");
//
// int pageSize = 10;
//
// //分页
// for(int i = 0 ; i <count/pageSize+1;i++){
// Pageable pageable = new PageRequest(i,pageSize);
// List<User> allByCondition = monogTemplate.find(query.with(pageable), User.class,"user");
//
// for(User user:allByCondition){
// PlayerManager playerInfoManager = user.getPlayerInfoManager();
// System.out.println(user.getId());
// NewRechargeInfo newRechargeInfo = playerInfoManager.getNewRechargeInfo();
// RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo();
// double rr = (rechargeInfo==null?0:rechargeInfo.getSaveAmt())+(newRechargeInfo==null?0:newRechargeInfo.getRr());
// if(rr==0){
// continue;
// }
// //判断是否有其他服已经加入过充值信息
// Query rechargeQuery = new Query(Criteria.where("_id").is(playerInfoManager.getOpenId()));
// Recharge recharge = coreMongoTemplate.findOne(rechargeQuery, Recharge.class, "recharge");
// if(recharge==null){
// recharge = new Recharge();
// recharge.setId(playerInfoManager.getOpenId());
// recharge.setRr(rr);
// Set<Integer> serverIds = new HashSet<>();
// serverIds.add(serverId);
// recharge.setServerId(serverIds);
// }else{
// Set<Integer> serverIds = recharge.getServerId();
// if(serverIds!=null&&serverIds.contains(serverId)){
// continue;
// }
// recharge.setRr(recharge.getRr()+rr);
// recharge.getServerId().add(serverId);
// }
// coreMongoTemplate.save(recharge,"recharge");
// }
//
// }
//
//
// System.out.println();
return true;
}
}

View File

@ -86,7 +86,7 @@ public class ReportUserEvent {
}
public ReportUserEvent setPackId(String packId){
baseInfo.put("pack_id",packId);
baseInfo.put("packId",packId);
return this;
}

View File

@ -105,8 +105,8 @@ public class ReportUtil {
.setDiamond_amount(diamond==null?0:(int)diamond.getItemNum())
.setFighting_capacity(user.getPlayerInfoManager().getMaxForce())
.setLevel(user.getPlayerInfoManager().getLevel())
.setChannelId(user.getPlayerInfoManager().getChannel_id())
.setPackId(user.getPlayerInfoManager().getPack_id());
.setChannelId(user.getPlayerInfoManager().getChannel_id()==null?"":user.getPlayerInfoManager().getChannel_id())
.setPackId(user.getPlayerInfoManager().getPack_id()==null?"":user.getPlayerInfoManager().getPack_id());
}
public static void doReport(ReportUserEvent reportUserEvent){

View File

@ -25,6 +25,7 @@ public class CreateRoleEventHandler extends CommonEventHandler{
setOnceProperties.put("channel_id",user.getPlayerInfoManager().getChannel_id());
setOnceProperties.put("platform_id",user.getPlayerInfoManager().getPlatform());
setOnceProperties.put("reg_ip",user.getPlayerInfoManager().getIp());
setOnceProperties.put("packId",user.getPlayerInfoManager().getPack_id());
userProperties.put(1,setProperties);
userProperties.put(2,setOnceProperties);

View File

@ -546,6 +546,9 @@ public class GlobalDataManaager implements IManager {
long serverOpenTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime());
// 根据格式获取时间戳 例子 20210720
int value = SSpecialConfig.getIntegerValue(SSpecialConfig.DATA_OF_UNLOCK_THE_EVEREST);
if(value==-1){
value = 20210731;//防止报错
}
long time = TimeUtils.stringToTimeLong(String.valueOf(value), "yyyyMMdd");
// 规定时间之前开服的返回0
if (serverOpenTime < time){

View File

@ -226,10 +226,9 @@ public class TreasureActivity extends AbstractActivity {
private void dropByState(List<int[][]> dropList,int curState,int targetState,int missionId){
STreasureSunlongConfig rewardConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(id).get(missionId);
if(curState==ActivityType.WILL_TAKE){
if(rewardConfig.getReward()==null||rewardConfig.getReward().length<1){
return;
if(rewardConfig.getReward()!=null&&rewardConfig.getReward().length>0){
dropList.add(rewardConfig.getReward());
}
dropList.add(rewardConfig.getReward());
if(targetState == ActivityType.FINISH_TAKED){
dropList.add(rewardConfig.getTreasureReward());
}

View File

@ -96,6 +96,14 @@ public class MailLogic {
removeIds.add(cMail.getId());
continue;
}
//运营 游心gm 20019服错发邮件
if("45u6xr9ch5dr0epw".equals(GameApplication.serverProperties.getAppId())){
if(GameApplication.serverProperties.getId() == 20019){
if("登录问题修复公告||".equals(cMail.getHead()) && "19#300|60#5".equals(cMail.getMailItem())){
cMail.setMailItem("19#3|60#5");
}
}
}
cMailList.add(cMail);
}
for(String removeId : removeIds){

View File

@ -774,11 +774,15 @@ public class PlayerLogic {
Map<Integer, Long> heroNotBufferAttribute = hero.getAttributeMapByTeam().getOrDefault(teamId,new HashMap<>());
for(Map.Entry<Integer,Long> item : heroNotBufferAttribute.entrySet()){
builder.addSpecialEffects(crossPropertyHandle(item.getKey(),item.getValue().intValue()));
int id = item.getKey();
int values = item.getValue().intValue();
if (id == 53 || id == 57 || id == 58){
values = item.getValue().intValue()-10000;
}
builder.addSpecialEffects(CommonProto.SpecialEffects.newBuilder().setPropertyId(id).setPropertyValue(values).build());
}
Map<String, PropertyItem> jewels = query.getHeroManager().getJewels();
// 宝物
for(String equipId : hero.getJewelInfo()){
for(String equipId : hero.getJewelInfo()){
heroBuilder.addJewels(equipId);
builder.addEquip(CBean2Proto.getEquipProto(jewels.get(equipId)));
}