线下返利补偿
parent
3844c8e4b2
commit
063674c2f2
|
|
@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
|
|||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.mongo.gmActivity.ARBActivity;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
|
|
@ -11,6 +12,8 @@ import com.ljsd.jieling.globals.Global;
|
|||
import com.ljsd.jieling.handler.map.MapManager;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.LuckWheelMission;
|
||||
import com.ljsd.jieling.jbean.gm.GmActivity;
|
||||
import com.ljsd.jieling.jbean.gm.GmActivityManager;
|
||||
import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
||||
import com.ljsd.jieling.ktbeans.ReportUtil;
|
||||
import com.ljsd.jieling.logic.AiWanPlayerInfoUpload;
|
||||
|
|
@ -20,10 +23,8 @@ import com.ljsd.jieling.logic.activity.ActivityLogic;
|
|||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.activity.ChoiceDrawCardActivity;
|
||||
import com.ljsd.jieling.logic.activity.LimitRandomSpecialMonsterActivityNew;
|
||||
import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.SuperBoxEvent;
|
||||
import com.ljsd.jieling.logic.activity.activityLogic.GmActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.GlobalSystemControl;
|
||||
|
|
@ -172,6 +173,9 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
}
|
||||
}
|
||||
|
||||
//临时处理返利活动
|
||||
gmRechargeBackHandler(user);
|
||||
|
||||
List<CommonProto.GoodsTypeDuration> goodsTypeDurations = BuyGoodsNewLogic.getGoodsTypeDurations(user);
|
||||
//问卷状态
|
||||
int questState =-1;
|
||||
|
|
@ -213,6 +217,9 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
godTreeLvHandle(user);// 建木神树等级处理
|
||||
luckDialHandle(user);// 幸运转盘次数处理
|
||||
|
||||
// 返利
|
||||
GmActivityLogic.zeroUpdateGmActivity(user);
|
||||
|
||||
// 四灵试炼初始化
|
||||
FourChallengeLogic.getInstance().firstGetTimes(user);
|
||||
List<CommonProto.SixiangxinfaInfo> sixiangxinfaInfos = getSixiangxinfaInfos(heroManager);
|
||||
|
|
@ -677,6 +684,60 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
player.setSeniorTurntableBottomNumber(0);
|
||||
}
|
||||
|
||||
private void gmRechargeBackHandler(User user){
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
if (playerInfoManager.getGmRechargeBackMark() == 1){
|
||||
return;
|
||||
}
|
||||
|
||||
playerInfoManager.setGmRechargeBackMark(1);
|
||||
|
||||
Map<Long, Double> rechargeList = playerInfoManager.getNewRechargeInfo().getRechargeList();
|
||||
// 上次的更新时间:2023-02-07 17:00:00
|
||||
long lastUpdateTime = 1675760400000L;
|
||||
// 今天的凌晨时间:2023-02-08 00:00:00
|
||||
long todayMorningTime = 1675785600000L;
|
||||
// 今天的更新时间:2023-02-08 16:00:00
|
||||
long todayUpdateTime = 1675843200000L;
|
||||
|
||||
// 2.7下午五点到2.8凌晨充值过的玩家不用补偿,没有问题
|
||||
long count = rechargeList.keySet().stream().filter(v -> v > lastUpdateTime && v < todayUpdateTime).count();
|
||||
if (count > 0){
|
||||
return;
|
||||
}
|
||||
|
||||
// 重置玩家的单笔充值返利活动
|
||||
GmActivityManager manager = user.getGmActivityManager();
|
||||
Map<String, ARBActivity> arbActivityMap = GmActivityLogic.getArbActivity();
|
||||
for (GmActivity gmActivity : manager.getActivityMap().values()) {
|
||||
ARBActivity arbActivity = arbActivityMap.get(gmActivity.getId());
|
||||
if (arbActivity == null){
|
||||
continue;
|
||||
}
|
||||
// 单笔充值
|
||||
if (gmActivity.getType() == 4){
|
||||
gmActivity.setValue(0);
|
||||
gmActivity.setMissionMap(new HashMap<>());
|
||||
LOGGER.info("返利活动补偿,单笔充值重置,uid:{},活动id:{}",user.getId(),gmActivity.getId());
|
||||
}
|
||||
}
|
||||
|
||||
//记录玩家从2.8零点到2.8下午4点的充值金额
|
||||
List<Double> collect = rechargeList.entrySet().stream()
|
||||
.filter(e -> e.getKey() > todayMorningTime && e.getKey() < todayUpdateTime)
|
||||
.map(Map.Entry::getValue)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (collect.isEmpty()){
|
||||
return;
|
||||
}
|
||||
|
||||
for (Double price : collect) {
|
||||
Poster.getPoster().dispatchEvent(new AutoRechargeBackEvent(user.getId(), price.intValue(), GmActivityLogic.item_token));
|
||||
}
|
||||
LOGGER.info("返利活动补偿,uid:{},金额:{}",user.getId(), collect);
|
||||
}
|
||||
|
||||
/**
|
||||
* 摘星阁装备强化调整后返还玩家强化道具
|
||||
* @param user
|
||||
|
|
|
|||
|
|
@ -419,11 +419,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())) {
|
||||
// 周一零点执行逻辑,跨周执行
|
||||
// if (!TimeUtils.isSameWeek7(user.getPlayerInfoManager().getLoginTime())){
|
||||
// // 灵兽限时抽卡重置
|
||||
// ActivityLogic.getInstance().zeroResetSpecialMonsterActivity(session);
|
||||
// }
|
||||
//活动刷新
|
||||
ActivityLogic.getInstance().flushEveryDay(user,fBuilder);
|
||||
PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder);
|
||||
|
|
@ -437,8 +432,6 @@ public class GlobalDataManaager implements IManager {
|
|||
FriendLogic.getInstance().refreshState(session);
|
||||
PlayerLogic.getInstance().sendTimingMail(user);
|
||||
user.getGuildMyInfo().setLastHurt(0);
|
||||
// 每天零点清理玩家背包内的当日到期道具
|
||||
// ItemLogic.getInstance().zeroCleanItem(user);
|
||||
// 四灵试炼,计算每天次数
|
||||
FourChallengeLogic.getInstance().addFourChallengeNum(user,user.getPlayerInfoManager().getLoginTime());
|
||||
// 助战清理
|
||||
|
|
@ -447,18 +440,13 @@ public class GlobalDataManaager implements IManager {
|
|||
SevenWorldLogic.getInstance().sevenWorldInfoIndication(session);
|
||||
// 御剑行
|
||||
RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user);
|
||||
//周卡邮件发放未领取奖励
|
||||
// WeekCardLogic.getInstance().sendWeekCardRewardMail(session);
|
||||
WeekCardLogic.getInstance().weekCardInfoIndication(user,0,0);
|
||||
//TODO
|
||||
ChallengeLogic.getInstance().ChallengeInfoIndication(session);
|
||||
// GuildChallengeLogic.getInstance().resetBossDamage(user);
|
||||
if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){
|
||||
user.getPlayerInfoManager().updateSituationPass(new HashMap<>());
|
||||
}
|
||||
if(fBuilder!=null){
|
||||
fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build());
|
||||
// user.getPlayerInfoManager().setLoginTime(TimeUtils.now());
|
||||
Map<Integer, SDailyTasksConfig> config = SDailyTasksConfig.config;
|
||||
int dailymissionType = GameMisionType.DAILYMISSION.getType();
|
||||
int day = TimeUtils.getDayOfPeriod(GameApplication.serverConfig.getCacheOpenTime(),Calendar.DAY_OF_MONTH);//当月第几天
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ public class GmActivityLogic implements IEventHandler {
|
|||
* 获取gm活动
|
||||
* @return
|
||||
*/
|
||||
private static Map<String, ARBActivity> getArbActivity(){
|
||||
public static Map<String, ARBActivity> getArbActivity(){
|
||||
HashMap<String, ARBActivity> map = new HashMap<>();
|
||||
// 单属于本服的活动
|
||||
Map<String, ARBActivity> arbActivityMap = RedisUtil.getInstence().getMapValues2(RedisKey.GM_ACTIVITY_INFO, String.valueOf(GameApplication.serverId), String.class, ARBActivity.class);
|
||||
|
|
@ -386,12 +386,12 @@ public class GmActivityLogic implements IEventHandler {
|
|||
if (gmActivity.getType() == 1 || gmActivity.getType() == 2 || gmActivity.getType() == 4){
|
||||
gmActivity.setValue(0);
|
||||
gmActivity.setMissionMap(new HashMap<>());
|
||||
LOGGER.info("返利活动零点清零,uid:{},活动id:{}",user.getId(),gmActivity.getId());
|
||||
LOGGER.info("返利活动重置,uid:{},活动id:{}",user.getId(),gmActivity.getId());
|
||||
}
|
||||
}
|
||||
|
||||
manager.setUpdateTime(nowTime);
|
||||
LOGGER.info("返利活动零点清零结束,uid:{},刷新时间:{}",user.getId(),manager.getUpdateTime());
|
||||
LOGGER.info("返利活动重置结束,uid:{},刷新时间:{}",user.getId(),manager.getUpdateTime());
|
||||
}
|
||||
|
||||
public List<ARBActivity> findAllGmActivity() {
|
||||
|
|
|
|||
|
|
@ -267,6 +267,18 @@ public class PlayerManager extends MongoBase {
|
|||
updateString("jadeActivityUpdateMark", jadeActivityUpdateMark);
|
||||
}
|
||||
|
||||
// 返利补偿标记
|
||||
private int gmRechargeBackMark;
|
||||
|
||||
public int getGmRechargeBackMark() {
|
||||
return gmRechargeBackMark;
|
||||
}
|
||||
|
||||
public void setGmRechargeBackMark(int gmRechargeBackMark) {
|
||||
this.gmRechargeBackMark = gmRechargeBackMark;
|
||||
updateString("gmRechargeBackMark", gmRechargeBackMark);
|
||||
}
|
||||
|
||||
/**
|
||||
* bt 特权等级,key:UnlockType, value:等级
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ public class BuyGoodsNewLogic {
|
|||
}
|
||||
|
||||
int[] forbid = config.getForbid();
|
||||
if(forbid!=null&&forbid.length>0){
|
||||
if(forbid != null){
|
||||
//每日礼包一键购买之后,把所有单个的每日礼包的购买次数加一
|
||||
for (int gId : forbid) {
|
||||
AbstractWelfareBag countBag = rechargeHandler.getRechargeMap(user).get(gId);
|
||||
|
|
|
|||
Loading…
Reference in New Issue