gm修改器购买,老活动修改,自动返利监听器修改

back_recharge
duhui 2022-11-04 15:35:01 +08:00
parent a520fb0a75
commit 6b72172fe8
14 changed files with 225 additions and 135 deletions

View File

@ -7,6 +7,7 @@ import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.store.BuyGoodsNewLogic;
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag;
import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.ItemUtil;
@ -38,16 +39,16 @@ public class GmBuyGoodHandler extends BaseHandler<PlayerInfoProto.GmBuyGoodReque
// 用户信息
User user = UserManager.getUser(iSession.getUid());
int goodsId = proto.getGoodsId();
// 礼包配置是否存在
SGMMaster master = SGMMaster.getPickMap().get(goodsId);
if (master == null){
throw new ErrorCodeException(ErrorCode.CFG_NULL,"策划未未配置gm礼包id"+goodsId);
}
// 礼包是否到达购买条件
boolean canBuy = isCanBuy(user, goodsId);
if (!canBuy){
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE,"购买条件不足");
}
// 礼包配置是否存在
SGMMaster master = SGMMaster.getMap().get(goodsId);
if (master == null){
throw new ErrorCodeException(ErrorCode.CFG_NULL,"策划未未配置gm礼包id"+goodsId);
}
// 道具是否足够
boolean cost = ItemUtil.itemCost(user, master.getPrice(), BIReason.GM_BUY_GOOD_COST, 0);
if (!cost){
@ -65,11 +66,15 @@ public class GmBuyGoodHandler extends BaseHandler<PlayerInfoProto.GmBuyGoodReque
* @return
*/
public static boolean isCanBuy(User user, int id) throws Exception{
Map<Integer, SGMMaster> config = SGMMaster.getMap();
Map<Integer, SGMMaster> config = SGMMaster.getPickMap();
SGMMaster master = config.get(id);
if (master == null){
return false;
}
boolean goodStatus = checkGoodStatus(user, id);
if (goodStatus){
throw new ErrorCodeException(ErrorCode.BLOOD_BUY_SCORE_YET);
}
boolean result = true;
for (int[] value : master.getUnlock()) {
switch (value[0]){
@ -92,7 +97,7 @@ public class GmBuyGoodHandler extends BaseHandler<PlayerInfoProto.GmBuyGoodReque
}
for (SGMMaster sgmMaster : masters) {
boolean status = checkGoodStatus(user, sgmMaster.getPackID());
if (status){
if (!status){
throw new ErrorCodeException(ErrorCode.BEFORE_CONDITION_NOT);
}
}
@ -125,6 +130,11 @@ public class GmBuyGoodHandler extends BaseHandler<PlayerInfoProto.GmBuyGoodReque
private static boolean checkGoodStatus(User user, int goodId){
SRechargeCommodityNewConfig recharge = SRechargeCommodityNewConfig.getConfigById(goodId);
RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(recharge.getOtype());
return rechargeHandler.refreshStatus(user, goodId);
AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(goodId);
// 是否可买
if (bag != null && bag.checkBuy()){
return true;
}
return false;
}
}

View File

@ -17,12 +17,12 @@ public enum ActivityTypeEnum {
// BLESSACTIVITY(ActivityType.BLESSACTIVITY, BlessActivity::new),
TREASUREACTIVITY(ActivityType.TREASURE, TreasureActivity::new),
LUCKYCAT(ActivityType.LUCKYCAT, LuckyCatActivity::new),
SERVERHAPPY(ActivityType.SERVERHAPPY, DefaultEmptyActivity::new),
SERVERHAPPY(ActivityType.SERVERHAPPY, SevenHappyActivity::new),//七日狂欢
FORCERANK(ActivityType.FORCERANK, ForceRankActivity::new),
FORCESTANDARD(ActivityType.FORCESTANDARD, ForceStandardActivity::new),
DAILY_RECHARGE(ActivityType.DAILY_RECHARGE, DailyRechargeActivity::new),
RECHARGE_SUM(ActivityType.RECHARGE_SUM_DAY, RechargeSumDayActivity::new),
EXCHANGEANDDROP(ActivityType.EXCHANGEANDDROP, DefaultEmptyActivity::new),
EXCHANGEANDDROP(ActivityType.EXCHANGEANDDROP, ExchangeEndDropActivity::new),//限时兑换
SECURT_EXPERT(ActivityType.SECURT_EXPERT, SecretExpectRankActivity::new),
ARENA_EXPERT(ActivityType.ARENA_EXPERT, AreanaExpectRankActivity::new),
UP_EXPERT(ActivityType.UP_EXPERT, HeroUpExpectRankActivity::new),
@ -66,7 +66,7 @@ public enum ActivityTypeEnum {
SPECIAL_MONSTER_RANDOM_ACTIVITY(ActivityType.SPECIAL_MONSTER_RANDOM_ACTIVITY,LimitRandomSpecialMonsterActivityNew::new),
SPECIAL_MONSTER_GIFT_ACTIVITY(ActivityType.SPECIAL_MONSTER_GIFT_ACTIVITY,DefaultEmptyActivity::new),
DEMON_TREASURE(ActivityType.DEMON_TREASURE,LimitRandomSpecialMonsterActivity::new),
NEW_GENERAL_ATTACK(ActivityType.NEW_GENERAL_ATTACK,DefaultEmptyActivity::new),
NEW_GENERAL_ATTACK(ActivityType.NEW_GENERAL_ATTACK,ExchangeEndDropActivity::new),//新将来袭
GOOD_LUCK(ActivityType.GOOD_LUCK,DefaultEmptyActivity::new),
COW_FLY_SKY(ActivityType.COW_FLY_SKY,CowFlySkyActivity::new),//牛气冲天
FIFTEEN_LOGIN(ActivityType.FIFTEEN_LOGIN,FifteenActivity::new),

View File

@ -20,14 +20,14 @@ import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import util.TimeUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author hj
* bt
* progress:
* state
* 2022-9-6
*/
public class BrushPrivilegeActivity extends AbstractActivity {
@ -41,15 +41,29 @@ public class BrushPrivilegeActivity extends AbstractActivity {
public void initActivity(User user) throws Exception {
// 活动信息初始化
ActivityMission mission = new ActivityMission();
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
List<Integer> list = Arrays.stream(activity.getCanBuyRechargeId()).boxed().collect(Collectors.toList());
initOtherMission(mission, list);
user.getActivityManager().getActivityMissionMap().put(id, mission);
// 刷冲特权第一个礼包默认开启
update(user,activity.getCanBuyRechargeId()[0]);
LOGGER.info("刷冲特权-bt版...uid={},activityId={}",user.getId(), id);
}
public void initOtherMission(ActivityMission activityMission,List<Integer> missionIds){
for (int i = 0; i < missionIds.size(); i++) {
ActivityProgressInfo info = new ActivityProgressInfo();
Integer missionId = missionIds.get(i);
int state = i==0 ? 1:0;
int progress = (int)(TimeUtils.getYesterdayZero()/1000);
info.setProgrss(progress);
info.setState(state);
activityMission.getActivityMissionMap().put(missionId, info);
}
activityMission.setOpenType(1);
activityMission.setV(0);
activityMission.setActivityState(ActivityType.OPEN_STATE);
activityMission.setCreatTime(TimeUtils.now());
}
@Override
public void onEvent(IEvent event) throws Exception {
// 类型验证
@ -60,14 +74,13 @@ public class BrushPrivilegeActivity extends AbstractActivity {
SuperBoxEvent event1 = (SuperBoxEvent) event;
User user = UserManager.getUser(event1.getUserId());
// 礼包处理
update(user, event1.getGiftId());
uporsetValue(user, event1.getGiftId(), 1);
// 客户端推送
ISession session = OnlineUserManager.getSessionByUid(user.getId());
sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null);
}
@Override
public void update(User user, int giftId) {
public void uporsetValue(User user, int giftId, int state) {
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
if (giftId < 0 || activity == null || activity.getCanBuyRechargeId() == null || activityMission == null){
@ -78,9 +91,8 @@ public class BrushPrivilegeActivity extends AbstractActivity {
continue;
}
ActivityProgressInfo info = new ActivityProgressInfo();
info.setProgrss(1);
int time = (int)(TimeUtils.getYesterdayZero()/1000);
info.setState(time);
info.setProgrss((int)(TimeUtils.getYesterdayZero()/1000));
info.setState(state);
activityMission.getActivityMissionMap().putIfAbsent(giftId, info);
}
}
@ -105,7 +117,7 @@ public class BrushPrivilegeActivity extends AbstractActivity {
continue;
}
ActivityProgressInfo info = progressInfoMap.get(giftId);
int progress = getProgress(activityMission,giftId,info);
int progress = getProgress(info);
int state = getState(info);
// 封装proto并返回
CommonProto.ActivityInfo.MissionInfo build = CommonProto.ActivityInfo.MissionInfo.newBuilder()
@ -123,21 +135,19 @@ public class BrushPrivilegeActivity extends AbstractActivity {
* @param progressInfo
* @return
*/
private int getProgress(ActivityMission mission, int missionId, ActivityProgressInfo progressInfo){
private int getProgress(ActivityProgressInfo progressInfo){
int progress = 0;
if (progressInfo == null){
return progress;
}
// 上次领取时间
int time = TimeUtils.getZeroInt(progressInfo.getState());
int time = TimeUtils.getZeroInt(progressInfo.getProgrss());
// 当前时间
int now = TimeUtils.getZeroInt(TimeUtils.nowInt());
// 间隔天数
progress = TimeUtils.getSoFarWentDays(time * 1000L, now * 1000L);
// 最多累计30天
progress = Math.min(progress, 30);
progressInfo.setProgrss(progress);
mission.getActivityMissionMap().put(missionId,progressInfo);
return progress;
}
@ -148,10 +158,10 @@ public class BrushPrivilegeActivity extends AbstractActivity {
*/
private int getState(ActivityProgressInfo progress){
int state = 0;
if (progress == null){
if (progress == null || progress.getState() == 0){
return state;
}
if (progress.getProgrss() > 0){
if (getProgress(progress) > 0){
state = 1;
}else {
state = 2;
@ -177,7 +187,7 @@ public class BrushPrivilegeActivity extends AbstractActivity {
SRechargeCommodityNewConfig newConfig = SRechargeCommodityNewConfig.getConfigById(missionId);
ActivityProgressInfo progressInfo = mission.getActivityMissionMap().get(missionId);
int progress = getProgress(mission, missionId, progressInfo);
int progress = getProgress(progressInfo);
int state = getState(progressInfo);
if (state != 1){
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE,"领取条件不满足活动id ==> 挡位id"+id+"==>"+missionId);
@ -199,8 +209,8 @@ public class BrushPrivilegeActivity extends AbstractActivity {
@Override
void updateProgress(ActivityMission activityMission, int giftId) {
ActivityProgressInfo info = new ActivityProgressInfo();
info.setProgrss(0);
info.setState(TimeUtils.nowInt());
info.setProgrss(TimeUtils.nowInt());
info.setState(2);
activityMission.getActivityMissionMap().put(giftId,info);
}

View File

@ -1,18 +1,7 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.logic.dao.Item;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.ToolsUtil;
import config.*;
import manager.STableManager;
import java.util.ArrayList;
@ -27,47 +16,5 @@ public class DefaultEmptyActivity extends AbstractActivity{
ActivityMission mission = new ActivityMission();
ActivityLogic.getInstance().initOtherMission(mission,new ArrayList<>());
user.getActivityManager().getActivityMissionMap().put(id, mission);
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){
user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH,id);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
user.getActivityManager().setSenvenStartTime(startTime);
}
}
@Override
public void onActivityEndOnMySelf(User user) throws Exception {
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){
STreasureTaskConfig sTreasureTaskConfig = STableManager.getFigureConfig(TaskStaticConfig.class).getsTreasureSevenTaskConfigByActivityMap().get(id);
ServenMissionIdsType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
if(!sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
// int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores;
sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId());
sevenHappyMissionType.getFinishMissionIds().remove(sTreasureTaskConfig.getId());
sevenHappyMissionType.getRewardedMissionIds().set(sTreasureTaskConfig.getId());
user.getUserMissionManager().setSevenHappyMissionType(sevenHappyMissionType);
}
}else if(sGlobalActivity.getType() == ActivityType.EXCHANGEANDDROP || sGlobalActivity.getType() == ActivityType.NEW_GENERAL_ATTACK){
// 限时兑换和新将来袭活动结束会清空道具
int shopId = sGlobalActivity.getShopId()[0];
SStoreConfig sStoreConfig = SStoreConfig.getSstoreConfigBuyStore().get(shopId).get(0);
int removeItemId = sStoreConfig.getCost()[0][0];
Item item = user.getItemManager().getItem(removeItemId);
if(item!=null){
int[][] cost= new int[1][];
cost[0] = new int[]{item.getItemId(),(int)item.getItemNum()};
ItemUtil.itemCost(user,cost, BIReason.EXCHANGE_ACTIVITY_CLOSE,sGlobalActivity.getId());
}
}
}
@Override
public void onActivityEndDealReward(User user) throws Exception {
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){
return;
}
super.onActivityEndDealReward(user);
}
}

View File

@ -0,0 +1,33 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.logic.dao.Item;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.util.ItemUtil;
import config.SGlobalActivity;
import config.SStoreConfig;
import java.util.ArrayList;
public class ExchangeEndDropActivity extends DefaultEmptyActivity{
public ExchangeEndDropActivity(int id) {
super(id);
}
@Override
public void onActivityEndOnMySelf(User user) throws Exception {
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
// 限时兑换和新将来袭活动结束会清空道具
int shopId = sGlobalActivity.getShopId()[0];
SStoreConfig sStoreConfig = SStoreConfig.getSstoreConfigBuyStore().get(shopId).get(0);
int removeItemId = sStoreConfig.getCost()[0][0];
Item item = user.getItemManager().getItem(removeItemId);
if(item!=null){
int[][] cost= new int[1][];
cost[0] = new int[]{item.getItemId(),(int)item.getItemNum()};
ItemUtil.itemCost(user,cost, BIReason.EXCHANGE_ACTIVITY_CLOSE,sGlobalActivity.getId());
}
}
}

View File

@ -5,7 +5,7 @@ import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.RechargeRewardEvent;
import com.ljsd.jieling.logic.activity.event.SingleRechargeEvent;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession;
@ -20,15 +20,15 @@ public class RechargeRewardActivity extends AbstractActivity {
public RechargeRewardActivity(int id) {
super(id);
Poster.getPoster().listenEvent(this, RechargeRewardEvent.class);
Poster.getPoster().listenEvent(this, SingleRechargeEvent.class);
}
@Override
public void onEvent(IEvent event) throws Exception{
if (!(event instanceof RechargeRewardEvent))
if (!(event instanceof SingleRechargeEvent))
return;
RechargeRewardEvent rewardEvent = (RechargeRewardEvent) event;
SingleRechargeEvent rewardEvent = (SingleRechargeEvent) event;
User user = UserManager.getUser(rewardEvent.getUid());
if (null == user) {
return;
@ -36,7 +36,7 @@ public class RechargeRewardActivity extends AbstractActivity {
List<SActivityRewardConfig> rewardConfigList = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).stream()
.filter(n->n.getValues()[0][0]== rewardEvent.getRechargeCount())
.collect(Collectors.toList());
if(rewardConfigList == null || rewardConfigList.size() == 0){
if(rewardConfigList.size() == 0){
return ;
}
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);

View File

@ -0,0 +1,47 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
import com.ljsd.jieling.util.ToolsUtil;
import config.SGlobalActivity;
import config.STreasureTaskConfig;
import manager.STableManager;
import java.util.ArrayList;
public class SevenHappyActivity extends DefaultEmptyActivity{
public SevenHappyActivity(int id) {
super(id);
}
@Override
public void initActivity(User user) throws Exception {
ActivityMission mission = new ActivityMission();
ActivityLogic.getInstance().initOtherMission(mission,new ArrayList<>());
user.getActivityManager().getActivityMissionMap().put(id, mission);
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH,id);
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
user.getActivityManager().setSenvenStartTime(startTime);
}
@Override
public void onActivityEndOnMySelf(User user) throws Exception {
STreasureTaskConfig sTreasureTaskConfig = STableManager.getFigureConfig(TaskStaticConfig.class).getsTreasureSevenTaskConfigByActivityMap().get(id);
ServenMissionIdsType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
if(!sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId());
sevenHappyMissionType.getFinishMissionIds().remove(sTreasureTaskConfig.getId());
sevenHappyMissionType.getRewardedMissionIds().set(sTreasureTaskConfig.getId());
user.getUserMissionManager().setSevenHappyMissionType(sevenHappyMissionType);
}
}
@Override
public void onActivityEndDealReward(User user) {
}
}

View File

@ -1,33 +1,5 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.jbean.ActivityManager;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SuperBoxEvent;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo;
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag;
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import config.SLuxuryFund;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import util.TimeUtils;
import java.security.Key;
import java.time.Year;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author hj
*

View File

@ -17,7 +17,6 @@ import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import config.SGlobalActivity;
import config.SLuxuryFund;
import config.SSurpriseBox;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import util.TimeUtils;

View File

@ -12,6 +12,7 @@ import com.ljsd.jieling.jbean.gm.GmActivityManager;
import com.ljsd.jieling.jbean.gm.GmMission;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.IEventHandler;
import com.ljsd.jieling.logic.activity.event.AutoRechargeBackEvent;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SuperBoxEvent;
@ -47,7 +48,7 @@ public class GmActivityLogic implements IEventHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(GmActivityLogic.class);
public GmActivityLogic() {
Poster.getPoster().listenEvent(this, SuperBoxEvent.class);
Poster.getPoster().listenEvent(this, AutoRechargeBackEvent.class);
}
public static GmActivityLogic getInstance() {
@ -62,18 +63,18 @@ public class GmActivityLogic implements IEventHandler {
@Override
public void onEvent(IEvent event) throws Exception {
if (!(event instanceof SuperBoxEvent)){
if (!(event instanceof AutoRechargeBackEvent)){
return;
}
SuperBoxEvent boxEvent = (SuperBoxEvent) event;
if (boxEvent.getGiftId() <= 0){
AutoRechargeBackEvent rechargeBackEvent = (AutoRechargeBackEvent) event;
if (rechargeBackEvent.getGiftId() <= 0){
return;
}
SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(boxEvent.getGiftId());
SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(rechargeBackEvent.getGiftId());
if (config == null){
return;
}
User user = UserManager.getUser(boxEvent.getUserId());
User user = UserManager.getUser(rechargeBackEvent.getUserId());
GmActivityManager manager = user.getGmActivityManager();
HashMap<String, GmActivity> activityMap = manager.getActivityMap();
for (Map.Entry<String, GmActivity> entry : activityMap.entrySet()) {

View File

@ -0,0 +1,36 @@
package com.ljsd.jieling.logic.activity.event;
/**
* @Author hj
* @Date 2021/5/26 11:05
* @Description:
* @Version 1.0
*/
public class AutoRechargeBackEvent implements IEvent {
private int userId;//角色id
private int giftId;//礼包id
private String rechargeMethod;//充值方式
public AutoRechargeBackEvent(int userId, int giftId, String rechargeMethod) {
this.userId = userId;
this.giftId = giftId;
this.rechargeMethod = rechargeMethod;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public int getGiftId() {
return giftId;
}
public void setGiftId(int giftId) {
this.giftId = giftId;
}
}

View File

@ -0,0 +1,27 @@
package com.ljsd.jieling.logic.activity.event;
public class SingleRechargeEvent implements IEvent {
private int uid;
private int rechargeCount;//充值金额
public SingleRechargeEvent(int uid, int rechargeCount) {
this.uid = uid;
this.rechargeCount = rechargeCount;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public int getRechargeCount() {
return rechargeCount;
}
public void setRechargeCount(int rechargeCount) {
this.rechargeCount = rechargeCount;
}
}

View File

@ -231,6 +231,15 @@ public class BuyGoodsNewLogic {
resultRes.setResultCode(1);
return resultRes;
}
// gm充值不进行单笔充值活动
if (!gm_modifier.equals(orderId)){
// 单笔充值
Poster.getPoster().dispatchEvent(new SingleRechargeEvent(user.getId(),(int)price));
// 线下自动返利
Poster.getPoster().dispatchEvent(new AutoRechargeBackEvent(user.getId(),goodsId,orderId));
}
Poster.getPoster().dispatchEvent(new RechargeRewardEvent(user.getId(),(int)price));
int[] forbid = config.getForbid();
@ -249,7 +258,7 @@ public class BuyGoodsNewLogic {
//发货
sendGoodsByType(user,config,list);
if(config.getAccumulativeRecharge() == 1 && !gm_modifier.equals(orderId)){
if(config.getAccumulativeRecharge() == 1){
if(info.getMaxSingleR() < price){
info.setMaxSingleR(price);
}

View File

@ -3,7 +3,6 @@ package config;
import manager.STableManager;
import manager.Table;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -24,7 +23,7 @@ public class SGMMaster implements BaseConfig {
private static Map<Integer, List<SGMMaster>> typeMap = new HashMap<>();
private static Map<Integer, SGMMaster> map = new HashMap<>();
private static Map<Integer, SGMMaster> pickMap = new HashMap<>();
@Override
public void init() throws Exception {
@ -42,16 +41,16 @@ public class SGMMaster implements BaseConfig {
}
typeMap.clear();
typeMap = map1;
map.clear();
map = map2;
pickMap.clear();
pickMap = map2;
}
public static Map<Integer, List<SGMMaster>> getTypeMap() {
return typeMap;
}
public static Map<Integer, SGMMaster> getMap() {
return map;
public static Map<Integer, SGMMaster> getPickMap() {
return pickMap;
}
public int getId() {