From 9353c18322ca6d3aed645c491568bd8b7d034ea8 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 6 Jun 2019 16:53:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=AD=E4=B9=B0=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/common/mogodb/test/TestMongo.java | 5 +-- .../jieling/logic/activity/ActivityLogic.java | 2 +- .../jieling/logic/dao/UserMissionManager.java | 5 +-- .../event/DailyRefreshEventProcess.java | 2 +- .../event/VipLevelUpEventProcessor.java | 2 +- .../mission/main/AbstractMissionType.java | 2 +- .../mission/main/DailyMissionIdsType.java | 2 +- .../logic/mission/main/VipMissionIdsType.java | 8 ++++- .../jieling/logic/player/PlayerLogic.java | 34 ++++++------------- .../jieling/logic/store/BuyGoodsLogic.java | 17 +++++++++- 10 files changed, 42 insertions(+), 37 deletions(-) diff --git a/common/src/main/java/com/ljsd/common/mogodb/test/TestMongo.java b/common/src/main/java/com/ljsd/common/mogodb/test/TestMongo.java index d3dac66ba..a80825179 100644 --- a/common/src/main/java/com/ljsd/common/mogodb/test/TestMongo.java +++ b/common/src/main/java/com/ljsd/common/mogodb/test/TestMongo.java @@ -20,10 +20,7 @@ public class TestMongo { public static void main(String[] args) { try { ljsdMongoTemplate = getLjsdMongoTemplate(); - // save(); - PlayerForTest one = findOne(); - update(one); - System.out.println(); + } catch (UnknownHostException e) { e.printStackTrace(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index ef500fbdc..1ca3efe78 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -387,7 +387,7 @@ public class ActivityLogic { for(int i=1;i<=randCount;i++){ int secretBoxRandomPool = getSecretBoxRandomPool(sDifferDemonsBoxSetting, count + i); int[] dropInfos = getSecretBoxRewardByPool(secretBoxRandomPool); - randDrop[i] = dropInfos; + randDrop[i-1] = dropInfos; } secretBoxManager.setCount(secretBoxManager.getCount()+randCount); CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, randDrop,BIReason.TAKE_SECRET_REWARD); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index f750e330b..a00c1d389 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -24,14 +24,14 @@ public class UserMissionManager extends MongoBase { private CumulationData cumulationData = new CumulationData(); private CumulationData dailyCumulationData = new CumulationData(); - public void openMission(User user,GameEvent event, Object... parm){ + public void openMission(User user,GameEvent event,Map> missionTypeEnumListMap, Object... parm){ switch (event){ case VIP_LEVLUP:{ int vipLevle= (int)parm[0]; SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevle); int[] openRules = sVipLevelConfig.getOpenRules(); for(int missionId:openRules){ - vipMissionIdsType.openMission(user,missionId); + vipMissionIdsType.openMission(user,missionId,missionTypeEnumListMap.get(GameMisionType.VIPMISSION)); } updateString("vipMissionIdsType",vipMissionIdsType); } @@ -62,6 +62,7 @@ public class UserMissionManager extends MongoBase { switch (gameEvent){ case VIP_MISSION_REWARD:{ vipMissionIdsType.rewardMission((int)parm[0], missionTypeEnumListMap.get(GameMisionType.VIPMISSION)); + updateString("vipMissionIdsType",vipMissionIdsType); } break; case DAILY_MISSION_REWARD:{ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/DailyRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/DailyRefreshEventProcess.java index afb070126..07cef06ed 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/DailyRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/DailyRefreshEventProcess.java @@ -11,6 +11,6 @@ import java.util.Map; public class DailyRefreshEventProcess implements BaseGameEventProcessor { @Override public void onGameEvent(User user, Map> misionTypeListMap, GameEvent event, Object... parm) throws Exception { - user.getUserMissionManager().openMission(user,event, parm); + user.getUserMissionManager().openMission(user,event,misionTypeListMap, parm); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/VipLevelUpEventProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/VipLevelUpEventProcessor.java index 9634bfdb6..95e8c8386 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/VipLevelUpEventProcessor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/VipLevelUpEventProcessor.java @@ -12,6 +12,6 @@ import java.util.Map; public class VipLevelUpEventProcessor implements BaseGameEventProcessor { @Override public void onGameEvent(User user, Map> missionTypeEnumListMap, GameEvent event, Object... parm) { - user.getUserMissionManager().openMission(user,event, parm); + user.getUserMissionManager().openMission(user,event, missionTypeEnumListMap,parm); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java index 7365979e0..2a8a97668 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java @@ -19,7 +19,7 @@ public abstract class AbstractMissionType { //已领取的任务,在可控范围内,使用map存储,利于查找 private BitSet rewardedMissionIds = new BitSet(1024); - public abstract void openMission(User user,int missionId); + public abstract void openMission(User user,int missionId,List missionTypeEnumList); public abstract int[][] reward(int missionId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/DailyMissionIdsType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/DailyMissionIdsType.java index 1d99f5e95..057eb1ae1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/DailyMissionIdsType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/DailyMissionIdsType.java @@ -13,7 +13,7 @@ import java.util.Set; public class DailyMissionIdsType extends AbstractMissionType{ @Override - public void openMission(User user, int missionId) { + public void openMission(User user, int missionId,List missionTypeEnumList) { getDoingMissionIds().clear(); getFinishMissionIds().clear(); getDoingMissionIds().add(missionId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/VipMissionIdsType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/VipMissionIdsType.java index 65a2ddb51..ae3c65100 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/VipMissionIdsType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/VipMissionIdsType.java @@ -16,7 +16,7 @@ public class VipMissionIdsType extends AbstractMissionType{ } @Override - public void openMission(User user,int missionId) { + public void openMission(User user,int missionId,List missionTypeEnumList) { if(!checkIsNew(missionId)){ return; } @@ -24,8 +24,14 @@ public class VipMissionIdsType extends AbstractMissionType{ boolean isFinish = MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getCumulationData(),sTaskConfig.getTaskType(),sTaskConfig.getTaskValue()[0])>=sTaskConfig.getTaskValue()[1]; if(!isFinish){ addDoingMission(missionId); + /* MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId, + MissionState.DOING, null); + missionTypeEnumList.add(doingInfo);*/ }else{ addFinishMissionId(missionId); + /* MissionStateChangeInfo finishInfo = new MissionStateChangeInfo(missionId, + MissionState.FINISH, null); + missionTypeEnumList.add(finishInfo);*/ } 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 fabcd90ff..3996b381e 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 @@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.Map; +import java.util.Set; public class PlayerLogic { private static final Logger LOGGER = LoggerFactory.getLogger(MailLogic.class); @@ -153,15 +154,20 @@ public class PlayerLogic { int uid = session.getUid(); User user = UserManager.getUser(uid); PlayerManager playerInfoManager = user.getPlayerInfoManager(); - if(playerInfoManager.getHadTakeDailyBoxVip() == 0){ - MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,"not take the vip level reward"); + if(playerInfoManager.getHadTakeDailyBoxVip() == -1){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,"not take the vip daily reward"); + return; + } + Set doingMissionIds = user.getUserMissionManager().getVipMissionIdsType().getDoingMissionIds(); + if(!doingMissionIds.isEmpty()){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,"not finfish"); return; } int vipLevel = playerInfoManager.getVipLevel(); playerInfoManager.updateVipInfo(user,vipLevel+1); CommonProto.VipMissionInfo vipMissionResponse = MissionLoigc.getVipMissionResponse(user); PlayerInfoProto.VipLevelUpResponse build = PlayerInfoProto.VipLevelUpResponse.newBuilder().setVipMissionInfo(vipMissionResponse).build(); - MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,build,true); + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,null,true); } public void takeVipLevelRewad(ISession session,int type) throws Exception { @@ -180,7 +186,7 @@ public class PlayerLogic { rewards = sVipLevelConfig.getVipBoxReward(); reson = BIReason.TAKE_VIP_LEVEL_REWARD; }else if(type == 2){ - if(playerInfoManager.getHadTakeDailyBoxVip() == 1 || playerInfoManager.getHadTakeLevelBoxVip() == -1 ){ + if(playerInfoManager.getHadTakeDailyBoxVip() != -1 || playerInfoManager.getHadTakeLevelBoxVip() == 0 ){ MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_TAKE_REWARD_RESPONSE_VALUE,"had taked the vip daily reward"); return; } @@ -230,24 +236,4 @@ public class PlayerLogic { } } - - - public void updateRechargeInfo(ISession session,int money) throws Exception { - int uid = session.getUid(); - User user = UserManager.getUser(uid); - PlayerManager playerInfoManager = user.getPlayerInfoManager(); - RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo(); - int saveAmt = rechargeInfo.getSaveAmt(); - PlayerInfoProto.RechargeInfoResponse.Builder builder = PlayerInfoProto.RechargeInfoResponse.newBuilder(); - if(saveAmt == 0){ - ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,1); - SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0); - int[][] reward = sActivityRewardConfig.getReward(); - builder.setDrop(ItemUtil.drop(user,reward,BIReason.FIRST_RECHARGE_REWARD)); - } - int totalMoney = saveAmt + money; - rechargeInfo.setSaveAmt(totalMoney); - - MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.RECHARGE_INFO_RESPONSE_VALUE,builder.build(),true); - } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 7d2d27b35..51479be12 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -42,6 +42,7 @@ public class BuyGoodsLogic { } public static void sendGoods(int uid,int goodsId) throws Exception { + LOGGER.info("send to uid={},the goods={}",uid,goodsId); User user = UserManager.getUser(uid); SRechargeCommodityConfig sRechargeCommodityConfig = SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsId); RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo(); @@ -52,6 +53,11 @@ public class BuyGoodsLogic { } buyCount=buyCount+1; int limit = sRechargeCommodityConfig.getLimit(); + int type = sRechargeCommodityConfig.getType(); + if(type==4 && rechargeInfo.getHadBuyFound()==1){ + LOGGER.error("the uid={},hadBuyFound",uid); + return; + } if(limit!=0){ if(buyCount>limit){ LOGGER.error("the uid={},the goodId={}, is over limit={}",uid,goodsId,buyCount); @@ -59,13 +65,15 @@ public class BuyGoodsLogic { } } + int[][] baseReward = sRechargeCommodityConfig.getBaseReward(); int length = baseReward.length; CommonProto.Drop.Builder drop = null; if(buyCount == 1){ - int type = sRechargeCommodityConfig.getType(); + if(type == 4){ + rechargeInfo.setHadBuyFound(1); ActivityLogic.getInstance().openActivityReallyOpen(user, ActivityType.GrowthFund); } int[][] firstMultiple = sRechargeCommodityConfig.getFirstMultiple(); @@ -96,8 +104,12 @@ public class BuyGoodsLogic { for(int j=0;j0){