Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
cdacaa402a
|
@ -139,6 +139,8 @@ public interface BIReason {
|
||||||
|
|
||||||
int EXCEPTION_TREASURE_REWARD = 77;//天空密境积分奖励
|
int EXCEPTION_TREASURE_REWARD = 77;//天空密境积分奖励
|
||||||
|
|
||||||
|
int PROUD_REWARD = 78;//膜拜获得金币奖励
|
||||||
|
|
||||||
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
|
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
|
||||||
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
|
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
|
||||||
int DECOMPOSE_ITEM_CONSUME = 1002;//分解道具消耗
|
int DECOMPOSE_ITEM_CONSUME = 1002;//分解道具消耗
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.ljsd.jieling.handler;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.rank.RankLogic;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lvxinran
|
||||||
|
* @date 2020/6/5
|
||||||
|
* @discribe
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RankFirstHandler extends BaseHandler<PlayerInfoProto.RankFirstRequest> {
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.RANK_GET_FIRST_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void processWithProto(ISession iSession, PlayerInfoProto.RankFirstRequest proto) throws Exception {
|
||||||
|
RankLogic.getInstance().getRankFirstInfo(iSession,proto.getTypesList(),MessageTypeProto.MessageType.RANK_GET_FIRST_RESPONSE);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,6 @@
|
||||||
package com.ljsd.jieling.handler;
|
package com.ljsd.jieling.handler;
|
||||||
|
|
||||||
import com.ljsd.jieling.handler.map.MapLogic;
|
|
||||||
import com.ljsd.jieling.logic.rank.RankContext;
|
|
||||||
import com.ljsd.jieling.logic.rank.RankLogic;
|
import com.ljsd.jieling.logic.rank.RankLogic;
|
||||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.ljsd.jieling.handler.workshop;
|
||||||
|
|
||||||
|
|
||||||
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
|
import com.ljsd.jieling.logic.rank.RankLogic;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lvxinran
|
||||||
|
* @date 2020/6/5
|
||||||
|
* @discribe
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RankProudHandler extends BaseHandler<PlayerInfoProto.RankProudRequest> {
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.RANK_PROUD_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void processWithProto(ISession iSession, PlayerInfoProto.RankProudRequest proto) throws Exception {
|
||||||
|
RankLogic.getInstance().rankProud(iSession,proto.getRankType(), MessageTypeProto.MessageType.RANK_PROUD_RESPONSE);
|
||||||
|
}
|
||||||
|
}
|
|
@ -351,6 +351,8 @@ public class GlobalDataManaager implements IManager {
|
||||||
}else {
|
}else {
|
||||||
user.getPlayerInfoManager().setIsdayFirst(0);
|
user.getPlayerInfoManager().setIsdayFirst(0);
|
||||||
}
|
}
|
||||||
|
//刷新膜拜信息
|
||||||
|
user.getPlayerInfoManager().setProudInfo(new HashSet<>());
|
||||||
}
|
}
|
||||||
if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())) {
|
if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())) {
|
||||||
flushGoodsTimes(user);
|
flushGoodsTimes(user);
|
||||||
|
|
|
@ -103,6 +103,8 @@ public class PlayerManager extends MongoBase {
|
||||||
|
|
||||||
private String maxforceHero;
|
private String maxforceHero;
|
||||||
|
|
||||||
|
private Set<Integer> proudInfo = new HashSet<>();
|
||||||
|
|
||||||
public PlayerManager(){
|
public PlayerManager(){
|
||||||
this.setRootCollection(User._COLLECTION_NAME);
|
this.setRootCollection(User._COLLECTION_NAME);
|
||||||
}
|
}
|
||||||
|
@ -689,4 +691,18 @@ public class PlayerManager extends MongoBase {
|
||||||
this.maxforceHero = maxforceHero;
|
this.maxforceHero = maxforceHero;
|
||||||
updateString("maxforceHero",maxforceHero);
|
updateString("maxforceHero",maxforceHero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<Integer> getProudInfo() {
|
||||||
|
return proudInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addProudInfo(int type) {
|
||||||
|
proudInfo.add(type);
|
||||||
|
updateString("proudInfo",proudInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProudInfo(Set<Integer> proudInfo) {
|
||||||
|
this.proudInfo = proudInfo;
|
||||||
|
updateString("proudInfo",proudInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -267,20 +267,20 @@ public class HeroLogic{
|
||||||
}
|
}
|
||||||
|
|
||||||
int j=0;
|
int j=0;
|
||||||
//标记是否触发保底
|
// //标记是否触发保底
|
||||||
boolean specialTrigger=false;
|
// boolean specialTrigger=false;
|
||||||
for(int i=0;i<perCount;i++){
|
for(int i=0;i<perCount;i++){
|
||||||
randCount++;
|
randCount++;
|
||||||
poolCount++;
|
poolCount++;
|
||||||
int randomPoolId = pooId;
|
int randomPoolId = pooId;
|
||||||
if(!specialTrigger){
|
int specialPoolId = getSpecialPoolByRandcount(sLotterySetting, randCount,poolCount);
|
||||||
randomPoolId = getSpecialPoolByRandcount(sLotterySetting, randCount,poolCount);
|
if(specialPoolId == 0){
|
||||||
specialTrigger=true;
|
if(randomPoolId==0){
|
||||||
|
randomPoolId = getPooId(sLotterySetting);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
randomPoolId =specialPoolId;
|
||||||
}
|
}
|
||||||
if(randomPoolId==0){
|
|
||||||
randomPoolId = getPooId(sLotterySetting);
|
|
||||||
}
|
|
||||||
|
|
||||||
totalCount++;
|
totalCount++;
|
||||||
SLotteryRewardConfig sLotteryRewardConfig = randomHeroByPoolId(randomPoolId, totalCount, user.getPlayerInfoManager().getLevel());
|
SLotteryRewardConfig sLotteryRewardConfig = randomHeroByPoolId(randomPoolId, totalCount, user.getPlayerInfoManager().getLevel());
|
||||||
LOGGER.info("the uid={},the type={},the poolId={},reward={},poolCount={}",uid,type,randomPoolId,sLotteryRewardConfig.getId(),poolCount);
|
LOGGER.info("the uid={},the type={},the poolId={},reward={},poolCount={}",uid,type,randomPoolId,sLotteryRewardConfig.getId(),poolCount);
|
||||||
|
|
|
@ -34,6 +34,7 @@ import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
|
||||||
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
|
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
|
||||||
import com.ljsd.jieling.logic.rank.RankContext;
|
import com.ljsd.jieling.logic.rank.RankContext;
|
||||||
import com.ljsd.jieling.logic.rank.RankEnum;
|
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||||
|
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
||||||
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
||||||
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;
|
||||||
|
|
|
@ -1,13 +1,25 @@
|
||||||
package com.ljsd.jieling.logic.rank;
|
package com.ljsd.jieling.logic.rank;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.exception.ErrorCode;
|
||||||
|
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||||
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
|
import com.ljsd.jieling.handler.map.MapManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
||||||
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.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.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
import config.SSpecialConfig;
|
import config.SSpecialConfig;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lvxinran
|
* @author lvxinran
|
||||||
* @date 2019/11/28
|
* @date 2019/11/28
|
||||||
|
@ -40,4 +52,43 @@ public class RankLogic {
|
||||||
PlayerInfoProto.RankResponse rankResponse= RankContext.getRankEnum(type).getRank(session.getUid(),rkey,1, -1);
|
PlayerInfoProto.RankResponse rankResponse= RankContext.getRankEnum(type).getRank(session.getUid(),rkey,1, -1);
|
||||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),rankResponse,true);
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),rankResponse,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取每个排行第一名信息
|
||||||
|
* @param session
|
||||||
|
* @param rankTypes
|
||||||
|
* @param messageType
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void getRankFirstInfo(ISession session, List<Integer> rankTypes, MessageTypeProto.MessageType messageType) throws Exception {
|
||||||
|
PlayerManager playerManager = UserManager.getUser(session.getUid()).getPlayerInfoManager();
|
||||||
|
PlayerInfoProto.RankFirstResponse.Builder response = PlayerInfoProto.RankFirstResponse.newBuilder();
|
||||||
|
for(int type :rankTypes){
|
||||||
|
AbstractRank rankEnum = RankContext.getRankEnum(type);
|
||||||
|
CommonProto.UserRank.Builder first = rankEnum.getFirst();
|
||||||
|
response.addRanks(first.build());
|
||||||
|
response.addProud(playerManager.getProudInfo().contains(type)?1:0);
|
||||||
|
}
|
||||||
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 膜拜
|
||||||
|
* @param session
|
||||||
|
* @param type
|
||||||
|
* @param messageType
|
||||||
|
*/
|
||||||
|
public void rankProud(ISession session, int type,MessageTypeProto.MessageType messageType) throws Exception {
|
||||||
|
User user = UserManager.getUser(session.getUid());
|
||||||
|
PlayerManager playerManager = user.getPlayerInfoManager();
|
||||||
|
if(playerManager.getProudInfo().contains(type)){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
playerManager.addProudInfo(type);
|
||||||
|
int[] drop = SSpecialConfig.getOnceArrayValue(SSpecialConfig.REWARD_OF_WORSHIP);
|
||||||
|
CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, new int[][]{drop}, BIReason.PROUD_REWARD);
|
||||||
|
PlayerInfoProto.RankProudResponse response = PlayerInfoProto.RankProudResponse.newBuilder().setDrop(dropBuilder.build()).build();
|
||||||
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,6 +89,24 @@ public abstract class AbstractRank implements IRank {
|
||||||
public Set<ZSetOperations.TypedTuple<String>> getRankByKey(String rkey,int start,int end){
|
public Set<ZSetOperations.TypedTuple<String>> getRankByKey(String rkey,int start,int end){
|
||||||
return RedisUtil.getInstence().getZsetreverseRangeWithScores(redisKey, rkey, start, end);
|
return RedisUtil.getInstence().getZsetreverseRangeWithScores(redisKey, rkey, start, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取第一名信息
|
||||||
|
public CommonProto.UserRank.Builder getFirst() throws Exception {
|
||||||
|
Set<ZSetOperations.TypedTuple<String>> rankByKey = getRankByKey("", 0, 1);
|
||||||
|
CommonProto.UserRank.Builder builder = CommonProto.UserRank.newBuilder();
|
||||||
|
if(rankByKey.size()!=1){
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
|
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
|
||||||
|
User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true);
|
||||||
|
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||||
|
.setRank(1)
|
||||||
|
.setParam1(getParam1(data.getScore()))
|
||||||
|
.setParam2(getParam2(data.getScore()))
|
||||||
|
.setParam3(getParam3(data.getScore()));
|
||||||
|
builder = getOneUserRank(everyUser,everyRankInfo);
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
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();
|
||||||
forEach(start,zsetreverseRangeWithScores,(index,data)->{
|
forEach(start,zsetreverseRangeWithScores,(index,data)->{
|
||||||
|
@ -108,6 +126,10 @@ public abstract class AbstractRank implements IRank {
|
||||||
.setParam1(getParam1(data.getScore()))
|
.setParam1(getParam1(data.getScore()))
|
||||||
.setParam2(getParam2(data.getScore()))
|
.setParam2(getParam2(data.getScore()))
|
||||||
.setParam3(getParam3(data.getScore()));
|
.setParam3(getParam3(data.getScore()));
|
||||||
|
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(everyUser, everyRankInfo);
|
||||||
|
builder.addRanks(oneUserRank);
|
||||||
|
}
|
||||||
|
public CommonProto.UserRank.Builder getOneUserRank(User everyUser,CommonProto.RankInfo.Builder everyRankInfo){
|
||||||
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
|
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
|
||||||
.setUid(everyUser.getId())
|
.setUid(everyUser.getId())
|
||||||
.setUserName(everyUser.getPlayerInfoManager().getNickName())
|
.setUserName(everyUser.getPlayerInfoManager().getNickName())
|
||||||
|
@ -115,8 +137,9 @@ public abstract class AbstractRank implements IRank {
|
||||||
.setHeadFrame(everyUser.getPlayerInfoManager().getHeadFrame())
|
.setHeadFrame(everyUser.getPlayerInfoManager().getHeadFrame())
|
||||||
.setLevel(everyUser.getPlayerInfoManager().getLevel())
|
.setLevel(everyUser.getPlayerInfoManager().getLevel())
|
||||||
.setRankInfo(everyRankInfo)
|
.setRankInfo(everyRankInfo)
|
||||||
.setForce(everyUser.getPlayerInfoManager().getMaxForce());
|
.setForce(everyUser.getPlayerInfoManager().getMaxForce())
|
||||||
builder.addRanks(everyRank);
|
.setSex(everyUser.getPlayerInfoManager().getSex());
|
||||||
|
return everyRank;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void getMyInfo(User user,String rkey,PlayerInfoProto.RankResponse.Builder allUserResponse){
|
protected void getMyInfo(User user,String rkey,PlayerInfoProto.RankResponse.Builder allUserResponse){
|
||||||
|
@ -178,4 +201,5 @@ public abstract class AbstractRank implements IRank {
|
||||||
public double getScoreById(int uid,String rkey){
|
public double getScoreById(int uid,String rkey){
|
||||||
return RedisUtil.getInstence().getZSetScore(redisKey,rkey, String.valueOf(uid));
|
return RedisUtil.getInstence().getZSetScore(redisKey,rkey, String.valueOf(uid));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,7 @@ public class SSpecialConfig implements BaseConfig {
|
||||||
public static final String GUILD_TECHNOLOGY_RETURN_PERCENT = "guild_technology_return_percent";//公会技能重置返还材料比例 实际百分比为填写数值/10000
|
public static final String GUILD_TECHNOLOGY_RETURN_PERCENT = "guild_technology_return_percent";//公会技能重置返还材料比例 实际百分比为填写数值/10000
|
||||||
public static final String LOTTERY_ENERGY_COST = "lottery_energy_cost";//钻石抽积攒仙缘能量(原非酋气息)抽奖消耗
|
public static final String LOTTERY_ENERGY_COST = "lottery_energy_cost";//钻石抽积攒仙缘能量(原非酋气息)抽奖消耗
|
||||||
public static final String EXPEDITION_REBORN = "expedition_reborn";// 大闹天宫复活道具id
|
public static final String EXPEDITION_REBORN = "expedition_reborn";// 大闹天宫复活道具id
|
||||||
|
public static final String REWARD_OF_WORSHIP = "reward_of_worship";//膜拜获得金币奖励
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
|
|
Loading…
Reference in New Issue