From eef6b5ca8e8dabbe7c95825da4307ece619ff89f Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Sun, 24 Apr 2022 18:08:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=95=B0=E4=B8=8A=E6=8A=A5=20?= =?UTF-8?q?=E6=94=B9=20=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 --- .../config/reportData/DataMessageUtils.java | 4 +- .../ljsd/jieling/ktbeans/KtEventUtils.java | 182 +++++++++--------- .../com/ljsd/jieling/ktbeans/ReportUtil.java | 42 ++-- .../com/ljsd/jieling/logic/item/ItemLog.java | 28 +-- 4 files changed, 135 insertions(+), 121 deletions(-) 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 3e0dbd1f2..87e5c8ecf 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 @@ -77,9 +77,9 @@ public class DataMessageUtils { if(GameLogicService.isServiceShutdown()){ return; } - if (info instanceof KTParam) { +// if (info instanceof KTParam) { logQueue.offer(info); - } +// } } public static void manageData() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/KtEventUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/KtEventUtils.java index f98873d2c..2498a3d87 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/KtEventUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/KtEventUtils.java @@ -38,100 +38,98 @@ public class KtEventUtils { currencyMap.put(Global.HEARTFIRE, "currency_6_d");//心火明晶 } - private static Gson gson = RedisUtil.getInstence().getGson(); - 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); +// LOGGER.info("ktparm -- > {}", gson.toJson(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 7a418a2bd..5bdeea82a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java @@ -1,10 +1,14 @@ 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; @@ -46,6 +50,8 @@ public class ReportUtil { public static final int AMULET_ID = 3; + private static Gson gson = RedisUtil.getInstence().getGson(); + //对外接口只有一个 public static void onReportEvent(User user,int type,Object... param) throws Exception { @@ -53,22 +59,28 @@ public class ReportUtil { // 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)); } private static ReportUserEvent userToReportBean(User user){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLog.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLog.java index a2ce652d6..f4750a776 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLog.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLog.java @@ -1,27 +1,31 @@ package com.ljsd.jieling.logic.item; -import java.util.Map; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.index.CompoundIndex; +import org.springframework.data.mongodb.core.index.CompoundIndexes; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; +@Document(collection="itemLog") +@CompoundIndexes({@CompoundIndex(name = "uid_time_index", def = "{'uid': 1, 'time': 1}")}) public class ItemLog { - - public static final String _COLLECTION_NAME = "itemLog"; - + @Id private String id; - + @Field(value = "uid") private int uid; - + @Field(value = "type") private int type; - + @Field(value = "level") private int level; - + @Field(value = "time") private String time; - + @Field(value = "reason") private int reason; - + @Field(value = "itemId") private int itemId; - + @Field(value = "itemNum") private long itemNum; - + @Field(value = "itemTotalNum") private long itemTotalNum; public ItemLog(){