print log

back_recharge
wangyuan 2019-09-17 19:30:48 +08:00
parent 45fe740b3d
commit f9bf1d7a67
4 changed files with 51 additions and 12 deletions

View File

@ -79,7 +79,7 @@ public class JavaAgent {
DynamicClassLoader myLoader = new DynamicClassLoader();
Class targetClazz = myLoader.findClass(targetClassFile);
writeLog("class name is:["+targetClazz.getName() + "]");
writeLog("class path is:["+targetClazz.getResource("").getPath() + "]");
Class<?> clz = Class.forName(targetClazz.getName());
writeLog("clz-->Class.forName:(\""+targetClazz.getName() + "\")");

View File

@ -4,6 +4,8 @@ import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.config.SRechargeCommodityConfig;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.logic.store.GiftGoodsType;
import io.netty.util.internal.ConcurrentSet;
import org.springframework.data.annotation.Transient;
import java.util.*;
@ -16,6 +18,9 @@ public class RechargeInfo extends MongoBase{
private int hadBuyFound;
private int isDayFirst;
@Transient
private Set<Integer> cacheSendedIds = new ConcurrentSet<>();
private Map<Integer,Long> levelBagMap = new HashMap<>();
private Map<Integer,Integer> buyGoodsTimes = new HashMap<>();
@ -28,6 +33,14 @@ public class RechargeInfo extends MongoBase{
}
public boolean addNewSendId(int id){
return cacheSendedIds.add(id);
}
public void clearCacheSendId(){
cacheSendedIds.clear();
}
//检测商品是否过期
public Set<Integer> checkIsGoodsTypeOverTime(){
int now = (int)(System.currentTimeMillis()/1000);

View File

@ -9,10 +9,12 @@ 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.ActivityType;
import com.ljsd.jieling.logic.dao.ActivityMission;
import com.ljsd.jieling.logic.dao.RechargeInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
@ -26,16 +28,14 @@ import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 西
*/
public class BuyGoodsLogic {
private static final Logger LOGGER = LoggerFactory.getLogger(BuyGoodsLogic.class);
public static void testBuyGoods(ISession session,int goodsId) throws Exception {
@ -266,16 +266,19 @@ public class BuyGoodsLogic {
}
public static List<CommonProto.GiftGoodsInfo> getGoodsBagInfo(int uid) throws Exception {
public static boolean getGoodsBagInfo(int uid,List<CommonProto.GiftGoodsInfo> giftGoodsInfoList,boolean needClear) throws Exception {
User user = UserManager.getUser(uid);
RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
long now = TimeUtils.now();
Map<Integer, Integer> buyGoodsTimes = rechargeInfo.getBuyGoodsTimes();
Map<Integer, Long> levelBagMap = rechargeInfo.getLevelBagMap();
Map<Integer,Integer> goodsOrder = new HashMap<>(6);
List<CommonProto.GiftGoodsInfo> giftGoodsInfoList = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size());
Map<Integer,CommonProto.GiftGoodsInfo> giftGoodsInfoMap = new HashMap<>();
long createTime = user.getPlayerInfoManager().getCreateTime();
boolean needChange= false;
if(needClear){
rechargeInfo.clearCacheSendId();
}
for(SRechargeCommodityConfig sRechargeCommodityConfig :SRechargeCommodityConfig.rechargeCommodityConfigMap.values()){
int limit = sRechargeCommodityConfig.getLimit();
int goodsId = sRechargeCommodityConfig.getId();
@ -313,7 +316,7 @@ public class BuyGoodsLogic {
startTime = sRechargeCommodityConfig.getTimeLong(createTime,1);
endTime = sRechargeCommodityConfig.getTimeLong(createTime,2);
}
if(now<startTime){
if(now<startTime || (endTime!=0 && now > endTime)){
continue;
}
int order = sRechargeCommodityConfig.getOrder();
@ -326,21 +329,42 @@ public class BuyGoodsLogic {
}
goodsOrder.put(sRechargeCommodityConfig.getType(),order*10000 + goodsId);
giftGoodsInfoMap.put(goodsId,CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setStartTime((int)(startTime/1000)).setBuyTimes(buyTimes).setEndTime((int)(endTime/1000)).build());
boolean isNew = rechargeInfo.addNewSendId(goodsId);
if(isNew){
needChange = true;
}
continue;
}
boolean isNew = rechargeInfo.addNewSendId(goodsId);
if(isNew){
needChange = true;
}
giftGoodsInfoList.add(CommonProto.GiftGoodsInfo.newBuilder().setGoodsId(goodsId).setBuyTimes(buyTimes).setStartTime((int)(startTime/1000)).setEndTime((int)(endTime/1000)).build());
}
giftGoodsInfoList.addAll(giftGoodsInfoMap.values());
return giftGoodsInfoList;
return needChange;
}
public static void sendGiftGooodsIndication(int uid) throws Exception {
List<CommonProto.GiftGoodsInfo> goodsBagInfo = BuyGoodsLogic.getGoodsBagInfo(uid);
PlayerInfoProto.AllGiftGoodsIndication build = PlayerInfoProto.AllGiftGoodsIndication.newBuilder().addAllGiftGoodsInfo(goodsBagInfo).build();
List<CommonProto.GiftGoodsInfo> goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size());
boolean change = BuyGoodsLogic.getGoodsBagInfo(uid, goodsBagInfo,false);
ISession session = OnlineUserManager.getSessionByUid(uid);
if(session!=null){
if(session!=null && change){
PlayerInfoProto.AllGiftGoodsIndication build = PlayerInfoProto.AllGiftGoodsIndication.newBuilder().addAllGiftGoodsInfo(goodsBagInfo).build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ALL_GIFTGOODS_INDICATION_VALUE,build,true);
}
}
public static void minuteCheckReharge() throws Exception {
for (Map.Entry<Integer, ISession> entry : OnlineUserManager.sessionMap.entrySet()) {
ISession value = entry.getValue();
if(value.getFiveReady() == 1){
sendGiftGooodsIndication(entry.getKey());
}
}
}
}

View File

@ -23,6 +23,7 @@ import com.ljsd.jieling.logic.fight.CheckFight;
import com.ljsd.jieling.logic.fight.CombatLogic;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.question.QuestionLogic;
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.network.server.ProtocolsManager;
import org.slf4j.Logger;
@ -62,6 +63,7 @@ public class MinuteTask extends Thread {
MailLogic.getInstance().checkReadyToMail();
ProtocolsManager.getInstance().minuteCheckForbidUser();
CoreLogic.getInstance().checkCoreCdk();
BuyGoodsLogic.minuteCheckReharge();
RedisUtil.getInstence().set(RedisKey.ONLINE_NUM+RedisKey.Delimiter_colon+GameApplication.serverId, String.valueOf(OnlineUserManager.sessionMap.entrySet().size()));
LOGGER.info("MinuteTask end...");
} catch (Exception e) {