每日累充,网页支付特殊处理

back_recharge
duhui 2021-09-27 15:29:18 +08:00
parent bb904c6d9f
commit 385db300e4
4 changed files with 75 additions and 9 deletions

View File

@ -724,6 +724,31 @@ public class TimeUtils {
return c.getTime();
}
/**
*
* @return
*/
public static long getTomorrowZero() {
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, 1);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
return c.getTimeInMillis();
}
/**
*
* @return
*/
public static long getTomorrowZero2() {
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 30);
return c.getTimeInMillis();
}
/**
*
*
@ -1578,8 +1603,7 @@ public class TimeUtils {
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MILLISECOND, 0);
long todayZero = calendar.getTimeInMillis();
return todayZero;
return calendar.getTimeInMillis();
}
/**

View File

@ -392,6 +392,10 @@ public class RedisKey {
*/
public static final String SEVEN_WORLD_INTEGRAL_RANK = "SEVEN_WORLD_INTEGRAL_RANK";
/**
*
*/
public static final String WEB_PAY = "WEB_PAY";
public static Set<String> newAreaCacChe = new HashSet<>();//进程排行 合区统一

View File

@ -26,7 +26,6 @@ import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.tools.Utils;
import com.ljsd.jieling.util.InnerMessageUtil;
@ -90,6 +89,8 @@ public class ActivityLogic implements IEventHandler{
}
//更新每日充值
ActivityLogic.getInstance().resumeActivity(user, ActivityType.DAILY_RECHARGE);
// 每日充值网页支付特殊处理
ActivityLogic.getInstance().webPayHandlerLogin(user);
//更新每日累计充值
ActivityLogic.getInstance().resumeActivity(user, ActivityType.RECHARGE_NUM);
//更新首日充值st
@ -119,9 +120,28 @@ public class ActivityLogic implements IEventHandler{
upFiveActivityTypes.add(ActivityType.LUCK_WHEEL_ADVANCE);
upFiveActivityTypes.add(ActivityType.RECHARGE_NUM);
upFivePlayerActivity(user, upFiveActivityTypes, fBuilder);
}
/**
*
* @param user
*
*/
private void webPayHandlerLogin(User user){
// 获取key
String subKey = RedisUtil.getInstence().getKey(String.valueOf(user.getId()), String.valueOf(ActivityType.DAILY_RECHARGE),false);
String key = RedisUtil.getInstence().getKey(RedisKey.WEB_PAY, subKey);
Object result = RedisUtil.getInstence().get(key);
if (result == null){
return;
}
// 网页支付在登陆之前充值的金额
double value = (double) result;
// 玩家缓存更新
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,(int)(value*1000));
// 删除key
RedisUtil.getInstence().del(key);
}
public void flushForLogin(User user,ISession iSession) throws Exception {

View File

@ -4,7 +4,6 @@ import com.ljsd.GameApplication;
import com.ljsd.jieling.config.reportData.DataMessageUtils;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.mongo.core.ServerBanPro;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
@ -12,7 +11,6 @@ import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.logic.GlobalDataManaager;
@ -324,18 +322,16 @@ public class BuyGoodsNewLogic {
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,(int)(price*1000));
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,(int)(price*1000));
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,(int)(price*1000));
webPayHandlerBuy(user,price);
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,(int)(price*1000));
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.JADE_DYNASTY_RECHARGE_SUM,(int)(price*1000));
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_SUM_DAY, (int)(user.getPlayerInfoManager().getRechargedaily()*1000) );
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FIND_FAIRY_FESTIVAL, (int)(price*1000));
AyyncWorker ayyncWorker = new AyyncWorker(user, true, new AynMissionWorker(GameEvent.RECHARGE_TOTAL,(int)(price*1000))) ;
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
ISession session = OnlineUserManager.getSessionByUid(user.getId());
PlayerInfoProto.RefreshRechargeIndication.Builder builder = PlayerInfoProto.RefreshRechargeIndication.newBuilder();
builder.setAmount(info.getRr());
builder.setMonthSaveAmt(info.getMonthRr());
@ -343,6 +339,28 @@ public class BuyGoodsNewLogic {
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.REFRESH_RECHARGE_INDICATION_VALUE,builder.build(),true);
}
/**
*
* @param user
* @param price
*/
private static void webPayHandlerBuy(User user, double price){
// 当天没有登陆,购买礼包操作
if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())){
// 获取key
String subKey = RedisUtil.getInstence().getKey(String.valueOf(user.getId()), String.valueOf(ActivityType.DAILY_RECHARGE),false);
String key = RedisUtil.getInstence().getKey(RedisKey.WEB_PAY, subKey);
// 计算金额
double num = Optional.ofNullable(RedisUtil.getInstence().get(key))
.map(v-> (double)v + price)
.orElse(price);
// 明天零点实际是今天的235930
long tomorrowZero = TimeUtils.getTomorrowZero2();
// 赋值
RedisUtil.getInstence().set(key,String.valueOf(num),tomorrowZero-TimeUtils.now());
}
}
/**
*
*/