Merge branch 'master' of http://60.1.1.230/backend/jieling_server
# Conflicts: # serverlogic/src/main/java/com/ljsd/GmService.javaback_recharge
commit
b84afdf49a
|
@ -69,7 +69,8 @@ public class JavaAgent {
|
|||
//该方法支持在JVM 启动后再启动代理,对应清单的Agent-Class:属性
|
||||
public static void agentmain(String args,Instrumentation inst){
|
||||
try{
|
||||
writeLog("args=:[" + args + "]");
|
||||
writeLog("argsxxxxxxxxxx=:[" + args + "]");
|
||||
writeLog("argsxxxxxxxxxxyyy=:[" + JavaAgent.class.getResource("").getPath() + "]");
|
||||
File f = new File(args);
|
||||
byte[] targetClassFile = new byte[(int)f.length()];
|
||||
DataInputStream dis = new DataInputStream(new FileInputStream(f));
|
||||
|
@ -78,8 +79,8 @@ public class JavaAgent {
|
|||
|
||||
DynamicClassLoader myLoader = new DynamicClassLoader();
|
||||
Class targetClazz = myLoader.findClass(targetClassFile);
|
||||
writeLog("class name is:["+targetClazz.getName() + "]");
|
||||
|
||||
writeLog("class namexxxxx is:["+targetClazz.getName() + "]");
|
||||
writeLog("class path is:["+targetClazz.getResource("").getPath() + "]");
|
||||
Class<?> clz = Class.forName(targetClazz.getName());
|
||||
writeLog("clz-->Class.forName:(\""+targetClazz.getName() + "\")");
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd;
|
||||
|
||||
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.kefu.GmGlobleAbstract;
|
||||
import com.ljsd.jieling.kefu.GmInterface;
|
||||
import com.ljsd.jieling.kefu.GmRoleAbstract;
|
||||
|
@ -49,6 +50,27 @@ public class GmService implements RPCRequestGMIFace.Iface {
|
|||
return result;
|
||||
}
|
||||
|
||||
if(cmd.contains("hotfix")){
|
||||
List<User> usersInDB = MongoUtil.getLjsdMongoTemplate().findAll("user", User.class);
|
||||
List<Integer> sendIds = new ArrayList<>(usersInDB.size());
|
||||
for(User user1 : usersInDB){
|
||||
User userInMem = UserManager.getUserInMem(user1.getId());
|
||||
if(userInMem == null){
|
||||
continue;
|
||||
}
|
||||
sendIds.add(user1.getId());
|
||||
}
|
||||
InnerMessageUtil.broadcastWithRandom(new AyyncWorker() {
|
||||
@Override
|
||||
public void work(User user) throws Exception {
|
||||
LOGGER.info("hotfix user={}",user.getId());
|
||||
MongoUtil.getLjsdMongoTemplate().save(user);
|
||||
}
|
||||
}, sendIds, Math.min(10, 10));
|
||||
result.setResultCode(1);
|
||||
return result;
|
||||
}
|
||||
|
||||
obj = (GmInterface) Class.forName(
|
||||
GmInterface.class.getPackage().getName() + ".Cmd_"
|
||||
+ arg[0].toLowerCase()).newInstance();
|
||||
|
@ -59,6 +81,9 @@ public class GmService implements RPCRequestGMIFace.Iface {
|
|||
}
|
||||
try {
|
||||
String[] parameters = java.util.Arrays.copyOfRange(arg, 1, arg.length);
|
||||
|
||||
|
||||
|
||||
if (obj instanceof GmRoleAbstract) {
|
||||
List<Integer> sendIds = new LinkedList<>();
|
||||
if (obj instanceof GmGlobleAbstract) {
|
||||
|
|
|
@ -51,6 +51,5 @@ public class ServerConfig extends MongoBase {
|
|||
|
||||
public void setWorldLevel(int worldLevel) {
|
||||
this.worldLevel = worldLevel;
|
||||
updateString("world_level",worldLevel);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,12 +4,18 @@ import com.google.gson.Gson;
|
|||
import com.ljsd.common.mogodb.LjsdMongoTemplate;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.util.MathUtils;
|
||||
import com.mongodb.MongoClientURI;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
|
||||
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -82,7 +88,6 @@ public class MongoUtil {
|
|||
|
||||
return MongoUtil.getInstence().coreMongoTemplate;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
LjsdMongoTemplate ljsdMongoTemplate = getLjsdMongoTemplate();
|
||||
|
|
|
@ -132,12 +132,14 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
endless.setMapId(MapLogic.getEndlessMapId());
|
||||
endless.setWorldLevel(MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class).getWorldLevel());
|
||||
endless.setBloodScore(RedisUtil.getInstence().getZSetScore(RedisKey.BLOODY_RANK,Integer.toString(1), Integer.toString(userId)).intValue());
|
||||
List<CommonProto.GiftGoodsInfo> goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size());
|
||||
BuyGoodsLogic.getGoodsBagInfo(userId,goodsBagInfo,true);
|
||||
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
|
||||
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder()
|
||||
.setPlayer(player)
|
||||
.addAllNewPlayerGuidePoint(list)
|
||||
.addAllPrivilege(privilegeList)
|
||||
.addAllGiftGoodsInfo(BuyGoodsLogic.getGoodsBagInfo(userId))
|
||||
.addAllGiftGoodsInfo(goodsBagInfo)
|
||||
.addAllBuyGoodsId(rechargeInfo.getBuyGoodsTimes().keySet())
|
||||
.setSuddenlyBossInfo(suddenlyBossInfo)
|
||||
.setVipBaseInfo(vipInfoProto)
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.ljsd.jieling.config.*;
|
|||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
|
||||
import com.ljsd.jieling.dataReport.reportBeans_37.Repot37EventUtil;
|
||||
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.globals.BIReason;
|
||||
|
@ -1027,26 +1028,30 @@ public class MapLogic {
|
|||
//无尽副本
|
||||
if(challengeConfig.getType()==4) {
|
||||
if(outType==1){
|
||||
mapManager.updateEndlessLocation(0);
|
||||
int[][] cost = new int[1][];
|
||||
int costId = SChallengeSetting.getChallengeSetting().getActionPowerId();
|
||||
int costNum = SEndlessMapConfig.sEndlessMapConfigMap.get(mapId).getTeleportCost();
|
||||
int costNum2 = SEndlessMapConfig.sEndlessMapConfigMap.get(targetMapId).getTeleportCost();
|
||||
int resultCost = Math.abs(costNum-costNum2);
|
||||
mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+resultCost);
|
||||
cost[0]= new int[]{costId,resultCost};//Math.abs(costNum-costNum)
|
||||
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
|
||||
mapManager.setCurMapId(0);
|
||||
mapManager.setCurXY(0);
|
||||
mapManager.updateEndlessLocation(0);
|
||||
|
||||
if(!costResult){
|
||||
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"行动力不足!");
|
||||
return;
|
||||
}
|
||||
LOGGER.info("传送消耗{}行动力"+Math.abs(costNum-costNum2));
|
||||
// mapManager.updateEndlessLocation(0);
|
||||
// int[][] cost = new int[1][];
|
||||
// int costId = SChallengeSetting.getChallengeSetting().getActionPowerId();
|
||||
// int costNum = SEndlessMapConfig.sEndlessMapConfigMap.get(mapId).getTeleportCost();
|
||||
// int costNum2 = SEndlessMapConfig.sEndlessMapConfigMap.get(targetMapId).getTeleportCost();
|
||||
// int resultCost = Math.abs(costNum-costNum2);
|
||||
// mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+resultCost);
|
||||
// cost[0]= new int[]{costId,resultCost};//Math.abs(costNum-costNum)
|
||||
// boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
|
||||
// mapManager.setCurMapId(0);
|
||||
// mapManager.setCurXY(0);
|
||||
// mapManager.updateEndlessLocation(0);
|
||||
//
|
||||
// if(!costResult){
|
||||
// MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"行动力不足!");
|
||||
// return;
|
||||
// }
|
||||
// LOGGER.info("传送消耗{}行动力"+Math.abs(costNum-costNum2));
|
||||
}else{
|
||||
mapManager.updateEndlessLocation(curXY);
|
||||
if(MapLogic.endlessSeason!=mapManager.getEndlessMapInfo().getSeason()){
|
||||
mapManager.updateEndlessLocation(0);
|
||||
}else{
|
||||
mapManager.updateEndlessLocation(curXY);
|
||||
}
|
||||
mapManager.updateEndlessConsumeExecution(0);
|
||||
mapManager.updateEndlessFightCount(0);
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ public class HotfixUtil{
|
|||
for (ClassBean cl : list) {
|
||||
String path = "../conf/hotswap/"+cl.getName();
|
||||
LOGGER.info("HotfixUtil->i={},path={}", i, path);
|
||||
vm.loadAgent("../lib/serverlogiclib/hotfix.jar",path);//path参数即agentmain()方法的第一个参数
|
||||
vm.loadAgent("../lib/hotfix.jar",path);//path参数即agentmain()方法的第一个参数
|
||||
i++;
|
||||
}
|
||||
currVerion = version;
|
||||
|
|
|
@ -37,7 +37,10 @@ import com.ljsd.jieling.util.TimeUtils;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -164,6 +167,7 @@ public class GlobalDataManaager {
|
|||
case Endless:
|
||||
MapLogic.getInstance().updateEndlessSeason(timeControllerOfFunction.getTimes());
|
||||
serverConfigTmp.setWorldLevel(calWorldLevel());
|
||||
MongoUtil.getLjsdMongoTemplate().save(serverConfigTmp);
|
||||
MapLogic.getInstance().setEndlessMapId(getEndleeMapIdByLevel());
|
||||
break;
|
||||
default:
|
||||
|
@ -350,7 +354,22 @@ public class GlobalDataManaager {
|
|||
|
||||
|
||||
private static int calWorldLevel(){
|
||||
return 20;
|
||||
Query query = new Query();
|
||||
query.with(new Sort(Sort.Direction.DESC,"playerManager.level"));
|
||||
query.fields().include("playerManager.level");
|
||||
List<User> users = null;
|
||||
try {
|
||||
users = MongoUtil.getLjsdMongoTemplate().findAllByCondition(query, User.class);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
int size = (int)(users.size()*0.85);
|
||||
int level = 0;
|
||||
for(int i = 0 ; i <size;i++){
|
||||
level+=users.get(i).getPlayerInfoManager().getLevel();
|
||||
}
|
||||
LOGGER.info("计算世界等级为{}",level/size);
|
||||
return level/size;
|
||||
}
|
||||
private static int getEndleeMapIdByLevel() throws Exception {
|
||||
ServerConfig config = MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class);
|
||||
|
|
|
@ -4,6 +4,8 @@ import com.ljsd.common.mogodb.MongoBase;
|
|||
import com.ljsd.jieling.config.SRechargeCommodityConfig;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
||||
import io.netty.util.internal.ConcurrentSet;
|
||||
import org.springframework.data.annotation.Transient;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
@ -16,6 +18,9 @@ public class RechargeInfo extends MongoBase{
|
|||
private int hadBuyFound;
|
||||
private int isDayFirst;
|
||||
|
||||
|
||||
@Transient
|
||||
private Set<Integer> cacheSendedIds = new ConcurrentSet<>();
|
||||
private Map<Integer,Long> levelBagMap = new HashMap<>();
|
||||
|
||||
private Map<Integer,Integer> buyGoodsTimes = new HashMap<>();
|
||||
|
@ -28,6 +33,14 @@ public class RechargeInfo extends MongoBase{
|
|||
|
||||
}
|
||||
|
||||
public boolean addNewSendId(int id){
|
||||
return cacheSendedIds.add(id);
|
||||
}
|
||||
|
||||
public void clearCacheSendId(){
|
||||
cacheSendedIds.clear();
|
||||
}
|
||||
|
||||
//检测商品是否过期
|
||||
public Set<Integer> checkIsGoodsTypeOverTime(){
|
||||
int now = (int)(System.currentTimeMillis()/1000);
|
||||
|
|
|
@ -978,9 +978,9 @@ public class CombatLogic {
|
|||
effect[1] = special;
|
||||
for(int i = 0 ; i<effect.length;i++){
|
||||
if(effect[i].length>2){
|
||||
LOGGER.info("生效的光环为{},{},{}",effect[i][0],effect[i][1],effect[i][2]);
|
||||
// LOGGER.info("生效的光环为{},{},{}",effect[i][0],effect[i][1],effect[i][2]);
|
||||
}else{
|
||||
LOGGER.info("生效的光环为{},{}",effect[i][0],effect[i][1]);
|
||||
// LOGGER.info("生效的光环为{},{}",effect[i][0],effect[i][1]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
package com.ljsd.jieling.logic.store;
|
||||
|
||||
import com.ljsd.common.mogodb.MongoUpdateCache;
|
||||
import com.ljsd.common.mogodb.MongoUpdateCacheThreadLocal;
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.HandlerLogicThread;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.ktbeans.KtEventUtils;
|
||||
|
@ -9,33 +13,33 @@ import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
|
|||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.dao.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.RechargeInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.thrift.idl.Result;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.StringUtil;
|
||||
import com.ljsd.jieling.util.TimeUtils;
|
||||
import com.ljsd.jieling.util.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 真钱购买东西
|
||||
*/
|
||||
public class BuyGoodsLogic {
|
||||
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(BuyGoodsLogic.class);
|
||||
|
||||
public static void testBuyGoods(ISession session,int goodsId) throws Exception {
|
||||
|
@ -211,6 +215,12 @@ public class BuyGoodsLogic {
|
|||
resultRes.setResultCode(1);
|
||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price);
|
||||
notifyPaySuccessFul(uid,goodsId,amount != -999);
|
||||
|
||||
Class<? extends MongoUpdateCache> aClass = MongoUpdateCacheThreadLocal.getMongoUpdateCache().getClass();
|
||||
Field requestMap = aClass.getDeclaredField("requestMap");
|
||||
requestMap.setAccessible(true);
|
||||
requestMap.set(MongoUpdateCacheThreadLocal.getMongoUpdateCache(), new HashMap<>());
|
||||
MongoUtil.getLjsdMongoTemplate().save(user);
|
||||
return resultRes;
|
||||
|
||||
}
|
||||
|
@ -266,16 +276,19 @@ public class BuyGoodsLogic {
|
|||
|
||||
}
|
||||
|
||||
public static List<CommonProto.GiftGoodsInfo> getGoodsBagInfo(int uid) throws Exception {
|
||||
public static boolean getGoodsBagInfo(int uid,List<CommonProto.GiftGoodsInfo> giftGoodsInfoList,boolean needClear) throws Exception {
|
||||
User user = UserManager.getUser(uid);
|
||||
RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
|
||||
long now = TimeUtils.now();
|
||||
Map<Integer, Integer> buyGoodsTimes = rechargeInfo.getBuyGoodsTimes();
|
||||
Map<Integer, Long> levelBagMap = rechargeInfo.getLevelBagMap();
|
||||
Map<Integer,Integer> goodsOrder = new HashMap<>(6);
|
||||
List<CommonProto.GiftGoodsInfo> giftGoodsInfoList = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size());
|
||||
Map<Integer,CommonProto.GiftGoodsInfo> giftGoodsInfoMap = new HashMap<>();
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
boolean needChange= false;
|
||||
if(needClear){
|
||||
rechargeInfo.clearCacheSendId();
|
||||
}
|
||||
for(SRechargeCommodityConfig sRechargeCommodityConfig :SRechargeCommodityConfig.rechargeCommodityConfigMap.values()){
|
||||
int limit = sRechargeCommodityConfig.getLimit();
|
||||
int goodsId = sRechargeCommodityConfig.getId();
|
||||
|
@ -313,7 +326,7 @@ public class BuyGoodsLogic {
|
|||
startTime = sRechargeCommodityConfig.getTimeLong(createTime,1);
|
||||
endTime = sRechargeCommodityConfig.getTimeLong(createTime,2);
|
||||
}
|
||||
if(now<startTime){
|
||||
if(now<startTime || (endTime!=0 && now > endTime)){
|
||||
continue;
|
||||
}
|
||||
int order = sRechargeCommodityConfig.getOrder();
|
||||
|
@ -326,21 +339,42 @@ public class BuyGoodsLogic {
|
|||
}
|
||||
goodsOrder.put(sRechargeCommodityConfig.getType(),order*10000 + goodsId);
|
||||
giftGoodsInfoMap.put(goodsId,CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setStartTime((int)(startTime/1000)).setBuyTimes(buyTimes).setEndTime((int)(endTime/1000)).build());
|
||||
boolean isNew = rechargeInfo.addNewSendId(goodsId);
|
||||
if(isNew){
|
||||
needChange = true;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
boolean isNew = rechargeInfo.addNewSendId(goodsId);
|
||||
if(isNew){
|
||||
needChange = true;
|
||||
}
|
||||
giftGoodsInfoList.add(CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setBuyTimes(buyTimes).setStartTime((int)(startTime/1000)).setEndTime((int)(endTime/1000)).build());
|
||||
}
|
||||
giftGoodsInfoList.addAll(giftGoodsInfoMap.values());
|
||||
return giftGoodsInfoList;
|
||||
return needChange;
|
||||
}
|
||||
|
||||
public static void sendGiftGooodsIndication(int uid) throws Exception {
|
||||
List<CommonProto.GiftGoodsInfo> goodsBagInfo = BuyGoodsLogic.getGoodsBagInfo(uid);
|
||||
PlayerInfoProto.AllGiftGoodsIndication build = PlayerInfoProto.AllGiftGoodsIndication.newBuilder().addAllGiftGoodsInfo(goodsBagInfo).build();
|
||||
List<CommonProto.GiftGoodsInfo> goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size());
|
||||
boolean change = BuyGoodsLogic.getGoodsBagInfo(uid, goodsBagInfo,false);
|
||||
ISession session = OnlineUserManager.getSessionByUid(uid);
|
||||
if(session!=null){
|
||||
if(session!=null && change){
|
||||
PlayerInfoProto.AllGiftGoodsIndication build = PlayerInfoProto.AllGiftGoodsIndication.newBuilder().addAllGiftGoodsInfo(goodsBagInfo).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ALL_GIFTGOODS_INDICATION_VALUE,build,true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void minuteCheckReharge() throws Exception {
|
||||
for (Map.Entry<Integer, ISession> entry : OnlineUserManager.sessionMap.entrySet()) {
|
||||
ISession value = entry.getValue();
|
||||
if(value.getFiveReady() == 1){
|
||||
sendGiftGooodsIndication(entry.getKey());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -299,7 +299,6 @@ public class ProtocolsManager implements ProtocolsAbstract {
|
|||
iSession.setOfflineType(ErrorCode.reloginCode);
|
||||
backUpMsgToRedis(iSession);
|
||||
OnlineUserManager.userOffline(uid);
|
||||
LOGGER.info("the channel={}",iSession.getCtx().channel());
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -401,7 +400,6 @@ public class ProtocolsManager implements ProtocolsAbstract {
|
|||
}
|
||||
|
||||
String key = RedisUtil.getInstence().getKey(RedisKey.RESPONSE_OFFLINE, Integer.toString(session.getUid()));
|
||||
LOGGER.info("the uid={},the offlineIndex={},",session.getUid(),session.getIndexToMessage().keySet().iterator().next());
|
||||
RedisUtil.getInstence().set(key,gson.toJson(session.getIndexToMessage()));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.thread.task;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.config.ServerConfig;
|
||||
import com.ljsd.jieling.config.reportData.DataMessageUtils;
|
||||
import com.ljsd.jieling.core.CoreLogic;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
|
@ -18,17 +19,22 @@ import com.ljsd.jieling.logic.OnlineUserManager;
|
|||
import com.ljsd.jieling.logic.STableManager;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.arena.ArenaLogic;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.GuildFightLogic;
|
||||
import com.ljsd.jieling.logic.fight.CheckFight;
|
||||
import com.ljsd.jieling.logic.fight.CombatLogic;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.logic.question.QuestionLogic;
|
||||
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
|
||||
import com.ljsd.jieling.logic.store.StoreLogic;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
public class MinuteTask extends Thread {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MinuteTask.class);
|
||||
|
@ -62,7 +68,23 @@ public class MinuteTask extends Thread {
|
|||
MailLogic.getInstance().checkReadyToMail();
|
||||
ProtocolsManager.getInstance().minuteCheckForbidUser();
|
||||
CoreLogic.getInstance().checkCoreCdk();
|
||||
BuyGoodsLogic.minuteCheckReharge();
|
||||
RedisUtil.getInstence().set(RedisKey.ONLINE_NUM+RedisKey.Delimiter_colon+GameApplication.serverId, String.valueOf(OnlineUserManager.sessionMap.entrySet().size()));
|
||||
ServerConfig serverConfigTmp = MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class);
|
||||
if(serverConfigTmp.getWorldLevel()==1){
|
||||
Query query = new Query();
|
||||
query.with(new Sort(Sort.Direction.DESC,"playerManager.level"));
|
||||
query.fields().include("playerManager.level");
|
||||
List<User> users = MongoUtil.getLjsdMongoTemplate().findAllByCondition(query, User.class);
|
||||
int size = (int)(users.size()*0.85);
|
||||
int level = 0;
|
||||
for(int i = 0 ; i <size;i++){
|
||||
level+=users.get(i).getPlayerInfoManager().getLevel();
|
||||
}
|
||||
LOGGER.info("计算世界等级为{}",level/size);
|
||||
serverConfigTmp.setWorldLevel(level/size);
|
||||
MongoUtil.getLjsdMongoTemplate().save(serverConfigTmp);
|
||||
}
|
||||
LOGGER.info("MinuteTask end...");
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("e",e);
|
||||
|
@ -74,7 +96,7 @@ public class MinuteTask extends Thread {
|
|||
int minute = calendar.get(Calendar.MINUTE);
|
||||
if(minute%5 == 0){
|
||||
KTAppOnline ktAppOnline = new KTAppOnline();
|
||||
int onlineNum = OnlineUserManager.onlineUserMap.size();
|
||||
int onlineNum = OnlineUserManager.sessionMap.size();
|
||||
ParamEventBean paramEventBean = new ParamEventBean(ParamEventBean.OnlineEvent);
|
||||
int time =(int)(calendar.getTimeInMillis()/1000);
|
||||
paramEventBean.add(String.valueOf(time));
|
||||
|
|
|
@ -28,7 +28,7 @@ public class MessageUtil {
|
|||
backMessage = new byte[0];
|
||||
} else {
|
||||
backMessage = generatedMessage.toByteArray();
|
||||
LOGGER.info(JsonFormat.printToString(generatedMessage));
|
||||
//LOGGER.info(JsonFormat.printToString(generatedMessage));
|
||||
}
|
||||
|
||||
int length = PackageConstant.UID_FIELD_LEN + PackageConstant.TOKEN_LEN
|
||||
|
|
Loading…
Reference in New Issue