From 3dcfb73ec2630b39771aa704f0f1a2270001ddda Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 25 Apr 2022 15:14:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A4=A9=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/config/json/KTSDKConstans.java | 8 +- .../config/reportData/DataMessageUtils.java | 13 +- .../jieling/handler/LoginRequestHandler.java | 85 ++++----- .../ljsd/jieling/handler/map/MapLogic.java | 4 +- .../ljsd/jieling/handler/map/MapManager.java | 1 + .../ktbeans/BeanBuilder/ParamBuilder.java | 1 - .../com/ljsd/jieling/ktbeans/KTRoleUtil.java | 36 ++-- .../com/ljsd/jieling/ktbeans/KTSendBody.java | 9 - .../com/ljsd/jieling/ktbeans/KTUserUtil.java | 30 +-- .../ljsd/jieling/ktbeans/KtEventUtils.java | 180 +++++++++--------- .../com/ljsd/jieling/ktbeans/ReportUtil.java | 58 +++--- .../jieling/logic/GlobalDataManaager.java | 6 +- .../logic/activity/AbstractActivity.java | 13 +- .../ljsd/jieling/logic/dao/UserManager.java | 4 +- .../jieling/logic/store/BuyGoodsNewLogic.java | 79 ++++---- .../thread/task/OnlineUserReportTask.java | 93 +++++---- .../java/com/ljsd/jieling/util/ItemUtil.java | 23 ++- 17 files changed, 320 insertions(+), 323 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/json/KTSDKConstans.java b/serverlogic/src/main/java/com/ljsd/jieling/config/json/KTSDKConstans.java index 024594eff..77869378d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/json/KTSDKConstans.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/json/KTSDKConstans.java @@ -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"; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/reportData/DataMessageUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/config/reportData/DataMessageUtils.java index d197af223..bfb3ecafa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/reportData/DataMessageUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/reportData/DataMessageUtils.java @@ -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 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 { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginRequestHandler.java index d9c2ec72f..43eb574c7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginRequestHandler.java @@ -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 {}", 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) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java index 5bdeea82a..acab0b913 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java @@ -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> userProperties = report.getEventHandler().getUserProperties(user); - reportUserEvent.setUserProperties(userProperties); - //设置事件属性 - Map 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> userProperties = report.getEventHandler().getUserProperties(user); +// reportUserEvent.setUserProperties(userProperties); +// //设置事件属性 +// Map 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); } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 54136fabc..f40c46e11 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -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; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index a02d4f8f4..2357c0e37 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -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 itemId = new ArrayList<>(reward.length); - List 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 itemId = new ArrayList<>(reward.length); +// List 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 reward, int missionId) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index a0c5812b3..40815a1f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -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); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 8f72bd050..50a218ccc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -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 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 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); +// } +// } /** * 通知前端充值成功 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/OnlineUserReportTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/OnlineUserReportTask.java index eecea22cc..1c50f5285 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/OnlineUserReportTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/OnlineUserReportTask.java @@ -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 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 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 uids = OnlineUserManager.sessionMap.keySet(); - Map 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 properties = new HashMap<>(); - if(channelMap.isEmpty()){ - - properties.put("channel","DEFAULT_CHANNEL"); - properties.put("server_id",serverId); - properties.put("online_user",0); - } - for(Map.Entry 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 uids = OnlineUserManager.sessionMap.keySet(); +// Map 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 properties = new HashMap<>(); +// if(channelMap.isEmpty()){ +// +// properties.put("channel","DEFAULT_CHANNEL"); +// properties.put("server_id",serverId); +// properties.put("online_user",0); +// } +// for(Map.Entry 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(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index d22b442cb..a4763e2cc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -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()));