back_recharge
zhangshanxue 2019-08-13 10:07:57 +08:00
parent 8c5e6a4cba
commit 3844229238
2 changed files with 52 additions and 46 deletions

View File

@ -97,26 +97,9 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
* onActivityEndOnMySelf
*/
@Override
public boolean takeReward(ISession session, int missid) throws Exception {
public boolean takeReward(ISession session, int missionId) throws Exception {
User user = UserManager.getUser(session.getUid());
List<Integer> misssIds = new LinkedList<>();
if (missid == -1) {
List<SActivityRewardConfig> cfgs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
if (null == cfgs) {
return false;
}
for (SActivityRewardConfig sActivityRewardConfig : cfgs) {
misssIds.add(sActivityRewardConfig.getId());
}
} else {
misssIds.add(missid);
}
List<int[][]> itemArrs = new LinkedList<>();
for (Integer missionId : misssIds) {
//check cfg
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
if (sActivityRewardConfig == null || sActivityRewardConfig.getActivityId() != id) {
@ -127,7 +110,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
ActivityManager activityManager = user.getActivityManager();
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
if (missid != -1)
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "activity_close");
return false;
}
@ -142,10 +124,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
}
//up miss
int[][] reward = sActivityRewardConfig.getReward();
if (missid == -1) {
itemArrs.add(reward);
continue;
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
checkAndSetProgress(activityMission, activityProgressInfo, sActivityRewardConfig, missionId);
//send
@ -156,16 +134,53 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
return true;
}
void takeAllReward(ISession session) throws Exception {
User user = UserManager.getUser(session.getUid());
List<Integer> misssIds = new LinkedList<>();
List<SActivityRewardConfig> cfgs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
if (null == cfgs) {
return;
}
for (SActivityRewardConfig sActivityRewardConfig : cfgs) {
misssIds.add(sActivityRewardConfig.getId());
}
List<int[][]> itemArrs = new LinkedList<>();
for (Integer missionId : misssIds) {
//check cfg
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
if (sActivityRewardConfig == null || sActivityRewardConfig.getActivityId() != id) {
continue;
}
//check state
ActivityManager activityManager = user.getActivityManager();
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
continue;
}
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
if (activityProgressInfo == null || activityProgressInfo.getState() == ActivityType.HAD_TAKED) {
continue;
}
//take rewards check
if (!takeRewardsProcess(session, sActivityRewardConfig, activityProgressInfo)) {
continue;
}
//up miss
int[][] reward = sActivityRewardConfig.getReward();
itemArrs.add(reward);
}
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if (null == sGlobalActivity)
return false;
return;
String title = SErrorCodeEerverConfig.getI18NMessage("receive_activity_title", new Object[]{sGlobalActivity.getSesc()});
String content = SErrorCodeEerverConfig.getI18NMessage("receive_activity_txt", new Object[]{sGlobalActivity.getSesc()});
String mailReward = ItemUtil.getMailReward(itemArrs);
int nowTime = (int) (TimeUtils.now() / 1000);
MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
return true;
}
void checkAndSetProgress(ActivityMission activityMission, ActivityProgressInfo activityProgressInfo, SActivityRewardConfig sActivityRewardConfig, int missionId) {
@ -218,14 +233,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
@Override
public void onActivityEndOnMySelf(User user) throws Exception {
// List<SActivityRewardConfig> cfgs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
// if (null == cfgs) {
// return;
// }
// for (SActivityRewardConfig sActivityRewardConfig : cfgs) {
// ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
// takeReward(sessionByUid, sActivityRewardConfig.getId());
// }
}
/**
@ -234,7 +241,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
@Override
public void onActivityEndDealReward(User user) throws Exception {
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
takeReward(sessionByUid, -1);
takeAllReward(sessionByUid);
}
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission) {

View File

@ -2,7 +2,6 @@ package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.SActivityRewardConfig;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.ActivityManager;
import com.ljsd.jieling.logic.dao.ActivityMission;
import com.ljsd.jieling.logic.dao.ActivityProgressInfo;
import com.ljsd.jieling.logic.dao.root.User;
@ -21,7 +20,7 @@ class DailyRechargeActivity extends AbstractActivity {
public void onResume(User user) throws Exception {
//每日充值 补发前日未领取的奖
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
takeReward(sessionByUid, -1);
takeAllReward(sessionByUid);
super.onResume(user);
}