战力排行

back_recharge
zhangshanxue 2019-08-02 13:34:37 +08:00
parent 0f34c27c48
commit 3edd6e7ebc
20 changed files with 241 additions and 76 deletions

View File

@ -43,7 +43,7 @@ public class SLuckyCatConfig implements BaseConfig {
if (!configMapByActivityId.containsKey(id)) { if (!configMapByActivityId.containsKey(id)) {
configMapByActivityId.put(id, new TreeMap<>()); configMapByActivityId.put(id, new TreeMap<>());
} }
configMapByActivityId.get(id).put(sLuckyCatConfig.getActivityId(), sLuckyCatConfig); configMapByActivityId.get(id).put(sLuckyCatConfig.getId(), sLuckyCatConfig);
} }
for (TreeMap<Integer, SLuckyCatConfig> maps : configMapByActivityId.values()) { for (TreeMap<Integer, SLuckyCatConfig> maps : configMapByActivityId.values()) {

View File

@ -108,6 +108,7 @@ public class RedisKey {
public static final String TOWER_RANK = "TOWER_RANK"; public static final String TOWER_RANK = "TOWER_RANK";
public static final String FORCE_RANK = "FORCE_RANK";
public static final String FAMILY_ID = "FAMILY_ID"; public static final String FAMILY_ID = "FAMILY_ID";

View File

@ -0,0 +1,23 @@
package com.ljsd.jieling.handler;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import org.springframework.stereotype.Component;
@Component
public class ForceRankHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.GETF_FORCE_RANK_INFO_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
PlayerInfoProto.GetForceRankInfoRequest getForceRankInfoRequest = PlayerInfoProto.GetForceRankInfoRequest.parseFrom(bytes);
ActivityLogic.getInstance().getForceRank(iSession,getForceRankInfoRequest.getPage(),getForceRankInfoRequest.getActiviteId());
}
}

View File

@ -23,7 +23,7 @@ public class TakeActivityRewardHandler extends BaseHandler {
PlayerInfoProto.TakeActivityRewardRequest takeActivityRewardRequest = PlayerInfoProto.TakeActivityRewardRequest.parseFrom(bytes); PlayerInfoProto.TakeActivityRewardRequest takeActivityRewardRequest = PlayerInfoProto.TakeActivityRewardRequest.parseFrom(bytes);
int missionId = takeActivityRewardRequest.getMissionId(); int missionId = takeActivityRewardRequest.getMissionId();
int activityId = takeActivityRewardRequest.getActivityId(); int activityId = takeActivityRewardRequest.getActivityId();
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId, iSession.getUid()); AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId);
if (abstractActivity == null) { if (abstractActivity == null) {
int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE; int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE;
MessageUtil.sendErrorResponse(iSession, 0, rewardResponseValue, "no_such_activity_type"); MessageUtil.sendErrorResponse(iSession, 0, rewardResponseValue, "no_such_activity_type");

View File

@ -26,11 +26,9 @@ import java.util.Map;
public abstract class AbstractActivity implements IActivity { public abstract class AbstractActivity implements IActivity {
static final Logger LOGGER = LoggerFactory.getLogger(AbstractActivity.class); static final Logger LOGGER = LoggerFactory.getLogger(AbstractActivity.class);
final int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE; final int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE;
int uid;
int id; int id;
public AbstractActivity(int uid, int id) { public AbstractActivity(int id) {
this.uid = uid;
this.id = id; this.id = id;
} }
@ -59,6 +57,10 @@ public abstract class AbstractActivity implements IActivity {
} }
} }
void updateProgress(User user,ActivityMission activityMission, int count) {
updateProgress(activityMission,count);
}
/** /**
* default update to progress * default update to progress
* progress value * progress value
@ -78,7 +80,7 @@ public abstract class AbstractActivity implements IActivity {
@Override @Override
public void takeReward(ISession session, int missionId) throws Exception { public void takeReward(ISession session, int missionId) throws Exception {
User user = UserManager.getUser(uid); User user = UserManager.getUser(session.getUid());
//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) {
@ -119,10 +121,14 @@ public abstract class AbstractActivity implements IActivity {
int[][] values = sActivityRewardConfig.getValues(); int[][] values = sActivityRewardConfig.getValues();
int missionProgress = activityProgressInfo.getProgrss(); int missionProgress = activityProgressInfo.getProgrss();
if (missionProgress < values[0][0]) { if (missionProgress < values[0][0]) {
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", uid, sActivityRewardConfig.getId(), missionProgress, values[0][0]); LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), sActivityRewardConfig.getId(), missionProgress, values[0][0]);
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not"); MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
return false; return false;
} }
return true; return true;
} }
@Override
public void onActivityEnd() throws Exception{ }
} }

View File

@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.*; import com.ljsd.jieling.config.*;
import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.handler.activity.BlessInfoConfig; import com.ljsd.jieling.handler.activity.BlessInfoConfig;
@ -13,6 +15,7 @@ import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ItemUtil;
@ -21,6 +24,7 @@ import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.TimeUtils; import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.ZSetOperations;
import java.util.*; import java.util.*;
@ -54,17 +58,19 @@ public class ActivityLogic {
if(time ==2 ){ if(time ==2 ){
continue; continue;
} }
long startTime = sGlobalActivity.getTimeLong(0,1); long startTime = sGlobalActivity.getTimeLong(0,time);
long endTime = sGlobalActivity.getTimeLong(0,2); long endTime = sGlobalActivity.getTimeLong(0,time);
if(now<startTime){ if(now<startTime){
continue; continue;
} }
if(endTime!=0 && now>endTime && openActivityIds.contains(sGlobalActivity.getId())){ if(endTime!=0 && now>endTime && openActivityIds.contains(sGlobalActivity.getId())){
openActivityIds.remove(sGlobalActivity.getId()); openActivityIds.remove(sGlobalActivity.getId());
ActivityTypeEnum.getActicityType(sGlobalActivity.getId()).onActivityEnd();
continue; continue;
} }
openActivityIds.add(sGlobalActivity.getId()); openActivityIds.add(sGlobalActivity.getId());
} }
for(Map.Entry<Integer,ISession> entry:OnlineUserManager.sessionMap.entrySet()){ for(Map.Entry<Integer,ISession> entry:OnlineUserManager.sessionMap.entrySet()){
User user = UserManager.getUserInMem(entry.getKey()); User user = UserManager.getUserInMem(entry.getKey());
PlayerInfoProto.ActivityUpateIndication.Builder builder = PlayerInfoProto.ActivityUpateIndication.newBuilder(); PlayerInfoProto.ActivityUpateIndication.Builder builder = PlayerInfoProto.ActivityUpateIndication.newBuilder();
@ -152,7 +158,7 @@ public class ActivityLogic {
case ActivityType.TREASURE: case ActivityType.TREASURE:
case ActivityType.LUCKYCAT: case ActivityType.LUCKYCAT:
case ActivityType.SERVERHAPPY: case ActivityType.SERVERHAPPY:
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(sGlobalActivity.getId(),user.getId()); AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(sGlobalActivity.getId());
if (abstractActivity == null) { if (abstractActivity == null) {
break; break;
} }
@ -442,7 +448,7 @@ public class ActivityLogic {
continue; continue;
} }
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId,user.getId()); AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId);
if (abstractActivity == null) { if (abstractActivity == null) {
continue; continue;
} }
@ -1007,4 +1013,46 @@ public class ActivityLogic {
return activityMission; return activityMission;
} }
/**
*
*/
public void getForceRank(ISession session,int page,int acitvityId) throws Exception {
if (page == 0) {
page = 1;
}
int start = (page - 1) * 20, end = page * 20 - 1;
List<CommonProto.UseForceInfo> useForceInfoList = new ArrayList<>(20);
Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FORCE_RANK,Integer.toString(acitvityId), start, end);
for(ZSetOperations.TypedTuple<String> item : rankInfo){
String value = item.getValue();
int score =item.getScore().intValue();
int uid = Integer.parseInt(value);
User user = UserManager.getUser(uid);
PlayerManager playerInfoManager = user.getPlayerInfoManager();
CommonProto.UseForceInfo personInfoBuild = CommonProto.UseForceInfo.newBuilder()
.setLeve(playerInfoManager.getLevel())
.setName(playerInfoManager.getNickName())
.setForce(score)
.setRank(++start)
.build();
useForceInfoList.add(personInfoBuild);
}
int uid = session.getUid();
int score = RedisUtil.getInstence().getZSetScore(RedisKey.FORCE_RANK,Integer.toString(acitvityId), Integer.toString(uid)).intValue();
int myRank= RedisUtil.getInstence().getZSetreverseRank(RedisKey.FORCE_RANK,Integer.toString(acitvityId),Integer.toString(uid)).intValue();
PlayerInfoProto.GetForceRankInfoResponse buildResponse = PlayerInfoProto.GetForceRankInfoResponse.newBuilder()
.setMyRank(myRank)
.setMyForce(score)
.addAllUseForceInfo(useForceInfoList)
.build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GETF_FORCE_RANK_INFO_RESPONSE_VALUE,buildResponse,true);
}
} }

View File

@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.SGlobalActivity; import com.ljsd.jieling.config.SGlobalActivity;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.function.Function;
public enum ActivityTypeEnum { public enum ActivityTypeEnum {
@ -18,42 +19,42 @@ public enum ActivityTypeEnum {
FORCERANK(ActivityType.FORCERANK, ForceRankActivity::new), FORCERANK(ActivityType.FORCERANK, ForceRankActivity::new),
FORCESTANDARD(ActivityType.FORCESTANDARD, ForceStandardActivity::new); FORCESTANDARD(ActivityType.FORCESTANDARD, ForceStandardActivity::new);
private int type; private int type;
private BiFunction<Integer, Integer, AbstractActivity> toActivityFunction; private Function<Integer, AbstractActivity> toActivityFunction;
ActivityTypeEnum(int type, BiFunction<Integer, Integer, AbstractActivity> toActivityFunction) { ActivityTypeEnum(int type, Function<Integer, AbstractActivity> toActivityFunction) {
this.type = type; this.type = type;
this.toActivityFunction = toActivityFunction; this.toActivityFunction = toActivityFunction;
} }
public AbstractActivity toActivity(int uid,int id) { public AbstractActivity toActivity(int id) {
return toActivityFunction.apply(uid, id); return toActivityFunction.apply(id);
} }
public static AbstractActivity getActicityType(int id, int uid) { public static AbstractActivity getActicityType(int id) {
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
switch ( sGlobalActivity.getType()) { switch ( sGlobalActivity.getType()) {
case ActivityType.OnlineReward: case ActivityType.OnlineReward:
return ONLINEREWARD.toActivity(uid,id); return ONLINEREWARD.toActivity(id);
case ActivityType.SevenLogin: case ActivityType.SevenLogin:
return SEVENLOGIN.toActivity(uid,id); return SEVENLOGIN.toActivity(id);
case ActivityType.ChapterReward: case ActivityType.ChapterReward:
return CHAPTERREWARD.toActivity(uid,id); return CHAPTERREWARD.toActivity(id);
case ActivityType.FirstRecharge: case ActivityType.FirstRecharge:
return FIRSTRECHARGE.toActivity(uid,id); return FIRSTRECHARGE.toActivity(id);
case ActivityType.RechargeTotal: case ActivityType.RechargeTotal:
return RECHARGETOTAL.toActivity(uid,id); return RECHARGETOTAL.toActivity(id);
case ActivityType.GrowthFund: case ActivityType.GrowthFund:
return GROWTHFUND.toActivity(uid,id); return GROWTHFUND.toActivity(id);
case ActivityType.BLESSACTIVITY: case ActivityType.BLESSACTIVITY:
return BLESSACTIVITY.toActivity(uid,id); return BLESSACTIVITY.toActivity(id);
case ActivityType.TREASURE: case ActivityType.TREASURE:
return TREASUREACTIVITY.toActivity(uid,id); return TREASUREACTIVITY.toActivity(id);
case ActivityType.LUCKYCAT: case ActivityType.LUCKYCAT:
return LUCKYCAT.toActivity(uid,id); return LUCKYCAT.toActivity(id);
case ActivityType.FORCERANK: case ActivityType.FORCERANK:
return FORCERANK.toActivity(uid,id); return FORCERANK.toActivity(id);
case ActivityType.FORCESTANDARD: case ActivityType.FORCESTANDARD:
return FORCESTANDARD.toActivity(uid,id); return FORCESTANDARD.toActivity(id);
default: default:
return null; return null;
} }

View File

@ -1,12 +1,10 @@
package com.ljsd.jieling.logic.activity; package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.logic.dao.root.User;
public class BlessActivity extends AbstractActivity { public class BlessActivity extends AbstractActivity {
public BlessActivity(int uid, int id) { public BlessActivity(int id) {
super(uid, id); super(id);
} }
} }

View File

@ -11,14 +11,14 @@ import com.ljsd.jieling.util.MessageUtil;
class ChapterRewardActivity extends AbstractActivity { class ChapterRewardActivity extends AbstractActivity {
public ChapterRewardActivity(int uid, int id) { public ChapterRewardActivity(int id) {
super(uid, id); super(id);
} }
@Override @Override
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
int[][] values = sActivityRewardConfig.getValues(); int[][] values = sActivityRewardConfig.getValues();
User user = UserManager.getUser(uid); User user = UserManager.getUser(session.getUid());
LevelDifficulty levelDifficulty = user.getLevelDifficultyManager().getLevelDifficultyInfosMap().get(values[0][0]); LevelDifficulty levelDifficulty = user.getLevelDifficultyManager().getLevelDifficultyInfosMap().get(values[0][0]);
if (levelDifficulty == null || levelDifficulty.getState() != Global.FIGHT_CLEARANCE) { if (levelDifficulty == null || levelDifficulty.getState() != Global.FIGHT_CLEARANCE) {
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not pass"); MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not pass");

View File

@ -3,7 +3,7 @@ package com.ljsd.jieling.logic.activity;
public class FirstRechargeActivity extends AbstractActivity { public class FirstRechargeActivity extends AbstractActivity {
public FirstRechargeActivity(int uid, int id) { public FirstRechargeActivity(int id) {
super(uid, id); super(id);
} }
} }

View File

@ -2,38 +2,115 @@ package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.SActivityRewardConfig; import com.ljsd.jieling.config.SActivityRewardConfig;
import com.ljsd.jieling.config.SErrorCodeEerverConfig;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.globals.Global;
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.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.TimeUtils;
import org.springframework.data.redis.core.ZSetOperations;
import java.util.*;
class ForceRankActivity extends AbstractActivity { class ForceRankActivity extends AbstractActivity {
public ForceRankActivity(int uid, int id) { public ForceRankActivity(int id) {
super(uid, id); super(id);
} }
@Override @Override
void updateProgress(ActivityMission activityMission, int count) { void updateProgress(User user, ActivityMission activityMission, int count) {
//历史最高 //历史最高
if (count > activityMission.getValue()) if (count > activityMission.getValue()) {
activityMission.setValue(count); activityMission.setValue(count);
String key = RedisKey.getKey(RedisKey.FORCE_RANK, String.valueOf(id), false);
RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), count);
}
} }
@Override @Override
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
return false;
}
@Override
public void onActivityEnd() throws Exception {
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
int maxRank = 0;
Map<Integer, Integer> rank2miss = new HashMap<>();
for (SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs) {
int[][] values = sActivityRewardConfig.getValues(); int[][] values = sActivityRewardConfig.getValues();
if (values[0].length < 3) { if (values[0].length < 3) {
return false; return;
} }
int value = values[0][2]; int up = values[0][0];
int down = values[0][1];
maxRank = Math.max(maxRank, down);
for (Integer rank : getRankSet(up, down)) {
rank2miss.put(rank, sActivityRewardConfig.getId());
}
}
Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FORCE_RANK, Integer.toString(id), 0, maxRank);
int rank = 1;
int nowTime = (int) (TimeUtils.now() / 1000);
for (ZSetOperations.TypedTuple<String> item : rankInfo) {
String value = item.getValue();
int uid = Integer.parseInt(value);
User user = UserManager.getUser(uid);
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
continue;
}
int missionId = rank2miss.get(rank++);
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
if (activityProgressInfo == null || activityProgressInfo.getState() == ActivityType.HAD_TAKED) {
continue;
}
//check value
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
int[][] values = sActivityRewardConfig.getValues();
if (values[0].length < 3) {
continue;
}
int value2 = values[0][2];
int missionProgress = activityProgressInfo.getProgrss(); int missionProgress = activityProgressInfo.getProgrss();
if (missionProgress < value) { if (missionProgress < value2) {
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", uid, sActivityRewardConfig.getId(), missionProgress, values[0][0]); continue;
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
return false;
} }
return true; //sendmail
String content = SErrorCodeEerverConfig.getI18NMessage("powerrank_activity_title");
String title = SErrorCodeEerverConfig.getI18NMessage("powerrank_activity_txt", new Object[]{rank});
String mailReward = ItemUtil.getMailReward(sActivityRewardConfig.getReward());
MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
//暂时不删
// RedisUtil.getInstence().del(key);
} }
}
private Set<Integer> getRankSet(int start, int end) {
Set<Integer> set = new HashSet<>();
if (start > end) {
return set;
}
for (int i = start; i <= end; i++) {
set.add(i);
}
return set;
}
} }

View File

@ -4,8 +4,8 @@ import com.ljsd.jieling.logic.dao.ActivityMission;
class ForceStandardActivity extends AbstractActivity { class ForceStandardActivity extends AbstractActivity {
public ForceStandardActivity(int uid, int id) { public ForceStandardActivity(int id) {
super(uid, id); super(id);
} }
@Override @Override

View File

@ -11,14 +11,14 @@ import com.ljsd.jieling.util.MessageUtil;
class GrowthFundActivity extends AbstractActivity { class GrowthFundActivity extends AbstractActivity {
public GrowthFundActivity(int uid, int id) { public GrowthFundActivity(int id) {
super(uid, id); super(id);
} }
@Override @Override
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
int[][] values = sActivityRewardConfig.getValues(); int[][] values = sActivityRewardConfig.getValues();
User user = UserManager.getUser(uid); User user = UserManager.getUser(session.getUid());
int type = values[0][0]; int type = values[0][0];
int value = values[0][1]; int value = values[0][1];
if(type == 9){ if(type == 9){

View File

@ -8,6 +8,7 @@ public interface IActivity {
/** /**
* *
*
* @param user * @param user
* Todo * Todo
*/ */
@ -20,8 +21,11 @@ public interface IActivity {
/** /**
* *
*
* @param missionId id * @param missionId id
*/ */
void takeReward(ISession session, int missionId) throws Exception; void takeReward(ISession session, int missionId) throws Exception;
void onActivityEnd() throws Exception;
} }

View File

@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.chat.logic.ChatLogic; import com.ljsd.jieling.chat.logic.ChatLogic;
import com.ljsd.jieling.config.SErrorCodeEerverConfig; import com.ljsd.jieling.config.SErrorCodeEerverConfig;
import com.ljsd.jieling.config.SGlobalActivity; import com.ljsd.jieling.config.SGlobalActivity;
import com.ljsd.jieling.config.SItem;
import com.ljsd.jieling.config.SLuckyCatConfig; import com.ljsd.jieling.config.SLuckyCatConfig;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.Global;
@ -26,8 +27,8 @@ import java.util.TreeMap;
public class LuckyCatActivity extends AbstractActivity { public class LuckyCatActivity extends AbstractActivity {
public LuckyCatActivity(int uid, int id) { public LuckyCatActivity(int id) {
super(uid, id); super(id);
} }
@Override @Override
@ -48,7 +49,7 @@ public class LuckyCatActivity extends AbstractActivity {
@Override @Override
public void takeReward(ISession session, int missionId) throws Exception { public void takeReward(ISession session, int missionId) throws Exception {
User user = UserManager.getUser(uid); User user = UserManager.getUser(session.getUid());
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) { if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, ""); MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "");
@ -116,7 +117,9 @@ public class LuckyCatActivity extends AbstractActivity {
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId); KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId);
String nickName = user.getPlayerInfoManager().getNickName(); String nickName = user.getPlayerInfoManager().getNickName();
String message = SErrorCodeEerverConfig.getI18NMessage("luck_cat_take_reward_content", new Object[]{nickName,temp2[0],temp2[1]}); 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); ChatLogic.getInstance().sendSysChatMessage(message, Global.LUCKCAT,0,0,0,0,0,0);
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();

View File

@ -11,8 +11,8 @@ import com.ljsd.jieling.util.TimeUtils;
class OnlineRewardActivity extends AbstractActivity { class OnlineRewardActivity extends AbstractActivity {
public OnlineRewardActivity(int uid, int id) { public OnlineRewardActivity(int id) {
super(uid, id); super(id);
} }
@Override @Override
@ -21,13 +21,13 @@ class OnlineRewardActivity extends AbstractActivity {
int[][] values = sActivityRewardConfig.getValues(); int[][] values = sActivityRewardConfig.getValues();
int missionProgress = activityProgressInfo.getProgrss(); int missionProgress = activityProgressInfo.getProgrss();
long now = TimeUtils.now(); long now = TimeUtils.now();
User user = UserManager.getUser(uid); User user = UserManager.getUser(session.getUid());
PlayerManager playerInfoManager = user.getPlayerInfoManager(); PlayerManager playerInfoManager = user.getPlayerInfoManager();
long loginTime = playerInfoManager.getLoginTime(); long loginTime = playerInfoManager.getLoginTime();
int limitTime = values[0][0]; int limitTime = values[0][0];
long remainTime = now - loginTime - limitTime * TimeUtils.ONE_MINUTE + missionProgress * TimeUtils.ONE_SECOND; 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 (now - loginTime - limitTime * TimeUtils.ONE_MINUTE + missionProgress * TimeUtils.ONE_SECOND < 0) {
LOGGER.error("the uid={} remain time is={}ms,the require time is={}ms", uid, remainTime, limitTime * TimeUtils.ONE_MINUTE); LOGGER.error("the uid={} remain time is={}ms,the require time is={}ms", session.getUid(), remainTime, limitTime * TimeUtils.ONE_MINUTE);
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not"); MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
return false; return false;
} }

View File

@ -11,8 +11,8 @@ import com.ljsd.jieling.util.TimeUtils;
class RechargeTotalActivity extends AbstractActivity { class RechargeTotalActivity extends AbstractActivity {
public RechargeTotalActivity(int uid, int id) { public RechargeTotalActivity(int id) {
super(uid, id); super(id);
} }
@Override @Override
@ -20,11 +20,11 @@ class RechargeTotalActivity extends AbstractActivity {
int[][] values = sActivityRewardConfig.getValues(); int[][] values = sActivityRewardConfig.getValues();
int missionProgress = activityProgressInfo.getProgrss(); int missionProgress = activityProgressInfo.getProgrss();
long now = TimeUtils.now(); long now = TimeUtils.now();
User user = UserManager.getUser(uid); User user = UserManager.getUser(session.getUid());
RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo(); RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
int days = TimeUtils.differentDays(rechargeInfo.getCreateTime(), now) + 1; int days = TimeUtils.differentDays(rechargeInfo.getCreateTime(), now) + 1;
if (missionProgress < values[0][0] || days < values[0][1]) { if (missionProgress < values[0][0] || days < values[0][1]) {
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", uid, sActivityRewardConfig.getId(), missionProgress, values[0][0]); LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), sActivityRewardConfig.getId(), missionProgress, values[0][0]);
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not finish"); MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not finish");
return false; return false;
} }

View File

@ -19,7 +19,7 @@ class SevenLoginActivity extends AbstractActivity {
user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission); user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission);
} }
public SevenLoginActivity(int uid, int id) { public SevenLoginActivity(int id) {
super(uid, id); super(id);
} }
} }

View File

@ -25,8 +25,8 @@ import java.util.Map;
public class TreasureActivity extends AbstractActivity { public class TreasureActivity extends AbstractActivity {
public TreasureActivity(int uid, int id) { public TreasureActivity(int id) {
super(uid, id); super(id);
} }
@Override @Override
@ -48,7 +48,7 @@ public class TreasureActivity extends AbstractActivity {
@Override @Override
public void takeReward(ISession session, int missionId) throws Exception { public void takeReward(ISession session, int missionId) throws Exception {
User user = UserManager.getUser(uid); User user = UserManager.getUser(session.getUid());
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) { if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, ""); MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "");

View File

@ -6,6 +6,8 @@ import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.ActivityType;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.fight.CombatLogic;
@ -216,8 +218,10 @@ public class PlayerLogic {
if(user.getPlayerInfoManager().getMaxForce() < teamForce){ if(user.getPlayerInfoManager().getMaxForce() < teamForce){
user.getPlayerInfoManager().setMaxForce(teamForce); user.getPlayerInfoManager().setMaxForce(teamForce);
user.getUserMissionManager().onGameEvent(user,GameEvent.USER_FORCE_CHANGE); user.getUserMissionManager().onGameEvent(user,GameEvent.USER_FORCE_CHANGE);
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FORCERANK,teamForce,null);
} }
} }
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.USER_FORCE_CHANGE_RESPONSE_VALUE,null,true); MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.USER_FORCE_CHANGE_RESPONSE_VALUE,null,true);
} }