物品流水日志
parent
001477cbb6
commit
135b9756c6
|
@ -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++){
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue