Merge branch 'master' into master_test

lvxinran 2020-07-28 05:19:47 +08:00
commit 2e3dcc5aa0
15 changed files with 251 additions and 58 deletions

View File

@ -0,0 +1,80 @@
package com.ljsd.jieling.chat;
/**
* @author lvxinran
* @date 2020/7/22
* @discribe
*/
public class ChatRedisEntity {
private int uid;
private String name;
private int type;
private String message;
private Long time;
private int status;
public ChatRedisEntity(){};
public ChatRedisEntity(int uid, String name, int type, String message, Long time, int status) {
this.uid = uid;
this.name = name;
this.type = type;
this.message = message;
this.time = time;
this.status = status;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Long getTime() {
return time;
}
public void setTime(Long time) {
this.time = time;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}

View File

@ -1,7 +1,9 @@
package com.ljsd.jieling.chat.logic; package com.ljsd.jieling.chat.logic;
import com.google.gson.Gson;
import com.ljsd.GameApplication; import com.ljsd.GameApplication;
import com.ljsd.jieling.chat.ChatRedisEntity;
import com.ljsd.jieling.chat.messge.MessageCache; import com.ljsd.jieling.chat.messge.MessageCache;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType; import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
@ -27,6 +29,7 @@ import com.ljsd.jieling.util.CBean2Proto;
import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.SensitivewordFilter; import com.ljsd.jieling.util.SensitivewordFilter;
import com.ljsd.jieling.util.ShieldedWordUtils; import com.ljsd.jieling.util.ShieldedWordUtils;
import util.TimeUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -42,6 +45,8 @@ public class ChatLogic {
return ChatLogic.Instance.instance; return ChatLogic.Instance.instance;
} }
private Gson gson = new Gson();
/** /**
* *
@ -196,10 +201,24 @@ public class ChatLogic {
break; break;
} }
onSendChatSuccess(user,chatType,message);
ReportUtil.onReportEvent(user, ReportEventEnum.SEND_MESSAGE.getType(),String.valueOf(chatType),message); ReportUtil.onReportEvent(user, ReportEventEnum.SEND_MESSAGE.getType(),String.valueOf(chatType),message);
MessageUtil.sendMessage(iSession, 1, msgId, null, true); MessageUtil.sendMessage(iSession, 1, msgId, null, true);
} }
//记录聊天信息
private void onSendChatSuccess(User user,int chatType,String message){
RedisUtil redisUtil = RedisUtil.getInstence();
String key = RedisKey.getKey(RedisKey.CHAT_INFO_CACHE, String.valueOf(chatType), false);
ChatRedisEntity chatRedisEntity = new ChatRedisEntity(user.getId(), user.getPlayerInfoManager().getNickName(), chatType, message, TimeUtils.now(), user.getPlayerInfoManager().getSilence());
String chatInfo = gson.toJson(chatRedisEntity);
long l = redisUtil.lGetListSize(key);
if(l>1000){
redisUtil.lPop(key);
}
redisUtil.lSet(key,chatInfo);
}
/** /**
* *

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.config.clazzStaticCfg;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
import config.SCHeroRankUpConfig; import config.SCHeroRankUpConfig;
import config.SHeroSacrifice;
import config.SLotterySetting; import config.SLotterySetting;
import manager.AbstractClassStaticConfig; import manager.AbstractClassStaticConfig;
import manager.STableManager; import manager.STableManager;
@ -19,6 +20,7 @@ public class HeroStaticConfig extends AbstractClassStaticConfig {
private Map<Integer, Map<Integer, Map<Integer, SCHeroRankUpConfig>>> scHeroRankUpConfigByShow; private Map<Integer, Map<Integer, Map<Integer, SCHeroRankUpConfig>>> scHeroRankUpConfigByShow;
private Map<Integer, Map<Integer, Map<Integer, SCHeroRankUpConfig>>> scHeroRankUpConfigByType; private Map<Integer, Map<Integer, Map<Integer, SCHeroRankUpConfig>>> scHeroRankUpConfigByType;
private Map<Integer,Map<Integer, SHeroSacrifice>> sHeroSacrificeMap;
private Set<Integer> randomHeroIds; private Set<Integer> randomHeroIds;
private Map<Integer,Integer> randomPoolByType; private Map<Integer,Integer> randomPoolByType;
@ -69,6 +71,12 @@ public class HeroStaticConfig extends AbstractClassStaticConfig {
} }
scHeroRankUpConfigByShow = result; scHeroRankUpConfigByShow = result;
scHeroRankUpConfigByType = calc; scHeroRankUpConfigByType = calc;
Map<Integer,Map<Integer, SHeroSacrifice>> sHeroSacrificeMapTemp = new HashMap<>();
Map<Integer, SHeroSacrifice> sHeroSacrificeConfig = STableManager.getConfig(SHeroSacrifice.class);
for(SHeroSacrifice sacrificeconfig:sHeroSacrificeConfig.values()){
sHeroSacrificeMapTemp.computeIfAbsent(sacrificeconfig.getType(),n->new HashMap<>()).put(sacrificeconfig.getKey(),sacrificeconfig);
}
sHeroSacrificeMap = sHeroSacrificeMapTemp;
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("SCHeroRankUpConfig init fail"); LOGGER.error("SCHeroRankUpConfig init fail");
@ -98,6 +106,10 @@ public class HeroStaticConfig extends AbstractClassStaticConfig {
return scHeroRankUpConfigByType.get(type).get(heroInitStar); return scHeroRankUpConfigByType.get(type).get(heroInitStar);
} }
public SHeroSacrifice getsHeroSacrificeMap(int type,int param) {
return sHeroSacrificeMap.get(type).get(param);
}
public Set<Integer> getRandomHeroIds() { public Set<Integer> getRandomHeroIds() {
return randomHeroIds; return randomHeroIds;
} }

View File

@ -266,6 +266,7 @@ public class RedisKey {
public final static String USER_LEVEL_GUILD_INFO = "USER_LEVEL_GUILD_INFO"; //车迟玩法挑战记录 public final static String USER_LEVEL_GUILD_INFO = "USER_LEVEL_GUILD_INFO"; //车迟玩法挑战记录
public static final String CHAT_INFO_CACHE = "CHAT_INFO_CACHE";//聊天信息缓存gm后台使用

View File

@ -123,9 +123,9 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
if(split.length>=2){ if(split.length>=2){
String openId = split[0]; String openId = split[0];
String chanel = split[1]; String chanel = split[1];
user = UserManager.userLogin(userId,openId,chanel,pid,gid); user = UserManager.userLogin(userId,openId,chanel,pid,gid,loginRequest.getPlatformS(),loginRequest.getIpS());
}else{ }else{
user = UserManager.userLogin(userId,openIdFront,"",pid,gid); user = UserManager.userLogin(userId,openIdFront,"",pid,gid,loginRequest.getPlatformS(),loginRequest.getIpS());
} }
// String newToken = UserManager.getNewToken(userId); // String newToken = UserManager.getNewToken(userId);

View File

@ -14,9 +14,9 @@ public enum ReportEventEnum {
CREATE_ACCOUNT(1,"create_account", new CreateRoleEventHandler(),new String[]{""}), CREATE_ACCOUNT(1,"create_account", new CreateRoleEventHandler(),new String[]{""}),
APP_LOGIN(2,"app_login", new LoginEventHandler(),new String[]{""}), APP_LOGIN(2,"app_login", new LoginEventHandler(),new String[]{""}),
CREATE_ROLE(3,"create_role ", new CreateRoleEventHandler(),new String[]{"role_name"}), CREATE_ROLE(3,"create_role", new CreateRoleEventHandler(),new String[]{"role_name"}),
GUILD(4,"guild", new CommonEventHandler(),new String[]{"step_id","step_name","rewards_list","guild_start_time"}), GUILD(4,"guild", new CommonEventHandler(),new String[]{"step_id","step_name","rewards_list","guild_start_time"}),
LEVEL_UP(5,"level_up", new UserLevelUpEventHandler(),new String[]{"promotion_level","improved_level"}), LEVEL_UP(5,"level_up", new UserLevelUpEventHandler(),new String[]{"level","promotion_level","improved_level"}),
MISSION_START(6,"mission_start", new CommonEventHandler(),new String[]{"mission_id","mission_name"}), MISSION_START(6,"mission_start", new CommonEventHandler(),new String[]{"mission_id","mission_name"}),
MISSION_COMPLETE(7,"mission_complete", new CommonEventHandler(),new String[]{"mission_id","mission_name","reward_list","mission_start_time"}), MISSION_COMPLETE(7,"mission_complete", new CommonEventHandler(),new String[]{"mission_id","mission_name","reward_list","mission_start_time"}),
JOIN_ACTIVITY(8,"join_activity", new CommonEventHandler(),new String[]{"activity_id","activity_name"}), JOIN_ACTIVITY(8,"join_activity", new CommonEventHandler(),new String[]{"activity_id","activity_name"}),
@ -39,12 +39,14 @@ public enum ReportEventEnum {
JOIN_GUILD(25,"join_guild", new CommonEventHandler(),new String[]{"guild_id","guild_name","guild_level","guild_people_num","guild_fighting_capacity","guild_create_time"}), JOIN_GUILD(25,"join_guild", new CommonEventHandler(),new String[]{"guild_id","guild_name","guild_level","guild_people_num","guild_fighting_capacity","guild_create_time"}),
QUIT_GUILD(26,"quit_guild", new CommonEventHandler(),new String[]{"guild_id","guild_name","guild_level","guild_people_num","guild_fighting_capacity","guild_create_time"}), QUIT_GUILD(26,"quit_guild", new CommonEventHandler(),new String[]{"guild_id","guild_name","guild_level","guild_people_num","guild_fighting_capacity","guild_create_time"}),
CREATE_ORDER(27,"create_order", new CommonEventHandler(),new String[]{"order_id","order_money_amount","Bundle_id","entrance","item_id","item_name","goods_id","item_list"}), CREATE_ORDER(27,"create_order", new CommonEventHandler(),new String[]{"order_id","order_money_amount","Bundle_id","entrance","item_id","item_name","goods_id","item_list"}),
ORDER_COMPLETE(28,"order_complete", new ChargeAmountEventHandler(),new String[]{"order_id","order_money_amount","Bundle_id","entrance","item_id","item_name","goods_id","item_list"}), ORDER_COMPLETE(28,"order_complete", new ChargeAmountEventHandler(),new String[]{"order_id","order_money_amount","Bundle_id","channel_id","server_id","goods_id","goods_name","item_id","item_num"}),
CHECK_RANKING(29,"check_ranking", new CommonEventHandler(),new String[]{"ranking_type"}), CHECK_RANKING(29,"check_ranking", new CommonEventHandler(),new String[]{"ranking_type"}),
ASK_FOR_BEING_FRIENDS(30,"ask_for_being_friends", new CommonEventHandler(),new String[]{"target_id","target_name","target_level","entrance"}), ASK_FOR_BEING_FRIENDS(30,"ask_for_being_friends", new CommonEventHandler(),new String[]{"target_id","target_name","target_level","entrance"}),
ALLOW_FRIENDS_ASK(31,"allow_friends_ask", new CommonEventHandler(),new String[]{"target_id","target_name","target_level","entrance"}), ALLOW_FRIENDS_ASK(31,"allow_friends_ask", new CommonEventHandler(),new String[]{"target_id","target_name","target_level","entrance"}),
SEND_MESSAGE(32,"send_message", new CommonEventHandler(),new String[]{"message_type","message_content"}), SEND_MESSAGE(32,"send_message", new CommonEventHandler(),new String[]{"message_type","message_content"}),
OPEN_MAIL(33,"open_mail", new CommonEventHandler(),new String[]{""}), OPEN_MAIL(33,"open_mail", new CommonEventHandler(),new String[]{""}),
GUIDE(34,"guide", new CommonEventHandler(),new String[]{"step_id"}),
VIP_LEVEL_UP(100,"", new VipLevelUpEventHandler(),new String[]{""}); VIP_LEVEL_UP(100,"", new VipLevelUpEventHandler(),new String[]{""});

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.ktbeans.reportEvent; package com.ljsd.jieling.ktbeans.reportEvent;
import com.ljsd.GameApplication;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import java.util.Date; import java.util.Date;
@ -20,6 +21,11 @@ public class CreateRoleEventHandler extends CommonEventHandler{
setProperties.put("role_name",user.getPlayerInfoManager().getNickName()); setProperties.put("role_name",user.getPlayerInfoManager().getNickName());
setOnceProperties.put("role_create_time",new Date()); setOnceProperties.put("role_create_time",new Date());
setOnceProperties.put("server_id",String.valueOf(GameApplication.serverId));
setOnceProperties.put("channel_id",user.getPlayerInfoManager().getPid());
setOnceProperties.put("platform_id",user.getPlayerInfoManager().getPlatform());
setOnceProperties.put("reg_ip",user.getPlayerInfoManager().getIp());
userProperties.put(1,setProperties); userProperties.put(1,setProperties);
userProperties.put(2,setOnceProperties); userProperties.put(2,setOnceProperties);
return userProperties; return userProperties;

View File

@ -108,6 +108,11 @@ public class PlayerManager extends MongoBase {
private int luckWheelLimitTime; private int luckWheelLimitTime;
private int luckAdvanceWheelLimitTime; private int luckAdvanceWheelLimitTime;
private String platform;
private String ip;
public PlayerManager(){ public PlayerManager(){
this.setRootCollection(User._COLLECTION_NAME); this.setRootCollection(User._COLLECTION_NAME);
} }
@ -727,4 +732,23 @@ public class PlayerManager extends MongoBase {
updateString("luckAdvanceWheelLimitTime",luckAdvanceWheelLimitTime); updateString("luckAdvanceWheelLimitTime",luckAdvanceWheelLimitTime);
this.luckAdvanceWheelLimitTime = luckAdvanceWheelLimitTime; this.luckAdvanceWheelLimitTime = luckAdvanceWheelLimitTime;
} }
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform;
updateString("platform",platform);
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
updateString("ip",ip);
}
} }

View File

@ -41,12 +41,12 @@ public class UserManager {
return userMap.containsKey(uid); return userMap.containsKey(uid);
} }
public static User userLogin(int uid,String openId,String channel,int pid,int gid) throws Exception { public static User userLogin(int uid,String openId,String channel,int pid,int gid,String platform,String ip) throws Exception {
User user = null; User user = null;
if (!UserManager.isUserExist(uid)){ if (!UserManager.isUserExist(uid)){
user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), uid, User.class); user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), uid, User.class);
if (user == null) { if (user == null) {
user = registerUser(uid,openId,channel,pid,gid); user = registerUser(uid,openId,channel,pid,gid,platform,ip);
} }
UserManager.addUser(user); UserManager.addUser(user);
}else{ }else{
@ -58,17 +58,17 @@ public class UserManager {
} }
private static User registerUser(int uid,String openId,String channel,int pid,int gid) throws Exception { private static User registerUser(int uid,String openId,String channel,int pid,int gid,String platform,String ip) throws Exception {
User user = new User(uid); User user = new User(uid);
UserManager.addUser(user); UserManager.addUser(user);
initPlayer(user,openId,channel,pid,gid); initPlayer(user,openId,channel,pid,gid,platform,ip);
MongoUtil.getInstence().getMyMongoTemplate().save(user); MongoUtil.getInstence().getMyMongoTemplate().save(user);
PlayerLogic.getInstance().sendTestWelfareMail(user,1,1); PlayerLogic.getInstance().sendTestWelfareMail(user,1,1);
ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType()); ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType());
return user; return user;
} }
private static void initPlayer(User user,String openId,String channel,int pid,int gid) throws Exception { private static void initPlayer(User user,String openId,String channel,int pid,int gid,String platform,String ip) throws Exception {
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
PlayerManager playerManager = user.getPlayerInfoManager(); PlayerManager playerManager = user.getPlayerInfoManager();
long now = TimeUtils.now(); long now = TimeUtils.now();
@ -89,6 +89,8 @@ public class UserManager {
playerManager.setChannel(channel); playerManager.setChannel(channel);
playerManager.setPid(pid); playerManager.setPid(pid);
playerManager.setGid(gid); playerManager.setGid(gid);
playerManager.setPlatform(platform);
playerManager.setIp(ip);
playerManager.setHeadFrame(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getDefaultPicture()); playerManager.setHeadFrame(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getDefaultPicture());
SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(1); SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(1);
playerManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy()); playerManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy());

View File

@ -2347,11 +2347,11 @@ public class HeroLogic{
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
} }
heroManager.removeHero(uid,heroId); // heroManager.removeHero(uid,heroId);
int[][] returnMaterials = sHeroReturn.getRankupReturn(); int[][] returnMaterials = sHeroReturn.getRankupReturn();
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()); SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());
int[][] levelReturn = ItemLogic.getInstance().itemReturnPercent(sHeroLevlConfig.getSumConsume(), returnPercent); int[][] levelReturn = ItemLogic.getInstance().itemReturnPercent(sHeroLevlConfig.getSumConsume(), returnPercent);
int returnHero = sHeroReturn.getHeroId(); // int returnHero = sHeroReturn.getHeroId();
//进阶材料返还乘万分比 //进阶材料返还乘万分比
Map<Integer,Integer> returnItemMap = new HashMap<>(); Map<Integer,Integer> returnItemMap = new HashMap<>();
for(int i = 0 ; i <returnMaterials.length;i++){ for(int i = 0 ; i <returnMaterials.length;i++){
@ -2360,7 +2360,7 @@ public class HeroLogic{
for(int i = 0 ; i <levelReturn.length;i++){ for(int i = 0 ; i <levelReturn.length;i++){
returnItemMap.put(levelReturn[i][0],returnItemMap.getOrDefault(levelReturn[i][0],0)+levelReturn[i][1]); returnItemMap.put(levelReturn[i][0],returnItemMap.getOrDefault(levelReturn[i][0],0)+levelReturn[i][1]);
} }
returnItemMap.put(returnHero,1); // returnItemMap.put(returnHero,1);
int[][] resultDrop = new int[returnItemMap.size()][]; int[][] resultDrop = new int[returnItemMap.size()][];
int index = 0; int index = 0;
for(Map.Entry<Integer,Integer> entry:returnItemMap.entrySet()){ for(Map.Entry<Integer,Integer> entry:returnItemMap.entrySet()){
@ -2368,12 +2368,14 @@ public class HeroLogic{
index++; index++;
} }
CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, BIReason.HERO_BACK_REWARD); CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, BIReason.HERO_BACK_REWARD);
CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder(); hero.setLevel(user,1);
String createHeroId = heroProto.getId(); hero.setBreakId(0);
heroProto.setStar(star); // CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder();
drop.setHero(0,heroProto.build()); // String createHeroId = heroProto.getId();
Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId); // heroProto.setStar(star);
newHero.setStar(star); // drop.setHero(0,heroProto.build());
// Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId);
// newHero.setStar(star);
HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session,1,responseMsgId,build,true); MessageUtil.sendMessage(session,1,responseMsgId,build,true);

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.item;
import com.ljsd.jieling.chat.logic.ChatLogic; import com.ljsd.jieling.chat.logic.ChatLogic;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig;
import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
@ -367,7 +368,6 @@ public class ItemLogic {
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder(); CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
HeroManager heroManager = user.getHeroManager(); HeroManager heroManager = user.getHeroManager();
StringBuilder reward = new StringBuilder();
ErrorCode erroMags = checkHeroResolve(heroIdsList,user); ErrorCode erroMags = checkHeroResolve(heroIdsList,user);
if (null!=erroMags){ if (null!=erroMags){
throw new ErrorCodeException(erroMags); throw new ErrorCodeException(erroMags);
@ -377,46 +377,25 @@ public class ItemLogic {
//1裸角色卡没有突破过的角色卡熔炼后返还的材料=当前等级返还升级材料+item表返还材料 //1裸角色卡没有突破过的角色卡熔炼后返还的材料=当前等级返还升级材料+item表返还材料
//2有过突破的卡 =当前等级返还升级材料+突破表返还材料 //2有过突破的卡 =当前等级返还升级材料+突破表返还材料
Map<Integer, Integer> baseItemMap = new HashMap<>(); Map<Integer, Integer> baseItemMap = new HashMap<>();
Map<Integer, Integer> baseCardMap = new HashMap<>();
Map<Integer, Integer> baseEquipMap = new HashMap<>();
Map<Integer,Integer> baseRandomMap = new HashMap<>();
int rankUpReturnPercent= SSpecialConfig.getIntegerValue(SSpecialConfig.HERO_SACRIFICE_PERCENT); int rankUpReturnPercent= SSpecialConfig.getIntegerValue(SSpecialConfig.HERO_SACRIFICE_PERCENT);
for (String heroId : heroIdsList) { for (String heroId : heroIdsList) {
Hero hero = heroManager.getHeroMap().get(heroId); Hero hero = heroManager.getHeroMap().get(heroId);
heroManager.removeHero(uid,heroId); heroManager.removeHero(uid,heroId);
int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume(); int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume();
SHeroSacrifice starSHeroSacrifice = STableManager.getFigureConfig(HeroStaticConfig.class).getsHeroSacrificeMap(1, hero.getStar());
ItemUtil.combineReward(itemReturnPercent(sumConsume,rankUpReturnPercent),baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); SHeroSacrifice breakSHeroSacrifice = STableManager.getFigureConfig(HeroStaticConfig.class).getsHeroSacrificeMap(2, hero.getBreakId());
int breakId = hero.getBreakId(); for(int[] item:sumConsume){
int starBreakId = hero.getStarBreakId(); baseItemMap.put(item[0],baseItemMap.getOrDefault(item[0],0)+item[1]);
if(breakId!=0 || starBreakId!=0){
SCHeroRankUpConfig scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(breakId);
if(scHeroRankUpConfig!=null){
int[][] levelUpReturn = scHeroRankUpConfig.getSumConsume();
ItemUtil.combineReward(itemReturnPercent(levelUpReturn,rankUpReturnPercent),baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
}
scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(starBreakId);
if(scHeroRankUpConfig!=null){
int[][] levelUpReturn = scHeroRankUpConfig.getSumConsume();
ItemUtil.combineReward(itemReturnPercent(levelUpReturn,rankUpReturnPercent),baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
}
continue;
} }
SItem sItem = SItem.getsItemMap().get(hero.getTemplateId()); for(int[] item:starSHeroSacrifice.getValue()){
baseItemMap.put(item[0],baseItemMap.getOrDefault(item[0],0)+item[1]);
if(null==filterItem){ }
if (reward.length() == 0) { for(int[] item:breakSHeroSacrifice.getValue()){
reward = new StringBuilder(sItem.getResolveReward()); baseItemMap.put(item[0],baseItemMap.getOrDefault(item[0],0)+item[1]);
} else {
reward.append("#").append(sItem.getResolveReward());
}
} }
} }
ItemUtil.combineReward(user,false, StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,-1); int[][] itemArray = ItemUtil.mapToArray(baseItemMap);
int reson = BIReason.DECOMPOS_HERO_REWARD; int reson = BIReason.DECOMPOS_HERO_REWARD;
if(null!=filterItem){ if(null!=filterItem){
reson= BIReason.UPHERO_DECOMPOS_HERO_REWARD; reson= BIReason.UPHERO_DECOMPOS_HERO_REWARD;
@ -428,10 +407,7 @@ public class ItemLogic {
}else { }else {
user.getUserMissionManager().onGameEvent(user,GameEvent.DESPOSE_HERO,heroIdsList.size()); user.getUserMissionManager().onGameEvent(user,GameEvent.DESPOSE_HERO,heroIdsList.size());
} }
return ItemUtil.drop(user,itemReturnPercent(itemArray,rankUpReturnPercent),reson);
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, reson);
return baseBuilder;
} }
/** /**

View File

@ -104,6 +104,9 @@ public class PlayerLogic {
int uid = session.getUid(); int uid = session.getUid();
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
user.getPlayerInfoManager().updateGuidePoint(type,id); user.getPlayerInfoManager().updateGuidePoint(type,id);
if(type==1){
ReportUtil.onReportEvent(user,ReportEventEnum.GUILD.getType(),String.valueOf(id));
}
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.SAVE_NEW_PLAYER_GUIDE_POINT_RESPONSE_VALUE,null,true); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.SAVE_NEW_PLAYER_GUIDE_POINT_RESPONSE_VALUE,null,true);
} }

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.logic.store; package com.ljsd.jieling.logic.store;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.config.reportData.DataMessageUtils; import com.ljsd.jieling.config.reportData.DataMessageUtils;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
@ -81,7 +82,6 @@ public class BuyGoodsLogic {
for(int[] item:sRechargeCommodityConfig.getBaseReward()){ for(int[] item:sRechargeCommodityConfig.getBaseReward()){
itemList.add(item[0]); itemList.add(item[0]);
} }
ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(),"",price,"","","","",String.valueOf(goodsId),itemList);
// KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,System.currentTimeMillis()+"",result.getResultCode(),price*10); // KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,System.currentTimeMillis()+"",result.getResultCode(),price*10);
} }
@ -352,12 +352,14 @@ public class BuyGoodsLogic {
rechargeInfo.updateRefreshMapByKey(sRechargeCommodityConfig.getId(),TimeUtils.now()+sRechargeCommodityConfig.getDailyUpdate()*TimeUtils.DAY); rechargeInfo.updateRefreshMapByKey(sRechargeCommodityConfig.getId(),TimeUtils.now()+sRechargeCommodityConfig.getDailyUpdate()*TimeUtils.DAY);
} }
resultRes.setResultCode(1); resultRes.setResultCode(1);
KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price); // KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price);
notifyPaySuccessFul(uid,goodsId,amount != -999); notifyPaySuccessFul(uid,goodsId,amount != -999);
// Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),goodsId)); // Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),goodsId));
MongoUtil.getLjsdMongoTemplate().lastUpdate(); MongoUtil.getLjsdMongoTemplate().lastUpdate();
sendGiftGooodsIndication(uid); sendGiftGooodsIndication(uid);
onChargeSuccess(uid,sRechargeCommodityConfig.getPrice(),0);//充值成功上报 onChargeSuccess(uid,sRechargeCommodityConfig.getPrice(),0);//充值成功上报
Map<Integer, Integer> mapReward = ItemUtil.arrayToMap(baseReward);
ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(),orderId,price,user.getPlayerInfoManager().getGid(),user.getPlayerInfoManager().getPid(),String.valueOf(GameApplication.serverId),String.valueOf(goodsId),sRechargeCommodityConfig.getName(),mapReward.keySet(),mapReward.values());
return resultRes; return resultRes;
} }

View File

@ -672,7 +672,7 @@ public class ItemUtil {
} }
playerInfoManager.setExp(curExp); playerInfoManager.setExp(curExp);
if (playerInfoManager.getLevel() > oldLevel) { if (playerInfoManager.getLevel() > oldLevel) {
ReportUtil.onReportEvent(user, ReportEventEnum.LEVEL_UP.getType(),1,playerInfoManager.getLevel()); ReportUtil.onReportEvent(user, ReportEventEnum.LEVEL_UP.getType(),oldLevel,playerInfoManager.getLevel()-oldLevel,playerInfoManager.getLevel());
user.getUserMissionManager().onGameEvent(user, GameEvent.USER_LEVELUP,oldLevel+1,playerInfoManager.getLevel()); user.getUserMissionManager().onGameEvent(user, GameEvent.USER_LEVELUP,oldLevel+1,playerInfoManager.getLevel());
} }
@ -1463,6 +1463,27 @@ public class ItemUtil {
} }
return sourceNum; return sourceNum;
} }
public static int[][] mapToArray(Map<Integer,Integer> map){
int[][] itemArray = new int[map.size()][];
int i = 0 ;
for(Map.Entry<Integer,Integer> entry:map.entrySet()){
itemArray[i] = new int[]{entry.getKey(),entry.getValue()};
i++;
}
return itemArray;
}
public static Map<Integer,Integer> arrayToMap(int[][] array){
Map<Integer,Integer> map = new HashMap<>(array.length);
for(int[] itemArray:array ){
map.put(itemArray[0],map.getOrDefault(itemArray[0],0)+itemArray[1]);
}
return map;
}
private static int parseTheValueByPrivilegeMap(User user,int sourceNum,int privigeId){ private static int parseTheValueByPrivilegeMap(User user,int sourceNum,int privigeId){
int privigeValue = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user,privigeId); int privigeValue = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user,privigeId);

View File

@ -0,0 +1,43 @@
package config;
import manager.STableManager;
import manager.Table;
import java.util.Map;
@Table(name ="HeroSacrifice")
public class SHeroSacrifice implements BaseConfig {
private int id;
private int type;
private int key;
private int[][] value;
@Override
public void init() throws Exception {
}
public int getId() {
return id;
}
public int getType() {
return type;
}
public int getKey() {
return key;
}
public int[][] getValue() {
return value;
}
}