【恢复100档首充奖励】2
parent
726c98f3ab
commit
928c266645
|
|
@ -1,14 +1,22 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SLuxuryFund;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -23,45 +31,115 @@ class RechargeTotalActivity extends AbstractActivity {
|
|||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
long now = TimeUtils.now();
|
||||
public void initActivity(User user) throws Exception {
|
||||
ActivityMission mission = new ActivityMission();
|
||||
// 初始化阶段奖励
|
||||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
LOGGER.info("累计充值初始化..."+id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 领取奖励
|
||||
* @param session
|
||||
* @param missionId
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
NewRechargeInfo rechargeInfo = user.getPlayerInfoManager().getNewRechargeInfo();
|
||||
int days = TimeUtils.differentDaysByHour(rechargeInfo.getFirstTime(), now,0) + 1;
|
||||
if (missionProgress <= 0 || days < values[0][1]) {
|
||||
// activity check
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (mission == null){
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE,"活动信息不存在:"+id);
|
||||
}
|
||||
// 获取活动标签信息
|
||||
SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
ActivityProgressInfo info = mission.getActivityMissionMap().get(missionId);
|
||||
// 条件判断
|
||||
int state = getState(user, config, info);
|
||||
if (state != 2){
|
||||
return false;
|
||||
}
|
||||
// 改库
|
||||
info = new ActivityProgressInfo();
|
||||
checkAndSetProgress(mission,info,missionId);
|
||||
// reward
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, config.getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,config.getReward(),missionId);
|
||||
return true;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(User user, ActivityMission activityMission, Set<Integer> filter) {
|
||||
// Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
// List<CommonProto.ActivityInfo.MissionInfo> missionInfos = new ArrayList<>(activityProgressInfoMap.size());
|
||||
// long openTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime());
|
||||
// for (Map.Entry<Integer, ActivityProgressInfo> missionProgress : activityProgressInfoMap.entrySet()) {
|
||||
// if (filter != null && !filter.contains(missionProgress.getKey())) {
|
||||
// continue;
|
||||
// }
|
||||
// Integer missionId = missionProgress.getKey();
|
||||
// SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
// if (sActivityRewardConfig == null) {
|
||||
// continue;
|
||||
// }
|
||||
// if(id == ActivityType.RechargeTotal){
|
||||
// // 2021-12-22 09:00:00 之后开的服,首充不显示累充满100元任务
|
||||
// if (openTime > 1640134800000L) {
|
||||
// int value = sActivityRewardConfig.getValues()[0][0];
|
||||
// if (value == 100) {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// ActivityProgressInfo activityProgressInfo = missionProgress.getValue();
|
||||
// missionInfos.add(CommonProto.ActivityInfo.MissionInfo.newBuilder().setMissionId(missionId).setProgress(activityProgressInfo.getProgrss()).setState(activityProgressInfo.getState()).build());
|
||||
// }
|
||||
// return missionInfos;
|
||||
// }
|
||||
/**
|
||||
* 获取状态
|
||||
* 0:未完成
|
||||
* 1:已领取
|
||||
* 2:可领取
|
||||
* @param user
|
||||
* @param config
|
||||
* @param info
|
||||
* @return
|
||||
*/
|
||||
int getState(User user, SActivityRewardConfig config, ActivityProgressInfo info){
|
||||
// 表里为空
|
||||
if (config == null){
|
||||
return 0;
|
||||
}
|
||||
// 数据库已保存且状态为已领取
|
||||
if (info != null && info.getState() == 1){
|
||||
return 1;
|
||||
}
|
||||
long now = TimeUtils.now();
|
||||
NewRechargeInfo rechargeInfo = user.getPlayerInfoManager().getNewRechargeInfo();
|
||||
int days = TimeUtils.differentDaysByHour(rechargeInfo.getFirstTime(), now,0) + 1;
|
||||
// 判断金额和天数
|
||||
if (rechargeInfo.getRr() >= config.getValues()[0][0] && days >= config.getValues()[0][1]){
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(User user, ActivityMission activityMission, Set<Integer> filter) {
|
||||
if (activityMission == null){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
// 库里存储的
|
||||
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityMissionMap();
|
||||
// 表里的
|
||||
List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missionInfos = new ArrayList<>(rewardConfigs.size());
|
||||
|
||||
int progress = (int) (user.getPlayerInfoManager().getNewRechargeInfo().getRr() * 1000);
|
||||
for (SActivityRewardConfig config : rewardConfigs) {
|
||||
ActivityProgressInfo info = progressInfoMap.get(config.getId());
|
||||
int state = getState(user, config, info);
|
||||
state = state == 1?1:0;
|
||||
CommonProto.ActivityInfo.MissionInfo build = CommonProto.ActivityInfo.MissionInfo.newBuilder()
|
||||
.setMissionId(config.getId())
|
||||
.setProgress(progress)
|
||||
.setState(state)
|
||||
.build();
|
||||
missionInfos.add(build);
|
||||
}
|
||||
return missionInfos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(User user, int count) {
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if(null == activityMission){
|
||||
return;
|
||||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue