东海寻仙修改,排行榜加字段

back_recharge
lvxinran 2020-01-02 16:12:41 +08:00
parent 39b48bf320
commit 12dd7885ce
19 changed files with 100 additions and 44 deletions

View File

@ -1,9 +1,5 @@
package com.ljsd.jieling.handler.activity; package com.ljsd.jieling.handler.activity;
import com.ljsd.jieling.chat.logic.ChatLogic;
import com.ljsd.jieling.config.*;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.activity.AbstractActivity; import com.ljsd.jieling.logic.activity.AbstractActivity;
import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.activity.ActivityType;

View File

@ -1084,7 +1084,7 @@ public class MapLogic {
AbstractRank towerRank = RankContext.getRankEnum(RankEnum.TOWER_RANK.getType()); AbstractRank towerRank = RankContext.getRankEnum(RankEnum.TOWER_RANK.getType());
// TowerRankUtil.getRankNumber(mapManager.getTower(),(int)(mapManager.getCurrTowerTime()/1000)) // TowerRankUtil.getRankNumber(mapManager.getTower(),(int)(mapManager.getCurrTowerTime()/1000))
if(towerRank.getScore(mapManager.getTower(),(int)(mapManager.getCurrTowerTime()/1000))>towerRank.getScoreById(user.getId())){ if(towerRank.getScore(mapManager.getTower(),(int)(mapManager.getCurrTowerTime()/1000))>towerRank.getScoreById(user.getId())){
towerRank.addRank(user.getId(),mapManager.getTower(),(int)mapManager.getCurrTowerTime()/1000); towerRank.addRank(user.getId(),0,mapManager.getTower(),(int)mapManager.getCurrTowerTime()/1000);
// RedisUtil.getInstence().zsetAddOne(RedisKey.getKey(RedisKey.TOWER_RANK,"",false),String.valueOf(user.getId()),TowerRankUtil.getRankNumber(mapManager.getTower(),(int)(mapManager.getCurrTowerTime()/1000))); // RedisUtil.getInstence().zsetAddOne(RedisKey.getKey(RedisKey.TOWER_RANK,"",false),String.valueOf(user.getId()),TowerRankUtil.getRankNumber(mapManager.getTower(),(int)(mapManager.getCurrTowerTime()/1000)));
} }
} }
@ -2124,7 +2124,7 @@ public class MapLogic {
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true);
// String rankKey = RedisKey.getKey(RedisKey.MAINLEVEL_RANK, "", false); // String rankKey = RedisKey.getKey(RedisKey.MAINLEVEL_RANK, "", false);
// RedisUtil.getInstence().zsetAddOne(rankKey, String.valueOf(user.getId()), sMainLevelConfig.getVirtureId()); // RedisUtil.getInstence().zsetAddOne(rankKey, String.valueOf(user.getId()), sMainLevelConfig.getVirtureId());
RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(uid,sMainLevelConfig.getVirtureId()); RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(uid,0,sMainLevelConfig.getVirtureId());
} }
// public void getMainLevelRankInfo(ISession session) throws Exception { // public void getMainLevelRankInfo(ISession session) throws Exception {
@ -2332,7 +2332,7 @@ public class MapLogic {
//排行榜 //排行榜
// String rankKey = RedisKey.getKey(RedisKey.MONSTER_ATTACK_RANK,"", false); // String rankKey = RedisKey.getKey(RedisKey.MONSTER_ATTACK_RANK,"", false);
// RedisUtil.getInstence().zsetAddOneOffsetByTime(rankKey, String.valueOf(user.getId()), checkFightId); // RedisUtil.getInstence().zsetAddOneOffsetByTime(rankKey, String.valueOf(user.getId()), checkFightId);
RankContext.getRankEnum(RankEnum.MONSTER_ATTACK_RANK.getType()).addRank(uid,checkFightId); RankContext.getRankEnum(RankEnum.MONSTER_ATTACK_RANK.getType()).addRank(uid,0,checkFightId);
//归还水滴 //归还水滴
Map<Integer,Integer> itemMap = new HashMap<>(1); Map<Integer,Integer> itemMap = new HashMap<>(1);
itemMap.put( Global.DROP,1); itemMap.put( Global.DROP,1);
@ -2886,7 +2886,7 @@ public class MapLogic {
// User user = UserManager.getUser(session.getUid()); // User user = UserManager.getUser(session.getUid());
int rankEndLine = SSpecialConfig.getIntegerValue(SSpecialConfig.TRIAL_RANKINGSHOWNUM); int rankEndLine = SSpecialConfig.getIntegerValue(SSpecialConfig.TRIAL_RANKINGSHOWNUM);
PlayerInfoProto.RankResponse rankResponse= RankContext.getRankEnum(type).getRank(session.getUid(),1, rankEndLine); PlayerInfoProto.RankResponse rankResponse= RankContext.getRankEnum(type).getRank(session.getUid(),0,1, rankEndLine);
// Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.TOWER_RANK, "", 0, rankEndLine); // Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.TOWER_RANK, "", 0, rankEndLine);

View File

@ -47,7 +47,7 @@ public class FourtyTwoBehavior extends BaseBehavior {
if(towerRank.getScore(mapManager.getTower(),(int)time/1000)>towerRank.getScoreById(user.getId())){ if(towerRank.getScore(mapManager.getTower(),(int)time/1000)>towerRank.getScoreById(user.getId())){
// String key = RedisKey.getKey(RedisKey.TOWER_RANK,"",false); // String key = RedisKey.getKey(RedisKey.TOWER_RANK,"",false);
// RedisUtil.getInstence().zsetAddOne(key,String.valueOf(user.getId()),TowerRankUtil.getRankNumber(mapManager.getTower(),(int)time/1000)); // RedisUtil.getInstence().zsetAddOne(key,String.valueOf(user.getId()),TowerRankUtil.getRankNumber(mapManager.getTower(),(int)time/1000));
towerRank.addRank(user.getId(),mapManager.getTower(),(int)time/1000); towerRank.addRank(user.getId(),0,mapManager.getTower(),(int)time/1000);
} }
} }
user.getUserMissionManager().onGameEvent(user, GameEvent.COPY_TOWER_LEVEL, mapManager.getTower()); user.getUserMissionManager().onGameEvent(user, GameEvent.COPY_TOWER_LEVEL, mapManager.getTower());

View File

@ -121,7 +121,7 @@ public class QuickStartMonsterFighter extends BaseHandler<FightInfoProto.QuickSt
//排行榜 //排行榜
// String rankKey = RedisKey.getKey(RedisKey.MONSTER_ATTACK_RANK,"", false); // String rankKey = RedisKey.getKey(RedisKey.MONSTER_ATTACK_RANK,"", false);
// RedisUtil.getInstence().zsetAddOneOffsetByTime(rankKey, String.valueOf(user.getId()), fightId); // RedisUtil.getInstence().zsetAddOneOffsetByTime(rankKey, String.valueOf(user.getId()), fightId);
RankContext.getRankEnum(RankEnum.MONSTER_ATTACK_RANK.getType()).addRank(uid,fightId); RankContext.getRankEnum(RankEnum.MONSTER_ATTACK_RANK.getType()).addRank(uid,0,fightId);
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sFloodConfig.getReward(), BIReason.MONSTERATTACK_REWARD); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sFloodConfig.getReward(), BIReason.MONSTERATTACK_REWARD);
FightInfoProto.QuickStartMonsterFightResponse builder = FightInfoProto.QuickStartMonsterFightResponse.newBuilder() FightInfoProto.QuickStartMonsterFightResponse builder = FightInfoProto.QuickStartMonsterFightResponse.newBuilder()

View File

@ -212,8 +212,8 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
int[][] reward = sActivityRewardConfig.getReward(); int[][] reward = sActivityRewardConfig.getReward();
itemAttrs.add(reward); itemAttrs.add(reward);
isTake = true; isTake = true;
activityProgressInfo.setState(ActivityType.HAD_TAKED);
} }
if (!isTake) { if (!isTake) {
return; return;
} }
@ -339,4 +339,8 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
return set; return set;
} }
@Override
public void onActivityPreEnd() throws Exception {
}
} }

View File

@ -255,12 +255,12 @@ public class ActivityLogic implements IEventHandler{
for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) {
int activityId = sGlobalActivity.getId(); int activityId = sGlobalActivity.getId();
if (openActivityIds.contains(activityId)) { if (openActivityIds.contains(activityId)) {
if(sGlobalActivity.getGapTime()>0){ // if(sGlobalActivity.getGapTime()>0){
long endTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, sGlobalActivity.getGapTime()); // long endTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, sGlobalActivity.getGapTime());
if(TimeUtils.now()>=endTime){ // if(TimeUtils.now()>=endTime){
goRewardActivity(user,activityId,builder,false); // goRewardActivity(user,activityId,builder,false);
} // }
} // }
int[] ifOpen = sGlobalActivity.getIfOpen(); int[] ifOpen = sGlobalActivity.getIfOpen();
if(ifOpen!=null && ifOpen.length>0){ if(ifOpen!=null && ifOpen.length>0){
if(ifOpen[0]==1){ //创角 if(ifOpen[0]==1){ //创角
@ -389,7 +389,13 @@ public class ActivityLogic implements IEventHandler{
} }
SGlobalActivity sGlobalActivity = sGlobalActivityMap.get(activityId); SGlobalActivity sGlobalActivity = sGlobalActivityMap.get(activityId);
int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000); int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000);
int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000); int endTime;
if(sGlobalActivity.getGapTime()!=0){
endTime = (int) (ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, sGlobalActivity.getGapTime()) / 1000);
}else{
endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);
}
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap(); Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
List<CommonProto.ActivityInfo.MissionInfo> missionInfos = new ArrayList<>(activityProgressInfoMap.size()); List<CommonProto.ActivityInfo.MissionInfo> missionInfos = new ArrayList<>(activityProgressInfoMap.size());
for (Map.Entry<Integer, ActivityProgressInfo> missionProgress : activityProgressInfoMap.entrySet()) { for (Map.Entry<Integer, ActivityProgressInfo> missionProgress : activityProgressInfoMap.entrySet()) {

View File

@ -8,8 +8,8 @@ public interface ActivityType {
int FINISH_STATE = 2; int FINISH_STATE = 2;
int OPEN_TYPE_TIME = 1; // 活动开启类型:绝对时间 int OPEN_TYPE_TIME = 1; // 活动开启类型:绝对时间
int OPEN_TYPE_ROLE = 2; // 活动开启类型:创角时间
int OPEN_TYPE_SERVER = 3; // 活动开启类型:开服时间 int OPEN_TYPE_SERVER = 3; // 活动开启类型:开服时间
int OPEN_TYPE_ROLE = 2; // 活动开启类型:创角时间
int WILL_TAKE = 0; //未领取 int WILL_TAKE = 0; //未领取

View File

@ -4,6 +4,9 @@ package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.db.redis.RedisKey; 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.Global; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.UserForceChangeEvent;
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.UserManager;
@ -27,6 +30,17 @@ class ForceRankActivity extends AbstractActivity {
} }
@Override
public void onEvent(IEvent event) throws Exception {
if(!(event instanceof UserForceChangeEvent)){
return;
}
UserForceChangeEvent forceChangeEvent = (UserForceChangeEvent) event;
RankContext.getRankEnum(RankEnum.FORCE_RANK.getType()).addRank(forceChangeEvent.getUid(),id,forceChangeEvent.getForce());
}
@Override @Override
public void onActivityStart() throws Exception { public void onActivityStart() throws Exception {
//上报所有玩家战力 //上报所有玩家战力
@ -45,7 +59,7 @@ class ForceRankActivity extends AbstractActivity {
activityMission.setValue(count); activityMission.setValue(count);
// String key = RedisKey.getKey(RedisKey.FORCE_RANK, "", false); // String key = RedisKey.getKey(RedisKey.FORCE_RANK, "", false);
// RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), count); // RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), count);
RankContext.getRankEnum(RankEnum.FORCE_RANK.getType()).addRank(user.getId(),count); RankContext.getRankEnum(RankEnum.FORCE_RANK.getType()).addRank(user.getId(),id,count);
} }
} }
@ -74,7 +88,7 @@ class ForceRankActivity extends AbstractActivity {
} }
// Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FORCE_RANK, "", 0, maxRank-1); // Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FORCE_RANK, "", 0, maxRank-1);
Set<ZSetOperations.TypedTuple<String>> rankInfo = RankContext.getRankEnum(RankEnum.FORCE_RANK.getType()).getRankByKey(0,maxRank - 1); Set<ZSetOperations.TypedTuple<String>> rankInfo = RankContext.getRankEnum(RankEnum.FORCE_RANK.getType()).getRankByKey(id,0,maxRank - 1);
int rank = 1; int rank = 1;
int nowTime = (int) (TimeUtils.now() / 1000); int nowTime = (int) (TimeUtils.now() / 1000);
for (ZSetOperations.TypedTuple<String> item : rankInfo) { for (ZSetOperations.TypedTuple<String> item : rankInfo) {

View File

@ -41,6 +41,10 @@ public interface IActivity {
*/ */
boolean takeReward(ISession session, int missionId) throws Exception; boolean takeReward(ISession session, int missionId) throws Exception;
/**
*
*/
void onActivityPreEnd() throws Exception;
/** /**
* *
* @throws Exception * @throws Exception

View File

@ -57,10 +57,10 @@ public class LimitRandomCardActivity extends AbstractActivity {
if(scoreById==-1){ if(scoreById==-1){
scoreById=0; scoreById=0;
} }
randomRank.addRank(cardEvent.getUid(),scoreById+cardEvent.getScore()); randomRank.addRank(cardEvent.getUid(),id,scoreById+cardEvent.getScore());
Predicate<int[]> pre = a-> (SCHero.getHeroByPieceId(a[0])!=null&&SCHero.getHeroByPieceId(a[0]).getNatural()>=13); Predicate<int[]> pre = a-> (SCHero.getHeroByPieceId(a[0])!=null&&SCHero.getHeroByPieceId(a[0]).getNatural()>=13);
Consumer<int[]> consumer = a->RankContext.getRankEnum(RankEnum.RANDOM_CARD_PERFECT_RANK.getType()).addRank(cardEvent.getUid(), TimeUtils.now()/1000,a[0]); Consumer<int[]> consumer = a->RankContext.getRankEnum(RankEnum.RANDOM_CARD_PERFECT_RANK.getType()).addRank(cardEvent.getUid(),id, TimeUtils.now()/1000,a[0]);
Stream.of(cardEvent.getHeros()).filter(pre).forEach(consumer); Stream.of(cardEvent.getHeros()).filter(pre).forEach(consumer);
update(UserManager.getUser(cardEvent.getUid()),cardEvent.getScore()); update(UserManager.getUser(cardEvent.getUid()),cardEvent.getScore());
@ -124,13 +124,10 @@ public class LimitRandomCardActivity extends AbstractActivity {
SActivityRankingReward sActivityRankingReward1 = SActivityRankingReward.getsActivityRankingRewardMap().get(missionId); SActivityRankingReward sActivityRankingReward1 = SActivityRankingReward.getsActivityRankingRewardMap().get(missionId);
//sendmail //sendmail
String title = SErrorCodeEerverConfig.getI18NMessage("expertrank_activity_title", new Object[]{sGlobalActivity.getSesc()}); String title = SErrorCodeEerverConfig.getI18NMessage("east_fairy_title", new Object[]{sGlobalActivity.getSesc()});
String content = SErrorCodeEerverConfig.getI18NMessage("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(), rank++}); String content = SErrorCodeEerverConfig.getI18NMessage("east_fairy_txt", new Object[]{sGlobalActivity.getSesc(), rank++});
String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward()); String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward());
MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.RANDOM_CARD_PERFECT_RANK,"",false));
RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.RANDOM_CARD_RANK,"",false));
} }
} }

View File

@ -0,0 +1,32 @@
package com.ljsd.jieling.logic.activity.event;
/**
* @author lvxinran
* @date 2020/1/2
* @discribe
*/
public class UserForceChangeEvent implements IEvent {
public int uid;
public int force;
public int getForce() {
return force;
}
public void setForce(int force) {
this.force = force;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public UserForceChangeEvent(int uid,int force) {
this.uid=uid;
this.force = force;
}
}

View File

@ -15,6 +15,8 @@ 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.ActivityLogic;
import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.activity.ActivityType;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.UserForceChangeEvent;
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.family.GuildLogic; import com.ljsd.jieling.logic.family.GuildLogic;
@ -262,7 +264,7 @@ public class PlayerLogic {
user.getPlayerInfoManager().setMaxForce(teamForce); user.getPlayerInfoManager().setMaxForce(teamForce);
// String key = RedisKey.getKey(RedisKey.FORCE_RANK, "", false); // String key = RedisKey.getKey(RedisKey.FORCE_RANK, "", false);
// RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), teamForce); // RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), teamForce);
RankContext.getRankEnum(RankEnum.FORCE_RANK.getType()).addRank(user.getId(),teamForce); Poster.getPoster().dispatchEvent(new UserForceChangeEvent(uid,teamForce));
user.getUserMissionManager().onGameEvent(user,GameEvent.USER_FORCE_CHANGE); user.getUserMissionManager().onGameEvent(user,GameEvent.USER_FORCE_CHANGE);
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FORCERANK,teamForce); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FORCERANK,teamForce);
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FORCESTANDARD,teamForce); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FORCESTANDARD,teamForce);

View File

@ -9,9 +9,9 @@ import com.ljsd.jieling.protocols.PlayerInfoProto;
*/ */
public interface IRank { public interface IRank {
PlayerInfoProto.RankResponse getRank(int uid,int page,int rankEndLine) throws Exception ; PlayerInfoProto.RankResponse getRank(int uid,int activityId,int page,int rankEndLine) throws Exception ;
void addRank(int uid,double... data); void addRank(int uid,int activityId,double... data);
int getParam1(double data); int getParam1(double data);

View File

@ -33,7 +33,7 @@ public class RankLogic {
} }
public void getRank(ISession session, int type, MessageTypeProto.MessageType messageType) throws Exception { public void getRank(ISession session, int type, MessageTypeProto.MessageType messageType) throws Exception {
int page = 1; int page = 1;
PlayerInfoProto.RankResponse rankResponse= RankContext.getRankEnum(type).getRank(session.getUid(),1, -1); PlayerInfoProto.RankResponse rankResponse= RankContext.getRankEnum(type).getRank(session.getUid(),0,1, -1);
MessageUtil.sendMessage(session,1,messageType.getNumber(),rankResponse,true); MessageUtil.sendMessage(session,1,messageType.getNumber(),rankResponse,true);
} }
} }

View File

@ -28,12 +28,13 @@ public abstract class AbstractRank implements IRank {
/** /**
* *
* @param activityId id
* @param uid id * @param uid id
* @param rankEndLine 线 * @param rankEndLine 线
* @return * @return
* @throws Exception * @throws Exception
*/ */
public PlayerInfoProto.RankResponse getRank(int uid,int page,int rankEndLine) throws Exception { public PlayerInfoProto.RankResponse getRank(int uid,int activityId,int page,int rankEndLine) throws Exception {
if(rankEndLine==-1){ if(rankEndLine==-1){
rankEndLine = 100; rankEndLine = 100;
} }
@ -42,7 +43,7 @@ public abstract class AbstractRank implements IRank {
page = 1; page = 1;
} }
int start = (page - 1) * rankEndLine, end = page * rankEndLine - 1; int start = (page - 1) * rankEndLine, end = page * rankEndLine - 1;
Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores = getRankByKey(start,end); Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores = getRankByKey(activityId,start,end);
if(start==0){ if(start==0){
start=1; start=1;
} }
@ -57,8 +58,8 @@ public abstract class AbstractRank implements IRank {
* @param uid id * @param uid id
* @param data getScore * @param data getScore
*/ */
public void addRank(int uid,double... data){ public void addRank(int uid,int activityId,double... data){
String key = RedisKey.getKey(redisKey,"",false); String key = RedisKey.getKey(redisKey,String.valueOf(activityId),false);
RedisUtil.getInstence().zsetAddOne(key,String.valueOf(uid), getScore(data)); RedisUtil.getInstence().zsetAddOne(key,String.valueOf(uid), getScore(data));
} }
public AbstractRank(int type,String redisKey){ public AbstractRank(int type,String redisKey){
@ -73,8 +74,8 @@ public abstract class AbstractRank implements IRank {
return type; return type;
} }
public Set<ZSetOperations.TypedTuple<String>> getRankByKey(int start,int end){ public Set<ZSetOperations.TypedTuple<String>> getRankByKey(int activityId,int start,int end){
return RedisUtil.getInstence().getZsetreverseRangeWithScores(redisKey, "", start, end); return RedisUtil.getInstence().getZsetreverseRangeWithScores(redisKey, String.valueOf(activityId), start, end);
} }
protected PlayerInfoProto.RankResponse.Builder getAllUserResponse(Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores,int start) throws Exception{ protected PlayerInfoProto.RankResponse.Builder getAllUserResponse(Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores,int start) throws Exception{
PlayerInfoProto.RankResponse.Builder builder = PlayerInfoProto.RankResponse.newBuilder(); PlayerInfoProto.RankResponse.Builder builder = PlayerInfoProto.RankResponse.newBuilder();

View File

@ -50,8 +50,8 @@ public class MainLevelRank extends AbstractRank {
} }
@Override @Override
public Set<ZSetOperations.TypedTuple<String>> getRankByKey(int start, int end) { public Set<ZSetOperations.TypedTuple<String>> getRankByKey(int activityId,int start, int end) {
Set<ZSetOperations.TypedTuple<String>> rankByKey = super.getRankByKey(start, end); Set<ZSetOperations.TypedTuple<String>> rankByKey = super.getRankByKey(0,start, end);
return rankByKey; return rankByKey;
} }

View File

@ -26,7 +26,7 @@ public class RandomCardPerfectRank extends AbstractRank {
} }
@Override @Override
public void addRank(int uid, double... data) { public void addRank(int uid,int activityId, double... data) {
String key = RedisKey.getKey(redisKey,"",false); String key = RedisKey.getKey(redisKey,"",false);
double[] doubles = new double[3]; double[] doubles = new double[3];
System.arraycopy(data, 0, doubles, 0, data.length); System.arraycopy(data, 0, doubles, 0, data.length);

View File

@ -15,9 +15,9 @@ public class TowerRank extends AbstractRank {
} }
@Override @Override
public PlayerInfoProto.RankResponse getRank(int uid,int page,int rankEndLine) throws Exception { public PlayerInfoProto.RankResponse getRank(int uid,int activityId,int page,int rankEndLine) throws Exception {
rankEndLine = SSpecialConfig.getIntegerValue(SSpecialConfig.TRIAL_RANKINGSHOWNUM); rankEndLine = SSpecialConfig.getIntegerValue(SSpecialConfig.TRIAL_RANKINGSHOWNUM);
return super.getRank(uid,1, rankEndLine); return super.getRank(uid,activityId,1, rankEndLine);
} }
@Override @Override

View File

@ -24,7 +24,7 @@ public class ToolsUtil {
} }
public static long getEndTimeLong(long startTimeLong , long endTimeLong,int time,long createUserTime,int dayOut){ public static long getEndTimeLong(long startTimeLong , long endTimeLong,int time,long createUserTime,int dayOut){
long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2); long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2);
long endTime = timeLong - TimeUtils.DAY * dayOut; long endTime = timeLong + TimeUtils.DAY * dayOut;
return endTime; return endTime;
} }