数据存贮优化

back_recharge
mashiyu 2019-03-06 15:07:12 +08:00
parent bf43560c87
commit 13b8946115
74 changed files with 521 additions and 404 deletions

View File

@ -228,7 +228,7 @@ public class BeanUtil {
return key;
}
//将DBObject转为map
private static <K, V> Map<K, V> dbObject2Map(DBObject dbObject, Field field, MongoRoot root) throws Exception {
private static <K, V> Map<K, V> dbObject2Map(DBObject dbObject, Field field) throws Exception {
ParameterizedType pt = (ParameterizedType) field.getGenericType();
Type[] types = pt.getActualTypeArguments();
@ -244,7 +244,7 @@ public class BeanUtil {
Iterator<Object> iterator = values.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
Object obj = getObj(next,actualTypeArgument, root);
Object obj = getObj(next,actualTypeArgument);
objects.add(obj);
}
Object key = getKey(entry.getKey(), (Class)types[0]);
@ -252,7 +252,7 @@ public class BeanUtil {
return map;
}
Object obj = getObj(entry.getValue(), (Class)type, root);
Object obj = getObj(entry.getValue(), (Class)type);
// Object value = ((Class)types[1]).newInstance();
// Object obj = dbObject2Bean((DBObject) entry.getValue(), value, root);
Object key = getKey(entry.getKey(), (Class)types[0]);
@ -268,7 +268,7 @@ public class BeanUtil {
return false;
}
//将dbobj转为普通对象
private static Object getObj(Object dbobj, Class<?> clazz, MongoRoot root) throws Exception {
private static Object getObj(Object dbobj, Class<?> clazz) throws Exception {
Object obj = getBaseObj(dbobj, clazz);
if(obj == null){
Constructor constructor = clazz.getDeclaredConstructor();
@ -276,18 +276,18 @@ public class BeanUtil {
constructor.setAccessible(true);
obj = constructor.newInstance();
constructor.setAccessible(isAccessible);
dbObject2Bean((DBObject) dbobj, obj, root);
dbObject2Bean((DBObject) dbobj, obj);
}
return obj;
}
//将DBObject转为set
private static <T> Set<T> dbObject2Set(DBObject dbObject, Field field, MongoRoot root) throws Exception {
private static <T> Set<T> dbObject2Set(DBObject dbObject, Field field) throws Exception {
ParameterizedType pt = (ParameterizedType) field.getGenericType();
Type[] types = pt.getActualTypeArguments();
Set set = ConcurrentHashMap.<T> newKeySet();
BasicDBList dbList = (BasicDBList)dbObject;
for (Object dbobj : dbList) {
Object obj = getObj(dbobj, (Class)types[0], root);
Object obj = getObj(dbobj, (Class)types[0]);
set.add(obj);
}
return set;
@ -304,12 +304,12 @@ public class BeanUtil {
return clazz.isArray();
}
//将DBObject转换为数组
private static Object[] dbObject2Array(DBObject dbObject, Class<?> clazz, MongoRoot root) throws Exception {
private static Object[] dbObject2Array(DBObject dbObject, Class<?> clazz) throws Exception {
BasicDBList basicDBList = (BasicDBList)dbObject;
Object[] objs = (Object[])Array.newInstance(clazz.getComponentType(), basicDBList.size());
for(int i=0; i<basicDBList.size(); i++){
Object dbobj = (Object)basicDBList.get(i);
Object obj = getObj(dbobj, clazz.getComponentType(), root);
Object obj = getObj(dbobj, clazz.getComponentType());
objs[i] = obj;
}
return objs;
@ -328,19 +328,19 @@ public class BeanUtil {
return false;
}
//将DBObject转为list
private static <T> List<T> dbObject2List(DBObject dbObject, Field field, MongoRoot root) throws Exception {
private static <T> List<T> dbObject2List(DBObject dbObject, Field field) throws Exception {
ParameterizedType pt = (ParameterizedType) field.getGenericType();
Type[] types = pt.getActualTypeArguments();
List list = new CopyOnWriteArrayList<T>();
BasicDBList dbList = (BasicDBList)dbObject;
for (Object dbobj : dbList) {
Object obj = getObj(dbobj, (Class)types[0], root);
Object obj = getObj(dbobj, (Class)types[0]);
list.add(obj);
}
return list;
}
//DBObject转换为Bean对象
public static Object dbObject2Bean(DBObject dbObject, Object bean, MongoRoot root) throws Exception {
public static Object dbObject2Bean(DBObject dbObject, Object bean) throws Exception {
if (bean == null) {
return null;
}
@ -357,10 +357,11 @@ public class BeanUtil {
// ((MongoBase)bean).setRoot((MongoRoot) root);
// continue;
// }
else if(varName.equals("bsave")){
((MongoRoot)bean).setBsave(true);
continue;
} else {
// else if(varName.equals("bsave")){
// ((MongoRoot)bean).setBsave(true);
// continue;
// }
else {
object = dbObject.get(varName);
}
if (object == null) {
@ -377,18 +378,18 @@ public class BeanUtil {
if (obj != null) {
field.set(bean, obj);
} else if (isMap(fieldClazz)) {
obj = dbObject2Map((DBObject) object, field, root);
obj = dbObject2Map((DBObject) object, field);
} else if (isSet(fieldClazz)) {
obj = dbObject2Set((DBObject) object, field, root);
obj = dbObject2Set((DBObject) object, field);
} else if (isArray(fieldClazz)) {
obj = dbObject2Array((DBObject) object, fieldClazz, root);
obj = dbObject2Array((DBObject) object, fieldClazz);
} else if (isList(fieldClazz)) {
obj = dbObject2List((DBObject) object, field, root);
obj = dbObject2List((DBObject) object, field);
} else if (isByteArray(fieldClazz)) {
obj = object;
} else {
obj = fieldClazz.newInstance();
obj = dbObject2Bean((DBObject) object, obj, root);
obj = dbObject2Bean((DBObject) object, obj);
}
field.set(bean, obj);
// 恢复访问控制权限
@ -404,7 +405,7 @@ public class BeanUtil {
return null;
}
T bean = clazz.newInstance();
dbObject2Bean(dbObject, bean, (MongoRoot)bean);
dbObject2Bean(dbObject, bean);
return bean;
}
}

View File

@ -23,9 +23,10 @@ public class LjsdMongoTemplate {
}
public <T> void save(T obj) throws Exception {
MongoRoot root = (MongoRoot)obj;
mongoTemplate.save(obj,root.getCollection());
root.setBsave(true);
// MongoRoot root = (MongoRoot)obj;
// mongoTemplate.save(obj,root.getCollection());
// root.setBsave(true);
mongoTemplate.save(obj);
}
public <T> void saveWithoutMongoRoot(T obj) throws Exception {

View File

@ -7,54 +7,26 @@ import java.lang.ref.WeakReference;
//使用下划线是为了在json转换时能转为正确的值
public abstract class MongoBase {
private String mongoKey; //该级对应的mongodb的key
private String rootId;
@Transient
private boolean _save;
private String mongoKey; //该级对应的mongodb的key
@Transient
private String rootCollection;
@Transient
private String rootId;
@Transient
private LjsdMongoTemplate _myMongoTemplate;
public void init(String id, LjsdMongoTemplate _myMongoTemplate ,String rootCollection ,String mongoKey, boolean _save) {
public void init(String id,String mongoKey) {
this.rootId = id;
this.rootCollection = rootCollection;
this._myMongoTemplate = _myMongoTemplate;
this.mongoKey = mongoKey;
this._save = _save;
}
public void init(String id, LjsdMongoTemplate _myMongoTemplate ,String rootCollection ,String mongoKey) {
this.rootId = id;
this.rootCollection = rootCollection;
this._myMongoTemplate = _myMongoTemplate;
this.mongoKey = mongoKey;
this._save = true;
public void updateString(String fieldName, Object value) {
MongoUpdateCacheThreadLocal.addUpdateRequest(this, mongoKey + "." + fieldName, value);
}
public void updateString(MongoBase dataBase, String fieldName, Object value) {
MongoUpdateCacheThreadLocal.addUpdateRequest(this, dataBase.get_myMongoTemplate(), dataBase.getRootCollection(), dataBase.getRootId(),
mongoKey + "." + fieldName, value);
public void removeString(String key) {
MongoUpdateCacheThreadLocal.removeRequest(this, key);
}
public void updateString(String fieldName, MongoBase value) {
MongoUpdateCacheThreadLocal.addUpdateRequest(value, value.get_myMongoTemplate(), value.getRootCollection(), value.getRootId(),
mongoKey + "." + fieldName, value);
}
public void removeString(String key, MongoBase value) {
MongoUpdateCacheThreadLocal.removeRequest(this, value.get_myMongoTemplate(), value.getRootCollection(), value.getRootId(), key);
}
public String getMongoKey() {
return mongoKey;
}
@ -63,14 +35,6 @@ public abstract class MongoBase {
this.mongoKey = mongoKey;
}
public boolean is_save() {
return _save;
}
public void set_save(boolean _save) {
this._save = _save;
}
public String getRootCollection() {
return rootCollection;
}
@ -86,12 +50,4 @@ public abstract class MongoBase {
public void setRootId(String rootId) {
this.rootId = rootId;
}
public LjsdMongoTemplate get_myMongoTemplate() {
return _myMongoTemplate;
}
public void set_myMongoTemplate(LjsdMongoTemplate _myMongoTemplate) {
this._myMongoTemplate = _myMongoTemplate;
}
}

View File

@ -1,12 +1,8 @@
package com.ljsd.common.mogodb;
import ch.qos.logback.core.joran.util.beans.BeanUtil;
import com.mongodb.BasicDBObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
public class MongoUpdateCache {
static class UpdateRequest {
@ -24,23 +20,38 @@ public class MongoUpdateCache {
}
//key:String, collection + ":" + id
private final Map<String, List<UpdateRequest>> requestMap = new HashMap<>();
private final Map<String, Map<String, UpdateRequest>> requestMap = new HashMap<>();
protected void addUpdateRequest(MongoBase mongoBase, String collection, String id, String fullKey, Object value, int opCode) {
String key = collection + ":" + id;
List<UpdateRequest> listRequest = requestMap.get(key);
protected void addUpdateRequest(MongoBase mongoBase, String fullKey, Object value, int opCode) {
String key = mongoBase.getRootCollection() + ":" + mongoBase.getRootId();
Map<String, UpdateRequest> listRequest = requestMap.get(key);
if (listRequest == null) {
listRequest = new ArrayList<UpdateRequest>();
listRequest = new HashMap<>();
requestMap.put(key, listRequest);
} else {
Iterator<Map.Entry<String, UpdateRequest>> it = listRequest.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, UpdateRequest> entry = it.next();
String key1 = entry.getKey();
if (fullKey.contains(key1)) {
return;
}
if (key1.contains(fullKey)) {
it.remove();
}
}
}
UpdateRequest request = new UpdateRequest(fullKey, value, opCode, mongoBase);
listRequest.add(request);
listRequest.put(fullKey, request);
}
protected void update(LjsdMongoTemplate ljsdMongoTemplate) throws IllegalAccessException {
BasicDBObject searchQuery = new BasicDBObject();
for (Map.Entry<String, List<UpdateRequest>> entry : requestMap.entrySet()) {
for (Map.Entry<String, Map<String, UpdateRequest>> entry : requestMap.entrySet()) {
String[] strs = entry.getKey().split(":");
String collection = strs[0];
String id = strs[1];
@ -49,23 +60,27 @@ public class MongoUpdateCache {
BasicDBObject valueDBObj = new BasicDBObject();
BasicDBObject dbobj = new BasicDBObject();
BasicDBObject removedbobj = new BasicDBObject();
for (UpdateRequest request : entry.getValue()) {
for (UpdateRequest request : entry.getValue().values()) {
if (request.opCode == 2) {
removedbobj.append(request.fullKey, request.value);
continue;
}
valueDBObj.append(request.fullKey, ljsdMongoTemplate.convertToMongoType(request.value));
request.mongoBase.set_save(false);
}
boolean flag = false;
if (!valueDBObj.isEmpty()) {
dbobj.append("$set", valueDBObj);
flag = true;
}
if (!removedbobj.isEmpty()) {
dbobj.append("$unset", removedbobj);
flag = true;
}
if (flag){
ljsdMongoTemplate.updateValue(collection, searchQuery, dbobj);
}
ljsdMongoTemplate.updateValue(collection, searchQuery, dbobj);
}
requestMap.clear();

View File

@ -4,34 +4,29 @@ import java.util.HashMap;
import java.util.Map;
public class MongoUpdateCacheThreadLocal {
private final static ThreadLocal<Map<LjsdMongoTemplate, MongoUpdateCache>> mongoUpdateCacheThreadLocal = new ThreadLocal<>();
private final static ThreadLocal<MongoUpdateCache> mongoUpdateCacheThreadLocal = new ThreadLocal<>();
private static MongoUpdateCache getMongoUpdateCache(LjsdMongoTemplate ljsdMongoTemplate) {
Map<LjsdMongoTemplate, MongoUpdateCache> mongoUpdateCacheMap = mongoUpdateCacheThreadLocal.get();
if (mongoUpdateCacheMap == null) {
mongoUpdateCacheMap = new HashMap<LjsdMongoTemplate, MongoUpdateCache>();
mongoUpdateCacheThreadLocal.set(mongoUpdateCacheMap);
}
MongoUpdateCache mongoUpdateCache = mongoUpdateCacheMap.get(ljsdMongoTemplate);
private static MongoUpdateCache getMongoUpdateCache() {
MongoUpdateCache mongoUpdateCache = mongoUpdateCacheThreadLocal.get();
if (mongoUpdateCache == null) {
mongoUpdateCache = new MongoUpdateCache();
mongoUpdateCacheMap.put(ljsdMongoTemplate, mongoUpdateCache);
mongoUpdateCacheThreadLocal.set(mongoUpdateCache);
}
return mongoUpdateCache;
}
protected static void addUpdateRequest(MongoBase mongoBase, LjsdMongoTemplate ljsdMongoTemplate, String collection, String id, String fullKey, Object value) {
MongoUpdateCache mongoUpdateCache = getMongoUpdateCache(ljsdMongoTemplate);
mongoUpdateCache.addUpdateRequest(mongoBase, collection, id, fullKey, value, 1);
protected static void addUpdateRequest(MongoBase mongoBase, String fullKey, Object value) {
MongoUpdateCache mongoUpdateCache = getMongoUpdateCache();
mongoUpdateCache.addUpdateRequest(mongoBase, fullKey, value, 1);
}
protected static void removeRequest(MongoBase mongoBase, LjsdMongoTemplate ljsdMongoTemplate, String collection, String id, String fullKey) {
MongoUpdateCache mongoUpdateCache = getMongoUpdateCache(ljsdMongoTemplate);
mongoUpdateCache.addUpdateRequest(mongoBase, collection, id, fullKey, "", 2);
protected static void removeRequest(MongoBase mongoBase, String fullKey) {
MongoUpdateCache mongoUpdateCache = getMongoUpdateCache();
mongoUpdateCache.addUpdateRequest(mongoBase, fullKey, "", 2);
}
protected static void update(LjsdMongoTemplate ljsdMongoTemplate) throws IllegalAccessException {
MongoUpdateCache mongoUpdateCache = getMongoUpdateCache(ljsdMongoTemplate);
MongoUpdateCache mongoUpdateCache = getMongoUpdateCache();
mongoUpdateCache.update(ljsdMongoTemplate);
}
}

View File

@ -20,7 +20,6 @@ public class TestMongo {
public static void main(String[] args) {
try {
ljsdMongoTemplate = getLjsdMongoTemplate();
PlayerForTest.init(ljsdMongoTemplate);
// save();
PlayerForTest one = findOne();
update(one);

View File

@ -14,11 +14,12 @@ public class BaseInfoForTest extends MongoBase {
public BaseInfoForTest(){
cardTestInfoMap = new ConcurrentHashMap<>();
this.setRootCollection(PlayerForTest._COLLECTION_NAME);
this.setMongoKey("baseInfoForTest");
}
public void addCard(int cardId,CardTestInfo cardTestInfo) throws Exception {
cardTestInfo.init(cardTestInfo.getRootId(),cardTestInfo.get_myMongoTemplate(),cardTestInfo.getRootCollection(),
getMongoKey() + ".cardTestInfoMap." + cardId);
cardTestInfo.init(cardTestInfo.getRootId(),getMongoKey() + ".cardTestInfoMap." + cardId);
updateString("cardMap." +cardId, cardTestInfo);
cardTestInfoMap.put(cardId,cardTestInfo);
}
@ -28,7 +29,7 @@ public class BaseInfoForTest extends MongoBase {
}
public void setName(String name) throws Exception {
updateString(this,"name", name);
updateString("name", name);
this.name = name;
}
@ -37,7 +38,7 @@ public class BaseInfoForTest extends MongoBase {
}
public void setAge(int age) throws Exception {
updateString(this,"age", name);
updateString("age", name);
this.age = age;
}
@ -46,7 +47,7 @@ public class BaseInfoForTest extends MongoBase {
}
public void setOtherInfoMsg(Map<String, String> otherInfoMsg) throws Exception {
updateString(this,"otherInfoMsg", name);
updateString("otherInfoMsg", name);
this.otherInfoMsg = otherInfoMsg;
}
@ -54,10 +55,13 @@ public class BaseInfoForTest extends MongoBase {
String value = otherInfoMsg.get(id);
if (value!=null){
otherInfoMsg.remove(id);
removeString("otherInfoMsg." + id,this);
removeString("otherInfoMsg." + id);
}
}
@Override
public String getMongoKey() {
return null;
}
}

View File

@ -9,12 +9,12 @@ public class CardTestInfo extends MongoBase {
private String level;
public void setId(String id) {
updateString(this,"id",id);
updateString("id",id);
this.id = id;
}
public void setLevel(String level) throws Exception {
updateString(this,"level",level);
updateString("level",level);
this.level = level;
}
@ -25,4 +25,9 @@ public class CardTestInfo extends MongoBase {
public String getLevel() {
return level;
}
@Override
public String getMongoKey() {
return null;
}
}

View File

@ -6,19 +6,13 @@ import com.ljsd.common.mogodb.MongoRoot;
import java.util.Map;
public class PlayerForTest extends MongoRoot {
private final static String _COLLECTION_NAME = "play_test";
public final static String _COLLECTION_NAME = "play_test";
private BaseInfoForTest baseInfoForTest;
private static LjsdMongoTemplate _ljsdMongoTemplate;
public static void init( LjsdMongoTemplate ljsdMongoTemplate){
_ljsdMongoTemplate = ljsdMongoTemplate;
}
public PlayerForTest(int playerId,BaseInfoForTest baseInfoForTest){
setId(String.valueOf(playerId));
this.baseInfoForTest = baseInfoForTest;
baseInfoForTest.init(String.valueOf(playerId),_ljsdMongoTemplate,_COLLECTION_NAME,"baseInfoForTest",false);
baseInfoForTest.init(String.valueOf(playerId),"baseInfoForTest");
}
// public PlayerForTest(){

View File

@ -3,12 +3,12 @@ package com.ljsd;
import com.ljsd.jieling.config.ServerConfig;
import com.ljsd.jieling.config.json.ServerConfiguration;
import com.ljsd.jieling.config.json.ServerProperties;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.dao.MailingSystemManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.netty.server.NettyGameServer;
import com.ljsd.jieling.network.NettyProperties;
import com.ljsd.jieling.network.NettyServerAutoConfiguration;
@ -43,7 +43,6 @@ public class GameApplication {
public static ServerProperties serverProperties;
private static NettyGameServer nettyServer = null;
public static int serverId = 0;
// public static ServerProperties serverProperties;
public static boolean start = false;
public static ServerConfig serverConfig;
@ -71,10 +70,11 @@ public class GameApplication {
RedisUtil.getInstence().init(configurableApplicationContext);
MongoUtil.getInstence().init(configurableApplicationContext);
STableManager.initialize("com.ljsd.jieling.config");
UserManager.init(configurableApplicationContext);
MailingSystemManager.init(configurableApplicationContext);
// MailingSystemManager.init(configurableApplicationContext);
ThreadManager threadManager = new ThreadManager();
threadManager.init(configurableApplicationContext);
MapLogic.getInstance().init(configurableApplicationContext);
@ -82,7 +82,7 @@ public class GameApplication {
final NettyServerAutoConfiguration netServerConfig = configurableApplicationContext.getBean(NettyServerAutoConfiguration.class);
NettyProperties properties = netServerConfig.getNettyProperties();
//todo 设置开服时间
ServerConfig serverConfigTmp = UserManager.ljsdMongoTemplate.findById(1, ServerConfig.class);
ServerConfig serverConfigTmp = MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class);
if( null == serverConfigTmp ){
serverConfigTmp = new ServerConfig();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -91,7 +91,7 @@ public class GameApplication {
serverConfigTmp.setOpenTime(format);
serverConfigTmp.setCacheOpenTime(serverOenTime);
serverConfigTmp.setId(1);
UserManager.ljsdMongoTemplate.saveWithoutMongoRoot(serverConfigTmp);
MongoUtil.getInstence().getMyMongoTemplate().saveWithoutMongoRoot(serverConfigTmp);
}else{
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String openTime = serverConfigTmp.getOpenTime();

View File

@ -0,0 +1,27 @@
package com.ljsd.jieling.db.mongo;
public class MongoKey {
public final static String playerManager = "playerManager";
public final static String itemManager = "itemManager";
public final static String heroManager = "heroManager";
public final static String mapManager = "mapManager";
public final static String missionManager = "missionManager";
public final static String teamPosManager = "teamPosManager";
public final static String mailManager = "mailManager";
public final static String equipManager = "equipManager";
public final static String adventureManager = "adventureManager";
public final static String pokemonManager = "pokemonManager";
public final static String workShopController = "workShopController";
}

View File

@ -0,0 +1,44 @@
package com.ljsd.jieling.db.mongo;
import com.google.gson.Gson;
import com.ljsd.common.mogodb.LjsdMongoTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ConfigurableApplicationContext;
public class MongoUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(MongoUtil.class);
private Gson gson = new Gson();
private static int MAX_TRY_TIMES = 3; //最大尝试次数,保障获取/存储成功
private static int FAILED_SLEEP = 2; //每次失败最大停顿时间
private MongoUtil() {
}
public static MongoUtil getInstence() {
return MongoUtil.InnerClass.instance;
}
private static class InnerClass {
private static final MongoUtil instance = new MongoUtil();
}
private LjsdMongoTemplate myMongoTemplate;
public void init(ConfigurableApplicationContext configurableApplicationContext){
myMongoTemplate =configurableApplicationContext.getBean(LjsdMongoTemplate.class);
}
public LjsdMongoTemplate getMyMongoTemplate() {
return myMongoTemplate;
}
public void lastUpdate() throws Exception {
this.myMongoTemplate.lastUpdate();
}
}

View File

@ -4,7 +4,7 @@ import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.globals.GlobalGm;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.Mail;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
@ -13,7 +13,6 @@ import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.TimeUtils;
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

View File

@ -1,11 +1,9 @@
package com.ljsd.jieling.handler;
import com.ljsd.jieling.config.SCHero;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.HeroManager;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;

View File

@ -1,7 +1,7 @@
package com.ljsd.jieling.handler;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
@ -37,7 +37,7 @@ public class GetAllItemHandler extends BaseHandler {
LOGGER.info("processMessage->uid={},token={},msgId={},msgIndex={},itemStartIndex={}",
userId, token,msgId,msgIndex,itemStartIndex);
boolean isSendFinish = false;
User user = UserManager.getUserForLogin(userId);
User user = UserManager.getUser(userId);
List<CommonProto.Item> allItemList = ItemUtil.getAllItem(user);
int endItemIndes = itemStartIndex + Global.SEND_ITEM_COUNT;
if (itemStartIndex < allItemList.size()) {

View File

@ -1,7 +1,6 @@
package com.ljsd.jieling.handler;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
@ -37,7 +36,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
LOGGER.info("processMessage->uid={},token={},msgId={},msgIndex={},messageNum={},messageStr={}",
userId, token,msgId,msgIndex,getPlayerInfoRequest.getNum(),getPlayerInfoRequest.getStr());
User user = UserManager.getUserForLogin(userId);
User user = UserManager.getUser(userId);
CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getMapManager().getMaxMapId(), user.getMapManager().getCurMapId());

View File

@ -1,6 +1,6 @@
package com.ljsd.jieling.handler;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;

View File

@ -1,22 +1,15 @@
package com.ljsd.jieling.handler;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
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.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class UseAndPriceItemHandler extends BaseHandler {

View File

@ -33,12 +33,13 @@ public class Cell extends MongoBase {
}
public void setPointId(int pointId) throws Exception {
updateString(this,"pointId", pointId);
updateString("pointId", pointId);
this.pointId = pointId;
}
public void setEventId(int eventId) throws Exception {
updateString(this,"eventId", eventId);
updateString("eventId", eventId);
this.eventId = eventId;
}
}

View File

@ -8,7 +8,7 @@ import com.ljsd.jieling.handler.map.behavior.BaseBehavior;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.network.session.ISession;

View File

@ -3,12 +3,10 @@ package com.ljsd.jieling.handler.map;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.handler.map.Cell;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@ -30,6 +28,12 @@ public class MapManager extends MongoBase {
private Map<Integer, CrossMapCell> crossMapInfos = new ConcurrentHashMap<>();
public MapManager() {
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.mapManager);
}
public Map<Integer, Cell> getMapInfo() {
return mapInfo;
}
@ -39,7 +43,7 @@ public class MapManager extends MongoBase {
}
public void updateCrossMapInfos(int key, CrossMapCell crossMapCell) throws Exception {
updateString(this, "mapInfo." + key, crossMapCell);
updateString("mapInfo." + key, crossMapCell);
crossMapInfos.put(key, crossMapCell);
}
@ -48,7 +52,7 @@ public class MapManager extends MongoBase {
}
public void setCurMapId(int curMapId) throws Exception {
updateString(this,"curMapId", curMapId);
updateString("curMapId", curMapId);
this.curMapId = curMapId;
}
@ -57,17 +61,17 @@ public class MapManager extends MongoBase {
}
public void setCurXY(int curXY) throws Exception {
updateString(this,"curXY", curXY);
updateString("curXY", curXY);
this.curXY = curXY;
}
public void addOrUpdateCell(int key, Cell cell) throws Exception {
updateString(this,"mapInfo." + key, cell);
updateString("mapInfo." + key, cell);
this.mapInfo.put(key, cell);
}
public void setMapInfo(Map<Integer, Cell> mapInfo) throws Exception {
updateString(this, "mapInfo", mapInfo);
updateString( "mapInfo", mapInfo);
this.mapInfo = mapInfo;
}
@ -81,7 +85,7 @@ public class MapManager extends MongoBase {
}
public void setTypeEight(Map<Integer, Cell> typeEight) throws Exception {
updateString(this, "typeEight", typeEight);
updateString( "typeEight", typeEight);
this.typeEight = typeEight;
}
@ -90,7 +94,7 @@ public class MapManager extends MongoBase {
}
public void setHeroes(Set<String> heroes) throws Exception {
updateString(this, "heroes", heroes);
updateString( "heroes", heroes);
this.heroes = heroes;
}
@ -99,12 +103,12 @@ public class MapManager extends MongoBase {
}
public void setWalkCells(Set<Integer> walkCells) throws Exception {
updateString(this, "walkCells", walkCells);
updateString( "walkCells", walkCells);
this.walkCells = walkCells;
}
public void addWalkCells(Set<Integer> walkCells) throws Exception {
updateString(this, "walkCells", walkCells);
updateString( "walkCells", walkCells);
if (this.walkCells == null) {
this.walkCells = walkCells;
} else {
@ -117,7 +121,8 @@ public class MapManager extends MongoBase {
}
public void setMaxMapId(int maxMapId) throws Exception {
updateString(this, "maxMapId", maxMapId);
updateString( "maxMapId", maxMapId);
this.maxMapId = maxMapId;
}
}

View File

@ -1,6 +1,6 @@
package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.MapInfoProto;
public abstract class BaseBehavior {

View File

@ -5,7 +5,7 @@ import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.handler.mission.MissionLogic;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import org.springframework.stereotype.Component;

View File

@ -2,7 +2,7 @@ package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.handler.map.Cell;
import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.MapInfoProto;
import org.springframework.stereotype.Component;

View File

@ -5,7 +5,7 @@ import com.ljsd.jieling.config.SCMapConfig;
import com.ljsd.jieling.handler.map.*;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.handler.mission.MissionLogic;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.util.CellUtil;

View File

@ -1,7 +1,7 @@
package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.util.ItemUtil;
import org.springframework.stereotype.Component;

View File

@ -3,17 +3,14 @@ package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.handler.map.Cell;
import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.FightInfoProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.util.CBean2Proto;
import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.MonsterUtil;
import org.springframework.stereotype.Component;

View File

@ -4,7 +4,7 @@ import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.handler.mission.MissionLogic;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import org.springframework.stereotype.Component;

View File

@ -2,7 +2,7 @@ package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.MapInfoProto;
import org.springframework.stereotype.Component;

View File

@ -1,7 +1,7 @@
package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.util.MathUtils;
import org.springframework.stereotype.Component;

View File

@ -4,7 +4,7 @@ import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.handler.mission.MissionLogic;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import org.springframework.stereotype.Component;

View File

@ -4,7 +4,7 @@ import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.handler.mission.MissionLogic;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import org.springframework.stereotype.Component;

View File

@ -1,15 +1,11 @@
package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.config.SItem;
import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.util.ItemUtil;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@Component
public class ScoutBehavior extends BaseBehavior {
@Override

View File

@ -2,7 +2,7 @@ package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.handler.map.Cell;
import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.util.ItemUtil;
import org.springframework.stereotype.Component;

View File

@ -1,7 +1,7 @@
package com.ljsd.jieling.handler.map.behavior;
import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.util.ItemUtil;
import org.springframework.stereotype.Component;

View File

@ -4,7 +4,7 @@ import com.ljsd.jieling.handler.map.EventType;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.handler.mission.MissionLogic;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.util.ItemUtil;

View File

@ -50,7 +50,7 @@ public class Mission extends MongoBase {
}
public void setMissionInfo(String missionInfo) throws Exception {
updateString(this,"missionInfo", missionInfo);
updateString("missionInfo", missionInfo);
this.missionInfo = missionInfo;
}
@ -59,7 +59,8 @@ public class Mission extends MongoBase {
}
public void updateMapPoints(int pointId, int eventId) throws Exception {
updateString(this,"mapPoints." + pointId, eventId);
updateString("mapPoints." + pointId, eventId);
this.mapPoints.put(pointId, eventId);
}
}

View File

@ -2,7 +2,7 @@ package com.ljsd.jieling.handler.mission;
import com.ljsd.jieling.config.SMissionEventsConfig;
import com.ljsd.jieling.handler.map.Cell;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;

View File

@ -2,6 +2,8 @@ package com.ljsd.jieling.handler.mission;
import com.google.common.collect.Sets;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.Map;
import java.util.Set;
@ -15,6 +17,13 @@ public class MissionManager extends MongoBase {
private Set<Integer> takeRewardMissions = Sets.newConcurrentHashSet();
public MissionManager(){
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.missionManager);
}
public Map<Integer, Mission> getDoingMissions() {
return doingMissions;
}
@ -29,21 +38,22 @@ public class MissionManager extends MongoBase {
public void updateDoingMissions(Map<Integer, Mission> doingMissions) throws Exception {
this.doingMissions = doingMissions;
updateString(this, "doingMissions", doingMissions);
updateString( "doingMissions", doingMissions);
}
public void updateOneDoingMissions(int missionId, Mission mission) throws Exception {
this.doingMissions.put(missionId, mission);
updateString(this, "doingMissions." + missionId, mission);
updateString( "doingMissions." + missionId, mission);
}
public void updateFinishMissions(Set<Integer> finishMissions) throws Exception {
this.finishMissions = finishMissions;
updateString(this, "finishMissions", finishMissions);
updateString( "finishMissions", finishMissions);
}
public void addTakeRewardMissions(int missionId) throws Exception {
takeRewardMissions.add(missionId);
updateString(this, "takeRewardMissions", takeRewardMissions);
updateString( "takeRewardMissions", takeRewardMissions);
}
}

View File

@ -1,6 +1,8 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashMap;
@ -11,6 +13,8 @@ public class AdventureManager extends MongoBase {
private Map<Integer,AdventureStateInfo> adventureStateInfoMap;
public AdventureManager(){
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.adventureManager);
adventureStateInfoMap = new HashMap<>();
}
@ -23,7 +27,7 @@ public class AdventureManager extends MongoBase {
public void clearStation(int position){
AdventureStateInfo adventureStateInfo = adventureStateInfoMap.get(position);
if (adventureStateInfo!=null){
removeString("adventureStateInfoMap." + position, adventureStateInfo);
removeString("adventureStateInfoMap." + position);
adventureStateInfoMap.remove(position);
}
@ -36,4 +40,5 @@ public class AdventureManager extends MongoBase {
public void setAdventureStateInfoMap(Map<Integer, AdventureStateInfo> adventureStateInfoMap) {
this.adventureStateInfoMap = adventureStateInfoMap;
}
}

View File

@ -34,4 +34,5 @@ public class AdventureStateInfo extends MongoBase {
public int getPosition() {
return position;
}
}

View File

@ -15,7 +15,7 @@ public class AutoIncrement extends MongoBase {
}
public void setCnt(int cnt) throws Exception {
updateString(this,"cnt", cnt);
updateString("cnt", cnt);
this.cnt = cnt;
}
public AutoIncrement(String name){
@ -30,4 +30,5 @@ public class AutoIncrement extends MongoBase {
public int getCnt() {
return cnt;
}
}

View File

@ -1,24 +1,31 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.logic.dao.root.MailingSystem;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class AutoIncrementManager extends MongoBase {
private Map<String,AutoIncrement> autoIncrementMap = new ConcurrentHashMap<>();
public AutoIncrementManager(){
this.setRootCollection(MailingSystem._COLLECTION_NAME);
this.setMongoKey("autoIncrementManager");
}
public Map<String,AutoIncrement> getAutoIncrementMap() {
return autoIncrementMap;
}
public void addAutoIncrement(AutoIncrement autoIncrement) throws Exception {
autoIncrement.init(autoIncrement.getRootId(), autoIncrement.get_myMongoTemplate(), autoIncrement.getRootCollection(),
getMongoKey() + ".autoIncrementMap." + autoIncrement.getName());
autoIncrement.init(autoIncrement.getRootId(), getMongoKey() + ".autoIncrementMap." + autoIncrement.getName());
updateString("autoIncrementMap." + autoIncrement.getName(), autoIncrement);
autoIncrementMap.put(autoIncrement.getName(),autoIncrement);
}
public AutoIncrement getAutoIncrement(String key){
return autoIncrementMap.get(key);
}
}

View File

@ -204,7 +204,7 @@ public class Equip extends MongoBase {
}
public void setEquipId(int equipId) throws Exception {
updateString(this,"equipId",equipId);
updateString("equipId",equipId);
this.equipId = equipId;
}
@ -213,7 +213,7 @@ public class Equip extends MongoBase {
}
public void setLevel(int level) throws Exception {
updateString(this,"level",level);
updateString("level",level);
this.level = level;
}
@ -222,7 +222,7 @@ public class Equip extends MongoBase {
}
public void setStar(int star) throws Exception {
updateString(this,"star",star);
updateString("star",star);
this.star = star;
}
@ -231,7 +231,7 @@ public class Equip extends MongoBase {
}
public void setHeroId(String heroId) throws Exception {
updateString(this,"heroId",heroId);
updateString("heroId",heroId);
this.heroId = heroId;
}
@ -242,4 +242,5 @@ public class Equip extends MongoBase {
public Map<Integer, Integer> getSecondValueByIdMap() {
return secondValueByIdMap;
}
}

View File

@ -1,6 +1,8 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashMap;
import java.util.Map;
@ -10,6 +12,10 @@ public class EquipManager extends MongoBase {
private Map<String,Equip> equipMap;
public EquipManager() {
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.equipManager);
this.equipMap = new HashMap<>();
}
@ -19,9 +25,8 @@ public class EquipManager extends MongoBase {
}
public void remove(String equipId){
Equip equip = equipMap.get(equipId);
if (equip!=null){
removeString("equipMap." + equipId, equip);
if (equipMap.containsKey(equipId)){
removeString("equipMap." + equipId);
equipMap.remove(equipId);
}
}
@ -29,4 +34,5 @@ public class EquipManager extends MongoBase {
public Map<String, Equip> getEquipMap() {
return equipMap;
}
}

View File

@ -72,8 +72,8 @@ public class Hero extends MongoBase {
}
this.skillList.addAll(skillIds);
}
updateString(this,"star",star);
updateString(this,"skillList",skillList);
updateString("star",star);
updateString("skillList",skillList);
}
@ -82,7 +82,7 @@ public class Hero extends MongoBase {
}
public void setTemplateId(int templateId) throws Exception {
updateString(this,"templateId",templateId);
updateString("templateId",templateId);
this.templateId = templateId;
}
@ -91,17 +91,17 @@ public class Hero extends MongoBase {
}
public void setCurHp(float curHp) throws Exception {
updateString(this,"curHp",curHp);
updateString("curHp",curHp);
this.curHp = curHp;
}
public void setLevel(int level) throws Exception {
updateString(this,"level",level);
updateString("level",level);
this.level = level;
}
public void setStar(int star) throws Exception {
updateString(this,"star",star);
updateString("star",star);
this.star = star;
}
@ -136,19 +136,19 @@ public class Hero extends MongoBase {
}
public void setEquipByPositionMap(Map<Integer, String> equipByPositionMap) throws Exception {
updateString(this,"equipByPositionMap",equipByPositionMap);
updateString("equipByPositionMap",equipByPositionMap);
this.equipByPositionMap = equipByPositionMap;
}
public void updateEquipPositionMap(int position,String equipId) throws Exception {
updateString(this,"equipByPositionMap." + position ,equipId);
updateString("equipByPositionMap." + position ,equipId);
this.equipByPositionMap.put(position,equipId);
}
public void removeEquip(int position){
String value = this.equipByPositionMap.get(position);
if (value!=null){
removeString("equipByPositionMap." + position, this);
removeString("equipByPositionMap." + position);
this.equipByPositionMap.remove(position);
}
}
@ -158,7 +158,7 @@ public class Hero extends MongoBase {
}
public void setBreakId(int breakId) throws Exception {
updateString(this,"breakId",breakId);
updateString("breakId",breakId);
this.breakId = breakId;
}
@ -167,19 +167,19 @@ public class Hero extends MongoBase {
}
public void updateEnergy(int energy,int updateTime) throws Exception {
updateString(this,"energy",energy);
updateString(this,"lastUpdateEnergyTime",energy);
updateString("energy",energy);
updateString("lastUpdateEnergyTime",energy);
this.energy = energy;
this.lastUpdateEnergyTime = updateTime;
}
public void setCreateTime(int createTime) throws Exception {
updateString(this,"createTime",createTime);
updateString("createTime",createTime);
this.createTime = createTime;
}
public void setLastUpdateEnergyTime(int lastUpdateEnergyTime) throws Exception {
updateString(this,"lastUpdateEnergyTime",lastUpdateEnergyTime);
updateString("lastUpdateEnergyTime",lastUpdateEnergyTime);
this.lastUpdateEnergyTime = lastUpdateEnergyTime;
}
@ -190,4 +190,5 @@ public class Hero extends MongoBase {
public int getCreateTime() {
return createTime;
}
}

View File

@ -1,15 +1,20 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashMap;
import java.util.Map;
public class HeroManager extends MongoBase {
private Map<String, Hero> heroMap;
public HeroManager() {
heroMap = new HashMap();
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.heroManager);
}
public Map<String, Hero> getItemMap() {
@ -22,7 +27,7 @@ public class HeroManager extends MongoBase {
public void addHero(Hero hero) throws Exception {
//绑定关系
hero.init(hero.getId(),hero.get_myMongoTemplate(), hero.getRootCollection(),getMongoKey() + ".heroMap." + hero.getId());
hero.init(hero.getId(),getMongoKey() + ".heroMap." + hero.getId());
updateString("heroMap." + hero.getId(), hero);
heroMap.put(hero.getId(), hero);
}
@ -32,16 +37,14 @@ public class HeroManager extends MongoBase {
}
public void removeHero(String heroId) {
Hero hero = heroMap.get(heroId);
if (hero!=null){
removeString("heroMap." + heroId, hero);
if (heroMap.containsKey(heroId)){
removeString("heroMap." + heroId);
heroMap.remove(heroId);
}
}
public Map<String, Hero> getHeroMap() {
return heroMap;
}
}

View File

@ -28,7 +28,7 @@ public class Item extends MongoBase {
}
public void setItemId(int itemId) throws Exception {
updateString(this,"itemId", itemId);
updateString("itemId", itemId);
this.itemId = itemId;
}
@ -37,7 +37,7 @@ public class Item extends MongoBase {
}
public void setItemNum(int itemNum) throws Exception {
updateString(this,"itemNum", itemNum);
updateString("itemNum", itemNum);
this.itemNum = itemNum;
}
@ -46,7 +46,7 @@ public class Item extends MongoBase {
}
public void setEndingTime(int endingTime) throws Exception {
updateString(this,"endingTime", endingTime);
updateString("endingTime", endingTime);
this.endingTime = endingTime;
}
}

View File

@ -1,17 +1,19 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.config.SItem;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class ItemManager extends MongoBase {
private Map<Integer, Item> itemMap = new ConcurrentHashMap<>();
public ItemManager() {
itemMap = new HashMap();
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.itemManager);
}
public Map<Integer, Item> getItemMap() {
@ -23,7 +25,7 @@ public class ItemManager extends MongoBase {
}
public void addItem(Item item) throws Exception {
item.init(item.getRootId(),item.get_myMongoTemplate(), item.getRootCollection(), getMongoKey() + ".itemMap." + item.getItemId());
item.init(item.getRootId(), getMongoKey() + ".itemMap." + item.getItemId());
updateString("itemMap." + item.getItemId(), item);
itemMap.put(item.getItemId(), item);
}
@ -36,7 +38,7 @@ public class ItemManager extends MongoBase {
Item item = itemMap.get(key);
if (item!=null){
itemMap.remove(key);
removeString(getMongoKey() + ".itemMap." + key, item);
removeString(getMongoKey() + ".itemMap." + key);
}
}
@ -45,5 +47,4 @@ public class ItemManager extends MongoBase {
addItem(item);
return item;
}
}

View File

@ -42,7 +42,7 @@ public class Mail extends MongoBase {
this.mailType = mailType;
}
public void setState(int state) throws Exception {
updateString(this,"state", state);
updateString("state", state);
this.state = state;
}

View File

@ -1,21 +1,27 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class MailManager extends MongoBase {
private Map<String, Mail> mailMap = new ConcurrentHashMap<>();
public MailManager(){
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.mailManager);
}
public Map<String, Mail> getMailMap() {
return mailMap;
}
public void addMail(Mail mail) throws Exception {
mail.init(mail.getId(),mail.get_myMongoTemplate(),mail.getRootCollection(), getMongoKey() + ".mailMap." + mail.getId());
mail.init(mail.getId(), getMongoKey() + ".mailMap." + mail.getId());
updateString("mailMap." + mail.getId(), mail);
mailMap.put(mail.getId(), mail);
}
@ -23,10 +29,9 @@ public class MailManager extends MongoBase {
return mailMap.get(key);
}
public void removeMail(String key) {
Mail mail = mailMap.get(key);
if (mail!=null){
if (mailMap.containsKey(key)){
mailMap.remove(key);
removeString(getMongoKey() + ".mailMap." + key, mail);
removeString(getMongoKey() + ".mailMap." + key);
}
}
}

View File

@ -1,49 +0,0 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.GameApplication;
import com.ljsd.common.mogodb.LjsdMongoTemplate;
import com.ljsd.common.mogodb.MongoRoot;
public class MailingSystem extends MongoRoot {
public static final String _COLLECTION_NAME = "mailingSystem";
private static LjsdMongoTemplate _myMongoDBPool;
private SystemMailManager systemMailManager;
private SysMailManager sysMailManager;
private AutoIncrementManager cAutoIncrementManager;
@Override
public String getCollection() {
return _COLLECTION_NAME;
}
public static String getCollectionName() {
return _COLLECTION_NAME;
}
public MailingSystem(){
String id = Integer.toString(GameApplication.serverId);
setId(id);
systemMailManager = new SystemMailManager();
sysMailManager = new SysMailManager();
cAutoIncrementManager = new AutoIncrementManager();
//綁定关系
systemMailManager.init(id, _myMongoDBPool, _COLLECTION_NAME,"systemMailManager", false);
sysMailManager.init(id, _myMongoDBPool, _COLLECTION_NAME,"sysMailManager", false);
cAutoIncrementManager.init(id, _myMongoDBPool, _COLLECTION_NAME,"autoIncrementManager", false);
}
public static void init(LjsdMongoTemplate ljsdMongoTemplate) {
_myMongoDBPool = ljsdMongoTemplate;
}
public SystemMailManager getSystemMailManager() {
return systemMailManager;
}
public SysMailManager getSysMailManager() {
return sysMailManager;
}
public AutoIncrementManager getcAutoIncrementManager() {
return cAutoIncrementManager;
}
}

View File

@ -1,7 +1,9 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.LjsdMongoTemplate;
import com.ljsd.GameApplication;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.logic.dao.root.MailingSystem;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.util.TimeUtils;
import org.springframework.context.ConfigurableApplicationContext;
@ -14,27 +16,24 @@ public class MailingSystemManager {
private static Map<Integer, MailingSystem> mailingSystemMap = new ConcurrentHashMap<>();
public static LjsdMongoTemplate ljsdMongoTemplate;
public static void init(ConfigurableApplicationContext configurableApplicationContext) throws Exception {
ljsdMongoTemplate =configurableApplicationContext.getBean(LjsdMongoTemplate.class);
MailingSystem.init(ljsdMongoTemplate);
//TODO 测试用
//初始化系统邮件信息
MailingSystem mailingSystem = ljsdMongoTemplate.findById(MailingSystem.getCollectionName(), Integer.toString(1), MailingSystem.class);
MailingSystem mailingSystem = MongoUtil.getInstence().getMyMongoTemplate().findById(MailingSystem.getCollectionName(), Integer.toString(1), MailingSystem.class);
if (mailingSystem == null){
mailingSystem = new MailingSystem();
addMailingSystem(mailingSystem);
int nowTime = (int)(TimeUtils.now()/1000);
mailingSystem.getSysMailManager().addSystemMail(new SysMail(1));
MailingSystemManager.ljsdMongoTemplate.lastUpdate();
// MailingSystemManager.ljsdMongoTemplate.lastUpdate();
MailLogic.getInstance().sendSystemMail("开服邮件",new ArrayList<>(),"DSKGSD",nowTime,"1#5000|2#100",30*24*60*60,"IDIP",0,"0");
}
}
public static void addMailingSystem(MailingSystem mailingSystem) throws Exception {
mailingSystemMap.put(Integer.valueOf(mailingSystem.getId()), mailingSystem);
ljsdMongoTemplate.save(mailingSystem);
MongoUtil.getInstence().getMyMongoTemplate().save(mailingSystem);
}
public static boolean isUserExist(int id) {
@ -42,6 +41,6 @@ public class MailingSystemManager {
}
public static MailingSystem getMailingSystem() {
return mailingSystemMap.get(1);
return mailingSystemMap.get(GameApplication.serverId);
}
}

View File

@ -2,8 +2,8 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.config.SWorkShopSetting;
import com.ljsd.jieling.util.MathUtils;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
public class PlayerManager extends MongoBase {
@ -33,8 +33,10 @@ public class PlayerManager extends MongoBase {
private String clientVersion;
public PlayerManager(){
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.playerManager);
}
public String getOpenId() {
return openId;
@ -49,7 +51,7 @@ public class PlayerManager extends MongoBase {
}
public void setNickName(String nickName) throws Exception {
updateString(this,"nickName", nickName);
updateString("nickName", nickName);
this.nickName = nickName;
}
@ -58,7 +60,7 @@ public class PlayerManager extends MongoBase {
}
public void setLevel(int level) throws Exception {
updateString(this,"level", level);
updateString("level", level);
this.level = level;
}
@ -67,7 +69,7 @@ public class PlayerManager extends MongoBase {
}
public void setExp(int exp) throws Exception {
updateString(this,"exp", exp);
updateString("exp", exp);
this.exp = exp;
}
@ -76,7 +78,7 @@ public class PlayerManager extends MongoBase {
}
public void setVipLevel(int vipLevel) throws Exception {
updateString(this,"vipLevel", vipLevel);
updateString("vipLevel", vipLevel);
this.vipLevel = vipLevel;
}
@ -85,7 +87,7 @@ public class PlayerManager extends MongoBase {
}
public void setFamilyId(String familyId) throws Exception {
updateString(this,"familyId", familyId);
updateString("familyId", familyId);
this.familyId = familyId;
}
@ -94,7 +96,7 @@ public class PlayerManager extends MongoBase {
}
public void setHead(String head) throws Exception {
updateString(this,"head", head);
updateString("head", head);
this.head = head;
}
@ -103,7 +105,7 @@ public class PlayerManager extends MongoBase {
}
public void setGold(long gold) throws Exception {
updateString(this,"gold", gold);
updateString("gold", gold);
this.gold = gold;
}
@ -112,7 +114,7 @@ public class PlayerManager extends MongoBase {
}
public void setGem(int gem) throws Exception {
updateString(this,"gem", gem);
updateString("gem", gem);
this.gem = gem;
}
@ -121,7 +123,7 @@ public class PlayerManager extends MongoBase {
}
public void setChargeGem(int chargeGem) throws Exception {
updateString(this,"chargeGem", chargeGem);
updateString("chargeGem", chargeGem);
this.chargeGem = chargeGem;
}
@ -130,12 +132,12 @@ public class PlayerManager extends MongoBase {
}
public void setMapId(int mapId) throws Exception {
updateString(this,"mapId", mapId);
updateString("mapId", mapId);
this.mapId = mapId;
}
public void setCreateTime(long createTime) throws Exception {
updateString(this,"createTime", createTime);
updateString("createTime", createTime);
this.createTime = createTime;
}
@ -148,7 +150,7 @@ public class PlayerManager extends MongoBase {
}
public void setClientVersion(String clientVersion) throws Exception {
updateString(this,"clientVersion", clientVersion);
updateString("clientVersion", clientVersion);
this.clientVersion = clientVersion;
}

View File

@ -26,7 +26,7 @@ public class Pokemon extends MongoBase {
if( integer != null){
level = integer+1 ;
}
updateString(this,"comonpentsLevelMap."+comonpentId,level);
updateString("comonpentsLevelMap."+comonpentId,level);
this.comonpentsLevelMap.put(comonpentId,level);
}
@ -35,7 +35,7 @@ public class Pokemon extends MongoBase {
}
public void setAllStage(int allStage) throws Exception {
updateString(this,"allStage."+allStage,allStage);
updateString("allStage."+allStage,allStage);
this.allStage = allStage;
}
@ -46,4 +46,5 @@ public class Pokemon extends MongoBase {
public Map<Integer, Integer> getComonpentsLevelMap() {
return comonpentsLevelMap;
}
}

View File

@ -1,6 +1,8 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashMap;
import java.util.Map;
@ -9,11 +11,14 @@ public class PokemonManager extends MongoBase {
private Map<Integer,Pokemon> pokemonMap;
public PokemonManager() {
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.pokemonManager);
this.pokemonMap = new HashMap<>();
}
public void addPokemon(Pokemon pokemon) throws Exception {
updateString("pokemonMap." + pokemon.getId(),pokemon);
updateString("pokemonMap." + pokemon.getId(), this);
pokemonMap.put(pokemon.getId(),pokemon);
}
@ -21,4 +26,5 @@ public class PokemonManager extends MongoBase {
public Map<Integer, Pokemon> getPokemonMap() {
return pokemonMap;
}
}

View File

@ -23,7 +23,7 @@ public class Skill extends MongoBase {
}
public void setSkillId(int skillId) throws Exception {
updateString(this,"skillId", skillId);
updateString("skillId", skillId);
this.skillId = skillId;
}
@ -32,7 +32,7 @@ public class Skill extends MongoBase {
}
public void setSkillType(int skillType) throws Exception {
updateString(this,"skillType",skillType);
updateString("skillType",skillType);
this.skillType = skillType;
}
@ -41,7 +41,7 @@ public class Skill extends MongoBase {
}
public void setLevel(int level) throws Exception {
updateString(this,"level",level);
updateString("level",level);
this.level = level;
}
@ -50,7 +50,7 @@ public class Skill extends MongoBase {
}
public void setStar(int star) throws Exception {
updateString(this,"star",star);
updateString("star",star);
this.star = star;
}
@ -61,4 +61,5 @@ public class Skill extends MongoBase {
public void setEffectIdList(List<Integer> effectIdList) {
this.effectIdList = effectIdList;
}
}

View File

@ -15,7 +15,7 @@ public class SysMail extends MongoBase {
}
public void setSysMailIds(List<Integer> sysMailIds) throws Exception {
updateString(this,"sysMailIds", sysMailIds);
updateString("sysMailIds", sysMailIds);
this.sysMailIds = sysMailIds;
}
@ -31,4 +31,5 @@ public class SysMail extends MongoBase {
this.roleUid = uid;
this.sysMailIds = new CopyOnWriteArrayList<>();
}
}

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.logic.dao.root.MailingSystem;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@ -8,12 +9,18 @@ import java.util.concurrent.ConcurrentHashMap;
public class SysMailManager extends MongoBase {
private Map<Integer,SysMail> sysMailMap = new ConcurrentHashMap<>();
public SysMailManager(){
this.setRootCollection(MailingSystem._COLLECTION_NAME);
this.setMongoKey("sysMailManager");
}
public Map<Integer,SysMail> getSystemMailMap() {
return sysMailMap;
}
public void addSystemMail(SysMail sysMail) throws Exception {
sysMail.init(sysMail.getRootId(),sysMail.get_myMongoTemplate(),sysMail.getRootCollection(), getMongoKey() + ".sysMailMap." + sysMail.getRoleUid());
sysMail.init(sysMail.getRootId(), getMongoKey() + ".sysMailMap." + sysMail.getRoleUid());
updateString("sysMailMap." + sysMail.getRoleUid(), sysMail);
sysMailMap.put(sysMail.getRoleUid(),sysMail);
}
@ -29,4 +36,5 @@ public class SysMailManager extends MongoBase {
}
return sysMail;
}
}

View File

@ -87,4 +87,5 @@ public class SystemMail extends MongoBase {
public String getVersion() {
return version;
}
}

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.logic.dao.root.MailingSystem;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@ -8,6 +9,11 @@ import java.util.concurrent.ConcurrentHashMap;
public class SystemMailManager extends MongoBase {
private Map<Integer,SystemMail> systemMailMap = new ConcurrentHashMap<>();
public SystemMailManager(){
this.setRootCollection(MailingSystem._COLLECTION_NAME);
this.setMongoKey("systemMailManager");
}
public Map<Integer,SystemMail> getSystemMailMap() {
return systemMailMap;
}
@ -23,4 +29,5 @@ public class SystemMailManager extends MongoBase {
public String getName (){
return "systemMail";
}
}

View File

@ -1,6 +1,8 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.CommonProto;
import java.util.*;
@ -12,6 +14,8 @@ public class TeamPosManager extends MongoBase {
private Map<Integer,List<TeamPosForPokenInfo>> teamPosForPoken;
public TeamPosManager(){
this.setRootCollection(User._COLLECTION_NAME);
this.setMongoKey(MongoKey.missionManager);
teamNames = new HashMap<>(3);
teamPosForHero = new HashMap<>(3);
teamPosForPoken = new HashMap<>(3);
@ -19,7 +23,7 @@ public class TeamPosManager extends MongoBase {
public void changeName(int teamId,String teamName) throws Exception {
teamNames.put(teamId,teamName);
updateString(this,"teamNames",teamNames);
updateString("teamNames",teamNames);
}
public void changeTeamInfo(int teamId, List<CommonProto.TeamHeroInfo> heroIds, List<CommonProto.TeamPokemonInfo> pokemonoIds) throws Exception {
@ -35,8 +39,8 @@ public class TeamPosManager extends MongoBase {
}
teamPosForHero.put(teamId,teamPosHeroInfoList);
teamPosForPoken.put(teamId,teamPosForPokenInfos);
updateString(this,"teamPosForHero",teamPosForHero);
updateString(this,"teamPosForPoken",teamPosForPoken);
updateString("teamPosForHero",teamPosForHero);
updateString("teamPosForPoken",teamPosForPoken);
}
@ -51,7 +55,7 @@ public class TeamPosManager extends MongoBase {
teamPosHeroInfoList.add(teamPosHeroInfo);
}
teamPosForHero.put(1,teamPosHeroInfoList);
updateString(this,"teamPosForHero",teamPosForHero);
updateString("teamPosForHero",teamPosForHero);
}
@ -66,4 +70,5 @@ public class TeamPosManager extends MongoBase {
public Map<Integer, List<TeamPosForPokenInfo>> getTeamPosForPoken() {
return teamPosForPoken;
}
}

View File

@ -1,56 +1,50 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.LjsdMongoTemplate;
import com.ljsd.jieling.config.SGameSetting;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.handler.mission.MissionManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.TimeUtils;
import org.springframework.context.ConfigurableApplicationContext;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class UserManager {
private static Map<Integer, User> userMap = new ConcurrentHashMap<>();
private static Map<String, User> userMap = new ConcurrentHashMap<>();
public static LjsdMongoTemplate ljsdMongoTemplate;
public static void init(ConfigurableApplicationContext configurableApplicationContext) {
ljsdMongoTemplate =configurableApplicationContext.getBean(LjsdMongoTemplate.class);
User.init(ljsdMongoTemplate);
}
public static void addUser(User user) {
userMap.put(user._getIntId(), user);
userMap.put(user.getId(), user);
}
public static boolean isUserExist(int uid) {
return userMap.containsKey(uid);
}
public static User getUserForLogin(int uid) throws Exception {
User user = userMap.get(uid);
if (user != null) {
user = ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class);
}
if (user == null) {
user = registerUser(uid);
}else{
refreshUserLoginInfo(user);
}
return user;
}
private static void refreshUserLoginInfo(User user) {
//TODO
}
// public static User getUserForLogin(int uid) throws Exception {
// User user = userMap.get(uid);
// if (user != null) {
// user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), Integer.toString(uid), User.class);
// }
// if (user == null) {
// user = registerUser(uid);
// }else{
// refreshUserLoginInfo(user);
// }
// return user;
// }
//
// private static void refreshUserLoginInfo(User user) {
// //TODO
// }
public static User userLogin(int uid) throws Exception {
User user = ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class);
User user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), Integer.toString(uid), User.class);
if (user == null) {
user = registerUser(uid);
}else {
@ -66,7 +60,7 @@ public class UserManager {
User user = new User(uid);
initPlayer(user);
UserManager.addUser(user);
ljsdMongoTemplate.save(user);
MongoUtil.getInstence().getMyMongoTemplate().save(user);
return user;
}
@ -104,7 +98,7 @@ public class UserManager {
if (user != null) {
return user;
}
user =ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class);
user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), Integer.toString(uid), User.class);
if (user == null) {
throw new Exception("UserManager::getUser null exception");
}

View File

@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.config.SWorkShopSetting;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.dao.root.MailingSystem;
import com.ljsd.jieling.util.MathUtils;
import java.util.ArrayList;
@ -20,7 +22,11 @@ public class WorkShopController extends MongoBase {
private int cookExp;
public WorkShopController(){
this.setRootCollection(MailingSystem._COLLECTION_NAME);
this.setMongoKey(MongoKey.workShopController);
this.openBlueStateMap = new HashMap<>();
}
public void add(int type,int openId) throws Exception {
@ -28,7 +34,7 @@ public class WorkShopController extends MongoBase {
openBlueStateMap.put(type,new ArrayList<>());
}
openBlueStateMap.get(type).add(openId);
updateString(this,"openBlueStateMap." + type, openBlueStateMap.get(type));
updateString("openBlueStateMap." + type, openBlueStateMap.get(type));
}
public void addWorkShopExp(int addExp) throws Exception {
@ -88,7 +94,7 @@ public class WorkShopController extends MongoBase {
}
public void setWorkShopLevel(int workShopLevel) throws Exception {
updateString(this,"workShopLevel", workShopLevel);
updateString("workShopLevel", workShopLevel);
this.workShopLevel = workShopLevel;
}
@ -97,17 +103,17 @@ public class WorkShopController extends MongoBase {
}
public void setWorkShopExp(int workShopExp) throws Exception {
updateString(this,"workShopExp", workShopExp);
updateString("workShopExp", workShopExp);
this.workShopExp = workShopExp;
}
public void setCookLevel(int cookLevel) throws Exception {
updateString(this,"cookLevel", cookLevel);
updateString("cookLevel", cookLevel);
this.cookLevel = cookLevel;
}
public void setCookExp(int cookExp) throws Exception {
updateString(this,"cookExp", cookExp);
updateString("cookExp", cookExp);
this.cookExp = cookExp;
}
@ -122,4 +128,5 @@ public class WorkShopController extends MongoBase {
public int getCookExp() {
return cookExp;
}
}

View File

@ -0,0 +1,55 @@
package com.ljsd.jieling.logic.dao.root;
import com.ljsd.GameApplication;
import com.ljsd.common.mogodb.LjsdMongoTemplate;
import com.ljsd.common.mogodb.MongoRoot;
import com.ljsd.jieling.logic.dao.AutoIncrementManager;
import com.ljsd.jieling.logic.dao.SysMailManager;
import com.ljsd.jieling.logic.dao.SystemMailManager;
public class MailingSystem {
public static final String _COLLECTION_NAME = "mailingSystem";
private String id;
private SystemMailManager systemMailManager;
private SysMailManager sysMailManager;
private AutoIncrementManager cAutoIncrementManager;
public MailingSystem(){
this.id = Integer.toString(GameApplication.serverId);
systemMailManager = new SystemMailManager();
sysMailManager = new SysMailManager();
cAutoIncrementManager = new AutoIncrementManager();
//綁定关系
systemMailManager.init(id,"systemMailManager");
sysMailManager.init(id,"sysMailManager");
cAutoIncrementManager.init(id,"autoIncrementManager");
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public static String getCollectionName() {
return _COLLECTION_NAME;
}
public SystemMailManager getSystemMailManager() {
return systemMailManager;
}
public SysMailManager getSysMailManager() {
return sysMailManager;
}
public AutoIncrementManager getcAutoIncrementManager() {
return cAutoIncrementManager;
}
}

View File

@ -1,15 +1,16 @@
package com.ljsd.jieling.logic.dao;
package com.ljsd.jieling.logic.dao.root;
import com.ljsd.common.mogodb.LjsdMongoTemplate;
import com.ljsd.common.mogodb.MongoRoot;
import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.handler.mission.MissionManager;
import com.ljsd.jieling.logic.dao.*;
public class User extends MongoRoot {
public class User {
public static final String _COLLECTION_NAME = "user";
private static LjsdMongoTemplate _myMongoDBPool;
private String id;
private PlayerManager playerManager;
@ -34,10 +35,12 @@ public class User extends MongoRoot {
private WorkShopController workShopController;
//构造函数必须要声明否则从mongodb读出来反编译成类不通过
public User(){
}
public User(int uid){
String suid = Integer.toString(uid);
setId(suid);
this.id = Integer.toString(uid);
this.playerManager = new PlayerManager();
this.itemManager = new ItemManager();
this.heroManager = new HeroManager();
@ -51,27 +54,25 @@ public class User extends MongoRoot {
this.workShopController = new WorkShopController();
//綁定关系
this.playerManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"playerManager", false);
this.itemManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"itemManager", false);
this.heroManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"heroManager", false);
this.mapManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"mapManager", false);
this.missionManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"missionManager", false);
this.teamPosManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"teamPosManager",false);
this.mailManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"mailManager",false);
this.equipManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"equipManager",false);
this.adventureManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"adventureManager",false);
this.pokemonManager.init(suid, _myMongoDBPool, _COLLECTION_NAME,"pokemonManager",false);
this.workShopController.init(suid, _myMongoDBPool, _COLLECTION_NAME,"workShopController",false);
this.playerManager.init(id, MongoKey.playerManager);
this.itemManager.init(id, MongoKey.itemManager);
this.heroManager.init(id, MongoKey.heroManager);
this.mapManager.init(id, MongoKey.mapManager);
this.missionManager.init(id, MongoKey.missionManager);
this.teamPosManager.init(id, MongoKey.teamPosManager);
this.mailManager.init(id, MongoKey.mailManager);
this.equipManager.init(id, MongoKey.equipManager);
this.adventureManager.init(id, MongoKey.adventureManager);
this.pokemonManager.init(id, MongoKey.pokemonManager);
this.workShopController.init(id, MongoKey.workShopController);
}
public static void init(LjsdMongoTemplate ljsdMongoTemplate) {
_myMongoDBPool = ljsdMongoTemplate;
public String getId() {
return id;
}
@Override
public String getCollection() {
return _COLLECTION_NAME;
public void setId(String id) {
this.id = id;
}
public static String getCollectionName() {

View File

@ -6,6 +6,8 @@ import com.ljsd.jieling.config.SAdventureSetting;
import com.ljsd.jieling.config.SFoodsConfig;
import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;

View File

@ -5,6 +5,8 @@ import com.ljsd.jieling.config.*;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.HeroInfoProto;

View File

@ -1,14 +1,13 @@
package com.ljsd.jieling.logic.item;
import com.ljsd.jieling.config.*;
import com.ljsd.jieling.globals.GlobalItemType;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
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.util.*;
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -2,12 +2,11 @@ package com.ljsd.jieling.logic.item;
import com.ljsd.jieling.config.*;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.globals.GlobalItemType;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.HeroInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.CBean2Proto;

View File

@ -2,6 +2,9 @@ package com.ljsd.jieling.logic.mail;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.MailingSystem;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
@ -186,7 +189,7 @@ public class MailLogic {
SystemMailManager systemMailManager = mailingSystem.getSystemMailManager();
int id = getSystemMailId(autoIncrementManager,name);
systemMailManager.addSystemMail(new SystemMail(id,title,userList,content,sendTime,reward,effectiveTime,sendName,registerEndTime,version));
MailingSystemManager.ljsdMongoTemplate.lastUpdate();
// MailingSystemManager.ljsdMongoTemplate.lastUpdate();
}
private static int getSystemMailId(AutoIncrementManager autoIncrementManager,String name) throws Exception {

View File

@ -100,7 +100,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
packetNetData.getMsgId()== MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE){
//初始化session
if (sessionInit(session,packetNetData)){
if (!sessionInit(session,packetNetData)){
MessageUtil.sendErrorCode(session,0,"您的账号token不正确请退出游戏重新登陆!");
return;
}
@ -120,10 +120,10 @@ public class ProtocolsManager implements ProtocolsAbstract {
return;
}
//检查token
if (checkToken(session,packetNetData) != 0 ){
MessageUtil.sendErrorCode(session,0,"您的账号token不正确请退出游戏重新登陆!");
return;
}
// if (checkToken(session,packetNetData) != 0 ){
// MessageUtil.sendErrorCode(session,0,"您的账号token不正确请退出游戏重新登陆!");
// return;
// }
if (checkIndex(session,packetNetData) != 0){
return;
}
@ -155,7 +155,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
int token = packetNetData.getToken();
session.setUid(uid);
String tokenKey = RedisKey.getKey(RedisKey.TOKEN, String.valueOf(uid),false);
int serverToken = (int)RedisUtil.getInstence().get(tokenKey);
int serverToken = Integer.parseInt((String)RedisUtil.getInstence().get(tokenKey));
if (token == serverToken){
session.setToken(token);
return true;
@ -193,6 +193,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
}
private void dealHeartBeat(ISession session) {
session.setHeartBreatNums(3);
MessageUtil.sendHeartBeat(session);
}
@ -273,8 +274,8 @@ public class ProtocolsManager implements ProtocolsAbstract {
@Override
public void readIdel(GameSession gameSession) {
// TODO
final ISession session = (ISession) gameSession;
readIdea(session);
// final ISession session = (ISession) gameSession;
// readIdea(session);
}
public BaseHandler getHandler(MessageTypeProto.MessageType messageType) {

View File

@ -5,6 +5,7 @@ import com.ljsd.jieling.config.SItem;
import com.ljsd.jieling.config.SRewardGroup;
import com.ljsd.jieling.globals.GlobalItemType;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.protocols.CommonProto;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -1,7 +1,7 @@
package com.ljsd.jieling.util;
import com.google.protobuf.GeneratedMessage;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.netty.PackageConstant;
import com.ljsd.jieling.netty.cocdex.Tea;
import com.ljsd.jieling.network.session.ISession;
@ -48,7 +48,7 @@ public class MessageUtil {
public static void sendMessage(ISession session, int result, int msgId, GeneratedMessage generatedMessage, boolean flush) {
byte[] byteBuf = wrappedBuffer(session.getUid(), session.getToken(), session.getIndex(), result, msgId, generatedMessage);
try {
UserManager.ljsdMongoTemplate.lastUpdate();
MongoUtil.getInstence().lastUpdate();
} catch (Exception e) {
e.printStackTrace();
}