back_recharge
zhangshanxue 2020-04-28 15:43:44 +08:00
commit ea09a2f3d3
10 changed files with 1438 additions and 562 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.core.convert.converter.Converter;
import org.springframework.data.convert.ReadingConverter;
import org.springframework.data.mongodb.core.mapping.Document; public class MongoRootConverter implements Converter<BasicDBObject, BaseInfoForTest> {
@ReadingConverter
public class MongoRootConverter implements Converter<Document, PlayerForTest> {
@Override @Override
public PlayerForTest convert(Document source) { public BaseInfoForTest convert(BasicDBObject source) {
System.out.println("123"); System.out.println("123");
return null; return null;
} }
}*/ }

View File

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

View File

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

View File

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

View File

@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType; import com.ljsd.jieling.logic.mission.GameMisionType;
import com.ljsd.jieling.logic.mission.MissionType;
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo; import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
import java.util.List; import java.util.List;
@ -12,5 +13,13 @@ public class DailyRefreshEventProcess implements BaseGameEventProcessor {
@Override @Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception { public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
user.getUserMissionManager().openMission(user,event,misionTypeListMap, parm); user.getUserMissionManager().openMission(user,event,misionTypeListMap, parm);
if(event == GameEvent.MISSING_ROOM_REFRESH){
List<MissionType> typeList = MissionEventDistributor.eventEnumListMap.get(event);
if(typeList!=null){
for (MissionType type : typeList) {
user.getUserMissionManager().calCumulationDataResult(user,type,misionTypeListMap,parm);
}
}
}
} }
} }

View File

@ -30,6 +30,7 @@ public class MissionEventDistributor {
public static void init(){ public static void init(){
eventProcessor.put(GameEvent.MISSING_ROOM_REFRESH,new CumulationDataEventProcessor());
eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess()); eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess());
eventProcessor.put(GameEvent.BLOODY_REFRESH,new DailyRefreshEventProcess()); eventProcessor.put(GameEvent.BLOODY_REFRESH,new DailyRefreshEventProcess());
eventProcessor.put(GameEvent.TREASH_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.TREASH_REFRESH,new TreasureRefreshEventProcess());
@ -38,9 +39,14 @@ public class MissionEventDistributor {
eventProcessor.put(GameEvent.TREASH_MONTH_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.TREASH_MONTH_REFRESH,new TreasureRefreshEventProcess());
eventProcessor.put(GameEvent.SERVENHAPPY_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.SERVENHAPPY_REFRESH,new TreasureRefreshEventProcess());
eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor()); eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor());
eventProcessor.put(GameEvent.MISSING_ROOM_REFRESH,new DailyRefreshEventProcess());
List<MissionType> typeList = new ArrayList<>(); List<MissionType> typeList = new ArrayList<>();
typeList.add(MissionType.REFRESH_MISSING_ROOM);
eventEnumListMap.put(GameEvent.MISSING_ROOM_REFRESH,typeList);
eventProcessor.put(GameEvent.MISSING_ROOM_REFRESH,new DailyRefreshEventProcess());
typeList = new ArrayList<>();
typeList.add(MissionType.RECRUITMENT_RANDOM_HEROES); typeList.add(MissionType.RECRUITMENT_RANDOM_HEROES);
typeList.add(MissionType.ELEMENT_RANDOM_TIMES); typeList.add(MissionType.ELEMENT_RANDOM_TIMES);
eventEnumListMap.put(GameEvent.RANDOM_HERO,typeList); eventEnumListMap.put(GameEvent.RANDOM_HERO,typeList);
@ -309,11 +315,6 @@ public class MissionEventDistributor {
eventProcessor.put(GameEvent.MAZE_TREASURE_TIMES,new CumulationDataEventProcessor()); eventProcessor.put(GameEvent.MAZE_TREASURE_TIMES,new CumulationDataEventProcessor());
typeList = new ArrayList<>();
typeList.add(MissionType.REFRESH_MISSING_ROOM);
eventEnumListMap.put(GameEvent.MISSING_ROOM_REFRESH,typeList);
eventProcessor.put(GameEvent.MISSING_ROOM_REFRESH,new CumulationDataEventProcessor());
typeList = new ArrayList<>(); typeList = new ArrayList<>();
typeList.add(MissionType.LUCKY_WHEELS_TIMES); typeList.add(MissionType.LUCKY_WHEELS_TIMES);
eventEnumListMap.put(GameEvent.LUCK_WHEEL_TIMES,typeList); eventEnumListMap.put(GameEvent.LUCK_WHEEL_TIMES,typeList);