fix buy not in mongo
parent
247bcbbcd1
commit
54a3e50ae6
|
@ -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;
|
||||
|
@ -20,6 +21,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
@ -35,6 +37,26 @@ public class GmService implements RPCRequestGMIFace.Iface {
|
|||
String[] arg = cmd.split(" ");
|
||||
GmInterface obj;
|
||||
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(
|
||||
GmInterface.class.getPackage().getName() + ".Cmd_"
|
||||
+ arg[0].toLowerCase()).newInstance();
|
||||
|
@ -45,6 +67,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) {
|
||||
|
|
|
@ -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;
|
||||
|
@ -14,20 +18,20 @@ 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.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
@ -211,6 +215,20 @@ 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<>());
|
||||
|
||||
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;
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue