购买商品
parent
acdf29d390
commit
9353c18322
|
@ -20,10 +20,7 @@ public class TestMongo {
|
|||
public static void main(String[] args) {
|
||||
try {
|
||||
ljsdMongoTemplate = getLjsdMongoTemplate();
|
||||
// save();
|
||||
PlayerForTest one = findOne();
|
||||
update(one);
|
||||
System.out.println();
|
||||
|
||||
|
||||
} catch (UnknownHostException e) {
|
||||
e.printStackTrace();
|
||||
|
|
|
@ -387,7 +387,7 @@ public class ActivityLogic {
|
|||
for(int i=1;i<=randCount;i++){
|
||||
int secretBoxRandomPool = getSecretBoxRandomPool(sDifferDemonsBoxSetting, count + i);
|
||||
int[] dropInfos = getSecretBoxRewardByPool(secretBoxRandomPool);
|
||||
randDrop[i] = dropInfos;
|
||||
randDrop[i-1] = dropInfos;
|
||||
}
|
||||
secretBoxManager.setCount(secretBoxManager.getCount()+randCount);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, randDrop,BIReason.TAKE_SECRET_REWARD);
|
||||
|
|
|
@ -24,14 +24,14 @@ public class UserMissionManager extends MongoBase {
|
|||
private CumulationData cumulationData = new CumulationData();
|
||||
private CumulationData dailyCumulationData = new CumulationData();
|
||||
|
||||
public void openMission(User user,GameEvent event, Object... parm){
|
||||
public void openMission(User user,GameEvent event,Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap, Object... parm){
|
||||
switch (event){
|
||||
case VIP_LEVLUP:{
|
||||
int vipLevle= (int)parm[0];
|
||||
SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevle);
|
||||
int[] openRules = sVipLevelConfig.getOpenRules();
|
||||
for(int missionId:openRules){
|
||||
vipMissionIdsType.openMission(user,missionId);
|
||||
vipMissionIdsType.openMission(user,missionId,missionTypeEnumListMap.get(GameMisionType.VIPMISSION));
|
||||
}
|
||||
updateString("vipMissionIdsType",vipMissionIdsType);
|
||||
}
|
||||
|
@ -62,6 +62,7 @@ public class UserMissionManager extends MongoBase {
|
|||
switch (gameEvent){
|
||||
case VIP_MISSION_REWARD:{
|
||||
vipMissionIdsType.rewardMission((int)parm[0], missionTypeEnumListMap.get(GameMisionType.VIPMISSION));
|
||||
updateString("vipMissionIdsType",vipMissionIdsType);
|
||||
}
|
||||
break;
|
||||
case DAILY_MISSION_REWARD:{
|
||||
|
|
|
@ -11,6 +11,6 @@ import java.util.Map;
|
|||
public class DailyRefreshEventProcess implements BaseGameEventProcessor {
|
||||
@Override
|
||||
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
|
||||
user.getUserMissionManager().openMission(user,event, parm);
|
||||
user.getUserMissionManager().openMission(user,event,misionTypeListMap, parm);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,6 @@ import java.util.Map;
|
|||
public class VipLevelUpEventProcessor implements BaseGameEventProcessor {
|
||||
@Override
|
||||
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap, GameEvent event, Object... parm) {
|
||||
user.getUserMissionManager().openMission(user,event, parm);
|
||||
user.getUserMissionManager().openMission(user,event, missionTypeEnumListMap,parm);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public abstract class AbstractMissionType {
|
|||
//已领取的任务,在可控范围内,使用map存储,利于查找
|
||||
private BitSet rewardedMissionIds = new BitSet(1024);
|
||||
|
||||
public abstract void openMission(User user,int missionId);
|
||||
public abstract void openMission(User user,int missionId,List<MissionStateChangeInfo> missionTypeEnumList);
|
||||
|
||||
public abstract int[][] reward(int missionId);
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import java.util.Set;
|
|||
|
||||
public class DailyMissionIdsType extends AbstractMissionType{
|
||||
@Override
|
||||
public void openMission(User user, int missionId) {
|
||||
public void openMission(User user, int missionId,List<MissionStateChangeInfo> missionTypeEnumList) {
|
||||
getDoingMissionIds().clear();
|
||||
getFinishMissionIds().clear();
|
||||
getDoingMissionIds().add(missionId);
|
||||
|
|
|
@ -16,7 +16,7 @@ public class VipMissionIdsType extends AbstractMissionType{
|
|||
}
|
||||
|
||||
@Override
|
||||
public void openMission(User user,int missionId) {
|
||||
public void openMission(User user,int missionId,List<MissionStateChangeInfo> missionTypeEnumList) {
|
||||
if(!checkIsNew(missionId)){
|
||||
return;
|
||||
}
|
||||
|
@ -24,8 +24,14 @@ public class VipMissionIdsType extends AbstractMissionType{
|
|||
boolean isFinish = MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getCumulationData(),sTaskConfig.getTaskType(),sTaskConfig.getTaskValue()[0])>=sTaskConfig.getTaskValue()[1];
|
||||
if(!isFinish){
|
||||
addDoingMission(missionId);
|
||||
/* MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId,
|
||||
MissionState.DOING, null);
|
||||
missionTypeEnumList.add(doingInfo);*/
|
||||
}else{
|
||||
addFinishMissionId(missionId);
|
||||
/* MissionStateChangeInfo finishInfo = new MissionStateChangeInfo(missionId,
|
||||
MissionState.FINISH, null);
|
||||
missionTypeEnumList.add(finishInfo);*/
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class PlayerLogic {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MailLogic.class);
|
||||
|
@ -153,15 +154,20 @@ public class PlayerLogic {
|
|||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
if(playerInfoManager.getHadTakeDailyBoxVip() == 0){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,"not take the vip level reward");
|
||||
if(playerInfoManager.getHadTakeDailyBoxVip() == -1){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,"not take the vip daily reward");
|
||||
return;
|
||||
}
|
||||
Set<Integer> doingMissionIds = user.getUserMissionManager().getVipMissionIdsType().getDoingMissionIds();
|
||||
if(!doingMissionIds.isEmpty()){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,"not finfish");
|
||||
return;
|
||||
}
|
||||
int vipLevel = playerInfoManager.getVipLevel();
|
||||
playerInfoManager.updateVipInfo(user,vipLevel+1);
|
||||
CommonProto.VipMissionInfo vipMissionResponse = MissionLoigc.getVipMissionResponse(user);
|
||||
PlayerInfoProto.VipLevelUpResponse build = PlayerInfoProto.VipLevelUpResponse.newBuilder().setVipMissionInfo(vipMissionResponse).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,build,true);
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
||||
public void takeVipLevelRewad(ISession session,int type) throws Exception {
|
||||
|
@ -180,7 +186,7 @@ public class PlayerLogic {
|
|||
rewards = sVipLevelConfig.getVipBoxReward();
|
||||
reson = BIReason.TAKE_VIP_LEVEL_REWARD;
|
||||
}else if(type == 2){
|
||||
if(playerInfoManager.getHadTakeDailyBoxVip() == 1 || playerInfoManager.getHadTakeLevelBoxVip() == -1 ){
|
||||
if(playerInfoManager.getHadTakeDailyBoxVip() != -1 || playerInfoManager.getHadTakeLevelBoxVip() == 0 ){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_TAKE_REWARD_RESPONSE_VALUE,"had taked the vip daily reward");
|
||||
return;
|
||||
}
|
||||
|
@ -230,24 +236,4 @@ public class PlayerLogic {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void updateRechargeInfo(ISession session,int money) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo();
|
||||
int saveAmt = rechargeInfo.getSaveAmt();
|
||||
PlayerInfoProto.RechargeInfoResponse.Builder builder = PlayerInfoProto.RechargeInfoResponse.newBuilder();
|
||||
if(saveAmt == 0){
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,1);
|
||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0);
|
||||
int[][] reward = sActivityRewardConfig.getReward();
|
||||
builder.setDrop(ItemUtil.drop(user,reward,BIReason.FIRST_RECHARGE_REWARD));
|
||||
}
|
||||
int totalMoney = saveAmt + money;
|
||||
rechargeInfo.setSaveAmt(totalMoney);
|
||||
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.RECHARGE_INFO_RESPONSE_VALUE,builder.build(),true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ public class BuyGoodsLogic {
|
|||
}
|
||||
|
||||
public static void sendGoods(int uid,int goodsId) throws Exception {
|
||||
LOGGER.info("send to uid={},the goods={}",uid,goodsId);
|
||||
User user = UserManager.getUser(uid);
|
||||
SRechargeCommodityConfig sRechargeCommodityConfig = SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsId);
|
||||
RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
|
||||
|
@ -52,6 +53,11 @@ public class BuyGoodsLogic {
|
|||
}
|
||||
buyCount=buyCount+1;
|
||||
int limit = sRechargeCommodityConfig.getLimit();
|
||||
int type = sRechargeCommodityConfig.getType();
|
||||
if(type==4 && rechargeInfo.getHadBuyFound()==1){
|
||||
LOGGER.error("the uid={},hadBuyFound",uid);
|
||||
return;
|
||||
}
|
||||
if(limit!=0){
|
||||
if(buyCount>limit){
|
||||
LOGGER.error("the uid={},the goodId={}, is over limit={}",uid,goodsId,buyCount);
|
||||
|
@ -59,13 +65,15 @@ public class BuyGoodsLogic {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
int[][] baseReward = sRechargeCommodityConfig.getBaseReward();
|
||||
int length = baseReward.length;
|
||||
|
||||
CommonProto.Drop.Builder drop = null;
|
||||
if(buyCount == 1){
|
||||
int type = sRechargeCommodityConfig.getType();
|
||||
|
||||
if(type == 4){
|
||||
rechargeInfo.setHadBuyFound(1);
|
||||
ActivityLogic.getInstance().openActivityReallyOpen(user, ActivityType.GrowthFund);
|
||||
}
|
||||
int[][] firstMultiple = sRechargeCommodityConfig.getFirstMultiple();
|
||||
|
@ -96,8 +104,12 @@ public class BuyGoodsLogic {
|
|||
for(int j=0;j<reward.length;j++){
|
||||
result[i++] = reward[j];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
drop = ItemUtil.drop(user, result, BIReason.RECHARGE_REWARD);
|
||||
}else{
|
||||
drop = ItemUtil.drop(user, baseReward, BIReason.RECHARGE_REWARD);
|
||||
}
|
||||
}else{
|
||||
drop = ItemUtil.drop(user, baseReward, BIReason.RECHARGE_REWARD);
|
||||
|
@ -140,6 +152,9 @@ public class BuyGoodsLogic {
|
|||
continue;
|
||||
}
|
||||
}
|
||||
if(sRechargeCommodityConfig.getType() == 4 && rechargeInfo.getHadBuyFound() !=0){
|
||||
continue;
|
||||
}
|
||||
int[] discountType = sRechargeCommodityConfig.getDiscountType();
|
||||
long endTime=0;
|
||||
if(discountType!=null && discountType.length>0){
|
||||
|
|
Loading…
Reference in New Issue