Merge branch 'master' into master_test

zhangshanxue 2020-07-28 21:03:45 +08:00
commit 8de9d6ad8d
21 changed files with 547 additions and 193 deletions

View File

@ -89,6 +89,8 @@ public class GameLogicService implements IService {
//初始化邮件 //初始化邮件
MailingSystemManager.init(); MailingSystemManager.init();
HttpPool.init();
//线程池管理器 //线程池管理器
ThreadManager threadManager = ThreadManager.getInstance(); ThreadManager threadManager = ThreadManager.getInstance();
threadManager.init(); threadManager.init();
@ -96,7 +98,7 @@ public class GameLogicService implements IService {
MapLogic.getInstance().init(); MapLogic.getInstance().init();
MongoKeys.initmongoKey(); MongoKeys.initmongoKey();
SensitivewordFilter.init(); SensitivewordFilter.init();
HttpPool.init();
KeyGenUtils.setMachineNum(GameApplication.serverProperties.getNum()); KeyGenUtils.setMachineNum(GameApplication.serverProperties.getNum());
ActivityLogic.getInstance().checkActiviyStatus(); ActivityLogic.getInstance().checkActiviyStatus();
//初始化cdk //初始化cdk

View File

@ -19,8 +19,11 @@ import org.apache.http.message.BasicNameValuePair;
import util.StringUtil; import util.StringUtil;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*; import java.util.*;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DataMessageUtils { public class DataMessageUtils {
@ -36,6 +39,10 @@ public class DataMessageUtils {
private static final String sendRoleUrl37 = "http://pvt.api.m.37.com/report/roleChangeReport/"; private static final String sendRoleUrl37 = "http://pvt.api.m.37.com/report/roleChangeReport/";
private static final String sendChatContent37 = "http://cm3.api.37.com.cn/Content/_checkContent/"; private static final String sendChatContent37 = "http://cm3.api.37.com.cn/Content/_checkContent/";
private static final String sendToTapDBURL = "https://e.tapdb.net/event";
private static final String sendOnlineURL = "https://se.tapdb.net/tapdb/online";
//入队列 //入队列
public static void addLogQueue(Object info) { public static void addLogQueue(Object info) {
if(!GameLogicService.isServiceShutdown()){ if(!GameLogicService.isServiceShutdown()){
@ -57,7 +64,7 @@ public class DataMessageUtils {
if (!sendDataList.isEmpty()) { if (!sendDataList.isEmpty()) {
KTSendBody sendBody = new KTSendBody(sendDataList); KTSendBody sendBody = new KTSendBody(sendDataList);
HttpPool.sendPost(sendUrl, gson.toJson(sendBody)); HttpPool.sendPost(sendUrl, gson.toJson(sendBody),"application/json");
} }
if (!sendData37List.isEmpty() && GameApplication.serverProperties.isSendlog37()) { if (!sendData37List.isEmpty() && GameApplication.serverProperties.isSendlog37()) {
@ -108,18 +115,43 @@ public class DataMessageUtils {
} }
} }
public static JSONObject immediateSendPost(Object info){ public static String sendRechargePost(Object info){
String s = gson.toJson(info); String str = gson.toJson(info);
JSONObject jsonObject = null;
if(info instanceof Report37CheckChat){ if (str!=null) {
Report37CheckChat info1 = (Report37CheckChat) info; Pattern p = Pattern.compile("\\s*|\t|\r|\n");
List<BasicNameValuePair> pairList = info1.getPairList(); Matcher m = p.matcher(str);
try { str = m.replaceAll("");
jsonObject = HttpPool.sendPostForm(sendChatContent37, new UrlEncodedFormEntity(pairList, "utf-8")); }
} catch (UnsupportedEncodingException e) { try {
e.printStackTrace(); return HttpPool.sendPost(sendToTapDBURL,urlEncode(str),"text/plain");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
public static String sendOnlinePost(Object info){
String str = gson.toJson(info);
return HttpPool.sendPost(sendOnlineURL,str,"application/json");
}
private static String urlEncode(String url) throws UnsupportedEncodingException {
if(url == null) {
return null;
}
final String reserved_char = ";/?:@=&";
String ret = "";
for(int i=0; i < url.length(); i++) {
String cs = String.valueOf( url.charAt(i) );
if(reserved_char.contains(cs)){
ret += cs;
}else{
ret += URLEncoder.encode(cs, "utf-8");
} }
} }
return jsonObject; return ret.replace("+", "%20");
} }
} }

View File

@ -251,10 +251,10 @@ public class Report37CheckChat implements Report37Param{
report37CheckChat.setSign(MD5Util.encrypByMd5(signSt)); report37CheckChat.setSign(MD5Util.encrypByMd5(signSt));
String s = gson.toJson(report37CheckChat); String s = gson.toJson(report37CheckChat);
System.out.println(s); System.out.println(s);
JSONObject jsonObject = DataMessageUtils.immediateSendPost(report37CheckChat); // JSONObject jsonObject = DataMessageUtils.immediateSendPost(report37CheckChat);
Report37Response report37Response = jsonObject.toJavaObject(Report37Response.class); // Report37Response report37Response = jsonObject.toJavaObject(Report37Response.class);
//
System.out.println(report37Response); // System.out.println(report37Response);
} }
@Override @Override

View File

@ -55,37 +55,37 @@ public class Repot37EventUtil {
break; break;
} }
} }
public static <T> T hadResReport(Class<T> clazz,User user, Report37EventType eventType, Object... parm){ // public static <T> T hadResReport(Class<T> clazz,User user, Report37EventType eventType, Object... parm){
switch (eventType) { // switch (eventType) {
case CHECK_CHAT_CONTENT: // case CHECK_CHAT_CONTENT:
Report37CheckChat report37CheckChat = new Report37CheckChat(); // Report37CheckChat report37CheckChat = new Report37CheckChat();
report37CheckChat.setTime((int)(TimeUtils.now()/1000)); // report37CheckChat.setTime((int)(TimeUtils.now()/1000));
report37CheckChat.setChat_time(String.valueOf(TimeUtils.now()/1000)); // report37CheckChat.setChat_time(String.valueOf(TimeUtils.now()/1000));
report37CheckChat.setUid(String.valueOf(user.getPlayerInfoManager().getOpenId()));//uid // report37CheckChat.setUid(String.valueOf(user.getPlayerInfoManager().getOpenId()));//uid
report37CheckChat.setActor_name(user.getPlayerInfoManager().getNickName()); // report37CheckChat.setActor_name(user.getPlayerInfoManager().getNickName());
report37CheckChat.setActor_id(String.valueOf(user.getId())); // report37CheckChat.setActor_id(String.valueOf(user.getId()));
report37CheckChat.setGid(SDK37Constans.gid); // report37CheckChat.setGid(SDK37Constans.gid);
report37CheckChat.setPid(SDK37Constans.pid); // report37CheckChat.setPid(SDK37Constans.pid);
report37CheckChat.setDsid(String.valueOf(GameApplication.serverId)); // report37CheckChat.setDsid(String.valueOf(GameApplication.serverId));
report37CheckChat.setType(parm[0].toString());//类型 // report37CheckChat.setType(parm[0].toString());//类型
report37CheckChat.setContent(parm[1].toString());//内容 // report37CheckChat.setContent(parm[1].toString());//内容
report37CheckChat.setActor_level(String.valueOf(user.getPlayerInfoManager().getLevel())); // report37CheckChat.setActor_level(String.valueOf(user.getPlayerInfoManager().getLevel()));
report37CheckChat.setActor_recharge_gold(String.valueOf(0));//充值数 // report37CheckChat.setActor_recharge_gold(String.valueOf(0));//充值数
if(parm.length>2){ // if(parm.length>2){
report37CheckChat.setTo_uid(String.valueOf(parm[2])); // report37CheckChat.setTo_uid(String.valueOf(parm[2]));
} // }
if(parm.length>3){ // if(parm.length>3){
report37CheckChat.setTo_actor_name(String.valueOf(parm[3])); // report37CheckChat.setTo_actor_name(String.valueOf(parm[3]));
} // }
String signChat =SDK37Constans.chatKey+report37CheckChat.getUid()+report37CheckChat.getGid()+report37CheckChat.getDsid()+report37CheckChat.getTime()+report37CheckChat.getType(); // String signChat =SDK37Constans.chatKey+report37CheckChat.getUid()+report37CheckChat.getGid()+report37CheckChat.getDsid()+report37CheckChat.getTime()+report37CheckChat.getType();
report37CheckChat.setSign(MD5Util.encrypByMd5(signChat)); // report37CheckChat.setSign(MD5Util.encrypByMd5(signChat));
// System.out.println(gson.toJson(report37CheckChat)); //// System.out.println(gson.toJson(report37CheckChat));
JSONObject jsonObject = DataMessageUtils.immediateSendPost(report37CheckChat); // JSONObject jsonObject = DataMessageUtils.immediateSendPost(report37CheckChat);
T t = jsonObject.toJavaObject(clazz); // T t = jsonObject.toJavaObject(clazz);
return t; // return t;
} // }
return null; // return null;
} // }
public static boolean Report37Chat(User user,Object... parm){ public static boolean Report37Chat(User user,Object... parm){

View File

@ -117,11 +117,13 @@ public class GMRequestHandler extends BaseHandler{
hero.setStarBreakId(scHeroRankUpConfig.getId()); hero.setStarBreakId(scHeroRankUpConfig.getId());
scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar()); scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
int breakId = 0;
for(SCHeroRankUpConfig scHeroRankUpConfigBreak :scHeroRankUpConfigByType.values()){ for(SCHeroRankUpConfig scHeroRankUpConfigBreak :scHeroRankUpConfigByType.values()){
if(hero.getLevel()>scHeroRankUpConfigBreak.getLimitLevel()){ if(hero.getLevel()>scHeroRankUpConfigBreak.getLimitLevel()){
hero.setBreakId(scHeroRankUpConfigBreak.getId()); breakId++;
} }
} }
hero.setBreakId(breakId);
} }
CommonProto.Hero finalHeroProto = CBean2Proto.getHero(hero); CommonProto.Hero finalHeroProto = CBean2Proto.getHero(hero);
gmBuilder.setDrop(CommonProto.Drop.newBuilder().addHero(finalHeroProto).build()); gmBuilder.setDrop(CommonProto.Drop.newBuilder().addHero(finalHeroProto).build());

View File

@ -48,40 +48,40 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
return; return;
} }
ReportUtil.saveBaseInfo(userId,loginRequest); ReportUtil.saveBaseInfo(userId,loginRequest);
ParamEnvironmentBean paramEnvironmentBean = new ParamEnvironmentBean(); // ParamEnvironmentBean paramEnvironmentBean = new ParamEnvironmentBean();
paramEnvironmentBean.setDevice_id_s(loginRequest.getDeviceIdS()); // paramEnvironmentBean.setDevice_id_s(loginRequest.getDeviceIdS());
paramEnvironmentBean.setIp_s(loginRequest.getIpS()); // paramEnvironmentBean.setIp_s(loginRequest.getIpS());
ParamEnvironmentSimpleBean paramEnvironmentSimpleBean = new ParamEnvironmentSimpleBean("", // ParamEnvironmentSimpleBean paramEnvironmentSimpleBean = new ParamEnvironmentSimpleBean("",
"", // "",
loginRequest.getDeviceIdS(), // loginRequest.getDeviceIdS(),
loginRequest.getBrandS(), // loginRequest.getBrandS(),
loginRequest.getDpiS(), // loginRequest.getDpiS(),
loginRequest.getOperatorS(), // loginRequest.getOperatorS(),
loginRequest.getOsVersionS(), // loginRequest.getOsVersionS(),
LoginParamType.NETWORK_WIFI.equals(loginRequest.getNetworkS())); // LoginParamType.NETWORK_WIFI.equals(loginRequest.getNetworkS()));
switch (loginRequest.getPlatformS()){ // switch (loginRequest.getPlatformS()){
case LoginParamType.PLATFORM_ANDRIOD: // case LoginParamType.PLATFORM_ANDRIOD:
paramEnvironmentSimpleBean.setImei_s(loginRequest.getIdfaSOrImeiS()); // paramEnvironmentSimpleBean.setImei_s(loginRequest.getIdfaSOrImeiS());
break; // break;
case LoginParamType.PLATFORM_IOS: // case LoginParamType.PLATFORM_IOS:
paramEnvironmentSimpleBean.setIdfa_s(loginRequest.getIdfaSOrImeiS()); // paramEnvironmentSimpleBean.setIdfa_s(loginRequest.getIdfaSOrImeiS());
break; // break;
case LoginParamType.PLATFORM_IOS_YY: // case LoginParamType.PLATFORM_IOS_YY:
paramEnvironmentSimpleBean.setIdfa_s(loginRequest.getIdfaSOrImeiS()); // paramEnvironmentSimpleBean.setIdfa_s(loginRequest.getIdfaSOrImeiS());
break; // break;
case LoginParamType.PLATFORM_PC: // case LoginParamType.PLATFORM_PC:
break; // break;
default: // default:
break; // break;
//
} // }
ParamDataBean paramDataBean = new ParamDataBean(); // ParamDataBean paramDataBean = new ParamDataBean();
paramDataBean.setChannel_s(loginRequest.getChannelS()); // paramDataBean.setChannel_s(loginRequest.getChannelS());
KTDataUtil.addUserDataInfo(userId,paramDataBean); // KTDataUtil.addUserDataInfo(userId,paramDataBean);
//
//// KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean);
// KTEnvironmentUtil.addUserSimpleEnviromentInfo(userId,paramEnvironmentSimpleBean);
// KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean); // KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean);
KTEnvironmentUtil.addUserSimpleEnviromentInfo(userId,paramEnvironmentSimpleBean);
KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean);
int pid = 0; int pid = 0;
int gid = 0; int gid = 0;
@ -101,19 +101,19 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
} }
//临时代码 等前端出新包后删除2019 11 29 //临时代码 等前端出新包后删除2019 11 29
if(gid==0){ // if(gid==0){
try { // try {
String value =( (String) RedisUtil.getInstence().get(RedisUtil.getInstence().getKey(RedisKey.PIDGIDTEMP, Integer.toString(userId)))).replace("\"", ""); // String value =( (String) RedisUtil.getInstence().get(RedisUtil.getInstence().getKey(RedisKey.PIDGIDTEMP, Integer.toString(userId)))).replace("\"", "");
LOGGER.info("the value={}",value); // LOGGER.info("the value={}",value);
String[] splitvalue = value.split("#"); // String[] splitvalue = value.split("#");
if (splitvalue.length==2){ // if (splitvalue.length==2){
pid = Integer.valueOf(splitvalue[0]); // pid = Integer.valueOf(splitvalue[0]);
gid = Integer.valueOf(splitvalue[1]); // gid = Integer.valueOf(splitvalue[1]);
} // }
}catch (Exception e){ // }catch (Exception e){
e.getMessage(); // e.getMessage();
} // }
} // }
LOGGER.info("the uid={},the pid={},the gid={},",userId,pid,gid); LOGGER.info("the uid={},the pid={},the gid={},",userId,pid,gid);
//登陆注册入内存 //登陆注册入内存

View File

@ -2057,6 +2057,7 @@ public class MapLogic {
.setTowerUseTime((int)(mapManager.getCurrTowerTime()/1000)) .setTowerUseTime((int)(mapManager.getCurrTowerTime()/1000))
.setKillCount(mapManager.getTrialInfo().getKillCount()) .setKillCount(mapManager.getTrialInfo().getKillCount())
.addAllTrialRewardInfo(mapManager.getTrialInfo().getTowerReceivedReward()) .addAllTrialRewardInfo(mapManager.getTrialInfo().getTowerReceivedReward())
.setBombUsed(mapManager.getTrialInfo().getBombUseTimes())
.build(); .build();
builder.setTowerCopyInfo(towerCopyInfo); builder.setTowerCopyInfo(towerCopyInfo);
builder.addAllPlayedGenMapId(mapManager.getPlayGenMaps()); builder.addAllPlayedGenMapId(mapManager.getPlayGenMaps());
@ -2375,6 +2376,7 @@ public class MapLogic {
int[] bombReward = rewardResult.stream().mapToInt(Integer::valueOf).toArray(); int[] bombReward = rewardResult.stream().mapToInt(Integer::valueOf).toArray();
CommonProto.Drop.Builder drop = ItemUtil.drop(user, bombReward, 1,1,BIReason.BOMB_REWARD); CommonProto.Drop.Builder drop = ItemUtil.drop(user, bombReward, 1,1,BIReason.BOMB_REWARD);
mapManager.updateBombUseCount(mapManager.getTrialInfo().getBombUseTimes()+1);
mapManager.setTrialEnergy(100); mapManager.setTrialEnergy(100);
MapInfoProto.MapTowerUseBombResponse.Builder response = MapInfoProto.MapTowerUseBombResponse.newBuilder(); MapInfoProto.MapTowerUseBombResponse.Builder response = MapInfoProto.MapTowerUseBombResponse.newBuilder();
@ -2885,6 +2887,7 @@ public class MapLogic {
trialInfo.setBuffIds(initBuff); trialInfo.setBuffIds(initBuff);
trialInfo.setFloor(trialInfo.getFloor()-7>1?trialInfo.getFloor()-7:1); trialInfo.setFloor(trialInfo.getFloor()-7>1?trialInfo.getFloor()-7:1);
trialInfo.setKillCount(0); trialInfo.setKillCount(0);
trialInfo.setBombUseTimes(0);
trialInfo.setTowerReceivedReward(new HashSet<>()); trialInfo.setTowerReceivedReward(new HashSet<>());
if(mapManager.getCurMapId()!=0){ if(mapManager.getCurMapId()!=0){
if(MapLogic.getInstance().getMap(user) instanceof TowerMap){ if(MapLogic.getInstance().getMap(user) instanceof TowerMap){

View File

@ -817,6 +817,10 @@ public class MapManager extends MongoBase {
trialInfo.setMapGameInfo(info); trialInfo.setMapGameInfo(info);
updateString("trialInfo.mapGameInfo",info); updateString("trialInfo.mapGameInfo",info);
} }
public void updateBombUseCount(int bombUseCount){
trialInfo.setBombUseTimes(bombUseCount);
updateString("trialInfo.bombUseTimes",bombUseCount);
}
} }

View File

@ -35,6 +35,8 @@ public class TrialInfo {
private MapGameInfo mapGameInfo = new MapGameInfo(); private MapGameInfo mapGameInfo = new MapGameInfo();
private int bombUseTimes;
public Set<Integer> getTowerReceivedReward() { public Set<Integer> getTowerReceivedReward() {
return towerReceivedReward; return towerReceivedReward;
} }
@ -138,4 +140,12 @@ public class TrialInfo {
public void setMapGameInfo(MapGameInfo mapGameInfo) { public void setMapGameInfo(MapGameInfo mapGameInfo) {
this.mapGameInfo = mapGameInfo; this.mapGameInfo = mapGameInfo;
} }
public int getBombUseTimes() {
return bombUseTimes;
}
public void setBombUseTimes(int bombUseTimes) {
this.bombUseTimes = bombUseTimes;
}
} }

View File

@ -41,95 +41,95 @@ public class KtEventUtils {
public static void onKtEvent(User user,int eventType,Object ...parm){ public static void onKtEvent(User user,int eventType,Object ...parm){
ParamEventBean paramEventBean = new ParamEventBean(eventType); // ParamEventBean paramEventBean = new ParamEventBean(eventType);
switch (eventType){ // switch (eventType){
case ParamEventBean.UserActivityEvent: // case ParamEventBean.UserActivityEvent:
int activityId = (int)parm[0]; // int activityId = (int)parm[0];
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); // SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
paramEventBean.add(sGlobalActivity.getSesc()); // paramEventBean.add(sGlobalActivity.getSesc());
paramEventBean.add(sGlobalActivity.getSesc()); // paramEventBean.add(sGlobalActivity.getSesc());
paramEventBean.add(parm[1].toString()); // paramEventBean.add(parm[1].toString());
paramEventBean.add("COMPLETE"); // paramEventBean.add("COMPLETE");
break; // break;
case ParamEventBean.UserItemEvent: // case ParamEventBean.UserItemEvent:
case ParamEventBean.UserCurrencyEvent: // case ParamEventBean.UserCurrencyEvent:
int useReson = (int)parm[0]; // int useReson = (int)parm[0];
int useType = (int)parm[1]; // int useType = (int)parm[1];
int itemId = (int)parm[2]; // int itemId = (int)parm[2];
int itemNum = (int)parm[3]; // int itemNum = (int)parm[3];
int itemTotalNum = (int)parm[4]; // int itemTotalNum = (int)parm[4];
paramEventBean.add(itemUseType[useType]); // paramEventBean.add(itemUseType[useType]);
paramEventBean.add(String.valueOf(useReson)); // paramEventBean.add(String.valueOf(useReson));
if(currencyMap.containsKey(itemId)){ // if(currencyMap.containsKey(itemId)){
paramEventBean.add(currencyMap.get(itemId)); // paramEventBean.add(currencyMap.get(itemId));
}else{ // }else{
paramEventBean.add(String.valueOf(itemId)); // paramEventBean.add(String.valueOf(itemId));
} // }
paramEventBean.add(String.valueOf(itemNum)); // paramEventBean.add(String.valueOf(itemNum));
PlayerManager playerInfoManager = user.getPlayerInfoManager(); // PlayerManager playerInfoManager = user.getPlayerInfoManager();
ItemLogic.getInstance().addItemLog(new ItemLog(user.getId(),useType,String.valueOf(TimeUtils.now()),useReson,itemId,itemNum,itemTotalNum)); // ItemLogic.getInstance().addItemLog(new ItemLog(user.getId(),useType,String.valueOf(TimeUtils.now()),useReson,itemId,itemNum,itemTotalNum));
//
if(parm.length==6){ // if(parm.length==6){
String sbReson = String.valueOf(parm[5]); // String sbReson = String.valueOf(parm[5]);
BILog.info("itemflow {}|{}|{}|{}|{}|{}|{}|{}|{}",user.getId(), playerInfoManager.getLevel(), playerInfoManager.getVipLevel(),useType,useReson,itemId,itemNum,itemTotalNum,sbReson); // BILog.info("itemflow {}|{}|{}|{}|{}|{}|{}|{}|{}",user.getId(), playerInfoManager.getLevel(), playerInfoManager.getVipLevel(),useType,useReson,itemId,itemNum,itemTotalNum,sbReson);
}else { // }else {
BILog.info("itemflow {}|{}|{}|{}|{}|{}|{}|{}",user.getId(), playerInfoManager.getLevel(), playerInfoManager.getVipLevel(),useType,useReson,itemId,itemNum,itemTotalNum); // BILog.info("itemflow {}|{}|{}|{}|{}|{}|{}|{}",user.getId(), playerInfoManager.getLevel(), playerInfoManager.getVipLevel(),useType,useReson,itemId,itemNum,itemTotalNum);
} // }
//
break; // break;
case ParamEventBean.UserLoginOutEvent: // case ParamEventBean.UserLoginOutEvent:
case ParamEventBean.UserLogin: // case ParamEventBean.UserLogin:
int loginType = (int)parm[0]; // int loginType = (int)parm[0];
paramEventBean.add(userloginType[loginType]); // paramEventBean.add(userloginType[loginType]);
break; // break;
case ParamEventBean.UserStoreEvent: // case ParamEventBean.UserStoreEvent:
int storeId = (int)parm[0]; // int storeId = (int)parm[0];
int buyItemId = (int)parm[1]; // int buyItemId = (int)parm[1];
int goldType = (int)parm[2]; // int goldType = (int)parm[2];
int buyTimes = (int)parm[3]; // int buyTimes = (int)parm[3];
int costTotal = (int)parm[4]; // int costTotal = (int)parm[4];
paramEventBean.add(String.valueOf(storeId)); // paramEventBean.add(String.valueOf(storeId));
paramEventBean.add(String.valueOf(buyItemId)); // paramEventBean.add(String.valueOf(buyItemId));
if(currencyMap.containsKey(goldType)){ // if(currencyMap.containsKey(goldType)){
paramEventBean.add(currencyMap.get(goldType)); // paramEventBean.add(currencyMap.get(goldType));
}else{ // }else{
paramEventBean.add(Integer.toString(goldType)); // paramEventBean.add(Integer.toString(goldType));
} // }
paramEventBean.add(String.valueOf(buyTimes)); // paramEventBean.add(String.valueOf(buyTimes));
paramEventBean.add(String.valueOf(costTotal/buyTimes)); // paramEventBean.add(String.valueOf(costTotal/buyTimes));
paramEventBean.add(String.valueOf(costTotal)); // paramEventBean.add(String.valueOf(costTotal));
break; // break;
case ParamEventBean.UserPayEvent: // case ParamEventBean.UserPayEvent:
int goodsId = (int)parm[0]; // int goodsId = (int)parm[0];
String orderId = (String)parm[1]; // String orderId = (String)parm[1];
String payValid = payResult[(int)parm[2]]; // String payValid = payResult[(int)parm[2]];
String amount = String.valueOf( ((int)parm[3])); // String amount = String.valueOf( ((int)parm[3]));
SRechargeCommodityConfig sRechargeCommodityConfig = SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsId); // SRechargeCommodityConfig sRechargeCommodityConfig = SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsId);
paramEventBean.add(sRechargeCommodityConfig.getName()); // paramEventBean.add(sRechargeCommodityConfig.getName());
paramEventBean.add(orderId); // paramEventBean.add(orderId);
paramEventBean.add(payValid); // paramEventBean.add(payValid);
paramEventBean.add(amount); // paramEventBean.add(amount);
break; // break;
case ParamEventBean.UserRegister: // case ParamEventBean.UserRegister:
break; // break;
case ParamEventBean.UserTaskEvent: // case ParamEventBean.UserTaskEvent:
int misionType = (int)parm[0]; // int misionType = (int)parm[0];
int misionId = (int)parm[1]; // int misionId = (int)parm[1];
paramEventBean.add(misionType+"_"+misionId); // paramEventBean.add(misionType+"_"+misionId);
paramEventBean.add("COMPLETE"); // paramEventBean.add("COMPLETE");
break; // break;
case ParamEventBean.UserGameType: // case ParamEventBean.UserGameType:
paramEventBean.add("玩法"); // paramEventBean.add("玩法");
String type = KTGameType.getName((int) parm[0]); // String type = KTGameType.getName((int) parm[0]);
paramEventBean.add(String.valueOf(type)); // paramEventBean.add(String.valueOf(type));
paramEventBean.add(String.valueOf(parm[1])); // paramEventBean.add(String.valueOf(parm[1]));
paramEventBean.add("COMPLETE"); // paramEventBean.add("COMPLETE");
eventType = ParamEventBean.UserActivityEvent; // eventType = ParamEventBean.UserActivityEvent;
break; // break;
} // }
//
KTParam ktParam = ParamBuilder.paramBuild(user, eventType, paramEventBean); // KTParam ktParam = ParamBuilder.paramBuild(user, eventType, paramEventBean);
DataMessageUtils.addLogQueue(ktParam); // DataMessageUtils.addLogQueue(ktParam);
// LOGGER.info("ktparm -- > {}",gson.toJson(ktParam)); // LOGGER.info("ktparm -- > {}",gson.toJson(ktParam));
} }
public static ParamEnvironmentBean enviromentBuild(int uid){ public static ParamEnvironmentBean enviromentBuild(int uid){

View File

@ -0,0 +1,46 @@
package com.ljsd.jieling.ktbeans;
/**
* @author lvxinran
* @date 2020/7/20
* @discribe
*/
public class OnlineProp {
private String server;
private int online;
private long timestamp;
public OnlineProp(String server, int online, long timestamp) {
this.server = server;
this.online = online;
this.timestamp = timestamp;
}
public String getServer() {
return server;
}
public void setServer(String server) {
this.server = server;
}
public int getOnline() {
return online;
}
public void setOnline(int online) {
this.online = online;
}
public long getTimeStamp() {
return timestamp;
}
public void setTimeStamp(long timestamp) {
this.timestamp = timestamp;
}
}

View File

@ -0,0 +1,28 @@
package com.ljsd.jieling.ktbeans;
/**
* @author lvxinran
* @date 2020/7/20
* @discribe
*/
public class OnlineUserCalEvent {
private String appid;
private OnlineProp[] onlines;
public OnlineProp[] getOnlines() {
return onlines;
}
public void setOnlines(OnlineProp[] onlines) {
this.onlines = onlines;
}
public String getAppid() {
return appid;
}
public void setAppid(String appid) {
this.appid = appid;
}
}

View File

@ -38,6 +38,8 @@ public class GuildMyInfo extends MongoBase {
private int carPlayTime; //车迟上次玩的时间 private int carPlayTime; //车迟上次玩的时间
private int carPlayProgress; // 车迟玩的阶段 private int carPlayProgress; // 车迟玩的阶段
private int joinTime;//加入公会时间
public void clearOfLevelGuild(){ public void clearOfLevelGuild(){
@ -282,4 +284,14 @@ public class GuildMyInfo extends MongoBase {
this.carPlayProgress = carPlayProgress; this.carPlayProgress = carPlayProgress;
updateString("carPlayProgress",carPlayProgress); updateString("carPlayProgress",carPlayProgress);
} }
public int getJoinTime() {
return joinTime;
}
public void setJoinTime(int joinTime) {
this.joinTime = joinTime;
updateString("joinTime",joinTime);
}
} }

View File

@ -12,6 +12,7 @@ import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.GuildMyInfo;
import com.ljsd.jieling.logic.dao.GuilidManager; import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
@ -62,6 +63,8 @@ public class DeathPathLogic {
private int overTime; private int overTime;
private int startTime;
//第一次开启时间 //第一次开启时间
private long firstStartTime; private long firstStartTime;
@ -199,6 +202,7 @@ public class DeathPathLogic {
} }
break; break;
case 1: case 1:
startTime = (int)(TimeUtils.getAppointTime(guildWarTime[status-1][0],guildWarTime[status-1][1])/1000);
overTime = (int)(TimeUtils.getAppointTime(guildWarTime[status][0],guildWarTime[status][1])/1000); overTime = (int)(TimeUtils.getAppointTime(guildWarTime[status][0],guildWarTime[status][1])/1000);
if (taskExecutor == null) { if (taskExecutor == null) {
taskExecutor = new DeathPathExecutor(tasks); taskExecutor = new DeathPathExecutor(tasks);
@ -240,8 +244,14 @@ public class DeathPathLogic {
* @param session * @param session
* @param messageType * @param messageType
*/ */
public void getStatus(ISession session, MessageTypeProto.MessageType messageType){ public void getStatus(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
Family.GetDeathPathStatusResponse response = Family.GetDeathPathStatusResponse.newBuilder().setStatus(status).build(); GuildMyInfo info = UserManager.getUser(session.getUid()).getGuildMyInfo();
int joinType =0;
if(info.getJoinTime()<startTime||info.getJoinTime()>overTime) {
joinType = 1;
}
Family.GetDeathPathStatusResponse response = Family.GetDeathPathStatusResponse.newBuilder().setStatus(status).setAllowChallange(joinType).build();
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
} }

View File

@ -617,6 +617,7 @@ public class GuildLogic {
Family.FamilyJoinIndicaion build = builder.setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo)).setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(targetUser, GlobalsDef.MEMBER)).build(); Family.FamilyJoinIndicaion build = builder.setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo)).setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(targetUser, GlobalsDef.MEMBER)).build();
sendIndicationToMember(guildInfo, MessageTypeProto.MessageType.FAMILY_JOIN_INDICATION,build); sendIndicationToMember(guildInfo, MessageTypeProto.MessageType.FAMILY_JOIN_INDICATION,build);
} }
targetUser.getGuildMyInfo().setJoinTime(TimeUtils.nowInt());
ReportUtil.onReportEvent(targetUser, ReportEventEnum.JOIN_GUILD.getType(),String.valueOf(guildInfo.getId()),guildInfo.getName(),guildInfo.getLevel(),guildInfo.getTotalMembers()); ReportUtil.onReportEvent(targetUser, ReportEventEnum.JOIN_GUILD.getType(),String.valueOf(guildInfo.getId()),guildInfo.getName(),guildInfo.getLevel(),guildInfo.getTotalMembers());
} }

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.logic.store; package com.ljsd.jieling.logic.store;
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.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.core.HandlerLogicThread;
import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.core.VipPrivilegeType;
@ -215,7 +216,7 @@ public class BuyGoodsLogic {
// if(rechargeInfo.getIsFirst()==0 && firstInvest == 1){ // if(rechargeInfo.getIsFirst()==0 && firstInvest == 1){
// ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,sRechargeCommodityConfig.getPrice()); // ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,sRechargeCommodityConfig.getPrice());
// SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0); // SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0);
// rechargeInfo.setFirst(1); rechargeInfo.setFirst(1);
// String title = SErrorCodeEerverConfig.getI18NMessage("recharge_first_title"); // String title = SErrorCodeEerverConfig.getI18NMessage("recharge_first_title");
// String content = SErrorCodeEerverConfig.getI18NMessage("recharge_first_txt"); // String content = SErrorCodeEerverConfig.getI18NMessage("recharge_first_txt");
// MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sActivityRewardConfig.getReward()),nowTime, Global.MAIL_EFFECTIVE_TIME); // MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sActivityRewardConfig.getReward()),nowTime, Global.MAIL_EFFECTIVE_TIME);
@ -356,9 +357,24 @@ public class BuyGoodsLogic {
// 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);//充值成功上报
return resultRes; return resultRes;
} }
private static void onChargeSuccess(int uid,int amount,int virtualAmount){
RechargeEvent rechargeEvent = new RechargeEvent();
rechargeEvent.setModule("GameAnalysis");
rechargeEvent.setIp("");
rechargeEvent.setName("charge");
rechargeEvent.setIndex("wjtsq7xrwb48t2uw");
rechargeEvent.setIdentify(String.valueOf(uid));
rechargeEvent.setProperties(new RechargeEventProp("",amount,virtualAmount,"CNY","",""));
String s = DataMessageUtils.sendRechargePost(rechargeEvent);
if(s.equals("1")){
LOGGER.info("{}充值上报成功,价格为{}",uid,amount);
}
}
//通知前端充值成功 //通知前端充值成功
public static void notifyPaySuccessFul(int uid,int goodsId,boolean needNotify){ public static void notifyPaySuccessFul(int uid,int goodsId,boolean needNotify){

View File

@ -0,0 +1,69 @@
package com.ljsd.jieling.logic.store;
/**
* @author lvxinran
* @date 2020/7/20
* @discribe
*/
public class RechargeEvent {
private String module;
private String ip;
private String name;
private String index;
private String identify;
private RechargeEventProp properties;
public String getModule() {
return module;
}
public void setModule(String module) {
this.module = module;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIndex() {
return index;
}
public void setIndex(String index) {
this.index = index;
}
public String getIdentify() {
return identify;
}
public void setIdentify(String identify) {
this.identify = identify;
}
public RechargeEventProp getProperties() {
return properties;
}
public void setProperties(RechargeEventProp properties) {
this.properties = properties;
}
}

View File

@ -0,0 +1,77 @@
package com.ljsd.jieling.logic.store;
/**
* @author lvxinran
* @date 2020/7/20
* @discribe
*/
public class RechargeEventProp {
private String order_id;
private int amount;
private int virtual_currency_amount;
private String currency_type;
private String product;
private String payment;
public String getOrder_id() {
return order_id;
}
public void setOrder_id(String order_id) {
this.order_id = order_id;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public int getVirtual_currency_amount() {
return virtual_currency_amount;
}
public void setVirtual_currency_amount(int virtual_currency_amount) {
this.virtual_currency_amount = virtual_currency_amount;
}
public String getCurrency_type() {
return currency_type;
}
public void setCurrency_type(String currency_type) {
this.currency_type = currency_type;
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public String getPayment() {
return payment;
}
public void setPayment(String payment) {
this.payment = payment;
}
public RechargeEventProp(String order_id, int amount, int virtual_currency_amount, String currency_type, String product, String payment) {
this.order_id = order_id;
this.amount = amount;
this.virtual_currency_amount = virtual_currency_amount;
this.currency_type = currency_type;
this.product = product;
this.payment = payment;
}
}

View File

@ -29,7 +29,7 @@ public class ThreadManager implements IManager {
private static MongoDataHandlerTask mongoDataHandlerTask; private static MongoDataHandlerTask mongoDataHandlerTask;
private static ItemLogTask itemLogTask; private static ItemLogTask itemLogTask;
public static int SLEEP_INTEVAL_TIME = 60; //每1分钟检查一次 public static int SLEEP_INTEVAL_TIME = 60; //每1分钟检查一次
private static OnlineUserTapTask onlineUserTapTask;//5分钟上报一次
private static Set<Future<?>> scheduledFutureSets = new HashSet<>(); private static Set<Future<?>> scheduledFutureSets = new HashSet<>();
@ -41,10 +41,13 @@ public class ThreadManager implements IManager {
mongoDataHandlerTask = ConfigurableApplicationContextManager.getBean(MongoDataHandlerTask.class); mongoDataHandlerTask = ConfigurableApplicationContextManager.getBean(MongoDataHandlerTask.class);
dataReportTask = ConfigurableApplicationContextManager.getBean(DataReportTask.class); dataReportTask = ConfigurableApplicationContextManager.getBean(DataReportTask.class);
itemLogTask = ConfigurableApplicationContextManager.getBean(ItemLogTask.class); itemLogTask = ConfigurableApplicationContextManager.getBean(ItemLogTask.class);
onlineUserTapTask = ConfigurableApplicationContextManager.getBean(OnlineUserTapTask.class);
new RetrySendIndicationThread("retry-indi").start(); new RetrySendIndicationThread("retry-indi").start();
mongoDataHandlerTask.start(); mongoDataHandlerTask.start();
dataReportTask.start(); dataReportTask.start();
itemLogTask.start(); itemLogTask.start();
onlineUserTapTask.start();
scheduledExecutor = new ScheduledThreadPoolExecutor(8, new ScheduleThreadFactory()); scheduledExecutor = new ScheduledThreadPoolExecutor(8, new ScheduleThreadFactory());
scheduledExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false); scheduledExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);

View File

@ -0,0 +1,39 @@
package com.ljsd.jieling.thread.task;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.reportData.DataMessageUtils;
import com.ljsd.jieling.ktbeans.OnlineProp;
import com.ljsd.jieling.ktbeans.OnlineUserCalEvent;
import com.ljsd.jieling.logic.OnlineUserManager;
import org.springframework.stereotype.Component;
import util.TimeUtils;
import java.util.Set;
/**
* @author lvxinran
* @date 2020/7/20
* @discribe
*/
@Component
public class OnlineUserTapTask extends Thread {
@Override
public void run() {
try {
while (true){
Thread.sleep(5*60000);//5分钟上报一次
int serverId = GameApplication.serverId;
Set<Integer> uids = OnlineUserManager.sessionMap.keySet();
OnlineUserCalEvent onlineUserCalEvent = new OnlineUserCalEvent();
onlineUserCalEvent.setAppid("wjtsq7xrwb48t2uw");
onlineUserCalEvent.setOnlines(new OnlineProp[]{new OnlineProp(String.valueOf(serverId),uids.size(), TimeUtils.now()/1000)});
DataMessageUtils.sendOnlinePost(onlineUserCalEvent);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -78,7 +78,7 @@ public class HttpPool {
return null; return null;
} }
public static JSONObject sendPost(String url, String info) { public static String sendPost(String url, String info,String content_type) {
HttpPost httpPost = new HttpPost(url); HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse; HttpResponse httpResponse;
int sendTimes = 0; int sendTimes = 0;
@ -89,7 +89,7 @@ public class HttpPool {
httpPost.setEntity(stringEntity); httpPost.setEntity(stringEntity);
httpPost.setConfig(getRequestConfig()); httpPost.setConfig(getRequestConfig());
httpPost.setHeader("Content-Type","application/json;charset=utf-8"); httpPost.setHeader("Content-Type",content_type);
httpResponse = httpclient.execute(httpPost); httpResponse = httpclient.execute(httpPost);
HttpEntity responseEntity = httpResponse.getEntity(); HttpEntity responseEntity = httpResponse.getEntity();
@ -99,7 +99,7 @@ public class HttpPool {
String result = EntityUtils.toString(responseEntity,"UTF-8"); String result = EntityUtils.toString(responseEntity,"UTF-8");
LOGGER.debug("Http Send第" + (sendTimes + 1) + "次调用成功,返回码为:[" + statusCode + "]"); LOGGER.debug("Http Send第" + (sendTimes + 1) + "次调用成功,返回码为:[" + statusCode + "]");
EntityUtils.consume(responseEntity); EntityUtils.consume(responseEntity);
return JSONObject.parseObject(result); return result;
// break; // break;
} else { } else {
LOGGER.error("Http Send第" + (sendTimes + 1) + "次调用出错,返回码为:[" + statusCode + "]"); LOGGER.error("Http Send第" + (sendTimes + 1) + "次调用出错,返回码为:[" + statusCode + "]");
@ -132,6 +132,6 @@ public class HttpPool {
String send ="{\"param_data\":{\"app_id_s\":\"jl_test\",\"category_s\":\"event_role\",\"platform_s\":\"ADR\",\"region_s\":\"60215\",\"server_s\":\"60215\",\"channel_s\":\"#\",\"data_unix\":1578542089},\"param_environment\":{\"idfa_s\":\"\",\"imei_s\":\"\",\"app_device_id_s\":\"\",\"brand_s\":\"\",\"dpi_s\":\"\",\"operator_s\":\"\",\"os_version_s\":\"\",\"wifi_b\":false},\"param_user\":{\"user_id_s\":\"w7ww\",\"account_id_s\":\"10040506\"},\"param_role\":{\"role_id_s\":\"10040506\",\"role_name_s\":\"10040506\",\"level_i\":\"100\",\"vip_level_i\":0,\"currency_1_d\":\"9899\",\"currency_2_d\":\"41464\",\"eco_force_11_a\":\"[315870,250891,0,0,0,0,0,0,0,0,0]\"},\"param_event\":{\"event_s\":[\"login_1\",\"LOGOUT\"]}}"; String send ="{\"param_data\":{\"app_id_s\":\"jl_test\",\"category_s\":\"event_role\",\"platform_s\":\"ADR\",\"region_s\":\"60215\",\"server_s\":\"60215\",\"channel_s\":\"#\",\"data_unix\":1578542089},\"param_environment\":{\"idfa_s\":\"\",\"imei_s\":\"\",\"app_device_id_s\":\"\",\"brand_s\":\"\",\"dpi_s\":\"\",\"operator_s\":\"\",\"os_version_s\":\"\",\"wifi_b\":false},\"param_user\":{\"user_id_s\":\"w7ww\",\"account_id_s\":\"10040506\"},\"param_role\":{\"role_id_s\":\"10040506\",\"role_name_s\":\"10040506\",\"level_i\":\"100\",\"vip_level_i\":0,\"currency_1_d\":\"9899\",\"currency_2_d\":\"41464\",\"eco_force_11_a\":\"[315870,250891,0,0,0,0,0,0,0,0,0]\"},\"param_event\":{\"event_s\":[\"login_1\",\"LOGOUT\"]}}";
init(); init();
KTSendBody sendBody = gson.fromJson(send, KTSendBody.class); KTSendBody sendBody = gson.fromJson(send, KTSendBody.class);
sendPost("https://gskuld.receiver.extranet.kt007.com:8081/skuld/game/common/",send); // sendPost("https://gskuld.receiver.extranet.kt007.com:8081/skuld/game/common/",send);
} }
} }