数数上报 改 开天上报

back_recharge
jiahuiwen 2022-04-24 18:08:08 +08:00
parent 9d99aaaee8
commit eef6b5ca8e
4 changed files with 135 additions and 121 deletions

View File

@ -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() {

View File

@ -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) {

View File

@ -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<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));
}
private static ReportUserEvent userToReportBean(User user){

View File

@ -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(){