From 919163f51bf9595b9ec668abcaf0723c46732fe4 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Mon, 5 Aug 2019 17:00:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E9=A6=96=E5=86=B2=E5=92=8C?= =?UTF-8?q?=E7=B4=AF=E8=AE=A1=E5=85=85=E5=80=BC=E5=A4=A9=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/GlobalDataManaager.java | 5 ++ .../logic/activity/AbstractActivity.java | 24 +++++-- .../jieling/logic/activity/ActivityLogic.java | 67 ++++++++++++------- .../jieling/logic/activity/ActivityType.java | 2 + .../logic/activity/ActivityTypeEnum.java | 4 +- .../logic/activity/DailyRechargeActivity.java | 24 +++++++ .../logic/activity/ForceStandardActivity.java | 13 +--- .../jieling/logic/activity/IActivity.java | 5 ++ .../jieling/logic/activity/IEventHandler.java | 10 +++ .../logic/activity/LuckyCatActivity.java | 12 ++-- .../logic/activity/RechargeSumActivity.java | 24 +++++++ .../jieling/logic/dao/ActivityMission.java | 3 +- .../ljsd/jieling/logic/dao/RechargeInfo.java | 11 +++ .../jieling/logic/store/BuyGoodsLogic.java | 8 ++- 14 files changed, 164 insertions(+), 48 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IEventHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumActivity.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 355be2d9b..1217db574 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -12,8 +12,11 @@ import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.logic.activity.ActivityType; +import com.ljsd.jieling.logic.activity.ActivityTypeEnum; import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.dao.GuilidManager; +import com.ljsd.jieling.logic.dao.RechargeInfo; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; import com.ljsd.jieling.logic.dao.UserMissionManager; import com.ljsd.jieling.logic.dao.root.GlobalSystemControl; @@ -250,6 +253,8 @@ public class GlobalDataManaager { ActivityLogic.getInstance().flushEveryDay(user,fBuilder); PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder); user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0); + ActivityLogic.getInstance().resumeActivity(user,ActivityType.DAILY_RECHARGE); + user.getPlayerInfoManager().getRechargeInfo().setDailyFirst(1); FriendLogic.getInstance().refreshState(session); // MapLogic.getInstance().towerAutoReset(session,fBuilder); if(fBuilder!=null){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index c8e819e55..a307ac88e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -10,6 +10,7 @@ import com.ljsd.jieling.logic.dao.ActivityMission; import com.ljsd.jieling.logic.dao.ActivityProgressInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MessageTypeProto; @@ -21,20 +22,35 @@ import org.slf4j.LoggerFactory; import java.util.*; -public abstract class AbstractActivity implements IActivity { +/** + * 玩家无关性 + */ +public abstract class AbstractActivity implements IActivity, IEventHandler { static final Logger LOGGER = LoggerFactory.getLogger(AbstractActivity.class); final int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE; - int id; + int id; //活动id public AbstractActivity(int id) { this.id = id; } + @Override + public void onEvent(GameEvent event) { + + } + @Override public void initActivity(User user) throws Exception { } + @Override + public void onResume(User user) throws Exception { + ActivityManager activityManager = user.getActivityManager(); + activityManager.removeActivity(id); + activityManager.initAllActivityMission(id); + } + @Override public void update(User user, int count) { ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); @@ -91,12 +107,12 @@ public abstract class AbstractActivity implements IActivity { if (!takeRewardsProcess(session, sActivityRewardConfig, activityProgressInfo)) { return; } - //upto client and db + //up miss int[][] reward = sActivityRewardConfig.getReward(); CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); activityProgressInfo.setState(ActivityType.HAD_TAKED); activityMission.updateProgressInfo(missionId, activityProgressInfo); - + //send sendActivityProgress(session, activityMission, Collections.singleton(missionId)); KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId); PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); 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 a61087d6d..86e5a2e00 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 @@ -245,46 +245,62 @@ public class ActivityLogic { } - public void updateActivityMissionProgress(User user,int activityType,int count){ + public void updateActivityMissionProgress(User user, int activityType, int count) { - ActivityManager activityManager = user.getActivityManager(); - Map activityMissionMap = activityManager.getActivityMissionMap(); - for(Map.Entry item : activityMissionMap.entrySet()){ - ActivityMission activityMission = item.getValue(); - if(activityMission.getActivityState() != ActivityType.OPEN_STATE){ - continue; - } - Integer activityId= item.getKey(); - SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); - int targetActivityType = sGlobalActivity.getType(); - if(targetActivityType != activityType){ - continue; - } - - AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId); + for (Integer id: getOpenActivityIdsByType(user, activityType)) { + AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(id); if (abstractActivity == null) { continue; } - abstractActivity.update(user,count); + abstractActivity.update(user, count); + } + } + + public void resumeActivity(User user, int activityType) throws Exception{ + for (Integer id: getOpenActivityIdsByType(user, activityType)) { + AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(id); + if (abstractActivity == null) { + continue; + } + abstractActivity.onResume(user); } } + private Set getOpenActivityIdsByType(User user, int activityType) { + Set ids = new HashSet<>(); + ActivityManager activityManager = user.getActivityManager(); + Map activityMissionMap = activityManager.getActivityMissionMap(); + for (Map.Entry item : activityMissionMap.entrySet()) { + ActivityMission activityMission = item.getValue(); + if (activityMission.getActivityState() != ActivityType.OPEN_STATE) { + continue; + } + Integer activityId = item.getKey(); + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); + int targetActivityType = sGlobalActivity.getType(); + if (targetActivityType != activityType) { + continue; + } + ids.add(activityId); + } + return ids; + } - public void upFivePlayerActivity(User user,int activityType, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder){ + public void upFivePlayerActivity(User user, int activityType, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) { ActivityManager activityManager = user.getActivityManager(); Map activityMissionMap = activityManager.getActivityMissionMap(); - for(Map.Entry item : activityMissionMap.entrySet()){ + for (Map.Entry item : activityMissionMap.entrySet()) { ActivityMission activityMission = item.getValue(); - if(activityMission.getActivityState() != ActivityType.OPEN_STATE){ + if (activityMission.getActivityState() != ActivityType.OPEN_STATE) { continue; } - Integer activityId= item.getKey(); + Integer activityId = item.getKey(); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); int targetActivityType = sGlobalActivity.getType(); - if(targetActivityType != activityType){ + if (targetActivityType != activityType) { continue; } @@ -293,9 +309,12 @@ public class ActivityLogic { continue; } + if(fBuilder==null){ + return; + } long createTime = user.getPlayerInfoManager().getCreateTime(); - int startTime = (int)(sGlobalActivity.getTimeLong(createTime, 1)/1000); - int endTime = (int)(sGlobalActivity.getTimeLong(createTime, 2)/1000); + int startTime = (int) (sGlobalActivity.getTimeLong(createTime, 1) / 1000); + int endTime = (int) (sGlobalActivity.getTimeLong(createTime, 2) / 1000); List missionInfos = abstractActivity.getAllMissInfo(activityMission); fBuilder.addActivityInfo(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).addAllMission(missionInfos).setStartTime(startTime).setEndTime(endTime).setReallyOpen(activityMission.getOpenType()).build()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index 0b7b84b39..271d70213 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -28,5 +28,7 @@ public interface ActivityType { int SERVERHAPPY =10; //七日狂欢 int FORCERANK = 11; //战力排行 int FORCESTANDARD = 12;//战力达标 + int DAILY_RECHARGE = 13;//每日充值 + int RECHARGE_SUM = 14;//累计充值天数 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index 9cb89b59f..cf86525af 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -17,7 +17,9 @@ public enum ActivityTypeEnum { TREASUREACTIVITY(ActivityType.TREASURE, TreasureActivity::new), LUCKYCAT(ActivityType.LUCKYCAT, LuckyCatActivity::new), FORCERANK(ActivityType.FORCERANK, ForceRankActivity::new), - FORCESTANDARD(ActivityType.FORCESTANDARD, ForceStandardActivity::new); + FORCESTANDARD(ActivityType.FORCESTANDARD, ForceStandardActivity::new), + DAILY_RECHARGE(ActivityType.DAILY_RECHARGE, DailyRechargeActivity::new), + RECHARGE_SUM(ActivityType.RECHARGE_SUM, RechargeSumActivity::new); private int type; private Function toActivityFunction; private static HashMap acticityCache = new HashMap<>(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java new file mode 100644 index 000000000..f70eacbe1 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java @@ -0,0 +1,24 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.config.SActivityRewardConfig; +import com.ljsd.jieling.logic.dao.ActivityMission; +import com.ljsd.jieling.logic.dao.ActivityProgressInfo; +import com.ljsd.jieling.network.session.ISession; + +class DailyRechargeActivity extends AbstractActivity { + + public DailyRechargeActivity(int id) { + super(id); + } + + @Override + void updateProgress(ActivityMission activityMission, int count) { + activityMission.setValue(count + activityMission.getValue()); + } + + @Override + boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { + return checkValue(session, sActivityRewardConfig, activityProgressInfo); + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ForceStandardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ForceStandardActivity.java index bef69259b..af451a318 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ForceStandardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ForceStandardActivity.java @@ -3,10 +3,8 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.config.SActivityRewardConfig; import com.ljsd.jieling.logic.dao.ActivityMission; import com.ljsd.jieling.logic.dao.ActivityProgressInfo; -import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.MessageUtil; class ForceStandardActivity extends AbstractActivity { @@ -17,19 +15,12 @@ class ForceStandardActivity extends AbstractActivity { @Override public void initActivity(User user) throws Exception { super.initActivity(user); - update(user,user.getPlayerInfoManager().getMaxForce()); + update(user, user.getPlayerInfoManager().getMaxForce()); } @Override boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { - int[][] values = sActivityRewardConfig.getValues(); - User user = UserManager.getUser(session.getUid()); - int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getValue(); - if (value < values[0][0]) { - MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not"); - return false; - } - return true; + return checkValue(session, sActivityRewardConfig, activityProgressInfo); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IActivity.java index c2db86e1f..4a9fd826a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IActivity.java @@ -19,6 +19,11 @@ public interface IActivity { */ void initActivity(User user) throws Exception; + /** + * 活动重开 + */ + void onResume(User user)throws Exception; + /** * 更新活动记录 */ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IEventHandler.java new file mode 100644 index 000000000..fa4b28004 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IEventHandler.java @@ -0,0 +1,10 @@ +package com.ljsd.jieling.logic.activity; + + +import com.ljsd.jieling.logic.mission.GameEvent; + +public interface IEventHandler { + + void onEvent(GameEvent event); + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java index 34dacecac..076abfade 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java @@ -29,7 +29,7 @@ public class LuckyCatActivity extends AbstractActivity { } @Override - public void initActivity(User user){ + public void initActivity(User user) { ActivityMission mission = new ActivityMission(); List luckyMisionIds = new ArrayList<>(); SLuckyCatConfig.getConfigMapByActivityId(id).values().forEach(sLuckyCatConfig -> @@ -41,7 +41,7 @@ public class LuckyCatActivity extends AbstractActivity { @Override void updateProgress(ActivityMission activityMission, int count) { - activityMission.setValue(count); + activityMission.setValue(count + activityMission.getValue()); } @Override @@ -78,7 +78,7 @@ public class LuckyCatActivity extends AbstractActivity { return; } - if (activityMission.getValue() < sLuckyRewardConfig.getRmbValue()){ + if (activityMission.getValue() < sLuckyRewardConfig.getRmbValue()) { MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "value illegality"); return; } @@ -105,7 +105,7 @@ public class LuckyCatActivity extends AbstractActivity { activityProgressInfo.setState(ActivityType.HAD_TAKED); } - sendActivityProgress(session,activityMission, Collections.singleton(missionId)); + sendActivityProgress(session, activityMission, Collections.singleton(missionId)); //drop int[][] reward = new int[1][]; int[] temp2 = new int[2]; @@ -118,8 +118,8 @@ public class LuckyCatActivity extends AbstractActivity { String nickName = user.getPlayerInfoManager().getNickName(); SItem sItem = SItem.getsItemMap().get(temp2[0]); - String message = SErrorCodeEerverConfig.getI18NMessage("luck_cat_take_reward_content", new Object[]{nickName,sItem.getName(),temp2[1]}); - ChatLogic.getInstance().sendSysChatMessage(message, Global.LUCKCAT,0,0,0,0,0,0); + String message = SErrorCodeEerverConfig.getI18NMessage("luck_cat_take_reward_content", new Object[]{nickName, sItem.getName(), temp2[1]}); + ChatLogic.getInstance().sendSysChatMessage(message, Global.LUCKCAT, 0, 0, 0, 0, 0, 0); PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumActivity.java new file mode 100644 index 000000000..a0bd5f97e --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumActivity.java @@ -0,0 +1,24 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.config.SActivityRewardConfig; +import com.ljsd.jieling.logic.dao.ActivityMission; +import com.ljsd.jieling.logic.dao.ActivityProgressInfo; +import com.ljsd.jieling.network.session.ISession; + +class RechargeSumActivity extends AbstractActivity { + + public RechargeSumActivity(int id) { + super(id); + } + + @Override + void updateProgress(ActivityMission activityMission, int count) { + activityMission.setValue(count + activityMission.getValue()); + } + + @Override + boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { + return checkValue(session, sActivityRewardConfig, activityProgressInfo); + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityMission.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityMission.java index 4667f4748..d182f57db 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityMission.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ActivityMission.java @@ -32,7 +32,7 @@ public class ActivityMission extends MongoBase { openType=0; } activityState = ActivityType.OPEN_STATE; - + value=0; return true; } @@ -42,6 +42,7 @@ public class ActivityMission extends MongoBase { activityProgressInfoMap.put(missionId, new ActivityProgressInfo(0,0)); } openType=1; + value=0; activityState = ActivityType.OPEN_STATE; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java index b38de1cc6..89fb97102 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java @@ -13,6 +13,7 @@ public class RechargeInfo extends MongoBase{ private int isFirst; private long createTime; private int hadBuyFound; + private int isDayFirst; private Map levelBagMap = new HashMap<>(); @@ -79,6 +80,12 @@ public class RechargeInfo extends MongoBase{ isFirst = first; } + public void setDailyFirst(int first) { + updateString("isFirst",first); + isDayFirst = first; + } + + public void setCreateTime(long createTime) { updateString("createTime",createTime); this.createTime = createTime; @@ -120,6 +127,10 @@ public class RechargeInfo extends MongoBase{ return isFirst; } + public int getIsDayFirst() { + return isDayFirst; + } + public int getHadBuyFound() { return hadBuyFound; } 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 573dcace0..c0d4dd0a9 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 @@ -145,6 +145,12 @@ public class BuyGoodsLogic { String content = SErrorCodeEerverConfig.getI18NMessage("recharge_first_txt"); MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sActivityRewardConfig.getReward()),nowTime, Global.MAIL_EFFECTIVE_TIME); } + + if(rechargeInfo.getIsDayFirst()==0){ + ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,price); + ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_SUM,1); + rechargeInfo.setDailyFirst(1); + } if(length>baseReward.length){ int[][] result = new int[length][]; int i=0; @@ -172,7 +178,7 @@ public class BuyGoodsLogic { int saveAmt = rechargeInfo.getSaveAmt(); rechargeInfo.setSaveAmt(price+saveAmt); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,rechargeInfo.getSaveAmt()); - ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,rechargeInfo.getSaveAmt()); + ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,saveAmt); } buyGoodsTimes.put(goodsId,buyCount);