合服修改

master
PC-202302260912\Administrator 2023-08-22 11:37:05 +08:00
parent 4f50faaf6d
commit 8b4f5049ef
3 changed files with 42 additions and 11 deletions

View File

@ -2,6 +2,7 @@ package com.jmfy.dao.impl;
import com.jmfy.controller.UserInfoController; import com.jmfy.controller.UserInfoController;
import com.jmfy.dao.MailDao; import com.jmfy.dao.MailDao;
import com.jmfy.handler.HeFuManager;
import com.jmfy.model.*; import com.jmfy.model.*;
import com.jmfy.redisProperties.RedisUserKey; import com.jmfy.redisProperties.RedisUserKey;
import com.jmfy.utils.Connect; import com.jmfy.utils.Connect;
@ -53,10 +54,12 @@ public class MailDaoImpl implements MailDao {
String[] split = mail.getServerId().split(comma); String[] split = mail.getServerId().split(comma);
for (String serverId:split) { for (String serverId:split) {
int hefuServerId = HeFuManager.getHefuServerId(Integer.parseInt(serverId));
serverId = String.valueOf(hefuServerId);
Query query = new Query(); Query query = new Query();
//_id区分引号 "1"和1 //_id区分引号 "1"和1
query.addCriteria(Criteria.where("_id").is(Integer.parseInt(serverId))); query.addCriteria(Criteria.where("_id").is(hefuServerId));
String dbName = MongoName.getMongoDBName(Integer.valueOf(serverId)); String dbName = MongoName.getMongoDBName(hefuServerId);
MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName); MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName);
//有则更新,没有则新增 //有则更新,没有则新增
WriteResult result = mongoTemplate.upsert(query, update, "mailingSystem"); WriteResult result = mongoTemplate.upsert(query, update, "mailingSystem");

View File

@ -7,17 +7,17 @@ import com.jmfy.model.ServerInfo;
import com.jmfy.utils.RedisUtil; import com.jmfy.utils.RedisUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.ZSetOperations; import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.Set;
/** /**
* @Author hj * @Author hj
@ -29,11 +29,38 @@ import java.util.Set;
public class HeFuManager { public class HeFuManager {
private static final Logger LOGGER = LoggerFactory.getLogger(HeFuManager.class); private static final Logger LOGGER = LoggerFactory.getLogger(HeFuManager.class);
@Resource private static CHefuDao hefuDao;
private CHefuDao hefuDao;
@Resource @Resource
private ServerInfoDao serverInfoDao; private ServerInfoDao serverInfoDao;
@Autowired
public HeFuManager(CHefuDao hefuDao) {
HeFuManager.hefuDao = hefuDao;
}
private static final Map<Integer, Integer> hefuMap = new HashMap<>();
public static int getHefuServerId(int serverId) {
return hefuMap.getOrDefault(serverId, serverId);
}
@PostConstruct
public void init(){
try {
List<CHefuInfo> hefuList = hefuDao.findHefuList();
if (hefuList == null || hefuList.isEmpty()){
return;
}
for (CHefuInfo info : hefuList) {
for (Integer slaveServerId : info.getSlaveServerIds()) {
hefuMap.put(slaveServerId, info.getMasterServerId());
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/** /**
* mongo * mongo
*/ */
@ -199,7 +226,7 @@ public class HeFuManager {
slaveServer.setCoreName(masterServer.getCoreName()); slaveServer.setCoreName(masterServer.getCoreName());
slaveServer.setIsSlave(1); slaveServer.setIsSlave(1);
serverInfoDao.updateServerInfo(slaveServer); serverInfoDao.updateServerInfo(slaveServer);
LOGGER.info("处理IP和端口完成:{}",slaveServer.toString()); LOGGER.info("处理IP和端口完成:{}", slaveServer);
} }
public static final String colon = ":"; public static final String colon = ":";
@ -213,7 +240,7 @@ public class HeFuManager {
public static final String GUILD_CHALLENGE_RANK = "GUILD_CHALLENGE_RANK";//公会副本排行榜 public static final String GUILD_CHALLENGE_RANK = "GUILD_CHALLENGE_RANK";//公会副本排行榜
public static final String ARENA_RANK = "ARENA_RANK";//竞技场排行榜 public static final String ARENA_RANK = "ARENA_RANK";//竞技场排行榜
public boolean dealRedis(int masterSID, int slowSID){ public void dealRedis(int masterSID, int slowSID){
LOGGER.info("开始处理redis排行榜===========a{}b:{}",masterSID,slowSID); LOGGER.info("开始处理redis排行榜===========a{}b:{}",masterSID,slowSID);
// 战力排行榜处理 // 战力排行榜处理
defaultRankOfRedis(FORCE_CURR_RANK,masterSID,slowSID); defaultRankOfRedis(FORCE_CURR_RANK,masterSID,slowSID);
@ -234,7 +261,6 @@ public class HeFuManager {
// 竞技场排行榜处理 // 竞技场排行榜处理
deleteRankOfRedis(ARENA_RANK,masterSID); deleteRankOfRedis(ARENA_RANK,masterSID);
LOGGER.info("处理redis排行榜完成"); LOGGER.info("处理redis排行榜完成");
return true;
} }
public void defaultRankOfRedis(String key, int masterSID, int slowSID){ public void defaultRankOfRedis(String key, int masterSID, int slowSID){

View File

@ -1,5 +1,6 @@
package com.jmfy.utils; package com.jmfy.utils;
import com.jmfy.handler.HeFuManager;
import com.jmfy.redisProperties.RedisUserKey; import com.jmfy.redisProperties.RedisUserKey;
import com.jmfy.thrift.idl.RPCRequestGMIFace; import com.jmfy.thrift.idl.RPCRequestGMIFace;
import com.jmfy.thrift.idl.Result; import com.jmfy.thrift.idl.Result;
@ -54,7 +55,8 @@ public class RPCClient {
} }
public static int sendWithServerId(int serverId,String cmd) { public static int sendWithServerId(int serverId,String cmd) {
Result result = sendCmd(serverId, cmd); int hefuServerId = HeFuManager.getHefuServerId(serverId);
Result result = sendCmd(hefuServerId, cmd);
if (result == null || result.getResultCode() != 0){ if (result == null || result.getResultCode() != 0){
return -1; return -1;
} }