acitvity
parent
8c5e6a4cba
commit
3844229238
|
@ -97,75 +97,90 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
||||||
* 重写此类 记得重写onActivityEndOnMySelf 否者活动结束走默认配置表发邮件奖
|
* 重写此类 记得重写onActivityEndOnMySelf 否者活动结束走默认配置表发邮件奖
|
||||||
*/
|
*/
|
||||||
@Override
|
@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());
|
||||||
|
//check cfg
|
||||||
|
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||||
|
if (sActivityRewardConfig == null || sActivityRewardConfig.getActivityId() != id) {
|
||||||
|
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//check state
|
||||||
|
ActivityManager activityManager = user.getActivityManager();
|
||||||
|
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||||
|
if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
|
||||||
|
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "activity_close");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
|
||||||
|
if (activityProgressInfo == null || activityProgressInfo.getState() == ActivityType.HAD_TAKED) {
|
||||||
|
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "had taked");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//take rewards check
|
||||||
|
if (!takeRewardsProcess(session, sActivityRewardConfig, activityProgressInfo)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//up miss
|
||||||
|
int[][] reward = sActivityRewardConfig.getReward();
|
||||||
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||||
|
checkAndSetProgress(activityMission, activityProgressInfo, sActivityRewardConfig, missionId);
|
||||||
|
//send
|
||||||
|
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
||||||
|
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId);
|
||||||
|
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||||
|
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void takeAllReward(ISession session) throws Exception {
|
||||||
|
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
List<Integer> misssIds = new LinkedList<>();
|
List<Integer> misssIds = new LinkedList<>();
|
||||||
|
|
||||||
if (missid == -1) {
|
List<SActivityRewardConfig> cfgs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||||
List<SActivityRewardConfig> cfgs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
if (null == cfgs) {
|
||||||
if (null == cfgs) {
|
return;
|
||||||
return false;
|
}
|
||||||
}
|
for (SActivityRewardConfig sActivityRewardConfig : cfgs) {
|
||||||
for (SActivityRewardConfig sActivityRewardConfig : cfgs) {
|
misssIds.add(sActivityRewardConfig.getId());
|
||||||
misssIds.add(sActivityRewardConfig.getId());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
misssIds.add(missid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<int[][]> itemArrs = new LinkedList<>();
|
List<int[][]> itemArrs = new LinkedList<>();
|
||||||
for (Integer missionId : misssIds) {
|
for (Integer missionId : misssIds) {
|
||||||
//check cfg
|
//check cfg
|
||||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||||
if (sActivityRewardConfig == null || sActivityRewardConfig.getActivityId() != id) {
|
if (sActivityRewardConfig == null || sActivityRewardConfig.getActivityId() != id) {
|
||||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "");
|
continue;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
//check state
|
//check state
|
||||||
ActivityManager activityManager = user.getActivityManager();
|
ActivityManager activityManager = user.getActivityManager();
|
||||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||||
if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
|
if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
|
||||||
if (missid != -1)
|
continue;
|
||||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "activity_close");
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
|
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
|
||||||
if (activityProgressInfo == null || activityProgressInfo.getState() == ActivityType.HAD_TAKED) {
|
if (activityProgressInfo == null || activityProgressInfo.getState() == ActivityType.HAD_TAKED) {
|
||||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "had taked");
|
continue;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
//take rewards check
|
//take rewards check
|
||||||
if (!takeRewardsProcess(session, sActivityRewardConfig, activityProgressInfo)) {
|
if (!takeRewardsProcess(session, sActivityRewardConfig, activityProgressInfo)) {
|
||||||
return false;
|
continue;
|
||||||
}
|
}
|
||||||
//up miss
|
//up miss
|
||||||
int[][] reward = sActivityRewardConfig.getReward();
|
int[][] reward = sActivityRewardConfig.getReward();
|
||||||
if (missid == -1) {
|
itemArrs.add(reward);
|
||||||
itemArrs.add(reward);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
|
||||||
checkAndSetProgress(activityMission, activityProgressInfo, sActivityRewardConfig, missionId);
|
|
||||||
//send
|
|
||||||
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
|
||||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId);
|
|
||||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
|
||||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||||
if (null == sGlobalActivity)
|
if (null == sGlobalActivity)
|
||||||
return false;
|
return;
|
||||||
String title = SErrorCodeEerverConfig.getI18NMessage("receive_activity_title", new Object[]{sGlobalActivity.getSesc()});
|
String title = SErrorCodeEerverConfig.getI18NMessage("receive_activity_title", new Object[]{sGlobalActivity.getSesc()});
|
||||||
String content = SErrorCodeEerverConfig.getI18NMessage("receive_activity_txt", new Object[]{sGlobalActivity.getSesc()});
|
String content = SErrorCodeEerverConfig.getI18NMessage("receive_activity_txt", new Object[]{sGlobalActivity.getSesc()});
|
||||||
|
|
||||||
String mailReward = ItemUtil.getMailReward(itemArrs);
|
String mailReward = ItemUtil.getMailReward(itemArrs);
|
||||||
int nowTime = (int) (TimeUtils.now() / 1000);
|
int nowTime = (int) (TimeUtils.now() / 1000);
|
||||||
MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
|
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) {
|
void checkAndSetProgress(ActivityMission activityMission, ActivityProgressInfo activityProgressInfo, SActivityRewardConfig sActivityRewardConfig, int missionId) {
|
||||||
|
@ -218,14 +233,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityEndOnMySelf(User user) throws Exception {
|
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
|
@Override
|
||||||
public void onActivityEndDealReward(User user) throws Exception {
|
public void onActivityEndDealReward(User user) throws Exception {
|
||||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||||
takeReward(sessionByUid, -1);
|
takeAllReward(sessionByUid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission) {
|
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission) {
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.ljsd.jieling.logic.activity;
|
||||||
|
|
||||||
import com.ljsd.jieling.config.SActivityRewardConfig;
|
import com.ljsd.jieling.config.SActivityRewardConfig;
|
||||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
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.ActivityMission;
|
||||||
import com.ljsd.jieling.logic.dao.ActivityProgressInfo;
|
import com.ljsd.jieling.logic.dao.ActivityProgressInfo;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
@ -21,7 +20,7 @@ class DailyRechargeActivity extends AbstractActivity {
|
||||||
public void onResume(User user) throws Exception {
|
public void onResume(User user) throws Exception {
|
||||||
//每日充值 补发前日未领取的奖
|
//每日充值 补发前日未领取的奖
|
||||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||||
takeReward(sessionByUid, -1);
|
takeAllReward(sessionByUid);
|
||||||
super.onResume(user);
|
super.onResume(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue