物品流水日志

back_recharge
lvxinran 2019-09-12 10:05:31 +08:00
parent 001477cbb6
commit 135b9756c6
11 changed files with 15207 additions and 7 deletions

View File

@ -518,9 +518,10 @@ public class MapLogic {
mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum);
cost[0]= new int[]{costId,costNum};
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!costResult) {
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "行动力不足!");
return false;
if(!costResult){
costNum = user.getItemManager().getItem(costId).getItemNum();
cost[0][1]= costNum;
ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
}
}
}
@ -3345,10 +3346,10 @@ public class MapLogic {
User user = UserManager.getUser(entry.getValue().getUid());
MapManager mapManager = user.getMapManager();
mapManager.setEndlessMapInfo(new EndlessMapInfo());
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
resetMapInfo(user,false);
if(mapManager.getCurMapId()!=0&&SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.MAP_OUT_INDICATION_VALUE,null,true);
}
resetMapInfo(user,false);
ItemManager itemManager = user.getItemManager();
int [][] costItem = new int[mapItem.length][2];
for(int i = 0 ; i <mapItem.length;i++){

View File

@ -11,6 +11,9 @@ import com.ljsd.jieling.ktbeans.parmsBean.*;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.item.ItemLog;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -65,6 +68,8 @@ public class KtEventUtils {
}
paramEventBean.add(String.valueOf(itemNum));
PlayerManager playerInfoManager = user.getPlayerInfoManager();
ItemLogic.getInstance().addItemLog(new ItemLog(user.getId(),useType,String.valueOf(TimeUtils.now()),useReson,itemId,itemNum,itemTotalNum));
BILog.info("itemflow {}|{}|{}|{}|{}|{}|{}|{}",user.getId(), playerInfoManager.getLevel(), playerInfoManager.getVipLevel(),useType,useReson,itemId,itemNum,itemTotalNum);
break;
case ParamEventBean.UserLoginOutEvent:

View File

@ -0,0 +1,42 @@
package com.ljsd.jieling.logic.item;
import java.util.Map;
public class ItemDetail {
private int type;
private String time;
private int season;
private Map<Integer,Integer> items;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public int getSeason() {
return season;
}
public void setSeason(int season) {
this.season = season;
}
public Map<Integer, Integer> getItems() {
return items;
}
public void setItems(Map<Integer, Integer> items) {
this.items = items;
}
}

View File

@ -0,0 +1,102 @@
package com.ljsd.jieling.logic.item;
import java.util.Map;
public class ItemLog {
public static final String _COLLECTION_NAME = "itemLog";
private String id;
private int uid;
private int type;
private String time;
private int reason;
private int itemId;
private int itemNum;
private int itemTotalNum;
public ItemLog(){
}
public ItemLog(int uid, int type, String time, int reason, int itemId, int itemNum, int itemTotalNum) {
this.uid = uid;
this.type = type;
this.time = time;
this.reason = reason;
this.itemId = itemId;
this.itemNum = itemNum;
this.itemTotalNum = itemTotalNum;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public int getReason() {
return reason;
}
public void setReason(int reason) {
this.reason = reason;
}
public int getItemId() {
return itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public int getItemNum() {
return itemNum;
}
public void setItemNum(int itemNum) {
this.itemNum = itemNum;
}
public int getItemTotalNum() {
return itemTotalNum;
}
public void setItemTotalNum(int itemTotalNum) {
this.itemTotalNum = itemTotalNum;
}
}

View File

@ -0,0 +1,38 @@
package com.ljsd.jieling.logic.item;
import com.ljsd.common.mogodb.util.BlockingUniqueQueue;
import com.ljsd.jieling.db.mongo.MongoUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.BlockingQueue;
public class ItemLogUtil {
public static BlockingQueue<ItemLog> logQueue = new BlockingUniqueQueue<>();
public static void addLogQueue(ItemLog itemLog) {
logQueue.offer(itemLog);
}
public static void record () {
List<ItemLog> sendDataList = new ArrayList<>(10);
logQueue.drainTo(sendDataList,10);
if(sendDataList.size()>0){
for(ItemLog data:sendDataList){
try {
MongoUtil.getInstence().getMyMongoTemplate().save(data);
} catch (Exception e) {
e.printStackTrace();
}
}
}else{
try {
Thread.sleep(100);
return;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.logic.item;
import com.ljsd.jieling.config.*;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.handler.map.MapManager;
@ -550,4 +551,8 @@ public class ItemLogic {
return equipId*100+leve;
}
public void addItemLog(ItemLog itemLog){
ItemLogUtil.addLogQueue(itemLog);
}
}

View File

@ -23,7 +23,7 @@ public class ThreadManager {
private static PlatConfigureTask platConfigureTask;
private static DataReportTask dataReportTask;
private static MongoDataHandlerTask mongoDataHandlerTask;
private static ItemLogTask itemLogTask;
public static int SLEEP_INTEVAL_TIME = 60; //每1分钟检查一次
private static volatile ScheduledThreadPoolExecutor scheduledExecutor; //管理task
@ -37,6 +37,7 @@ public class ThreadManager {
platConfigureTask = configurableApplicationContext.getBean(PlatConfigureTask.class);
mongoDataHandlerTask = configurableApplicationContext.getBean(MongoDataHandlerTask.class);
dataReportTask = configurableApplicationContext.getBean(DataReportTask.class);
itemLogTask = configurableApplicationContext.getBean(ItemLogTask.class);
// DataReportTask dataReportTask = new DataReportTask();
// dataReportTask.start();
go();
@ -100,6 +101,7 @@ public class ThreadManager {
scheduledExecutor.execute(new RetrySendIndicationThread("retry_send"));
scheduledExecutor.execute(dataReportTask);
scheduledExecutor.execute(mongoDataHandlerTask);
scheduledExecutor.execute(itemLogTask);
}
public static ScheduledThreadPoolExecutor getScheduledExecutor() {

View File

@ -0,0 +1,14 @@
package com.ljsd.jieling.thread.task;
import com.ljsd.jieling.logic.item.ItemLogUtil;
import org.springframework.stereotype.Component;
@Component
public class ItemLogTask extends Thread {
@Override
public void run() {
while(true){
ItemLogUtil.record();
}
}
}

View File

@ -16,6 +16,8 @@ import com.ljsd.jieling.logic.activity.event.UseItemEvent;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.item.ItemLog;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.protocols.CommonProto;

View File

@ -112,7 +112,7 @@ public class SensitiveWordInit {
@SuppressWarnings("resource")
private static Set<String> readSensitiveWordFile() throws Exception{
Set<String> set = null;
InputStream is = SensitiveWordInit.class.getClassLoader().getResourceAsStream("dirtyWords.dict");
InputStream is = SensitiveWordInit.class.getClassLoader().getResourceAsStream("mingan.txt");
InputStreamReader read = new InputStreamReader(is,ENCODING);
BufferedReader bufferedReader =null;
try {

File diff suppressed because it is too large Load Diff