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