礼包错误数据处理
parent
0ec3fe16b6
commit
513b3b68e1
|
|
@ -14,8 +14,9 @@ import org.springframework.data.convert.ReadingConverter;
|
|||
public class MongoRechargeConverter implements Converter<BasicDBObject, AbstractWelfareBag> {
|
||||
@Override
|
||||
public AbstractWelfareBag convert(BasicDBObject source) {
|
||||
Object modId = source.getOrDefault("modId", 0);
|
||||
Gson gson = new Gson();
|
||||
SRechargeCommodityNewConfig config = STableManager.getConfig(SRechargeCommodityNewConfig.class).get(source.getInt("modId"));
|
||||
SRechargeCommodityNewConfig config = STableManager.getConfig(SRechargeCommodityNewConfig.class).get((int)modId);
|
||||
Class<? extends AbstractWelfareBag> target = AbstractWelfareBag.class;
|
||||
if (config != null){
|
||||
if(config.getOtype() == RechargeType.timeLimit.getType()){
|
||||
|
|
|
|||
|
|
@ -100,8 +100,8 @@ public class GuildChallengeLogic {
|
|||
|
||||
int isRefresh = 0 ;
|
||||
//先清除特权
|
||||
if(guildInfo.getCurrBossId()!=0&&guildInfo.getCurrBossId()!= guildMyInfo.getLastMonsterId()&& guildMyInfo.getLastMonsterId()!=0){
|
||||
if(!guildMyInfo.getRefreshedBoss().contains(guildMyInfo.getLastMonsterId())&&guildMyInfo.getGuildChallengeDamage()!=0){
|
||||
if(guildInfo.getCurrBossId()!=0 && guildMyInfo.getLastMonsterId()!=0 && guildInfo.getCurrBossId()!=guildMyInfo.getLastMonsterId()){
|
||||
if(!guildMyInfo.getRefreshedBoss().contains(guildMyInfo.getLastMonsterId()) && guildMyInfo.getGuildChallengeDamage()!=0){
|
||||
refreshGuildChallengeStore(user, config.getPrivilege());
|
||||
guildMyInfo.addRefreshedBoss(guildMyInfo.getLastMonsterId());
|
||||
isRefresh = 1;
|
||||
|
|
@ -137,7 +137,6 @@ public class GuildChallengeLogic {
|
|||
|
||||
/**
|
||||
* 挑战、扫荡
|
||||
* @param session
|
||||
*/
|
||||
public void doGuildChallenge(ISession session,int bossId,int type,MessageTypeProto.MessageType messageType) throws Exception {
|
||||
int uid = session.getUid();
|
||||
|
|
@ -146,14 +145,11 @@ public class GuildChallengeLogic {
|
|||
if(guildId==0){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
|
||||
// 挑战加锁
|
||||
if(!lockMap.containsKey(guildId)){
|
||||
lockMap.put(guildId,new Object());
|
||||
}
|
||||
String error = "";
|
||||
/**
|
||||
* 挑战加锁
|
||||
*/
|
||||
CommonProto.Drop.Builder drop = null;
|
||||
CommonProto.FightData fightData = null;
|
||||
int kill = 0;
|
||||
|
|
@ -287,6 +283,10 @@ public class GuildChallengeLogic {
|
|||
if(!OnlineUserManager.sessionMap.containsKey(sendUid)){
|
||||
continue;
|
||||
}
|
||||
//如果击败的是最后一关 不需要刷新
|
||||
if(guildInfo.getBossHpRemain()==-1){
|
||||
continue;
|
||||
}
|
||||
AyyncWorker worker = new AyyncWorker(UserManager.getUser(sendUid),false,(user1)->{
|
||||
GuildMyInfo guildMyInfo = user1.getGuildMyInfo();
|
||||
if(guildMyInfo.getGuildChallengeDamage()==0){
|
||||
|
|
@ -295,13 +295,10 @@ public class GuildChallengeLogic {
|
|||
if(guildMyInfo.getRefreshedBoss().contains(bossId)) {
|
||||
return;
|
||||
}
|
||||
//如果击败的是最后一关 不需要刷新
|
||||
if(guildInfo.getBossHpRemain()!=-1){
|
||||
refreshGuildChallengeStore(user1, config.getPrivilege());
|
||||
guildMyInfo.addRefreshedBoss(bossId);
|
||||
guildMyInfo.setLastMonsterId(bossId+1);
|
||||
guildMyInfo.setGuildChallengeDamage(0);
|
||||
}
|
||||
refreshGuildChallengeStore(user1, config.getPrivilege());
|
||||
guildMyInfo.addRefreshedBoss(bossId);
|
||||
guildMyInfo.setLastMonsterId(bossId+1);
|
||||
guildMyInfo.setGuildChallengeDamage(0);
|
||||
});
|
||||
ProtocolsManager.getInstance().updateAyncWorker(worker);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ 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 config.SRechargeCommodityNewConfig;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -15,27 +17,26 @@ import java.util.Map;
|
|||
*/
|
||||
public abstract class AbstractRechargeHandler implements RechargeHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRechargeHandler.class);
|
||||
|
||||
@Override
|
||||
public boolean refreshStatus(User user, int rechargeId){
|
||||
//判断刷新时间
|
||||
long now = TimeUtils.now();
|
||||
AbstractWelfareBag bag = getBag(user, rechargeId);
|
||||
if (bag == null){
|
||||
LOGGER.error("查询礼包id为空,错误数据,删除礼包:{}",rechargeId);
|
||||
user.getPlayerInfoManager().getNewRechargeInfo().removeBag(rechargeId);
|
||||
return false;
|
||||
}
|
||||
long now = TimeUtils.now();
|
||||
if(bag.getRefreshTime() != 0 && bag.getRefreshTime() < now){
|
||||
bag.refresh();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 月礼包 特殊处理,需要每日都刷新
|
||||
* @param result
|
||||
* @param user
|
||||
* @param rechargeId
|
||||
* @return
|
||||
*/
|
||||
public boolean refreshTime8(boolean result, User user, int rechargeId){
|
||||
AbstractWelfareBag bag = getBag(user, rechargeId);
|
||||
|
|
|
|||
|
|
@ -20,8 +20,9 @@ public class GmSingleHandler extends AbstractRechargeHandler {
|
|||
@Override
|
||||
public boolean refreshStatus(User user, int rechargeId){
|
||||
boolean result = false;
|
||||
AbstractWelfareBag bag = getRechargeMap(user).get(rechargeId);
|
||||
AbstractWelfareBag bag = getBag(user, rechargeId);
|
||||
if (bag == null){
|
||||
user.getPlayerInfoManager().getNewRechargeInfo().removeGmSingle(rechargeId);
|
||||
return false;
|
||||
}
|
||||
GiftMission mission = GmSingleActivityLogic.getInstance().findGiftMission(rechargeId);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@ public class PerpetualHandler extends AbstractRechargeHandler{
|
|||
@Override
|
||||
public boolean refreshStatus(User user, int rechargeId){
|
||||
boolean result = super.refreshStatus(user, rechargeId);
|
||||
if (!result){
|
||||
return false;
|
||||
}
|
||||
AbstractWelfareBag bag = getBag(user, rechargeId);
|
||||
// 礼包开启
|
||||
if(bag.isOpen()){
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ import com.ljsd.jieling.logic.dao.root.User;
|
|||
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag;
|
||||
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.PushWelfareBag;
|
||||
import config.SRechargeCommodityNewConfig;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -17,26 +15,25 @@ import java.util.Map;
|
|||
*/
|
||||
public class PushHandler extends AbstractRechargeHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(PushHandler.class);
|
||||
|
||||
@Override
|
||||
public boolean refreshStatus(User user, int rechargeId){
|
||||
boolean result = super.refreshStatus(user, rechargeId);
|
||||
if (!result){
|
||||
return false;
|
||||
}
|
||||
long now = TimeUtils.now();
|
||||
AbstractWelfareBag bag = getBag(user, rechargeId);
|
||||
if(bag.isOpen()){
|
||||
long now = TimeUtils.now();
|
||||
// 结束时间到
|
||||
if(bag.getEndTime() != 0 && now > bag.getEndTime()){
|
||||
bag.setOpen(false);
|
||||
bag.addBuyTimes(1);
|
||||
result = true;
|
||||
}
|
||||
// 月礼包 特殊处理,需要每日都刷新
|
||||
result = refreshTime8(result, user, rechargeId);
|
||||
}
|
||||
else {
|
||||
user.getPlayerInfoManager().getNewRechargeInfo().removePush(bag.getModId());
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,15 +19,17 @@ public class ReceiveHandler extends AbstractRechargeHandler {
|
|||
@Override
|
||||
public boolean refreshStatus(User user, int rechargeId){
|
||||
boolean result = super.refreshStatus(user, rechargeId);
|
||||
AbstractWelfareBag bag = getBag(user, rechargeId);
|
||||
if (!result){
|
||||
return false;
|
||||
}
|
||||
long now = TimeUtils.now();
|
||||
AbstractWelfareBag bag = getBag(user, rechargeId);
|
||||
// 礼包开启
|
||||
if(bag.isOpen()){
|
||||
// 结束时间到
|
||||
if(bag.getEndTime() != 0 && now > bag.getEndTime()){
|
||||
bag.setOpen(false);
|
||||
bag.resetBuyTimes();
|
||||
result = true;
|
||||
}
|
||||
// 月礼包 特殊处理,需要每日都刷新
|
||||
result = refreshTime8(result, user, rechargeId);
|
||||
|
|
|
|||
|
|
@ -23,15 +23,17 @@ public class TimeLimitHandler extends AbstractRechargeHandler{
|
|||
@Override
|
||||
public boolean refreshStatus(User user, int rechargeId){
|
||||
boolean result = super.refreshStatus(user, rechargeId);
|
||||
//判断刷新时间
|
||||
if (!result){
|
||||
return false;
|
||||
}
|
||||
long now = TimeUtils.now();
|
||||
AbstractWelfareBag bag = getBag(user, rechargeId);
|
||||
//判断刷新时间
|
||||
if(bag.isOpen()){
|
||||
// 结束时间到
|
||||
if(bag.getEndTime() != 0 && now > bag.getEndTime()){
|
||||
bag.setOpen(false);
|
||||
bag.resetBuyTimes();
|
||||
result = true;
|
||||
}
|
||||
// 月礼包 特殊处理,需要每日都刷新
|
||||
return refreshTime8(result, user, rechargeId);
|
||||
|
|
@ -45,7 +47,6 @@ public class TimeLimitHandler extends AbstractRechargeHandler{
|
|||
bag.setStartTime(time[0]);
|
||||
bag.setEndTime(time[1]);
|
||||
bag.setOpen(true);
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
|
|
|||
Loading…
Reference in New Issue