每日次数限制统一走vip配置

back_recharge
wangyuan 2019-06-15 14:41:47 +08:00
parent b4fe2a3916
commit 6dcba33b6f
17 changed files with 78 additions and 98 deletions

View File

@ -49,7 +49,7 @@ public class SErrorCodeEerverConfig implements BaseConfig {
return value;
}
public String getI18NMessage(String key,Object[] obj ){
public static String getI18NMessage(String key,Object[] obj ){
String value = errorCodeMap.get(key);
if (value == null) {
return "";

View File

@ -101,19 +101,24 @@ public class HandlerLogicThread extends Thread{
MessageUtil.sendErrorResponse(session,0,msgId+1,"funciton not");
return;
}
b = checkIsPermit(msgId, session);
/* b = checkIsPermit(msgId, session);
if(!b){
MessageUtil.sendErrorResponse(session,0,msgId+1,"在地图探索中,不可以操作");
return;
}
}*/
}
if(msgId != MessageTypeProto.MessageType.GET_CHAT_MESSAGE_REQUEST_VALUE){
LOGGER.info("doWork->uid={},mType={};start", userId, MessageTypeProto.MessageType.valueOf(msgId));
}
LOGGER.info("doWork->uid={},mType={};start", userId, MessageTypeProto.MessageType.valueOf(msgId));
MissionEventDistributor.requestStart();
baseHandler.execute(session, packetNetData);
MissionEventDistributor.requestEnd(session,true);
LOGGER.info("doWork->uid={},mType={};end", userId, MessageTypeProto.MessageType.valueOf(msgId));
if(msgId != MessageTypeProto.MessageType.GET_CHAT_MESSAGE_REQUEST_VALUE){
LOGGER.info("doWork->uid={},mType={};end", userId, MessageTypeProto.MessageType.valueOf(msgId));
}
}catch (Exception e){
LOGGER.error("",e);
}

View File

@ -6,6 +6,7 @@ import com.ljsd.jieling.logic.activity.ActivityType;
import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.RechargeInfo;
import com.ljsd.jieling.logic.dao.RoomInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
@ -55,12 +56,9 @@ public class GetPlayerInfoHandler extends BaseHandler{
PlayerManager playerInfoManager = user.getPlayerInfoManager();
// 需要隔天刷新的字段统一在这里处理
if (TimeUtils.isOverTime(5,playerInfoManager.getLoginTime())) {
MapLogic.getInstance().resetDayInfo(user);
//活动刷新
ActivityLogic.getInstance().flushEveryDay(user);
//商店刷新次数重置
StoreLogic.resetStoreRefreshNum(userId);
PlayerLogic.getInstance().vipflushEveryDay(user);
PlayerLogic.getInstance().vipflushEveryDay(user,false);
ArenaLogic.getInstance().flushFreeUseTimes(user);
user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0);
}
@ -81,7 +79,8 @@ public class GetPlayerInfoHandler extends BaseHandler{
. setUsedTimes(vipInfoItem.getValue())
.build());
}
CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),user.getMapManager());
RoomInfo roomInfo = user.getRoomInfo();
CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),user.getMapManager(),roomInfo);
RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo();
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder()

View File

@ -155,7 +155,7 @@ public class MapLogic {
}
}
mapManager.setDayFightCount(mapManager.getDayFightCount() + 1);
//todo 更新地圖次數
mapManager.setCurMapId(mapId);
initMap(mapManager, user);
user.setMapManager(mapManager);
@ -1169,12 +1169,6 @@ public class MapLogic {
}
public void resetDayInfo(User user){
user.getMapManager().setDayFightCount(0);
user.getMapManager().setBuyFightCount(0);
}
public int updateMapMission(MapManager mapManager,int eventType,int eventId,int bossIdOrItemId){
LOGGER.info("the eventtype ={},eventId={},bossItemId={}",eventType,eventId,bossIdOrItemId);
int mapId = mapManager.getCurMapId();
@ -1532,13 +1526,15 @@ public class MapLogic {
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
return;
}
//todo vip
/* SChallengeSetting sChallengeSetting = SChallengeSetting.challengeSetting;
int dailyLimitPrivilege = sChallengeSetting.getDailyLimitPrivilege();
VipPrivilegeType.
if (mapManager.getDayFightCount() + count > sChallengeSetting.getLimit() + mapManager.getBuyFightCount()) {
LOGGER.info("sweep over max count: {}", (mapManager.getDayFightCount() + count));
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
return;
}*/
mapManager.setDayFightCount(mapManager.getDayFightCount() + count);
SChallengeMapConfig sChallengeMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(mapId);
MapInfoProto.MapSweepResponse.Builder mapSweepResponse = MapInfoProto.MapSweepResponse.newBuilder();
for (int i = 0; i < count; i++) {

View File

@ -60,10 +60,6 @@ public class MapManager extends MongoBase {
private Map<Integer, CrossInfo> crossInfoMap = new HashMap<>();
private int dayFightCount;
private int buyFightCount;
private Set<Integer> stars;
public MapManager() {
@ -332,24 +328,6 @@ public class MapManager extends MongoBase {
this.crossInfoMap.put(key, crossInfo);
}
public int getDayFightCount() {
return dayFightCount;
}
public void setDayFightCount(int dayFightCount) {
updateString("dayFightCount", dayFightCount);
this.dayFightCount = dayFightCount;
}
public int getBuyFightCount() {
return buyFightCount;
}
public void setBuyFightCount(int buyFightCount) {
updateString("buyFightCount", buyFightCount);
this.buyFightCount = buyFightCount;
}
public Map<Integer, Integer> getHeroAllAttributeByHeroId(String heroId) {
return heroAllAttributeMap.get(heroId);
}

View File

@ -75,7 +75,6 @@ public class ArenaLogic {
.setFailNums(arenaManager.getFailNums())
.setSuccessNums(arenaManager.getSuccessNums())
.setScore(score)
.setUseFreeTimes(arenaManager.getUseFreeTimes())
.addAllArenaEnemys(getArenaEnemyList(arenaManager.getArenaEnemies()))
.build();
@ -279,7 +278,8 @@ public class ArenaLogic {
}
ArenaManager arenaManager = user.getArenaManager();
SArenaSetting sArenaSetting = SArenaSetting.getSArenaSetting();
int useFreeTimes = arenaManager.getUseFreeTimes();
//vip
/* int useFreeTimes = arenaManager.getUseFreeTimes();
int battleFree = sArenaSetting.getBattleFree();
if(useFreeTimes>=battleFree){
//校验消耗
@ -289,14 +289,10 @@ public class ArenaLogic {
}
}else{
arenaManager.setUseFreeTimes(useFreeTimes+1);
}
}*/
return "";
}
public void flushFreeUseTimes(User user){
ArenaManager arenaManager = user.getArenaManager();
arenaManager.setUseFreeTimes(0);
}
private ArenaEnemy getEnemyInList(int challengeUid, List<ArenaEnemy> enemys) {
for (ArenaEnemy data : enemys) {

View File

@ -15,8 +15,6 @@ public class ArenaManager extends MongoBase {
private int count; //进攻次数
private int useFreeTimes;//使用免费次数
private int flushTime; //刷新时间
private int flushNums; //刷新次数
@ -59,10 +57,6 @@ public class ArenaManager extends MongoBase {
return arenaEnemies;
}
public int getUseFreeTimes() {
return useFreeTimes;
}
public void setArenaEnemies(List<ArenaEnemy> arenaEnemies) {
flushNums++;
updateString("arenaEnemies",arenaEnemies);
@ -70,11 +64,6 @@ public class ArenaManager extends MongoBase {
this.arenaEnemies = arenaEnemies;
}
public void setUseFreeTimes(int useFreeTimes) {
updateString("useFreeTimes",useFreeTimes);
this.useFreeTimes = useFreeTimes;
}
public void setFlushTime(int flushTime) {
this.flushTime = flushTime;
}

View File

@ -261,6 +261,13 @@ public class PlayerManager extends MongoBase {
return vipInfo.containsKey(privilageId);
}
public int getVipPrivilageValue(int privilageId){
if(!vipInfo.containsKey(privilageId)){
return 0;
}
return vipInfo.get(privilageId);
}
public void updateVipPrivilage(int privilageId,int updateNum){
if(!vipInfo.containsKey(privilageId)){
return;

View File

@ -2,7 +2,7 @@ package com.ljsd.jieling.logic.dao;
public class RoomInfo {
private boolean matching;
private int roomId;
private int roomId=-1;
public boolean isMatching() {
return matching;

View File

@ -10,8 +10,6 @@ public class StoreInfo extends MongoBase {
private long lastRefreshTime; // 上次刷新时间
private int refreshNum; // 刷新次数
private long startTime; // 开启时间
private long endTime ; // 结束时间
@ -22,7 +20,6 @@ public class StoreInfo extends MongoBase {
// this.setRootCollection(User._COLLECTION_NAME);
this.id = id;
this.lastRefreshTime = System.currentTimeMillis();
this.refreshNum = 0;
this.startTime = startTime;
this.endTime = endTime;
this.itemNumMap = itemNumMap;
@ -33,11 +30,6 @@ public class StoreInfo extends MongoBase {
this.lastRefreshTime = lastRefreshTime;
}
public void setRefreshNum(int refreshNum) {
updateString("refreshNum", refreshNum);
this.refreshNum = refreshNum;
}
public void setItemNumMap(Map<Integer, Integer> itemNumMap) {
updateString("itemNumMap", itemNumMap);
this.itemNumMap = itemNumMap;
@ -51,10 +43,6 @@ public class StoreInfo extends MongoBase {
return lastRefreshTime;
}
public int getRefreshNum() {
return refreshNum;
}
public long getStartTime() {
return startTime;
}

View File

@ -95,7 +95,7 @@ public class UserManager {
teamPosManager.addTeamOfInitPlayer(heroMap.values());
int force = HeroLogic.getInstance().calTeamTotalForce(user, 1, true);
playerManager.setMaxForce(force);
PlayerLogic.getInstance().vipflushEveryDay(user);
PlayerLogic.getInstance().vipflushEveryDay(user,false);
ActivityLogic.getInstance().newPlayerOpenActivityMission(user);
user.getUserMissionManager().onGameEvent(user, GameEvent.USER_LEVELUP,1);
}

View File

@ -390,10 +390,11 @@ public class CombatLogic {
String content = "";
if(reason == 1){
title = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_uplevel_title");
content = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_uplevel_content");
content = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_uplevel_content",new Object[]{"test",adventureStateInfoMap.get(position).getLevel()+1});
}else if(reason == 2){
int vipLevel = user.getPlayerInfoManager().getVipLevel();
title = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_title");
content = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_content");
content = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_content",new Object[]{vipLevel});
}else {
return null;
}
@ -757,7 +758,6 @@ public class CombatLogic {
*/
public void sendReward() throws Exception {
String title=SErrorCodeEerverConfig.getI18NMessage("adventure_boss_reward_title");
String content=SErrorCodeEerverConfig.getI18NMessage("adventure_boss_reward_txt");
Set<ZSetOperations.TypedTuple<String>> adventureBossRankInfo= RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ADVENTRUEN_BOSS_RANK,"", 0,-1);
int rank = 1;
int nowTime =(int) (TimeUtils.now()/1000);
@ -769,6 +769,7 @@ public class CombatLogic {
if("".equals(rewardByRank)){
break;
}
String content=SErrorCodeEerverConfig.getI18NMessage("adventure_boss_reward_txt",new Object[]{user.getPlayerInfoManager().getNickName(),rank});
MailLogic.getInstance().sendMail(user.getId(),title,content,rewardByRank,nowTime, Global.MAIL_EFFECTIVE_TIME);
}
String key = RedisUtil.getInstence().getKey(RedisKey.ADVENTRUEN_BOSS_RANK, "");

View File

@ -24,10 +24,7 @@ import org.luaj.vm2.ast.Str;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
public class PlayerLogic {
private static final Logger LOGGER = LoggerFactory.getLogger(MailLogic.class);
@ -219,7 +216,7 @@ public class PlayerLogic {
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.USER_FORCE_CHANGE_RESPONSE_VALUE,null,true);
}
public void vipflushEveryDay(User user) throws Exception {
public void vipflushEveryDay(User user,boolean sendIndication) throws Exception {
PlayerManager playerInfoManager = user.getPlayerInfoManager();
playerInfoManager.vipFlush();
int vipLevel = user.getPlayerInfoManager().getVipLevel();
@ -240,6 +237,20 @@ public class PlayerLogic {
ItemUtil.addItem(user,itemMap,null,BIReason.VIP_DAY_REWARD);
}
}
if(sendIndication){
CommonProto.VipMissionInfo.Builder builder = CommonProto.VipMissionInfo.newBuilder()
.setHadTakeDailyBox(playerInfoManager.getHadTakeDailyBoxVip())
.setHadTakeLevelBox(playerInfoManager.getHadTakeLevelBoxVip())
.setVipLevel(vipLevel);
List<CommonProto.Privilege> privilegeList = new ArrayList<>();
Map<Integer, Integer> vipInfo = playerInfoManager.getVipInfo();
for(Map.Entry<Integer,Integer> vipInfoItem : vipInfo.entrySet()){
privilegeList.add(CommonProto.Privilege.newBuilder()
.setId(vipInfoItem.getKey())
. setUsedTimes(vipInfoItem.getValue())
.build());
}
}
}
}

View File

@ -16,7 +16,7 @@ public class RoomManager {
private static final List<Integer> matchingPlayerList = new ArrayList();
private static Object lock; //线程安全锁
private static int PLAYER_NUMBER_IN_ROOM = 3; //单个房间的最大数量
private static int PLAYER_NUMBER_IN_ROOM = 2; //单个房间的最大数量
public static int SIMPLEST_MATCH_RULE = 0;

View File

@ -54,7 +54,6 @@ public class StoreLogic {
CommonProto.StoreInfo.Builder storeBuilder = CommonProto.StoreInfo.newBuilder();
storeBuilder.setId(storeInfo.getId());
storeBuilder.setLastRefreshTime(storeInfo.getLastRefreshTime());
storeBuilder.setRefreshNum(storeInfo.getRefreshNum());
storeBuilder.setStartTime(storeInfo.getStartTime());
storeBuilder.setEndTime(storeInfo.getEndTime());
Map<Integer, Integer> itemNumMap = storeInfo.getItemNumMap();
@ -281,10 +280,10 @@ public class StoreLogic {
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
return;
}
int refreshNum = storeInfo.getRefreshNum();
int[][] cost = getCost(refreshNum, 1,sStoreTypeConfig.getRefreshItem(),0);
int refreshPrivilege = sStoreTypeConfig.getRefreshPrivilege();
PlayerManager playerInfoManager = user.getPlayerInfoManager();
int refreshPrivilege = sStoreTypeConfig.getRefreshPrivilege();
int refreshNum = playerInfoManager.getVipPrivilageValue(refreshPrivilege);
int[][] cost = getCost(refreshNum, 1,sStoreTypeConfig.getRefreshItem(),0);
if(!playerInfoManager.check(refreshPrivilege,1)){
MessageUtil.sendErrorResponse(iSession,0,msgId,"over limmit");
return;
@ -296,7 +295,6 @@ public class StoreLogic {
}
playerInfoManager.updateVipPrivilage(refreshPrivilege,1);
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
storeInfo.setRefreshNum(storeInfo.getRefreshNum() +1);
storeInfo.setItemNumMap(itemNumMap);
CommonProto.StoreInfo.Builder storeBuilder = getBuilder(storeInfo);
PlayerInfoProto.StoreGoodsRefreshResponse builder = PlayerInfoProto.StoreGoodsRefreshResponse.newBuilder().setStoreInfo(storeBuilder).build();
@ -354,11 +352,11 @@ public class StoreLogic {
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
}
/**
*
/* *//**
* vip
* @param uid
* @throws Exception
*/
*//*
public static void resetStoreRefreshNum(int uid) throws Exception {
User user = UserManager.getUser(uid);
StoreManager storeManager = user.getStoreManager();
@ -367,6 +365,6 @@ public class StoreLogic {
StoreInfo storeInfo = entry.getValue();
storeInfo.setRefreshNum(0);
}
}
}*/
}

View File

@ -16,7 +16,7 @@ import java.util.Map;
public class CBean2Proto {
public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int maxMapId, int mapId, MapManager mapManager) {
public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int maxMapId, int mapId, MapManager mapManager,RoomInfo roomInfo) {
RechargeInfo rechargeInfo = playerManager.getRechargeInfo();
CommonProto.Player player = CommonProto.Player
.newBuilder()
@ -31,12 +31,12 @@ public class CBean2Proto {
.setEnergy(0)
.setLastUpdateEnergyTime(mapManager.getLastUpdateEnergyTime())
.setServerTime((int)(System.currentTimeMillis()/1000))
.setBuyFightCount(mapManager.getBuyFightCount())
.setDayFightCount(mapManager.getDayFightCount())
.setMaxForce(playerManager.getMaxForce())
.setRechargeTime((int)(rechargeInfo.getCreateTime()/1000))
.setSaveAmt(rechargeInfo.getSaveAmt())
.setIsFirstRecharge(rechargeInfo.getIsFirst())
.setIsMatchRoom(roomInfo.isMatching()?1:0)
.setCurRoomType(roomInfo.getRoomId()==-1?0:-1)
.build();
return player;
}

View File

@ -24,7 +24,7 @@ public class MessageUtil {
backMessage = new byte[0];
} else {
backMessage = generatedMessage.toByteArray();
// LOGGER.info(JsonFormat.printToString(generatedMessage));
LOGGER.info(JsonFormat.printToString(generatedMessage));
}
int length = PackageConstant.UID_FIELD_LEN + PackageConstant.TOKEN_LEN
@ -206,7 +206,10 @@ public class MessageUtil {
RoomProto.RoomMatchSuccessIndication.Builder builder = RoomProto.RoomMatchSuccessIndication.newBuilder();
builder.setRoomId(roomId);
builder.setType(type);
sendMessage(uid, 1, MessageTypeProto.MessageType.ROOM_MATCH_SUCCESS_INDICATION_VALUE, builder.build(), true);
ISession sessionByUid = OnlineUserManager.getSessionByUid(uid);
if(sessionByUid!=null){
sendIndicationMessage(sessionByUid,1, MessageTypeProto.MessageType.ROOM_MATCH_SUCCESS_INDICATION_VALUE, builder.build(), true);
}
}
public static void sendRoomCancelMatchResponse(ISession session, int responseMsgId, int type, boolean result) {
@ -219,7 +222,10 @@ public class MessageUtil {
public static void sendRoomGameEndIndication(int uid, int roomId) {
RoomFightProto.RoomGameEndIndication.Builder builder = RoomFightProto.RoomGameEndIndication.newBuilder();
builder.setRoomId(roomId);
sendMessage(uid, 1, MessageTypeProto.MessageType.ROOM_GAME_END_INDICATION_VALUE, builder.build(), true);
ISession sessionByUid = OnlineUserManager.getSessionByUid(uid);
if(sessionByUid!=null){
sendIndicationMessage(sessionByUid,1, MessageTypeProto.MessageType.ROOM_GAME_END_INDICATION_VALUE, builder.build(), true);
}
}
public static void sendRoomStartGameReadyResponse(ISession session, int responseMsgId, int type) {
@ -232,7 +238,10 @@ public class MessageUtil {
RoomProto.RoomStartGameIndication.Builder builder = RoomProto.RoomStartGameIndication.newBuilder();
builder.setRoomId(roomId);
builder.setType(type);
sendMessage(uid, 1, MessageTypeProto.MessageType.ROOM_START_GAME_INDICATION_VALUE, builder.build(), true);
ISession sessionByUid = OnlineUserManager.getSessionByUid(uid);
if(sessionByUid!=null){
sendIndicationMessage(sessionByUid,1, MessageTypeProto.MessageType.ROOM_START_GAME_INDICATION_VALUE, builder.build(), true);
}
}
public static void sendRoomSyncMyselfMoveResponse(ISession session, int responseMsgId, long clientTimestamp) {
@ -245,6 +254,9 @@ public class MessageUtil {
RoomFightProto.RoomSyncOtherMoveIndiction.Builder builder = RoomFightProto.RoomSyncOtherMoveIndiction.newBuilder();
builder.setUid(uid);
builder.addAllTartXYs(path);
sendMessage(uid, 1, MessageTypeProto.MessageType.ROOM_SYNC_OTHER_MOVE_INDICTION_VALUE, builder.build(), true);
ISession sessionByUid = OnlineUserManager.getSessionByUid(uid);
if(sessionByUid!=null){
sendIndicationMessage(sessionByUid,1, MessageTypeProto.MessageType.ROOM_SYNC_OTHER_MOVE_INDICTION_VALUE, builder.build(), true);
}
}
}