连续充值
parent
797a484250
commit
d5352f79a7
|
@ -2,53 +2,62 @@ package com.ljsd.jieling.config;
|
||||||
|
|
||||||
import com.ljsd.jieling.logic.STableManager;
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
import com.ljsd.jieling.logic.Table;
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Table(name ="ActivityRewardConfig")
|
@Table(name = "ActivityRewardConfig")
|
||||||
public class SActivityRewardConfig implements BaseConfig {
|
public class SActivityRewardConfig implements BaseConfig {
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
|
|
||||||
private int activityId;
|
private int activityId;
|
||||||
|
|
||||||
private int[][] values;
|
private int[][] values;
|
||||||
|
|
||||||
private int[][] reward;
|
private int[][] reward;
|
||||||
|
|
||||||
private static Map<Integer, SActivityRewardConfig> sActivityRewardConfigMap;
|
private static Map<Integer, SActivityRewardConfig> sActivityRewardConfigMap;
|
||||||
|
|
||||||
private static Map<Integer, List<SActivityRewardConfig>> sActivityRewardConfigListMap;
|
private static Map<Integer, List<SActivityRewardConfig>> sActivityRewardConfigListMap;
|
||||||
|
|
||||||
|
private static Map<Integer, Integer> rechargeDaySum = new HashMap<>();//连续充值天数
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
Map<Integer, SActivityRewardConfig> config = STableManager.getConfig(SActivityRewardConfig.class);
|
Map<Integer, SActivityRewardConfig> config = STableManager.getConfig(SActivityRewardConfig.class);
|
||||||
Map<Integer, List<SActivityRewardConfig>> sActivityRewardConfigListMapTmp = new HashMap<>();
|
Map<Integer, List<SActivityRewardConfig>> sActivityRewardConfigListMapTmp = new HashMap<>();
|
||||||
for(SActivityRewardConfig sActivityRewardConfig : config.values()){
|
for (SActivityRewardConfig sActivityRewardConfig : config.values()) {
|
||||||
int activityId = sActivityRewardConfig.getActivityId();
|
int activityId = sActivityRewardConfig.getActivityId();
|
||||||
if(!sActivityRewardConfigListMapTmp.containsKey(activityId)){
|
if (!sActivityRewardConfigListMapTmp.containsKey(activityId)) {
|
||||||
sActivityRewardConfigListMapTmp.put(activityId,new ArrayList<>());
|
sActivityRewardConfigListMapTmp.put(activityId, new ArrayList<>());
|
||||||
}
|
}
|
||||||
sActivityRewardConfigListMapTmp.get(activityId).add(sActivityRewardConfig);
|
sActivityRewardConfigListMapTmp.get(activityId).add(sActivityRewardConfig);
|
||||||
}
|
}
|
||||||
sActivityRewardConfigMap = config;
|
sActivityRewardConfigMap = config;
|
||||||
sActivityRewardConfigListMap = sActivityRewardConfigListMapTmp;
|
sActivityRewardConfigListMap = sActivityRewardConfigListMapTmp;
|
||||||
}
|
|
||||||
|
|
||||||
|
sActivityRewardConfigListMap.get(ActivityType.RECHARGE_SUM_DAY).forEach(sActivityRewardConfig ->
|
||||||
|
rechargeDaySum.put(sActivityRewardConfig.getValues()[0][1], sActivityRewardConfig.getId()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static SActivityRewardConfig getsActivityRewardConfigByMissionId(int missionId) {
|
public static SActivityRewardConfig getsActivityRewardConfigByMissionId(int missionId) {
|
||||||
return sActivityRewardConfigMap.get(missionId);
|
return sActivityRewardConfigMap.get(missionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<SActivityRewardConfig> getsActivityRewardConfigByActivityId(int activityId) {
|
public static List<SActivityRewardConfig> getsActivityRewardConfigByActivityId(int activityId) {
|
||||||
return sActivityRewardConfigListMap.get(activityId);
|
return sActivityRewardConfigListMap.get(activityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Map<Integer, Integer> getRechargeDaySum() {
|
||||||
|
return rechargeDaySum;
|
||||||
|
}
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,8 +100,6 @@ public class SGameSetting implements BaseConfig {
|
||||||
|
|
||||||
private Map<Integer,int[]> itemRecoveryMap;
|
private Map<Integer,int[]> itemRecoveryMap;
|
||||||
|
|
||||||
private int showRank;
|
|
||||||
|
|
||||||
|
|
||||||
private static SGameSetting gameSetting;
|
private static SGameSetting gameSetting;
|
||||||
|
|
||||||
|
|
|
@ -41,17 +41,17 @@ public class ActivityLogic {
|
||||||
public void flushEveryDay(User user, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception {
|
public void flushEveryDay(User user, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception {
|
||||||
|
|
||||||
//跟新签到天数
|
//跟新签到天数
|
||||||
if (user.getPlayerInfoManager().getSignTotay() == 1){
|
if (user.getPlayerInfoManager().getSignTotay() == 1) {
|
||||||
user.getPlayerInfoManager().setSign(user.getPlayerInfoManager().getSign() + 1);
|
user.getPlayerInfoManager().setSign(user.getPlayerInfoManager().getSign() + 1);
|
||||||
user.getPlayerInfoManager().setSignTotay(0);
|
user.getPlayerInfoManager().setSignTotay(0);
|
||||||
}
|
}
|
||||||
//更新每日充值
|
//更新每日充值
|
||||||
ActivityLogic.getInstance().resumeActivity(user,ActivityType.DAILY_RECHARGE);
|
ActivityLogic.getInstance().resumeActivity(user, ActivityType.DAILY_RECHARGE);
|
||||||
//更新首日充值
|
//更新首日充值
|
||||||
user.getPlayerInfoManager().getRechargeInfo().setDailyFirst(0);
|
user.getPlayerInfoManager().getRechargeInfo().setDailyFirst(0);
|
||||||
//更新累计充值天数
|
//更新累计充值天数
|
||||||
ActivityLogic.getInstance().resumeActivity(user,ActivityType.RECHARGE_SUM_DAY);
|
ActivityLogic.getInstance().resumeActivity(user, ActivityType.RECHARGE_SUM_DAY);
|
||||||
|
user.getPlayerInfoManager().setRechargedaily(0);
|
||||||
updateActivityMissionProgress(user, ActivityType.SevenLogin, 1);
|
updateActivityMissionProgress(user, ActivityType.SevenLogin, 1);
|
||||||
upFivePlayerActivity(user, ActivityType.SevenLogin, fBuilder);
|
upFivePlayerActivity(user, ActivityType.SevenLogin, fBuilder);
|
||||||
}
|
}
|
||||||
|
@ -78,9 +78,11 @@ public class ActivityLogic {
|
||||||
if (now < startTime) {
|
if (now < startTime) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (endTime != 0 && now > endTime && openActivityIds.contains(sGlobalActivity.getId())) {
|
if (endTime != 0 && now > endTime) {
|
||||||
openActivityIds.remove(sGlobalActivity.getId());
|
if (openActivityIds.contains(sGlobalActivity.getId())) {
|
||||||
ActivityTypeEnum.getActicityType(sGlobalActivity.getId()).onActivityEnd();
|
openActivityIds.remove(sGlobalActivity.getId());
|
||||||
|
ActivityTypeEnum.getActicityType(sGlobalActivity.getId()).onActivityEnd();
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
openActivityIds.add(sGlobalActivity.getId());
|
openActivityIds.add(sGlobalActivity.getId());
|
||||||
|
@ -294,10 +296,10 @@ public class ActivityLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void upFivePlayerActivity(User user,int activityType, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder){
|
public void upFivePlayerActivity(User user, int activityType, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) {
|
||||||
if(fBuilder == null){
|
if (fBuilder == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ActivityManager activityManager = user.getActivityManager();
|
ActivityManager activityManager = user.getActivityManager();
|
||||||
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
||||||
for (Map.Entry<Integer, ActivityMission> item : activityMissionMap.entrySet()) {
|
for (Map.Entry<Integer, ActivityMission> item : activityMissionMap.entrySet()) {
|
||||||
|
|
|
@ -9,10 +9,8 @@ import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.TreeSet;
|
|
||||||
|
|
||||||
class RechargeSumDayActivity extends AbstractActivity {
|
class RechargeSumDayActivity extends AbstractActivity {
|
||||||
|
|
||||||
|
@ -23,12 +21,26 @@ class RechargeSumDayActivity extends AbstractActivity {
|
||||||
@Override
|
@Override
|
||||||
public void onResume(User user) throws Exception {
|
public void onResume(User user) throws Exception {
|
||||||
ActivityManager activityManager = user.getActivityManager();
|
ActivityManager activityManager = user.getActivityManager();
|
||||||
activityManager.getActivityMissionMap().get(id).setValue(0);
|
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||||
|
activityMission.setValue(0);
|
||||||
|
int missionId = SActivityRewardConfig.getRechargeDaySum().get(activityMission.getValue() + 1);
|
||||||
|
if (user.getPlayerInfoManager().getRechargedaily() > SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0]) {
|
||||||
|
activityMission.setValue(activityMission.getValue() + 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void updateProgress(ActivityMission activityMission, int count) {
|
void updateProgress(ActivityMission activityMission, int count) {
|
||||||
activityMission.setValue(activityMission.getValue() + count);
|
|
||||||
|
int missionId = SActivityRewardConfig.getRechargeDaySum().get(activityMission.getValue() + 1);
|
||||||
|
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
|
||||||
|
if (activityProgressInfo == null || activityProgressInfo.getProgrss() == 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (count > activityProgressInfo.getProgrss()) {
|
||||||
|
activityProgressInfo.setProgrss(1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -42,24 +54,11 @@ class RechargeSumDayActivity extends AbstractActivity {
|
||||||
boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||||
int[][] values = sActivityRewardConfig.getValues();
|
int[][] values = sActivityRewardConfig.getValues();
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getValue();
|
int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getValue()+1;
|
||||||
if (value < values[0][1]) {
|
if (value < values[0][1]) {
|
||||||
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "value illegality");
|
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "value illegality");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
TreeMap<Integer, SActivityRewardConfig> sortMap = new TreeMap<>();
|
|
||||||
SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).forEach(sActivityRewardConfig1 ->
|
|
||||||
sortMap.put(sActivityRewardConfig1.getId(), sActivityRewardConfig1)
|
|
||||||
);
|
|
||||||
|
|
||||||
Map.Entry<Integer, SActivityRewardConfig> entry = sortMap.lowerEntry(sActivityRewardConfig.getId());
|
|
||||||
if (null != entry) {
|
|
||||||
ActivityProgressInfo progressInfo = user.getActivityManager().getActivityMissionMap().get(id).getActivityProgressInfoMap().get(entry.getKey());
|
|
||||||
if (progressInfo != null && activityProgressInfo.getState() != ActivityType.HAD_TAKED) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ import com.ljsd.jieling.db.mongo.MongoKey;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
import com.ljsd.jieling.util.MathUtils;
|
import com.ljsd.jieling.util.MathUtils;
|
||||||
|
import org.springframework.data.annotation.Transient;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -77,6 +78,9 @@ public class PlayerManager extends MongoBase {
|
||||||
|
|
||||||
private int signTotay;//今天是否签到
|
private int signTotay;//今天是否签到
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
private int rechargedaily;
|
||||||
|
|
||||||
public PlayerManager(){
|
public PlayerManager(){
|
||||||
this.setRootCollection(User._COLLECTION_NAME);
|
this.setRootCollection(User._COLLECTION_NAME);
|
||||||
}
|
}
|
||||||
|
@ -427,4 +431,16 @@ public class PlayerManager extends MongoBase {
|
||||||
public int getSignTotay() {
|
public int getSignTotay() {
|
||||||
return signTotay;
|
return signTotay;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getRechargedaily() {
|
||||||
|
return rechargedaily;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRechargedaily(int rechargedaily) {
|
||||||
|
this.rechargedaily = rechargedaily;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addRechargedaily(int rechargedaily) {
|
||||||
|
this.rechargedaily += rechargedaily;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,12 +172,13 @@ public class BuyGoodsLogic {
|
||||||
if(sRechargeCommodityConfig.getAccumulativeRecharge() == 1){
|
if(sRechargeCommodityConfig.getAccumulativeRecharge() == 1){
|
||||||
int saveAmt = rechargeInfo.getSaveAmt();
|
int saveAmt = rechargeInfo.getSaveAmt();
|
||||||
rechargeInfo.setSaveAmt(price+saveAmt);
|
rechargeInfo.setSaveAmt(price+saveAmt);
|
||||||
|
user.getPlayerInfoManager().addRechargedaily(price);
|
||||||
//TODO 用事件分发
|
//TODO 用事件分发
|
||||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,rechargeInfo.getSaveAmt());
|
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,rechargeInfo.getSaveAmt());
|
||||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,price);
|
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,price);
|
||||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,price);
|
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,price);
|
||||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,rechargeInfo.getSaveAmt());
|
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,rechargeInfo.getSaveAmt());
|
||||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_SUM_DAY,price);
|
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_SUM_DAY, user.getPlayerInfoManager().getRechargedaily());
|
||||||
}
|
}
|
||||||
|
|
||||||
buyGoodsTimes.put(goodsId,buyCount);
|
buyGoodsTimes.put(goodsId,buyCount);
|
||||||
|
|
Loading…
Reference in New Issue