在线奖励领取
parent
64e67ae8a1
commit
84c30317fe
|
@ -1,16 +1,50 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.jbean.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.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
class OnlineRewardActivity extends AbstractActivity {
|
||||
|
||||
public OnlineRewardActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
if(missionId!=-1){
|
||||
return super.takeReward(session, missionId);
|
||||
}
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
List<int[][]> reward = new ArrayList<>();
|
||||
getAllMissRewards(user,session,reward);
|
||||
Map<Integer,Integer> itemMap = new HashMap<>();
|
||||
reward.forEach(n-> Arrays.stream(n).forEach(m->itemMap.put(m[0],itemMap.getOrDefault(m[0],0)+m[1])));
|
||||
|
||||
int[][] rewardArray = ItemUtil.mapToArray(itemMap);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewardArray, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
|
||||
reportTakeActivityReward(user,rewardArray,missionId);
|
||||
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
|
||||
|
@ -20,7 +54,7 @@ class OnlineRewardActivity extends AbstractActivity {
|
|||
long loginTime = session.getUserLoginTime();
|
||||
int limitTime = values[0][0];
|
||||
long remainTime = now - loginTime - limitTime * TimeUtils.ONE_MINUTE + missionProgress * TimeUtils.ONE_SECOND;
|
||||
if (now - loginTime - limitTime * TimeUtils.ONE_MINUTE + missionProgress * TimeUtils.ONE_SECOND < 0) {
|
||||
if (remainTime < 0) {
|
||||
LOGGER.error("the uid={} remain time is={}ms,the require time is={}ms", session.getUid(), remainTime, limitTime * TimeUtils.ONE_MINUTE);
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue