道具直购
parent
1a6b3fdd86
commit
651c7697c8
|
@ -353,21 +353,31 @@ public class GlobalDataManaager implements IManager {
|
|||
|
||||
public static void flushGoodsTimes(User user){
|
||||
Map<Integer, Integer> buyGoodsTimes = user.getPlayerInfoManager().getRechargeInfo().getBuyGoodsTimes();
|
||||
if(buyGoodsTimes!=null && !buyGoodsTimes.isEmpty()){
|
||||
Iterator<Integer> iterator = buyGoodsTimes.keySet().iterator();
|
||||
boolean update = false;
|
||||
while (iterator.hasNext()){
|
||||
Integer goodsId = iterator.next();
|
||||
if(SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsId).getDailyUpdate() == 1){
|
||||
buyGoodsTimes.put(goodsId,0);
|
||||
boolean update = false;
|
||||
|
||||
update =true;
|
||||
}
|
||||
long now = TimeUtils.now();
|
||||
Map<Integer, Long> refreshBagMap = user.getPlayerInfoManager().getRechargeInfo().getRefreshBagMap();
|
||||
Iterator<Map.Entry<Integer, Long>> iterator = refreshBagMap.entrySet().iterator();
|
||||
Set<Integer> updateBuyTimesGoodsId = new HashSet<>();
|
||||
while (iterator.hasNext()){
|
||||
Map.Entry<Integer, Long> next = iterator.next();
|
||||
if(next.getValue()<=now){
|
||||
updateBuyTimesGoodsId.add(next.getKey());
|
||||
refreshBagMap.put(next.getKey(),next.getValue() + SRechargeCommodityConfig.rechargeCommodityConfigMap.get(next.getKey()).getDailyUpdate() * TimeUtils.ONE_DAY);
|
||||
update =true;
|
||||
}
|
||||
if(update){
|
||||
}
|
||||
if(update){
|
||||
if(buyGoodsTimes!=null && !buyGoodsTimes.isEmpty()){
|
||||
updateBuyTimesGoodsId.forEach(e->{
|
||||
if(buyGoodsTimes.containsKey(e)){
|
||||
buyGoodsTimes.put(e,0);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
user.getPlayerInfoManager().getRechargeInfo().clearCacheSendId();
|
||||
user.getPlayerInfoManager().getRechargeInfo().setBuyGoodsTimes(buyGoodsTimes);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,8 @@ public class RechargeInfo extends MongoBase{
|
|||
private volatile Set<Integer> cacheSendedIds = new ConcurrentSet<>();
|
||||
private Map<Integer,Long> levelBagMap = new HashMap<>();
|
||||
|
||||
private Map<Integer,Long> refreshBagMap = new HashMap<>();
|
||||
|
||||
private Map<Integer,Integer> buyGoodsTimes = new HashMap<>();
|
||||
|
||||
private Map<Integer,Integer> goodseDurationMap = new HashMap<>();
|
||||
|
@ -48,6 +50,11 @@ public class RechargeInfo extends MongoBase{
|
|||
cacheSendedIds.clear();
|
||||
}
|
||||
|
||||
public void setRefreshBagMap(Map<Integer, Long> refreshBagMap) {
|
||||
this.refreshBagMap = refreshBagMap;
|
||||
updateString("refreshBagMap", refreshBagMap);
|
||||
}
|
||||
|
||||
//检测商品是否过期
|
||||
public Set<Integer> checkIsGoodsTypeOverTime(){
|
||||
int now = (int)(System.currentTimeMillis()/1000);
|
||||
|
@ -226,4 +233,8 @@ public class RechargeInfo extends MongoBase{
|
|||
updateString("dyGoodsCanBuyTimes",dyGoodsCanBuyTimes);
|
||||
this.dyGoodsCanBuyTimes = dyGoodsCanBuyTimes;
|
||||
}
|
||||
|
||||
public Map<Integer, Long> getRefreshBagMap() {
|
||||
return refreshBagMap;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import com.ljsd.jieling.logic.dao.root.User;
|
|||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import config.SGameSetting;
|
||||
import config.SPlayerLevelConfig;
|
||||
|
@ -90,7 +91,7 @@ public class UserManager {
|
|||
SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(1);
|
||||
playerManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy());
|
||||
playerManager.setRideLevel(1);
|
||||
|
||||
BuyGoodsLogic.initOwernBagInfo(user);
|
||||
PlayerLogic.getInstance().vipflushEveryDay(user,null);
|
||||
ActivityLogic.getInstance().newPlayerOpenActivityMission(user);
|
||||
PlayerLogic.getInstance().playerInfoUpdate(user);
|
||||
|
|
|
@ -353,6 +353,7 @@ public class BuyGoodsLogic {
|
|||
Map<Integer, Integer> buyGoodsTimes = rechargeInfo.getBuyGoodsTimes();
|
||||
Map<Integer, Long> levelBagMap = rechargeInfo.getLevelBagMap();
|
||||
Map<Integer, Long> typeBagMap = rechargeInfo.getTypeBagMap();
|
||||
Map<Integer, Long> refreshBagMap = rechargeInfo.getRefreshBagMap();
|
||||
Map<Integer,Integer> goodsOrder = new HashMap<>(6);
|
||||
Map<Integer,CommonProto.GiftGoodsInfo> giftGoodsInfoMap = new HashMap<>();
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
|
@ -434,8 +435,14 @@ public class BuyGoodsLogic {
|
|||
}
|
||||
|
||||
}else{
|
||||
startTime = ToolsUtil.getTimeLong(sRechargeCommodityConfig.getStartTimeLong(),sRechargeCommodityConfig.getEndTimeLong(),sRechargeCommodityConfig.getTime(),createTime,1);
|
||||
endTime = ToolsUtil.getTimeLong(sRechargeCommodityConfig.getStartTimeLong(),sRechargeCommodityConfig.getEndTimeLong(),sRechargeCommodityConfig.getTime(),createTime,2);
|
||||
if(sRechargeCommodityConfig.getDailyUpdate()>=1){
|
||||
endTime = refreshBagMap.get(sRechargeCommodityConfig.getId());
|
||||
startTime = endTime - sRechargeCommodityConfig.getDailyUpdate()*TimeUtils.ONE_DAY;
|
||||
}else{
|
||||
startTime = ToolsUtil.getTimeLong(sRechargeCommodityConfig.getStartTimeLong(),sRechargeCommodityConfig.getEndTimeLong(),sRechargeCommodityConfig.getTime(),createTime,1);
|
||||
endTime = ToolsUtil.getTimeLong(sRechargeCommodityConfig.getStartTimeLong(),sRechargeCommodityConfig.getEndTimeLong(),sRechargeCommodityConfig.getTime(),createTime,2);
|
||||
}
|
||||
|
||||
}
|
||||
if(now<startTime){
|
||||
continue;
|
||||
|
@ -500,6 +507,16 @@ public class BuyGoodsLogic {
|
|||
|
||||
}
|
||||
|
||||
public static void initOwernBagInfo(User user){
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
Map<Integer, Long> initBagMap = new HashMap<>(SRechargeCommodityConfig.refreshItemInfo.size());
|
||||
for(SRechargeCommodityConfig sRechargeCommodityConfig : SRechargeCommodityConfig.refreshItemInfo){
|
||||
long endTime = ToolsUtil.getTimeLong(sRechargeCommodityConfig.getStartTimeLong(),sRechargeCommodityConfig.getEndTimeLong(),sRechargeCommodityConfig.getTime(),createTime,1) + TimeUtils.ONE_DAY * sRechargeCommodityConfig.getDailyUpdate();
|
||||
initBagMap.put(sRechargeCommodityConfig.getId(),endTime);
|
||||
}
|
||||
user.getPlayerInfoManager().getRechargeInfo().setRefreshBagMap(initBagMap);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -62,6 +62,8 @@ public class SRechargeCommodityConfig implements BaseConfig {
|
|||
private static Set<Integer> rchargeHeroGet;
|
||||
private static Map<Integer,Integer> recharegeHeroTime;
|
||||
|
||||
public static Set<SRechargeCommodityConfig> refreshItemInfo;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
Map<Integer, SRechargeCommodityConfig> config = STableManager.getConfig(SRechargeCommodityConfig.class);
|
||||
|
@ -69,6 +71,7 @@ public class SRechargeCommodityConfig implements BaseConfig {
|
|||
Set<Integer> rchargeHeroGetTemp = new HashSet<>();
|
||||
|
||||
Map<Integer, Integer> recharegeHeroTimeTmp = new HashMap<>();
|
||||
Set<SRechargeCommodityConfig> refreshItemInfoTmp = new HashSet<>();
|
||||
for(SRechargeCommodityConfig sRechargeCommodityConfig : config.values()){
|
||||
int[] discountType = sRechargeCommodityConfig.getDiscountType();
|
||||
if(discountType!=null && discountType.length>0 &&discountType[0] == 2){
|
||||
|
@ -79,6 +82,9 @@ public class SRechargeCommodityConfig implements BaseConfig {
|
|||
rchargeHeroGetTemp.add(sRechargeCommodityConfig.getId());
|
||||
recharegeHeroTimeTmp.put(discountType[1],sRechargeCommodityConfig.getId());
|
||||
}
|
||||
if(sRechargeCommodityConfig.getDailyUpdate()>0){
|
||||
refreshItemInfoTmp.add(sRechargeCommodityConfig);
|
||||
}
|
||||
|
||||
int time = sRechargeCommodityConfig.getTime();
|
||||
String startTime = sRechargeCommodityConfig.getStartTime();
|
||||
|
@ -104,6 +110,7 @@ public class SRechargeCommodityConfig implements BaseConfig {
|
|||
rechargeLevelMap = rechargeLevelMapTmp;
|
||||
rchargeHeroGet = rchargeHeroGetTemp;
|
||||
recharegeHeroTime = recharegeHeroTimeTmp;
|
||||
refreshItemInfo = refreshItemInfoTmp;
|
||||
|
||||
}
|
||||
|
||||
|
@ -219,4 +226,5 @@ public class SRechargeCommodityConfig implements BaseConfig {
|
|||
public static void setRecharegeHeroTime(Map<Integer, Integer> recharegeHeroTime) {
|
||||
SRechargeCommodityConfig.recharegeHeroTime = recharegeHeroTime;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue