开天上报

back_recharge
jiahuiwen 2022-04-25 15:14:45 +08:00
parent abbad4070b
commit 3dcfb73ec2
17 changed files with 320 additions and 323 deletions

View File

@ -1,12 +1,10 @@
package com.ljsd.jieling.config.json;
public class KTSDKConstans {
public static final String appidTest = "jl_test";
public static final String appidOnlie = "lj_jl_7qdsc";
public static final String appidTestOnline = "lj_jl_8qdcs";
public static final String appidTest = "lj_tcx_test";
public static final String appidOnlie = "lj_tcx_test";
public static final String appidTestOnline = "lj_tcx_4qdcs";
public static String appid = appidTest;
public static final String appkey = "c0fb59eb68559b6c9c1463e4d5d0c806";
public static final String md5Key = "0A008C48E74E8A399F1F80DBED71161C";
public static final String appsecret = "d53b3e8ef74bf72d8aafce3a1c8671a0";
}

View File

@ -10,6 +10,8 @@ import com.ljsd.jieling.ktbeans.KTSendBody;
import com.ljsd.jieling.util.http.HttpPool;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.message.BasicNameValuePair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import util.StringUtil;
import java.io.UnsupportedEncodingException;
@ -22,6 +24,8 @@ import java.util.regex.Pattern;
public class DataMessageUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(DataMessageUtils.class);
public static Gson gson = RedisUtil.getInstence().getGson();
private static final String sendToTapDBURL = "https://e.tapdb.net/event";
@ -32,7 +36,7 @@ public class DataMessageUtils {
// 开天上报
static final BlockingQueue<Object> logQueue = new BlockingUniqueQueue<>();
private static final String sendUrl = "https://gskuld.receiver.extranet.kt007.com:8081/skuld/game/common/";
private static final String sendUrl = "http://gskuld.receiver.extranet.kt007.com:8080/skuld/game/common/";
public static String sendRechargePost(Object info){
String str = gson.toJson(info);
@ -78,9 +82,9 @@ public class DataMessageUtils {
if(GameLogicService.isServiceShutdown()){
return;
}
// if (info instanceof KTParam) {
if (info instanceof KTParam) {
logQueue.offer(info);
// }
}
}
public static void manageData() {
@ -90,7 +94,8 @@ public class DataMessageUtils {
if (!sendDataList.isEmpty()) {
KTSendBody sendBody = new KTSendBody(sendDataList);
HttpPool.sendPost(sendUrl, gson.toJson(sendBody),"application/json");
String s = HttpPool.sendPost(sendUrl, gson.toJson(sendBody), "application/json;charset=utf-8");
LOGGER.info("=============> manageData result={}", s);
}
if (sendDataList.isEmpty()) {
try {

View File

@ -4,7 +4,11 @@ import com.ljsd.GameApplication;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.ktbeans.KTRequestBeans.LoginParamType;
import com.ljsd.jieling.ktbeans.KtEventUtils;
import com.ljsd.jieling.ktbeans.parmsBean.ParamDataBean;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEnvironmentBean;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEnvironmentSimpleBean;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
import com.ljsd.jieling.ktbeans.*;
import com.ljsd.jieling.logic.dao.UserRecentLoginInfo;
@ -48,40 +52,40 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
InetSocketAddress remoteAddress = iSession.getChannel().getRemoteAddress();
loginRequest = loginRequest.toBuilder().setIpS(remoteAddress.getAddress().getHostAddress()).build();
ReportUtil.saveBaseInfo(userId,loginRequest);
// ParamEnvironmentBean paramEnvironmentBean = new ParamEnvironmentBean();
// paramEnvironmentBean.setDevice_id_s(loginRequest.getDeviceIdS());
// paramEnvironmentBean.setIp_s(loginRequest.getIpS());
// ParamEnvironmentSimpleBean paramEnvironmentSimpleBean = new ParamEnvironmentSimpleBean("",
// "",
// loginRequest.getDeviceIdS(),
// loginRequest.getBrandS(),
// loginRequest.getDpiS(),
// loginRequest.getOperatorS(),
// loginRequest.getOsVersionS(),
// LoginParamType.NETWORK_WIFI.equals(loginRequest.getNetworkS()));
// switch (loginRequest.getPlatformS()){
// case LoginParamType.PLATFORM_ANDRIOD:
// paramEnvironmentSimpleBean.setImei_s(loginRequest.getIdfaSOrImeiS());
// break;
// case LoginParamType.PLATFORM_IOS:
// paramEnvironmentSimpleBean.setIdfa_s(loginRequest.getIdfaSOrImeiS());
// break;
// case LoginParamType.PLATFORM_IOS_YY:
// paramEnvironmentSimpleBean.setIdfa_s(loginRequest.getIdfaSOrImeiS());
// break;
// case LoginParamType.PLATFORM_PC:
// break;
// default:
// break;
//
// }
// ParamDataBean paramDataBean = new ParamDataBean();
// paramDataBean.setChannel_s(loginRequest.getChannelS());
// KTDataUtil.addUserDataInfo(userId,paramDataBean);
//
//// KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean);
// KTEnvironmentUtil.addUserSimpleEnviromentInfo(userId,paramEnvironmentSimpleBean);
ParamEnvironmentBean paramEnvironmentBean = new ParamEnvironmentBean();
paramEnvironmentBean.setDevice_id_s(loginRequest.getDeviceIdS());
paramEnvironmentBean.setIp_s(loginRequest.getIpS());
ParamEnvironmentSimpleBean paramEnvironmentSimpleBean = new ParamEnvironmentSimpleBean("",
"",
loginRequest.getDeviceIdS(),
loginRequest.getBrandS(),
loginRequest.getDpiS(),
loginRequest.getOperatorS(),
loginRequest.getOsVersionS(),
LoginParamType.NETWORK_WIFI.equals(loginRequest.getNetworkS()));
switch (loginRequest.getPlatformS()){
case LoginParamType.PLATFORM_ANDRIOD:
paramEnvironmentSimpleBean.setImei_s(loginRequest.getIdfaSOrImeiS());
break;
case LoginParamType.PLATFORM_IOS:
paramEnvironmentSimpleBean.setIdfa_s(loginRequest.getIdfaSOrImeiS());
break;
case LoginParamType.PLATFORM_IOS_YY:
paramEnvironmentSimpleBean.setIdfa_s(loginRequest.getIdfaSOrImeiS());
break;
case LoginParamType.PLATFORM_PC:
break;
default:
break;
}
ParamDataBean paramDataBean = new ParamDataBean();
paramDataBean.setChannel_s(loginRequest.getChannelS());
KTDataUtil.addUserDataInfo(userId,paramDataBean);
// KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean);
KTEnvironmentUtil.addUserSimpleEnviromentInfo(userId,paramEnvironmentSimpleBean);
KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean);
int pid = 0;
int gid = 0;
@ -113,21 +117,6 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
}
}
//临时代码 等前端出新包后删除2019 11 29
// if(gid==0){
// try {
// String value =( (String) RedisUtil.getInstence().get(RedisUtil.getInstence().getKey(RedisKey.PIDGIDTEMP, Integer.toString(userId)))).replace("\"", "");
// LOGGER.info("the value={}",value);
// String[] splitvalue = value.split("#");
// if (splitvalue.length==2){
// pid = Integer.valueOf(splitvalue[0]);
// gid = Integer.valueOf(splitvalue[1]);
// }
// }catch (Exception e){
// e.getMessage();
// }
// }
LOGGER.info("LOGIN_REQUEST the uid={},the pid={},the gid={},",userId,pid,gid);
//登陆注册入内存
String openIdFront = loginRequest.getOpenId();

View File

@ -2112,8 +2112,8 @@ public class MapLogic {
throw new ErrorCodeException(ErrorCode.newDefineCode("阵容有误!!"));
}
// KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.STORY.getIndex(),fightId);
ReportUtil.onReportEvent(user, ReportEventEnum.ENTER_STAGE.getType(), String.valueOf(fightId));
KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.STORY.getIndex(),fightId);
// ReportUtil.onReportEvent(user, ReportEventEnum.ENTER_STAGE.getType(), String.valueOf(fightId));
user.getTeamPosManager().setCurTeamPosId(teamId);
String fightInfo = fightId + "#" + teamId;
String key = RedisKey.getKey(RedisKey.LEVE_DIFFICULTY_INFO, String.valueOf(uid), false);

View File

@ -295,6 +295,7 @@ public class MapManager extends MongoBase {
int addValue = MathUtils.setBetweenWithMax(itemNum+recoveryTimes*recoveryItemInfo[1],0,heroTimes);
if(addValue!=0){
item.setItemNum(addValue);
KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent, BIReason.TIME_REWARD,GlobalsDef.subReason,item.getItemId(),addValue,item.getItemNum());
}
int time = lastUpdateEnergyTime + recoveryTimes*recoveryItemInfo[2];
item.setEndingTime(time);

View File

@ -107,7 +107,6 @@ public class ParamBuilder {
ktUserLogin.setParam_event(paramEventBean);
ktUserLogin.getParam_data().setCategory_s(LoginParamType.DATA_CATEGORY_USER);
return ktUserLogin;
default:
break;
}

View File

@ -1,33 +1,29 @@
package com.ljsd.jieling.ktbeans;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.ktbeans.parmsBean.ParamRoleBean;
import com.ljsd.jieling.logic.dao.Item;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashMap;
import java.util.Map;
public class KTRoleUtil {
public static ParamRoleBean getRoleById(User user){
ParamRoleBean paramRoleBean = new ParamRoleBean();
// paramRoleBean.setRole_id_s(String.valueOf(user.getId()));
// paramRoleBean.setRole_name_s(user.getPlayerInfoManager().getNickName());
// paramRoleBean.setLevel_i(String.valueOf(user.getPlayerInfoManager().getLevel()));
// paramRoleBean.setVip_level_i(user.getPlayerInfoManager().getVipLevel());
// Item gem = user.getItemManager().getItemMap().get(Global.GEM);
// Item gold = user.getItemManager().getItemMap().get(Global.GOLD);
// int gemCount =0;
// int goldCount =0;
// if(gem!=null){
// gemCount = gem.getItemNum();
// }
// if(gold!=null){
// goldCount = gold.getItemNum();
// }
// paramRoleBean.setCurrency_1_d(String.valueOf(gemCount));
// paramRoleBean.setCurrency_2_d(String.valueOf(goldCount));
paramRoleBean.setRole_id_s(String.valueOf(user.getId()));
paramRoleBean.setRole_name_s(user.getPlayerInfoManager().getNickName());
paramRoleBean.setLevel_i(String.valueOf(user.getPlayerInfoManager().getLevel()));
paramRoleBean.setVip_level_i(user.getPlayerInfoManager().getVipLevel());
Item gem = user.getItemManager().getItemMap().get(Global.GEM);
Item gold = user.getItemManager().getItemMap().get(Global.GOLD);
long gemCount =0;
long goldCount =0;
if(gem!=null){
gemCount = gem.getItemNum();
}
if(gold!=null){
goldCount = gold.getItemNum();
}
paramRoleBean.setCurrency_1_d(String.valueOf(gemCount));
paramRoleBean.setCurrency_2_d(String.valueOf(goldCount));
return paramRoleBean;
}
}

View File

@ -23,14 +23,5 @@ public class KTSendBody {
String signStr = KTSDKConstans.md5Key + gid + time;
this.sign = MD5Util.encrypByMd5(signStr);
this.jsonStrs = ktParamList;
}
public static void main(String[] args) {
System.out.println( MD5Util.encrypByMd5(KTSDKConstans.md5Key+KTSDKConstans.appid + 1562318111));
}
}

View File

@ -19,21 +19,21 @@ public class KTUserUtil implements KTStaticUtil{
public static ParamSimpleUserBean getSimpleUserById(User user){
ParamSimpleUserBean paramSimpleUserBean = new ParamSimpleUserBean();
// paramSimpleUserBean.setUser_id_s(user.getPlayerInfoManager().getOpenId());
// paramSimpleUserBean.setAccount_id_s(String.valueOf(user.getId()));
// Item gem = user.getItemManager().getItemMap().get(Global.GEM);
// int gemNum = 0;
// if(gem != null){
// gemNum = gem.getItemNum();
// }
//
// Item gold = user.getItemManager().getItemMap().get(Global.GOLD);
// int goldNum = 0;
// if(gold != null){
// goldNum = gold.getItemNum();
// }
// paramSimpleUserBean.setCurrency_1_d(String.valueOf(gemNum));
// paramSimpleUserBean.setCurrency_2_d(String.valueOf(goldNum));
paramSimpleUserBean.setUser_id_s(user.getPlayerInfoManager().getOpenId());
paramSimpleUserBean.setAccount_id_s(String.valueOf(user.getId()));
Item gem = user.getItemManager().getItemMap().get(Global.GEM);
long gemNum = 0;
if(gem != null){
gemNum = gem.getItemNum();
}
Item gold = user.getItemManager().getItemMap().get(Global.GOLD);
long goldNum = 0;
if(gold != null){
goldNum = gold.getItemNum();
}
paramSimpleUserBean.setCurrency_1_d(String.valueOf(gemNum));
paramSimpleUserBean.setCurrency_2_d(String.valueOf(goldNum));
return paramSimpleUserBean;
}
}

View File

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

View File

@ -1,29 +1,21 @@
package com.ljsd.jieling.ktbeans;
import cn.thinkingdata.tga.javasdk.ThinkingDataAnalytics;
import com.google.gson.Gson;
import com.ljsd.GameApplication;
import com.ljsd.common.mogodb.util.BlockingUniqueQueue;
import com.ljsd.jieling.config.reportData.DataMessageUtils;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.ktbeans.BeanBuilder.ParamBuilder;
import com.ljsd.jieling.ktbeans.sendbeans.ReportServerEvent;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.Item;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
/**
@ -53,33 +45,29 @@ public class ReportUtil {
private static Gson gson = RedisUtil.getInstence().getGson();
//对外接口只有一个
//对外接口只有一个(关闭数数上报 2022 4 25)
public static void onReportEvent(User user,int type,Object... param) throws Exception {
// if(!GameApplication.serverProperties.isSendlog37()){
// ta=null;
// return;
// }
ReportUserEvent reportUserEvent = userToReportBean(user);
//根据事件类型获取对应处理
ReportEventEnum report = ReportEventEnum.getReport(type);
if(report==null){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
//设置用户属性
Map<Integer,Map<String, Object>> userProperties = report.getEventHandler().getUserProperties(user);
reportUserEvent.setUserProperties(userProperties);
//设置事件属性
Map<String, Object> eventProperties = report.getEventHandler().getEventProperties(report,param);
reportUserEvent.setEventInfo(eventProperties);
//设置事件名称
reportUserEvent.setEventName(report.getEventName());
// ReportUserEvent reportUserEvent = userToReportBean(user);
// //根据事件类型获取对应处理
// ReportEventEnum report = ReportEventEnum.getReport(type);
// if(report==null){
// throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
// }
// //设置用户属性
// Map<Integer,Map<String, Object>> userProperties = report.getEventHandler().getUserProperties(user);
// reportUserEvent.setUserProperties(userProperties);
// //设置事件属性
// Map<String, Object> eventProperties = report.getEventHandler().getEventProperties(report,param);
// reportUserEvent.setEventInfo(eventProperties);
// //设置事件名称
// reportUserEvent.setEventName(report.getEventName());
//执行(改为异步)
// queue.offer(reportUserEvent);
DataMessageUtils.addLogQueue(reportUserEvent);
LOGGER.info("ktparm -- > {}", gson.toJson(reportUserEvent));
// KTParam ktParam = ParamBuilder.paramBuild(user, eventType, paramEventBean);
// DataMessageUtils.addLogQueue(reportUserEvent);
// LOGGER.info("ktparm -- > {}", gson.toJson(ktParam));
}
@ -123,7 +111,7 @@ public class ReportUtil {
.setPlatform(Optional.ofNullable(user.getPlayerInfoManager().getPlatform()).orElse(""));
}
public static void doReport(ReportUserEvent reportUserEvent){
// public static void doReport(ReportUserEvent reportUserEvent){
// try {
// //todo 访客id
// ta.setSuperProperties(reportUserEvent.getBaseInfo());
@ -147,7 +135,7 @@ public class ReportUtil {
// System.out.println(reportUserEvent.getBaseInfo().toString());
// System.out.println("except:"+e);
// }
}
// }
public static void doReport(ReportServerEvent reportServerEvent){
// try {
@ -164,10 +152,10 @@ public class ReportUtil {
}
public static void saveBaseInfo(int uid,PlayerInfoProto.LoginRequest loginRequest){
ReportBaseBean reportBaseBean = new ReportBaseBean(String.valueOf(uid),loginRequest.getDistinctId(), loginRequest.getDeviceIdS(),loginRequest.getIpS(),
0, loginRequest.getIdfaSOrImeiS(), loginRequest.getNetworkS(), loginRequest.getOperatorS());
LOGGER.info("保存{}用户信息:{}",uid,reportBaseBean.toString());
baseBeanMap.put(uid,reportBaseBean);
// ReportBaseBean reportBaseBean = new ReportBaseBean(String.valueOf(uid),loginRequest.getDistinctId(), loginRequest.getDeviceIdS(),loginRequest.getIpS(),
// 0, loginRequest.getIdfaSOrImeiS(), loginRequest.getNetworkS(), loginRequest.getOperatorS());
// LOGGER.info("保存{}用户信息:{}",uid,reportBaseBean.toString());
// baseBeanMap.put(uid,reportBaseBean);
}
/**

View File

@ -565,13 +565,13 @@ public class GlobalDataManaager implements IManager {
private static void initServerIsLanEnviornment(){
ServerProperties serverProperties = ConfigurableApplicationContextManager.getBean(ServerProperties.class);
if(serverProperties.getIsLAN()==0){
if(serverProperties.getIsLAN()==0){ // 内网测试
KTSDKConstans.appid= KTSDKConstans.appidTest;
}else if(serverProperties.getIsLAN()==1){
}else if(serverProperties.getIsLAN()==1){// 线上测试
KTSDKConstans.appid= KTSDKConstans.appidOnlie;
}else{
// 正式服
KTSDKConstans.appid= KTSDKConstans.appidTestOnline;
return;
}
}

View File

@ -7,8 +7,10 @@ import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.jbean.ActivityManager;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.ktbeans.KtEventUtils;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.ActivityStateChangeEvent;
import com.ljsd.jieling.logic.activity.event.IEvent;
@ -205,10 +207,13 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
* @throws Exception
*/
protected void reportTakeActivityReward(User user, int[][] reward, int missionId) throws Exception {
List<Integer> itemId = new ArrayList<>(reward.length);
List<Integer> itemNum = new ArrayList<>(reward.length);
Arrays.stream(reward).forEach(n->{itemId.add(n[0]);itemNum.add(n[1]);});
ReportUtil.onReportEvent(user, ReportEventEnum.COMPLETE_ACTIVITY.getType(),String.valueOf(id),String.valueOf(missionId),itemId,itemNum,new Date());
// List<Integer> itemId = new ArrayList<>(reward.length);
// List<Integer> itemNum = new ArrayList<>(reward.length);
// Arrays.stream(reward).forEach(n->{itemId.add(n[0]);itemNum.add(n[1]);});
// ReportUtil.onReportEvent(user, ReportEventEnum.COMPLETE_ACTIVITY.getType(),String.valueOf(id),String.valueOf(missionId),itemId,itemNum,new Date());
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId);
}
protected void reportTakeActivityReward(User user, List<int[][]> reward, int missionId) throws Exception {

View File

@ -6,8 +6,10 @@ import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.ktbeans.KtEventUtils;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
@ -194,7 +196,7 @@ public class UserManager {
CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);
// user.getExpeditionManager().setForceSnap(force);
// KtEventUtils.onKtEvent(user, ParamEventBean.UserRegister);
KtEventUtils.onKtEvent(user, ParamEventBean.UserRegister);
}

View File

@ -13,9 +13,11 @@ import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.ktbeans.KtEventUtils;
import com.ljsd.jieling.ktbeans.ReportBaseBean;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.AbstractActivity;
@ -266,19 +268,22 @@ public class BuyGoodsNewLogic {
if(price>0 && !orderId.equals("support-order")) {
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.RECHARGE_SUCCESS_INDICATION_VALUE,
PlayerInfoProto.RechargeSuccessIndication.newBuilder().setOrderId(orderId).build(), true);
// 以下为充值上报
Map<Integer, Integer> mapReward = ItemUtil.arrayToMap(dropByBag);
ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(), orderId, price,
user.getPlayerInfoManager().getBundle_id(),
user.getPlayerInfoManager().getChannel_id(),
String.valueOf(GameApplication.serverId),
String.valueOf(goodsId), config.getName(),
new ArrayList<>(mapReward.keySet()),
new ArrayList<>(mapReward.values()), new Date(),
user.getPlayerInfoManager().getLastDeviceId() == null ? "DEFAULT_DEVICE" : user.getPlayerInfoManager().getLastDeviceId());
// 以下为充值上报(数数上报)
// Map<Integer, Integer> mapReward = ItemUtil.arrayToMap(dropByBag);
// ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(), orderId, price,
// user.getPlayerInfoManager().getBundle_id(),
// user.getPlayerInfoManager().getChannel_id(),
// String.valueOf(GameApplication.serverId),
// String.valueOf(goodsId), config.getName(),
// new ArrayList<>(mapReward.keySet()),
// new ArrayList<>(mapReward.values()), new Date(),
// user.getPlayerInfoManager().getLastDeviceId() == null ? "DEFAULT_DEVICE" : user.getPlayerInfoManager().getLastDeviceId());
// 开天上报
KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent, goodsId, orderId, resultRes.getResultCode(), price);
// 上报tapdb
onChargeSuccess(user, price, 0, orderId, cfgType);//充值成功上报
kaikianUploadPayInfo(user,orderId,price);
// kaikianUploadPayInfo(user,orderId,price);
}
return resultRes;
}
@ -289,32 +294,32 @@ public class BuyGoodsNewLogic {
* @param orderId
* @param price
*/
private static void kaikianUploadPayInfo(User user,String orderId,double price){
if ("bgsdh87l31909mvu".equals(GameApplication.serverProperties.getAppId())) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("appid", "e7ba14d6442b0ec225289bc846826092");
jsonObject.put("who", user.getPlayerInfoManager().getOpenId());
ReportBaseBean reportBaseBean = ReportUtil.baseBeanMap.get(user.getId());
String deviceid = (reportBaseBean != null && reportBaseBean.getIdfa_sOr_imei_s() != null && !reportBaseBean.getIdfa_sOr_imei_s().isEmpty()) ?
reportBaseBean.getIdfa_sOr_imei_s() : "DEFAULT_deviceid";
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("_deviceid", deviceid);
jsonObject2.put("_transactionid", orderId);
jsonObject2.put("_paymenttype", "alipay");
jsonObject2.put("_currencytype", "CNY");
jsonObject2.put("_currencyamount", Double.toString(price));
jsonObject2.put("_ip", reportBaseBean != null ? reportBaseBean.getIp() : "");
jsonObject2.put("_tz", "+8");
jsonObject2.put("_ryos", "Android");
jsonObject2.put("_imei", deviceid);
jsonObject2.put("_androidid", reportBaseBean != null ? reportBaseBean.get_androidid() : "DEFAULT_androidid");
jsonObject2.put("_oaid", deviceid);
jsonObject2.put("_mac", reportBaseBean != null ? reportBaseBean.getNetwork_s() : "");
jsonObject.put("context", jsonObject2);
String result = HttpPool.sendPost2(DataMessageUtils.restURL, DataMessageUtils.gson.toJson(jsonObject));
LOGGER.info("onChargeSuccess uid={} REST付费上报={} 参数={}", user.getId(), result, jsonObject);
}
}
// private static void kaikianUploadPayInfo(User user,String orderId,double price){
// if ("bgsdh87l31909mvu".equals(GameApplication.serverProperties.getAppId())) {
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("appid", "e7ba14d6442b0ec225289bc846826092");
// jsonObject.put("who", user.getPlayerInfoManager().getOpenId());
// ReportBaseBean reportBaseBean = ReportUtil.baseBeanMap.get(user.getId());
// String deviceid = (reportBaseBean != null && reportBaseBean.getIdfa_sOr_imei_s() != null && !reportBaseBean.getIdfa_sOr_imei_s().isEmpty()) ?
// reportBaseBean.getIdfa_sOr_imei_s() : "DEFAULT_deviceid";
// JSONObject jsonObject2 = new JSONObject();
// jsonObject2.put("_deviceid", deviceid);
// jsonObject2.put("_transactionid", orderId);
// jsonObject2.put("_paymenttype", "alipay");
// jsonObject2.put("_currencytype", "CNY");
// jsonObject2.put("_currencyamount", Double.toString(price));
// jsonObject2.put("_ip", reportBaseBean != null ? reportBaseBean.getIp() : "");
// jsonObject2.put("_tz", "+8");
// jsonObject2.put("_ryos", "Android");
// jsonObject2.put("_imei", deviceid);
// jsonObject2.put("_androidid", reportBaseBean != null ? reportBaseBean.get_androidid() : "DEFAULT_androidid");
// jsonObject2.put("_oaid", deviceid);
// jsonObject2.put("_mac", reportBaseBean != null ? reportBaseBean.getNetwork_s() : "");
// jsonObject.put("context", jsonObject2);
// String result = HttpPool.sendPost2(DataMessageUtils.restURL, DataMessageUtils.gson.toJson(jsonObject));
// LOGGER.info("onChargeSuccess uid={} REST付费上报={} 参数={}", user.getId(), result, jsonObject);
// }
// }
/**
*

View File

@ -2,9 +2,13 @@ package com.ljsd.jieling.thread.task;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.reportData.DataMessageUtils;
import com.ljsd.jieling.ktbeans.BeanBuilder.KtBeanBuilderUtils;
import com.ljsd.jieling.ktbeans.KTRequestBeans.LoginParamType;
import com.ljsd.jieling.ktbeans.OnlineProp;
import com.ljsd.jieling.ktbeans.OnlineUserCalEvent;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
import com.ljsd.jieling.ktbeans.sendbeans.KTAppOnline;
import com.ljsd.jieling.ktbeans.sendbeans.ReportServerEvent;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.UserManager;
@ -12,10 +16,8 @@ import com.ljsd.jieling.logic.dao.root.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import util.TimeUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.*;
/**
* @author lvxinran
@ -35,44 +37,55 @@ public class OnlineUserReportTask extends Thread {
try{
//5分钟上报一次
if(TimeUtils.getMiunte()%5 == 0){
int serverId = GameApplication.serverId;
Set<Integer> uids = OnlineUserManager.sessionMap.keySet();
OnlineUserCalEvent onlineUserCalEvent = new OnlineUserCalEvent();
onlineUserCalEvent.setAppid(GameApplication.serverProperties.getAppId()==null?"APPID":GameApplication.serverProperties.getAppId());
onlineUserCalEvent.setOnlines(new OnlineProp[]{new OnlineProp(String.valueOf(serverId),uids.size(), TimeUtils.now()/1000)});
DataMessageUtils.sendOnlinePost(onlineUserCalEvent);
// int serverId = GameApplication.serverId;
// Set<Integer> uids = OnlineUserManager.sessionMap.keySet();
// OnlineUserCalEvent onlineUserCalEvent = new OnlineUserCalEvent();
// onlineUserCalEvent.setAppid(GameApplication.serverProperties.getAppId()==null?"APPID":GameApplication.serverProperties.getAppId());
// onlineUserCalEvent.setOnlines(new OnlineProp[]{new OnlineProp(String.valueOf(serverId),uids.size(), TimeUtils.now()/1000)});
// DataMessageUtils.sendOnlinePost(onlineUserCalEvent);
KTAppOnline ktAppOnline = new KTAppOnline();
int onlineNum = OnlineUserManager.sessionMap.size();
ParamEventBean paramEventBean = new ParamEventBean(ParamEventBean.OnlineEvent);
long time = TimeUtils.now()/ 1000;
paramEventBean.add(String.valueOf(time));
paramEventBean.add(String.valueOf(onlineNum));
ktAppOnline.setParam_event(paramEventBean);
ktAppOnline.setParam_data(KtBeanBuilderUtils.paramDataBuildForSystem());
ktAppOnline.getParam_data().setCategory_s(LoginParamType.DATA_CATEGORY_APP);
DataMessageUtils.addLogQueue(ktAppOnline);
}
Set<Integer> uids = OnlineUserManager.sessionMap.keySet();
Map<String,Integer> channelMap = new HashMap<>();
for(int uid:uids){
User user = UserManager.getUser(uid);
String channel = user.getPlayerInfoManager().getChannel();
channelMap.put(channel,channelMap.getOrDefault(channel,0)+1);
}
int serverId = GameApplication.serverId;
Map<String,Object> properties = new HashMap<>();
if(channelMap.isEmpty()){
properties.put("channel","DEFAULT_CHANNEL");
properties.put("server_id",serverId);
properties.put("online_user",0);
}
for(Map.Entry<String,Integer> entry:channelMap.entrySet()){
properties.put("channel",entry.getKey());
properties.put("server_id",serverId);
properties.put("online_user",entry.getValue());
}
int all_online = 0 ;
for(int value:channelMap.values()){
all_online+=value;
}
properties.put("online_user_all",all_online);
properties.put("platform","DEFAULT_platform");
properties.put("#time",new Date());
ReportServerEvent reportServerEvent = new ReportServerEvent("online_user_amount",properties);
LOGGER.info("OnlineUserReportTask reportServerEvent=>{}", reportServerEvent.toString());
ReportUtil.doReport(reportServerEvent);
// Set<Integer> uids = OnlineUserManager.sessionMap.keySet();
// Map<String,Integer> channelMap = new HashMap<>();
// for(int uid:uids){
// User user = UserManager.getUser(uid);
// String channel = user.getPlayerInfoManager().getChannel();
// channelMap.put(channel,channelMap.getOrDefault(channel,0)+1);
// }
// int serverId = GameApplication.serverId;
// Map<String,Object> properties = new HashMap<>();
// if(channelMap.isEmpty()){
//
// properties.put("channel","DEFAULT_CHANNEL");
// properties.put("server_id",serverId);
// properties.put("online_user",0);
// }
// for(Map.Entry<String,Integer> entry:channelMap.entrySet()){
// properties.put("channel",entry.getKey());
// properties.put("server_id",serverId);
// properties.put("online_user",entry.getValue());
// }
// int all_online = 0 ;
// for(int value:channelMap.values()){
// all_online+=value;
// }
// properties.put("online_user_all",all_online);
// properties.put("platform","DEFAULT_platform");
// properties.put("#time",new Date());
// ReportServerEvent reportServerEvent = new ReportServerEvent("online_user_amount",properties);
// LOGGER.info("OnlineUserReportTask reportServerEvent=>{}", reportServerEvent.toString());
// ReportUtil.doReport(reportServerEvent);
}catch (Exception e){
e.printStackTrace();
}

View File

@ -562,9 +562,6 @@ public class ItemUtil {
//扩展其他权重
}
return itemNum;
}
@ -738,7 +735,12 @@ public class ItemUtil {
user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),(int)count);
}
ReportUtil.onReportEvent(user,ReportEventEnum.GET_ITEM.getType(),itemNum,String.valueOf(reason),item.getItemId());
// ReportUtil.onReportEvent(user,ReportEventEnum.GET_ITEM.getType(),itemNum,String.valueOf(reason),item.getItemId());
int eventType = ParamEventBean.UserItemEvent;
if(currencyMap.contains(entry.getKey())){
eventType = ParamEventBean.UserCurrencyEvent;
}
KtEventUtils.onKtEvent(user, eventType,reason,GlobalsDef.addReason,entry.getKey(),itemNum,item.getItemNum());
baseItemReport(user,item.getItemId(),(int)itemNum,1,reason);
@ -1020,7 +1022,8 @@ public class ItemUtil {
// 玩家升级, 埋点推送和任务处理
if (playerInfoManager.getLevel() > oldLevel) {
ReportUtil.onReportEvent(user, ReportEventEnum.LEVEL_UP.getType(),oldLevel,playerInfoManager.getLevel()-oldLevel,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());
}
@ -1142,15 +1145,21 @@ public class ItemUtil {
if (null == myItem) {
continue;
}
int eventType = ParamEventBean.UserItemEvent;
if(currencyMap.contains(myItem.getItemId())){
eventType = ParamEventBean.UserCurrencyEvent;
}
if (myItem.getItemNum() <= needCount && !STableManager.getFigureConfig(CommonStaticConfig.class).getNotDelete().contains(userItem.getKey())) {
ReportUtil.onReportEvent(user,ReportEventEnum.COST_ITEM.getType(),myItem.getItemNum(),String.valueOf(reason),String.valueOf(myItem.getItemId()));
// ReportUtil.onReportEvent(user,ReportEventEnum.COST_ITEM.getType(),myItem.getItemNum(),String.valueOf(reason),String.valueOf(myItem.getItemId()));
baseItemReport(user,myItem.getItemId(),(int)myItem.getItemNum(),2,reason);
myItem.setItemNum(0);
itemManager.removeItem(userItem.getKey());
KtEventUtils.onKtEvent(user, eventType,reason,GlobalsDef.subReason,myItem.getItemId(),needCount,0);
} else {
ReportUtil.onReportEvent(user,ReportEventEnum.COST_ITEM.getType(),needCount,String.valueOf(reason),String.valueOf(myItem.getItemId()));
// ReportUtil.onReportEvent(user,ReportEventEnum.COST_ITEM.getType(),needCount,String.valueOf(reason),String.valueOf(myItem.getItemId()));
baseItemReport(user,myItem.getItemId(),(int)needCount,2,reason);
myItem.setItemNum(myItem.getItemNum() - needCount);
KtEventUtils.onKtEvent(user, eventType,reason,GlobalsDef.subReason,myItem.getItemId(),needCount,myItem.getItemNum());
}
ItemLogic.getInstance().addItemLog(new ItemLog(user.getId(),1,user.getPlayerInfoManager().getLevel(),String.valueOf(TimeUtils.now()),reason,myItem.getItemId(),needCount,myItem.getItemNum()));