修复特权卡不刷新的问题

main
grimm 2025-01-16 16:15:45 +08:00
parent 353af6a1e5
commit dfc96e76b1
7 changed files with 60 additions and 12 deletions

View File

@ -25,6 +25,7 @@ import com.ljsd.jieling.logic.heroTrial.HeroTrialLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.MissionLoigc;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.privilegeCard.PrivilegeCardLogic;
import com.ljsd.jieling.logic.question.QuestionLogic;
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
import com.ljsd.jieling.logic.store.PushRechargeType;
@ -77,6 +78,8 @@ public class GetPlayerInfoHandler extends BaseHandler {
}
//同步英雄芯片
UserManager.initHeroMedal(user);
//检查特权卡状态
PrivilegeCardLogic.checkPrivilegeCard(user,false);
Poster.getPoster().dispatchEvent(new UserOnlineEvent(userId));
GlobalDataManaager.checkNewFunction(user);
PlayerLogic.getInstance().sendDayilyMail(user, iSession);

View File

@ -5,6 +5,7 @@ import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.ArenaRecord;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.fight.FightUtil;
import com.ljsd.jieling.logic.virtualBattle.VirtualBattleLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
@ -37,9 +38,12 @@ public class FightVirtualEliteBattleFightRePlayRequestHandler extends BaseHandle
String selfKey = VirtualBattleLogic.getInstance().getSelfKeyForRePlay(uid,fightId);
ArenaRecord power = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, ArenaRecord.class);
ArenaRecord fast = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, ArenaRecord.class);
ArenaRecord self = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, ArenaRecord.class);
// ArenaRecord power = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, ArenaRecord.class);
// ArenaRecord fast = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, ArenaRecord.class);
// ArenaRecord self = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, ArenaRecord.class);
ArenaRecord power = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD,gameLevelId);
ArenaRecord fast = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_FAST_RECORD,gameLevelId);
ArenaRecord self = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_SELF_RECORD,selfKey);
FightInfoProto.VirtualBattleFightRePlayResponse.Builder fightRePlayResponse = FightInfoProto.VirtualBattleFightRePlayResponse.newBuilder();
List<ArenaRecord> list = new ArrayList<>();
list.add(power);

View File

@ -40,6 +40,7 @@ import com.ljsd.jieling.logic.mission.MissionLoigc;
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.privilegeCard.PrivilegeCardLogic;
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.logic.welfareCurrency.WelfareCurrencyLogic;
@ -391,6 +392,8 @@ public class GlobalDataManaager implements IManager {
user.getPlayerInfoManager().setProudInfo(new HashSet<>());
// 道具刷新
BuyGoodsLogic.refreshWelfareState(user);
//特权卡刷新
PrivilegeCardLogic.checkPrivilegeCard(user,true);
// 惊喜礼盒,超值基金,零点逻辑(可以同用一个状态)
Poster.getPoster().dispatchEvent(new SuperBoxEvent(user.getId(), SuperBoxEvent.fund_zero_init));
//联盟活跃任务刷新

View File

@ -228,6 +228,7 @@ public class PlayerManager extends MongoBase {
private long lastShareRewardTime; //上次分享领奖时间
private Set<Integer> awardedPrivilegeCard = new HashSet<>();//当日已经领过奖的特权卡
private long refreshPrivilegeCardTime;//上次特权卡重置时间
public List<GoodsReward> getProspectGoodsRewardRecords() {
return prospectGoodsRewardRecords;
@ -1331,4 +1332,13 @@ public class PlayerManager extends MongoBase {
this.lastShareRewardTime = lastShareRewardTime;
updateString("lastShareRewardTime",lastShareRewardTime);
}
public long getRefreshPrivilegeCardTime() {
return refreshPrivilegeCardTime;
}
public void setRefreshPrivilegeCardTime(long refreshPrivilegeCardTime) {
this.refreshPrivilegeCardTime = refreshPrivilegeCardTime;
updateString("refreshPrivilegeCardTime",refreshPrivilegeCardTime);
}
}

View File

@ -603,10 +603,10 @@ public class GuildLogic{
Integer position = memberEntry.getKey();
Set<Integer> value = memberEntry.getValue();
for (Integer uidTmp : value) {
LOGGER.info("uidTmp={}",uidTmp);
// LOGGER.info("uidTmp={}",uidTmp);
if(uidTmp != null) {
User userTmp = UserManager.getUser(uidTmp, true);
LOGGER.info("userTmp={}", userTmp);
// LOGGER.info("userTmp={}", userTmp);
if (userTmp != null) {
builder.addFamilyUserInfo(CBean2Proto.getFamilyUserInfo(userTmp, position));
} else {

View File

@ -115,4 +115,25 @@ public class PrivilegeCardLogic {
TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
}
}
/**
*
* @param user
*/
public static void checkPrivilegeCard(User user,boolean notice){
if (TimeUtils.differentDays(user.getPlayerInfoManager().getRefreshPrivilegeCardTime(), System.currentTimeMillis()) < 1) {
return;
}
user.getPlayerInfoManager().setRefreshPrivilegeCardTime(System.currentTimeMillis());
user.getPlayerInfoManager().resetAllAwardedPrivilegeCard();
if (notice){
for (int privilegeCardId : SPrivilegeCardConfig.privilegeCardConfigMap.keySet()) {
CommonProto.PrivilegeCardInfo privilegeCardInfo = CommonProto.PrivilegeCardInfo.newBuilder()
.setCardId(privilegeCardId)
.setTakeDailyReward(false)
.build();
MessageUtil.sendIndicationMessage(user.getId(), MessageTypeProto.MessageType.PUSH_PRIVILEGE_CARD_INFO_VALUE, privilegeCardInfo);
}
}
}
}

View File

@ -523,23 +523,30 @@ public class VirtualEliteBattleLogic {
String selfKey = getSelfKeyForRePlay(user.getId(), Integer.valueOf(gameLevelId));
RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, arenaRecord);
arenaRecordTemp = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, ArenaRecord.class);
// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, arenaRecord);
FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, arenaRecord);
// arenaRecordTemp = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, ArenaRecord.class);
arenaRecordTemp = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId);
if (arenaRecordTemp == null) {
RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord);
// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord);
FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord);
} else {
if (arenaRecord.getUseTime() < arenaRecordTemp.getUseTime()) {
RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord);
// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord);
FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord);
}
}
arenaRecordTemp = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, ArenaRecord.class);
// arenaRecordTemp = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, ArenaRecord.class);
arenaRecordTemp = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId);
if (arenaRecordTemp == null) {
RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord);
// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord);
FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord);
} else {
if (arenaRecord.getFightPower() < arenaRecordTemp.getFightPower()) {
RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord);
// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord);
FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord);
}
}
}