back_recharge
wangyuan 2020-04-27 17:14:17 +08:00
parent 78f86421be
commit e7de571f02
8 changed files with 1422 additions and 556 deletions

View File

@ -1,14 +1,14 @@
/*package com.ljsd.common.mogodb;
package com.ljsd.common.mogodb;
import com.ljsd.common.mogodb.test.pojo.BaseInfoForTest;
import com.mongodb.BasicDBObject;
import com.ljsd.common.mogodb.test.pojo.PlayerForTest;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.convert.ReadingConverter;
import org.springframework.data.mongodb.core.mapping.Document;
@ReadingConverter
public class MongoRootConverter implements Converter<Document, PlayerForTest> {
public class MongoRootConverter implements Converter<BasicDBObject, BaseInfoForTest> {
@Override
public PlayerForTest convert(Document source) {
public BaseInfoForTest convert(BasicDBObject source) {
System.out.println("123");
return null;
}
}*/
}

View File

@ -1,20 +1,27 @@
package com.ljsd.common.mogodb;
package com.ljsd.jieling.db.mongo;
import com.mongodb.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.ljsd.common.mogodb.LjsdMongoTemplate;
import com.ljsd.common.mogodb.MongoRootConverter;
import com.ljsd.common.mogodb.MongoSettingsProperties;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoClientURI;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.core.convert.CustomConversions;
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
@Configuration
public class MongoConfig {
@ -67,9 +74,20 @@ public class MongoConfig {
DefaultDbRefResolver dbRefResolver = new DefaultDbRefResolver(this.mongoDbFactory());
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, this.mongoMappingContext());
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
converter.setCustomConversions(customConversions());
converter.afterPropertiesSet();
return converter;
}
private CustomConversions customConversions() {
List<Converter<?, ?>> converterList = new ArrayList<Converter<?, ?>>();
converterList.add(new MongoPropertyConverter());
return new CustomConversions(converterList);
}
@Bean
public MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(this.mongoDbFactory(), this.mappingMongoConverter1());

View File

@ -0,0 +1,30 @@
package com.ljsd.jieling.db.mongo;
import com.alibaba.fastjson.JSON;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.globals.GlobalItemType;
import com.ljsd.jieling.logic.dao.Jewel;
import com.ljsd.jieling.logic.dao.PropertyItem;
import com.mongodb.BasicDBObject;
import config.SItem;
import manager.STableManager;
import org.bson.json.JsonWriterSettings;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.convert.ReadingConverter;
@ReadingConverter
public class MongoPropertyConverter implements Converter<BasicDBObject, PropertyItem> {
private static JsonWriterSettings jsonWriterSettings = new JsonWriterSettings();
@Override
public PropertyItem convert(BasicDBObject source) {
SItem equipId = STableManager.getConfig(SItem.class).get(source.getInt("equipId"));
Class<? extends PropertyItem> target = PropertyItem.class;
if(equipId.getItemType() == GlobalItemType.JEWEL){
target = Jewel.class;
}
String realJson = source.toJson(jsonWriterSettings);
PropertyItem propertyItem = JSON.parseObject(realJson,target);
return propertyItem;
}
}

View File

@ -36,7 +36,7 @@ import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.logic.store.StoreType;
import com.ljsd.jieling.mission.event.LevelEvent;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.*;
import com.ljsd.jieling.util.*;

View File

@ -45,7 +45,7 @@ public class Hero extends MongoBase {
private int isLock;
private Set<String> jewelInfo;
private Set<String> jewelInfo = new HashSet<>();
public Hero(){
//绑定关系

View File

@ -17,6 +17,12 @@ public class Jewel extends PropertyItem {
private int jewelType;
public Jewel(){
this.setRootCollection(User._COLLECTION_NAME);
}
public Jewel(int uid,int jewelId){
this.setRootCollection(User._COLLECTION_NAME);
super.setId(KeyGenUtils.produceIdByModule(UUIDEnum.JEWEL, uid));