fix buy not in mongo
parent
247bcbbcd1
commit
54a3e50ae6
|
@ -1,6 +1,7 @@
|
||||||
package com.ljsd;
|
package com.ljsd;
|
||||||
|
|
||||||
|
|
||||||
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
import com.ljsd.jieling.kefu.GmGlobleAbstract;
|
import com.ljsd.jieling.kefu.GmGlobleAbstract;
|
||||||
import com.ljsd.jieling.kefu.GmInterface;
|
import com.ljsd.jieling.kefu.GmInterface;
|
||||||
import com.ljsd.jieling.kefu.GmRoleAbstract;
|
import com.ljsd.jieling.kefu.GmRoleAbstract;
|
||||||
|
@ -20,6 +21,7 @@ import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
@ -35,6 +37,26 @@ public class GmService implements RPCRequestGMIFace.Iface {
|
||||||
String[] arg = cmd.split(" ");
|
String[] arg = cmd.split(" ");
|
||||||
GmInterface obj;
|
GmInterface obj;
|
||||||
try {
|
try {
|
||||||
|
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(
|
obj = (GmInterface) Class.forName(
|
||||||
GmInterface.class.getPackage().getName() + ".Cmd_"
|
GmInterface.class.getPackage().getName() + ".Cmd_"
|
||||||
+ arg[0].toLowerCase()).newInstance();
|
+ arg[0].toLowerCase()).newInstance();
|
||||||
|
@ -45,6 +67,9 @@ public class GmService implements RPCRequestGMIFace.Iface {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
String[] parameters = java.util.Arrays.copyOfRange(arg, 1, arg.length);
|
String[] parameters = java.util.Arrays.copyOfRange(arg, 1, arg.length);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (obj instanceof GmRoleAbstract) {
|
if (obj instanceof GmRoleAbstract) {
|
||||||
List<Integer> sendIds = new LinkedList<>();
|
List<Integer> sendIds = new LinkedList<>();
|
||||||
if (obj instanceof GmGlobleAbstract) {
|
if (obj instanceof GmGlobleAbstract) {
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
package com.ljsd.jieling.logic.store;
|
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.config.*;
|
||||||
|
import com.ljsd.jieling.core.HandlerLogicThread;
|
||||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||||
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
import com.ljsd.jieling.globals.BIReason;
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
import com.ljsd.jieling.globals.Global;
|
import com.ljsd.jieling.globals.Global;
|
||||||
import com.ljsd.jieling.ktbeans.KtEventUtils;
|
import com.ljsd.jieling.ktbeans.KtEventUtils;
|
||||||
|
@ -14,20 +18,20 @@ import com.ljsd.jieling.logic.dao.RechargeInfo;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
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.mission.event.MissionEventDistributor;
|
||||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
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.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
import com.ljsd.jieling.thrift.idl.Result;
|
import com.ljsd.jieling.thrift.idl.Result;
|
||||||
import com.ljsd.jieling.util.ItemUtil;
|
import com.ljsd.jieling.util.*;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
|
||||||
import com.ljsd.jieling.util.StringUtil;
|
|
||||||
import com.ljsd.jieling.util.TimeUtils;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -211,6 +215,20 @@ public class BuyGoodsLogic {
|
||||||
resultRes.setResultCode(1);
|
resultRes.setResultCode(1);
|
||||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price);
|
KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price);
|
||||||
notifyPaySuccessFul(uid,goodsId,amount != -999);
|
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<>());
|
||||||
|
|
||||||
|
AyyncWorker ayyncWorker = new AyyncWorker(user,true) {
|
||||||
|
@Override
|
||||||
|
public void work(User user) throws Exception {
|
||||||
|
MongoUtil.getLjsdMongoTemplate().save(user);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ProtocolsManager instance = ProtocolsManager.getInstance();
|
||||||
|
HandlerLogicThread handlerThread = instance.handlerThreads[user.getId() % instance.HANDLER_THREAD_NUM];
|
||||||
|
handlerThread.addAyyncWorker(ayyncWorker);
|
||||||
return resultRes;
|
return resultRes;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue