周卡打开

xuexinpeng 2021-11-08 00:06:49 +08:00
parent 9e22fed4ad
commit fb69e8de2e
5 changed files with 69 additions and 21 deletions

View File

@ -34,8 +34,7 @@ public class WeekCardHandler extends BaseHandler<ActivityProto.WeekCardRewardReq
@Override
public void processWithProto(ISession session, ActivityProto.WeekCardRewardRequest proto) throws Exception{
return;
/*User user = UserManager.getUser(session.getUid());
User user = UserManager.getUser(session.getUid());
int weekId = proto.getId();
Map<Integer, WeekCardInfo> weekCard = user.getPlayerInfoManager().getWeekCard();
ActivityProto.WeekCardRewardResponse.Builder res = ActivityProto.WeekCardRewardResponse.newBuilder();
@ -71,6 +70,5 @@ public class WeekCardHandler extends BaseHandler<ActivityProto.WeekCardRewardReq
singleWeekCard.setLeaveGetRewardDays(TimeUtils.getDayOfWeek());
user.getPlayerInfoManager().setWeekCard(weekCard);
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardRewardResponse.getNumber(), res.build(), true);
*/
}
}

View File

@ -34,10 +34,7 @@ public class WeekCardInfoHandler extends BaseHandler<ActivityProto.WeekCardInfo
*/
@Override
public void processWithProto(ISession session, ActivityProto.WeekCardInfoRequest proto) throws Exception{
ActivityProto.WeekCardInfoResponse.Builder res = ActivityProto.WeekCardInfoResponse.newBuilder();
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardInfoResponse.getNumber(), res.build(), true);
return;
/*User user = UserManager.getUser(session.getUid());
User user = UserManager.getUser(session.getUid());
int[] weekType = WeekCardLogic.getInstance().getWeekCardType(user);
if(weekType == null){
return;
@ -45,6 +42,6 @@ public class WeekCardInfoHandler extends BaseHandler<ActivityProto.WeekCardInfo
ActivityProto.WeekCardInfoResponse.Builder res = ActivityProto.WeekCardInfoResponse.newBuilder();
List<CommonProto.WeekCard> weekCardList = WeekCardLogic.getInstance().initAllWeekCardInfo(user);
res.addAllAllWeekCardInfo(weekCardList);
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardInfoResponse.getNumber(), res.build(), true);*/
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardInfoResponse.getNumber(), res.build(), true);
}
}

View File

@ -407,8 +407,6 @@ public class GlobalDataManaager implements IManager {
public static void checkNeedReFlush(ISession session,User user,PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception {
// 需要隔天刷新的字段统一在这里处理
if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())) {
//周卡每日刷新
//WeekCardLogic.getInstance().sendWeekCardInitInfo(session);
//活动刷新
ActivityLogic.getInstance().flushEveryDay(user,fBuilder);
PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder);
@ -434,6 +432,10 @@ public class GlobalDataManaager implements IManager {
SevenWorldLogic.getInstance().sevenWorldInfoIndication(session);
// 御剑行
RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user);
//周卡每日刷新
WeekCardLogic.getInstance().sendWeekCardInitInfo(session);
//周卡邮件发放未领取奖励
WeekCardLogic.getInstance().sendWeekCardRewardMail(session);
// GuildChallengeLogic.getInstance().resetBossDamage(user);
if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){

View File

@ -1,22 +1,25 @@
package com.ljsd.jieling.logic.activity.activityLogic;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.WeekCardInfo;
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.util.MessageUtil;
import config.SErrorCodeEerverConfig;
import config.SWeekcardConfig;
import config.SWeekcardRotationConfig;
import manager.STableManager;
import rpc.protocols.ActivityProto;
import rpc.protocols.CommonProto;
import rpc.protocols.MessageTypeProto;
import util.StringUtil;
import util.TimeUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
public class WeekCardLogic {
@ -25,7 +28,6 @@ public class WeekCardLogic {
public static class Instance {
public final static WeekCardLogic instance = new WeekCardLogic();
}
public static WeekCardLogic getInstance() {
@ -39,7 +41,54 @@ public class WeekCardLogic {
res.addAllAllWeekCardInfo(weekCardList);
//MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse, res.build(), true);
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse_VALUE,res.build(),true);
}
public void sendWeekCardRewardMail(ISession session)throws Exception{
//发每周未领取的奖励
User user = UserManager.getUser(session.getUid());
Map<Integer, WeekCardInfo> weekCard = user.getPlayerInfoManager().getWeekCard();
Map<Integer,Integer>dropMap = new HashMap<>();
boolean isSave = false;
for(WeekCardInfo weekCardVal:weekCard.values()){
Map<Integer, SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
if(!config.containsKey(weekCardVal.getId())){
continue;
}
if(!weekCardVal.isBuy()){
continue;
}
if(TimeUtils.isSameWeek7(weekCardVal.getBugTime())){
continue;
}
if(Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays()>0){
for(int i= (Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays());i>0;i--){
int [][]drop =config.get(weekCardVal.getId()).getBaseReward();
for(int[] single:drop){
if(dropMap.containsKey(single[0])){
dropMap.put(single[0],dropMap.get(single[0])+single[1]);
}else{
dropMap.put(single[0],single[1]);
}
}
}
weekCardVal.setBuy(false);
weekCardVal.setBugTime(0);
isSave =true;
int [][] dropArray= dropMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new);
/*String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("MsRankContent",new Object[]{(i + 1)},new int[0],"#");
MailLogic.getInstance().sendMail(arenaRankfilt.get(i), title, content,
StringUtil.parseArrayToString(config.getSeasonReward()), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);*/
MailLogic.getInstance().sendMail(user.getId(), "周卡未领取奖励", "周卡奖励",
StringUtil.parseArrayToString(dropArray), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
}else{
weekCardVal.setBuy(false);
weekCardVal.setBugTime(0);
isSave = true;
}
if(isSave){
user.getPlayerInfoManager().setWeekCard(weekCard);
}
}
}
public List<CommonProto.WeekCard> initAllWeekCardInfo(User user) throws Exception{
@ -54,7 +103,6 @@ public class WeekCardLogic {
boolean isSaveToDb =false;
List<CommonProto.WeekCard> weekCardList=new ArrayList<>();
for(int i= 1;i<weekCardType.length;i++){
//if(config.containsKey(weekCardType[i])){
CommonProto.WeekCard.Builder weekCardProto = CommonProto.WeekCard.newBuilder();
//周卡是否存在 判断是否过期
if(!weekCard.containsKey(weekCardType[i])){
@ -75,7 +123,6 @@ public class WeekCardLogic {
weekCardProto.setIsBuy(singleWeekCard.isBuy());
weekCardProto.setLeaveGetRewardDays(TimeUtils.getDayOfWeek()-singleWeekCard.getLeaveGetRewardDays());
weekCardList.add(weekCardProto.build());
//}
}
if(isSaveToDb){
user.getPlayerInfoManager().setWeekCard(weekCard);
@ -106,11 +153,15 @@ public class WeekCardLogic {
if(level == 0){
level = user.getPlayerInfoManager().getLevel();
}
if(cardType.length>1){
if(level>=cardType[0][0]&&level<=cardType[1][0]){
return cardType[0];
}else {
return cardType[1];
}
}else {
return cardType[0];
}
}
}
return null;

View File

@ -402,8 +402,8 @@ public class BuyGoodsNewLogic {
}
//周卡
if(type==GiftGoodsType.WEEKCARD){
//WeekCardLogic.getInstance().buyWeekCard(user,config.getId());
//WeekCardLogic.getInstance().sendWeekCardInitInfo(session);
WeekCardLogic.getInstance().buyWeekCard(user,config.getId());
WeekCardLogic.getInstance().sendWeekCardInitInfo(session);
}
if(drop!=null&&session!=null){
PlayerInfoProto.DirectBuyIndication build = PlayerInfoProto.DirectBuyIndication.newBuilder().setDrop(drop).build();