From 99a484ba8301bd6a97dc9b9a8c8d30d6da47ac56 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Wed, 28 Jun 2023 16:42:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B7=E5=86=B2=E7=89=B9=E6=9D=83=E5=92=8C?= =?UTF-8?q?=E5=A4=AA=E5=88=9D=E7=89=B9=E6=9D=83=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/core/VipPrivilegeType.java | 2 + .../com/ljsd/jieling/kefu/Cmd_general.java | 14 ---- .../logic/activity/BuyGoldActivity.java | 20 ------ .../ljsd/jieling/logic/dao/PlayerManager.java | 46 +++--------- .../com/ljsd/jieling/logic/dao/StoreInfo.java | 2 - .../com/ljsd/jieling/logic/dao/VipInfo.java | 5 -- .../ljsd/jieling/logic/fight/CombatLogic.java | 1 - .../jieling/logic/player/PlayerLogic.java | 71 +++++++++---------- .../jieling/logic/store/BuyGoodsNewLogic.java | 9 +-- 9 files changed, 46 insertions(+), 124 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java b/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java index f77703450..8db1409f8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java @@ -66,5 +66,7 @@ public interface VipPrivilegeType { int CHALLENGE_MAINLINE_ADD_USER_EXP = 2401;//挑战关卡主角经验产出提升% int CHALLENGE_MAINLINE_ADD_ONE_RECHARGE_NUM = 2501;//挑战关卡掉落一元直充卡数量增加% + int TAICHU_VIP_LV = 2036;//太初特权等级 + int SHUACHONG_VIP_LV = 2037;//刷冲特权等级 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_general.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_general.java index cc822c5f7..8f630845a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_general.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_general.java @@ -95,20 +95,6 @@ public class Cmd_general extends GmAbstract { } LOGGER.info("查询用户字符串......{}",args[1]); break; - case "btvip": - try { - int uid = Integer.parseInt(args[1]); - User user = UserManager.getUser(uid); - if (user == null){ - LOGGER.error("用户找不到"); - }else { - user.getPlayerInfoManager().putBtVipLevel(Integer.parseInt(args[2]),Integer.parseInt(args[3])); - } - } catch (Exception e) { - e.printStackTrace(); - } - LOGGER.info("更新用户bt特权......uid:{},特权id:{},特权值:{}",args[1],args[2],args[3]); - break; default: break; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BuyGoldActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BuyGoldActivity.java index 17b4c1d5d..13db02694 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BuyGoldActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BuyGoldActivity.java @@ -6,8 +6,6 @@ import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import rpc.protocols.CommonProto; -import rpc.protocols.PlayerInfoProto; import config.SGlobalActivity; import config.SSpecialConfig; import manager.STableManager; @@ -53,25 +51,7 @@ class BuyGoldActivity extends AbstractActivity { //不管活动是否开启都要刷新特权 GoldRefreshEvent refreshEvent = (GoldRefreshEvent) event; setUpTime(refreshEvent.getUid()); - } - /* if (event instanceof UserOnlineEvent) { - User user = UserManager.getUser(((UserOnlineEvent) event).getUid()); - ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); - if (null == activityMission) { - return; - } - boolean needRefresh = false; - for (Integer aList : list) { - if (TimeUtils.isOverAppointRefreshTime(System.currentTimeMillis(), activityMission.getV() * 1000L, aList)) { - needRefresh = true; - break; - } - } - if (needRefresh) { - setUpTime(user); - } - }*/ } private void setUpTime(int uid) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index fbb941896..955eccec0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -327,24 +327,10 @@ public class PlayerManager extends MongoBase { return ints; } - /** - * bt 特权等级,key:UnlockType, value:等级 - */ - private Map btVipLevel = new HashMap<>(); - - public Map getGmDialNum() { - return gmDialNum; - } - public int getGmDialNum(int id) { return gmDialNum.getOrDefault(id,0); } - public void setGmDialNum(Map gmDialNum) { - this.gmDialNum = gmDialNum; - updateString("gmDialNum", gmDialNum); - } - public void putGmDialNum(int id, int count) { this.gmDialNum.put(id,count); updateString("gmDialNum", gmDialNum); @@ -356,20 +342,6 @@ public class PlayerManager extends MongoBase { updateString("gmDialNum", gmDialNum); } - public Map getBtVipLevel() { - return btVipLevel; - } - - public void setBtVipLevel(Map btVipLevel) { - this.btVipLevel = btVipLevel; - updateString("btVipLevel", btVipLevel); - } - - public void putBtVipLevel(int key, int value) { - this.btVipLevel.put(key,value); - updateString("btVipLevel", btVipLevel); - } - public long getLastWholeLifeTime() { return lastWholeLifeTime; } @@ -611,12 +583,12 @@ public class PlayerManager extends MongoBase { return; } VipInfo info = vipInfo.get(privilageId); - info.setCount(info.getCount()+updateNum); + info.setCount(info.getCount() + updateNum); vipInfo.put(privilageId, info); updateString("vipInfo", vipInfo); } - public void vipFlush( Set removePrivileges) { + public void vipFlush(Set removePrivileges) { if (vipInfo.isEmpty()) { return; } @@ -651,12 +623,13 @@ public class PlayerManager extends MongoBase { if (config==null){ return; } - long maxTime; + int maxTime; + int nowInt = TimeUtils.nowInt(); VipInfo newVipInfo = new VipInfo(); if(config.getContinueTime()!=null && config.getContinueTime().length>0){ if(vipInfo.containsKey(privilegeId)){ VipInfo info = vipInfo.get(privilegeId); - if(config.getContinueTime()[1]==1 && TimeUtils.nowInt()< info.getEffectTime()){ + if(config.getContinueTime()[1]==1 && nowInt < info.getEffectTime()){ boolean aBool = config.getCondition().length == 1 && config.getCondition()[0][0] == 0; if(!aBool){ newVipInfo.setCount(info.getCount()-config.getCondition()[0][1]); @@ -666,14 +639,11 @@ public class PlayerManager extends MongoBase { } return; } - maxTime = Math.max(TimeUtils.nowInt(), info.getEffectTime()); - maxTime = maxTime+config.getContinueTime()[0]; + maxTime = Math.max(nowInt, info.getEffectTime()) + config.getContinueTime()[0]; }else { - maxTime = TimeUtils.nowInt()+config.getContinueTime()[0]; + maxTime = nowInt + config.getContinueTime()[0]; } - - maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000,0,0,true)/1000); - + maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000L,0,0,true)/1000); newVipInfo.setEffectTime((int)maxTime); } this.vipInfo.put(privilegeId,newVipInfo); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreInfo.java index ab04f9576..dff97f11d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreInfo.java @@ -2,7 +2,6 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; -import java.util.List; import java.util.Map; public class StoreInfo extends MongoBase { @@ -17,7 +16,6 @@ public class StoreInfo extends MongoBase { private Map itemNumMap; public StoreInfo(int id,long lastRefreshTime,long startTime,long endTime,Map itemNumMap ){ -// this.setRootCollection(User._COLLECTION_NAME); this.id = id; this.lastRefreshTime = lastRefreshTime; this.startTime = startTime; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/VipInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/VipInfo.java index 774c3b1cf..49acb3c04 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/VipInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/VipInfo.java @@ -25,11 +25,6 @@ public class VipInfo { return effectTime; } - public VipInfo(int count, int effectTime) { - this.count = count; - this.effectTime = effectTime; - } - public VipInfo() { } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index bbd560f6b..efefa76c0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -252,7 +252,6 @@ public class CombatLogic { Map result = new HashMap<>(2); result.put(1,baseBuilder.build()); result.put(2,randomBuilder.build()); - return result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 18553aa01..2f9f5d121 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -4,7 +4,6 @@ import com.google.gson.Gson; import com.ljsd.GameApplication; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig; -import com.ljsd.jieling.core.CoreLogic; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType; @@ -361,40 +360,39 @@ public class PlayerLogic { public void vipflushEveryDay(User user, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception { PlayerManager playerInfoManager = user.getPlayerInfoManager(); + sendVipDailyOrLevelUpReward(user, BIReason.VIP_DAY_REWARD); + Set removePrivileges = new HashSet<>(2); - int vipLevel = user.getPlayerInfoManager().getVipLevel(); - sendVipDailyOrLevlUpReward(user, vipLevel,BIReason.VIP_DAY_REWARD); - List privilegeList = new ArrayList<>(); + int nowInt = TimeUtils.nowInt(); Map vipInfo = playerInfoManager.getVipInfo(); - Set fixVipId = new HashSet<>(); for(Map.Entry vipInfoItem : vipInfo.entrySet()){ //如果这个权限是活动 且永久了 那么需要修复 SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()); - if(vipInfoItem.getValue().getEffectTime()==0){ - if (config == null){ - LOGGER.info("特权刷新删除日志1:{}-{}",vipInfoItem.getKey(),vipInfoItem.getValue().getEffectTime()); - removePrivileges.add(vipInfoItem.getKey()); - continue; - } + if (config == null){ + LOGGER.info("特权刷新删除日志1:{}-{}",vipInfoItem.getKey(),vipInfoItem.getValue().getEffectTime()); + removePrivileges.add(vipInfoItem.getKey()); + continue; + } + + if(vipInfoItem.getValue().getEffectTime() == 0){ int unlockType = config.getUnlockType(); - if(unlockType==5||(unlockType==4&& config.getContinueTime().length>0)){ - fixVipId.add(vipInfoItem.getKey()); + if(unlockType==5 || (unlockType==4 && config.getContinueTime().length>0)){ + playerInfoManager.addVipByTime(vipInfoItem.getKey(), nowInt); } } - if(vipInfoItem.getValue().getEffectTime()!=0 && vipInfoItem.getValue().getEffectTime()<=TimeUtils.nowInt()){ - if(config.getPrivilegeType()==VipPrivilegeType.ADVENTURE_BASE_REWARD){ + else if(vipInfoItem.getValue().getEffectTime() <= nowInt){ + if(config.getPrivilegeType() == VipPrivilegeType.ADVENTURE_BASE_REWARD){ CombatLogic.getInstance().getNewAdventureReward(user,true,vipInfoItem.getValue().getEffectTime()); } removePrivileges.add(vipInfoItem.getKey()); LOGGER.info("特权刷新删除日志2:{}-{}",vipInfoItem.getKey(),vipInfoItem.getValue().getEffectTime()); } } - if(!fixVipId.isEmpty()){ - fixVipId.forEach(n->playerInfoManager.addVipByTime(n,(int)(TimeUtils.now()/1000))); - } playerInfoManager.vipFlush(removePrivileges); - //vip刷新后才能发给前端 - if(fBuilder!=null){ + + // vip刷新后才能发给前端 + if(fBuilder != null){ + List privilegeList = new ArrayList<>(); for(Map.Entry vipInfoItem : vipInfo.entrySet()){ privilegeList.add(CommonProto.Privilege.newBuilder() .setId(vipInfoItem.getKey()) @@ -417,25 +415,22 @@ public class PlayerLogic { .build()).collect(Collectors.toSet()); } - public void sendVipDailyOrLevlUpReward(User user, int vipLevel,int reson) throws Exception { + public void sendVipDailyOrLevelUpReward(User user, int reson) throws Exception { int[][] dailyGifts = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getDailyGift(); for(int[] dailyGift : dailyGifts){ int num = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user, dailyGift[1]); - if(num>0){ - Item item = user.getItemManager().getItem(dailyGift[0]); - int hadNum=0; - if(item!=null){ - hadNum=(int)item.getItemNum(); - } - if(hadNum itemMap = new HashMap<>(1); - /* if(reson == BIReason.VIP_LEVEL_REWARD && vipLevel!=0){ - Map privilegePreMap = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevel - 1).getPrivilegeMap(); - hadNum = privilegePreMap.get(dailyGift[1]); - }*/ - itemMap.put(dailyGift[0],(long)num - hadNum); - ItemUtil.addItem(user,itemMap,null, reson); - } + if (num <= 0){ + continue; + } + Item item = user.getItemManager().getItem(dailyGift[0]); + int hadNum=0; + if(item != null){ + hadNum=(int)item.getItemNum(); + } + if(hadNum < num){ + Map itemMap = new HashMap<>(1); + itemMap.put(dailyGift[0],(long)num - hadNum); + ItemUtil.addItem(user,itemMap,null, reson); } } } @@ -1591,8 +1586,10 @@ public class PlayerLogic { cond = getRenownPrivilegeLv(user); break; case GlobalsDef.BRUSHING_LV_UNLOCK: + cond = user.getPlayerInfoManager().getVipPrivilageValue(VipPrivilegeType.SHUACHONG_VIP_LV); + break; case GlobalsDef.THE_ABSOLUTE_BEGINNING_LV_UNLOCK: - cond = user.getPlayerInfoManager().getBtVipLevel().getOrDefault(sPrivilegeTypeConfig.getUnlockType(),0); + cond = user.getPlayerInfoManager().getVipPrivilageValue(VipPrivilegeType.TAICHU_VIP_LV); break; default:{ break; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index c663aa0e4..02bd8075d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -592,14 +592,9 @@ public class BuyGoodsNewLogic { int[][] getbTVIPlevel = config.getbTVIPlevel(); // btVIP等级提升 - if (getbTVIPlevel != null && getbTVIPlevel.length > 0){ + if (getbTVIPlevel != null){ for (int[] vip : getbTVIPlevel) { - int type = vip[0]; - int value = vip[1]; - Integer orDefault = user.getPlayerInfoManager().getBtVipLevel().getOrDefault(type, 0); - if (value > orDefault){ - user.getPlayerInfoManager().putBtVipLevel(type, value); - } + user.getPlayerInfoManager().updateVipPrivilage(vip[0], vip[1]); } LOGGER.info("********************bt vip等级提升:{}", StringUtil.parseArrayToString(getbTVIPlevel)); }