back_recharge
mashiyu 2019-01-17 14:38:03 +08:00
parent 5df73a6802
commit 4fc7cd3f32
12 changed files with 198 additions and 25 deletions

View File

@ -62,7 +62,7 @@ public class GameApplication {
RedisUtil.getInstence().init(configurableApplicationContext);
STableManager.initialize("com.ljsd.jieling.config");
// STableManager.initialize("com.ljsd.jieling.config");
UserManager.init(configurableApplicationContext);

View File

@ -0,0 +1,26 @@
package com.ljsd.jieling.db.redis;
public class RedisKey {
private final static String Delimiter_colon = ":";
private final static String areaId = "0";
public static final String TOKEN = "JL_TOKEN";
/**
*
*/
public static final String USER_SERVER_INFO = "JL_USER_SERVER_INFO";
private <K, T> String getKey(String type, K key, boolean withServerId) {
if (withServerId) {
return areaId + Delimiter_colon + type + Delimiter_colon + String.valueOf(key);
} else {
return type + Delimiter_colon + String.valueOf(key);
}
}
}

View File

@ -1,5 +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.UserManager;
import com.ljsd.jieling.netty.cocdex.PacketNetData;

View File

@ -1,7 +1,11 @@
package com.ljsd.jieling.handler;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.UserServerInfo;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
@ -30,17 +34,23 @@ public class LoginRequestHandler extends BaseHandler {
int msgId = netData.getMsgId();
int msgIndex = netData.getIndex();
byte[] message = netData.parseClientProtoNetData();
PlayerInfoProto.PlayerInfo.GetPlayerInfoRequest getPlayerInfoRequest
= PlayerInfoProto.PlayerInfo.GetPlayerInfoRequest.parseFrom(message);
PlayerInfoProto.PlayerInfo.LoginRequest loginRequest
= PlayerInfoProto.PlayerInfo.LoginRequest.parseFrom(message);
LOGGER.info("processMessage->uid={},token={},msgId={},msgIndex={},messageNum={},messageStr={}",
userId, token,msgId,msgIndex,getPlayerInfoRequest.getNum(),getPlayerInfoRequest.getStr());
//TODO
User userForLogin = UserManager.getUserForLogin(userId);
userId, token,msgId,msgIndex,loginRequest.getNum(),loginRequest.getStr());
//登陆注册入内存
User user = UserManager.userLogin(userId);
user.getPlayerInfoManager().setOpenId(loginRequest.getOpenId());
UserServerInfo userServerInfo = new UserServerInfo(user.getPlayerInfoManager());
RedisUtil.getInstence().hset(RedisKey.USER_SERVER_INFO,loginRequest.getOpenId(), userServerInfo);
String newToken = UserManager.getNewToken(userId);
PlayerInfoProto.PlayerInfo.LoginResponse loginResponse
= PlayerInfoProto.PlayerInfo.LoginResponse.newBuilder()
.setResultCode(0)
.setNewToken("123456")
.setNewToken(newToken)
.build();
try {
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.LOGIN_RESPONSE_VALUE, loginResponse, true);

View File

@ -0,0 +1,15 @@
package com.ljsd.jieling.logic;
public class CalHeroFinalAttri {
public static CalHeroFinalAttri getInstance(){
return Instance.instance;
}
private static class Instance{
public final static CalHeroFinalAttri instance = new CalHeroFinalAttri();
}
}

View File

@ -30,7 +30,7 @@ public class Hero extends MongoBase {
private List<Skill> skillList;
private List<Equip> quipList;
private List<Equip> equipList;
public void setId(String id) {
this.id = id;
@ -129,4 +129,20 @@ public class Hero extends MongoBase {
public int getSpeed() {
return speed;
}
public List<Skill> getSkillList() {
return skillList;
}
public void setSkillList(List<Skill> skillList) {
this.skillList = skillList;
}
public List<Equip> getEquipList() {
return equipList;
}
public void setEquipList(List<Equip> equipList) {
this.equipList = equipList;
}
}

View File

@ -4,8 +4,6 @@ import com.ljsd.common.mogodb.MongoBase;
public class Item extends MongoBase {
private String id;
private int itemId;
private int itemNum;
@ -18,9 +16,6 @@ public class Item extends MongoBase {
private int endingTime;
public String getId() {
return id;
}
public int getItemId() {
return itemId;

View File

@ -5,6 +5,8 @@ import com.ljsd.common.mogodb.MongoBase;
public class PlayerManager extends MongoBase {
private String openId;
private String nickName;
private int level;
@ -24,6 +26,14 @@ public class PlayerManager extends MongoBase {
private int chargeGem;
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
public String getNickName() {
return nickName;
}

View File

@ -6,8 +6,6 @@ import java.util.List;
public class Skill extends MongoBase {
private String id;
private int skillId;
private int skillType;
@ -19,6 +17,7 @@ public class Skill extends MongoBase {
private List<Integer> effectIdList;
public int getSkillId() {
return skillId;
}

View File

@ -22,6 +22,10 @@ public class UserManager {
userMap.put(user._getIntId(), 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) {
@ -36,16 +40,51 @@ public class UserManager {
}
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);
if (user == null) {
user = registerUser(uid);
}else {
if (!UserManager.isUserExist(uid)){
UserManager.addUser(user);
}
}
return user;
}
private static User registerUser(int uid) throws Exception {
User user = new User(uid,new PlayerManager(),new ItemManager(),new HeroManager(),new MapManager());
initPlayer(user);
UserManager.addUser(user);
ljsdMongoTemplate.save(user);
return user;
}
private static void initPlayer(User user) throws Exception {
PlayerManager playerManager = user.getPlayerInfoManager();
playerManager.setNickName("戒灵666");
playerManager.setLevel(1);
playerManager.setExp(0);
playerManager.setVipLevel(0);
playerManager.setFamilyId("12345");
playerManager.setHead("image_head_1");
playerManager.setGold(100000l);
playerManager.setGem(9999);
playerManager.setChargeGem(666);
ItemManager itemManager = user.getItemManager();
//TODO
HeroManager heroManager = user.getHeroManager();
//TODO
MapManager mapManager = user.getMapManager();
//TODO
}
public static User getUser(int uid) throws Exception {
User user = userMap.get(uid);
@ -65,5 +104,8 @@ public class UserManager {
}
public static String getNewToken(int userId) {
return "33521";
}
}

View File

@ -0,0 +1,29 @@
package com.ljsd.jieling.logic.dao;
public class UserServerInfo {
private long loginTime;
private int level;
public UserServerInfo(PlayerManager playerInfoManager) {
this.loginTime = System.currentTimeMillis();
this.level = playerInfoManager.getLevel();
}
public long getLoginTime() {
return loginTime;
}
public void setLoginTime(long loginTime) {
this.loginTime = loginTime;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
}

View File

@ -1,11 +1,11 @@
package com.ljsd.jieling.util;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.Item;
import com.ljsd.jieling.logic.dao.ItemManager;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.protocols.CommonProto;
import java.util.ArrayList;
import java.util.List;
public class CBean2Proto {
@ -28,12 +28,8 @@ public class CBean2Proto {
public static CommonProto.Common.Item getItem(Item item){
CommonProto.Common.Item itemProto = CommonProto.Common.Item
.newBuilder()
.setId(item.getId())
.setItemId(item.getItemId())
.setItemNum(item.getItemNum())
.setItemType(item.getItemType())
.setItemQuality(item.getItemQuality())
.setIsStacking(item.isStacking())
.setEndingTime(item.getEndingTime())
.build();
return itemProto;
@ -42,9 +38,43 @@ public class CBean2Proto {
public static CommonProto.Common.Hero getHero(Hero hero){
CommonProto.Common.Hero heroProto = CommonProto.Common.Hero
.newBuilder()
.setId(hero.getId())
.setHeroId(hero.getTemplateId())
.setHeroType(hero.getHeroType())
.setLevel(hero.getLevel())
.setStar(hero.getStar())
.setQuality(1)
.setHp(hero.getHp())
.setAttack(hero.getAttack())
.setPDefence(hero.getpDefence())
.setMDefence(hero.getmDefence())
.setSpeed(hero.getSpeed())
.addAllSkillList(getHeroSkill(hero.getSkillList()))
.addAllEquipList(getHeroEquip(hero.getEquipList()))
.build();
return heroProto;
}
private static List<CommonProto.Common.Skill> getHeroSkill(List<Skill> skillList) {
List<CommonProto.Common.Skill> skills = new ArrayList<>();
for(Skill skill : skillList){
CommonProto.Common.Skill skill1 = CommonProto.Common.Skill
.newBuilder()
.setSkillId(skill.getSkillId())
.setSkillType(skill.getSkillType())
.setLevel(skill.getLevel())
.setStar(skill.getStar())
.addAllEffectId(skill.getEffectIdList())
.build();
skills.add(skill1);
}
return skills;
}
private static List<CommonProto.Common.Equip> getHeroEquip(List<Equip> equipList) {
List<CommonProto.Common.Equip> equips = new ArrayList<>();
return equips;
}
}