热榜代码合并2
commit
475ffca53d
|
@ -767,6 +767,20 @@ public class TimeUtils {
|
|||
return c.getTimeInMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定时间,几天后的零点
|
||||
* @return
|
||||
*/
|
||||
public static long getTomorrowZero(String time, int day) {
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTimeInMillis(stringToTimeLong2(time));
|
||||
c.add(Calendar.DATE, day);
|
||||
c.set(Calendar.HOUR_OF_DAY, 0);
|
||||
c.set(Calendar.MINUTE, 0);
|
||||
c.set(Calendar.SECOND, 0);
|
||||
return c.getTimeInMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取明天零点
|
||||
* @return
|
||||
|
|
|
@ -6,10 +6,7 @@ import org.slf4j.LoggerFactory;
|
|||
import java.io.*;
|
||||
import java.lang.reflect.Array;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
@ -87,13 +84,12 @@ public class Utils {
|
|||
int strLength =str.length;
|
||||
Random random = new Random();
|
||||
int rand = 0 ;
|
||||
StringBuffer stringBuffer = new StringBuffer();
|
||||
StringBuilder stringBuffer = new StringBuilder();
|
||||
for (int i=0; i< num;i++){
|
||||
rand = random.nextInt(strLength);
|
||||
stringBuffer.append(str[rand]);
|
||||
}
|
||||
String randStr = String.valueOf(stringBuffer);
|
||||
return randStr;
|
||||
return String.valueOf(stringBuffer);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -147,6 +143,21 @@ public class Utils {
|
|||
return objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* 二维数组list转map,仅限道具数组使用
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
public static Map<Integer, Long> getItemMapObject(List<int[][]> list){
|
||||
HashMap<Integer, Long> map = new HashMap<>();
|
||||
for (int[][] item : list) {
|
||||
for (int[] one : item) {
|
||||
map.put(one[0], map.getOrDefault(one[0],0L)+one[1]);
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* map转二维数组
|
||||
*/
|
||||
|
@ -168,4 +179,6 @@ public class Utils {
|
|||
return object;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -379,6 +379,9 @@ public class RedisKey {
|
|||
public static final String CROSS_LINGMAISECRET_RECORD = "CROSS_LINGMAISECRET_RECORD";//灵脉记录
|
||||
public static final String CROSS_LINGMAI_RANK_PERSON = "CROSS_LINGMAI_RANK_PERSON";//灵脉积分排行
|
||||
|
||||
public static final String GM_ACTIVITY_INFO = "GM_ACTIVITY_INFO";//GM活动信息
|
||||
|
||||
public static final String GOD_LEVEL_UP_TIME = "GOD_LEVEL_UP_TIME";//晋升神尊等级排序
|
||||
|
||||
public static Set<String> familyKey = new HashSet<>();
|
||||
/**
|
||||
|
|
|
@ -1394,6 +1394,18 @@ public class RedisUtil {
|
|||
return result;
|
||||
}
|
||||
|
||||
public <K,T> Map<K,T> getMapValues2(String type,String key,Class<K> keyClazz,Class<T> valueClazz){
|
||||
Map<K,T> result = new HashMap<>();
|
||||
String rkey = getKey(type, key, false);
|
||||
Map<Object, Object> entries = redisTemplate.opsForHash().entries(rkey);
|
||||
for(Map.Entry<Object,Object> item : entries.entrySet()){
|
||||
Object key1 = item.getKey();
|
||||
Object value = item.getValue();
|
||||
result.put(gson.fromJson(gson.toJson(key1),keyClazz),gson.fromJson(value.toString(),valueClazz));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public <K,T> Map<K,T> getMapValues(String key,Class<K> keyClazz,Class<T> valueClazz){
|
||||
Map<K,T> result = new HashMap<>();
|
||||
Map<Object, Object> entries = redisTemplate.opsForHash().entries(key);
|
||||
|
|
|
@ -20,7 +20,6 @@ import com.ljsd.jieling.logic.activity.ActivityLogic;
|
|||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.activity.ChoiceDrawCardActivity;
|
||||
import com.ljsd.jieling.logic.activity.LimitRandomSpecialMonsterActivityNew;
|
||||
import com.ljsd.jieling.logic.activity.activityLogic.GmActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
|
||||
|
@ -83,7 +82,6 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
PlayerLogic.getInstance().checkOldMonthCard(user);
|
||||
ActivityLogic.getInstance().flushForLogin(user,iSession);
|
||||
GlobalDataManaager.checkNeedReFlush(iSession,user,null);
|
||||
GmActivityLogic.getInstance().updateGmActivity(user);
|
||||
BuyGoodsNewLogic.refreshWelfareState(user);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0);
|
||||
long now = TimeUtils.now();
|
||||
|
|
|
@ -3,11 +3,11 @@ package com.ljsd.jieling.handler;
|
|||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -28,6 +28,5 @@ public class TakeMailHandler extends BaseHandler {
|
|||
PlayerInfoProto.TakeMailRequest takeMailRequest = PlayerInfoProto.TakeMailRequest.parseFrom(message);
|
||||
List<String> mailIdsList = takeMailRequest.getMailIdsList();
|
||||
MailLogic.getInstance().takeMail(iSession,mailIdsList, userId);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@ public class GetShejiAwardRequestHandler extends BaseHandler<ActivityProto.GetSh
|
|||
activityMission.setV(integer);
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
activityType.sendActivityProgress(sessionByUid, activityMission, null);
|
||||
activityType.sendActivityProgress(sessionByUid, null);
|
||||
int[] dropList = new int[1];
|
||||
dropList[0]=sGodSacrificeSetting.getTimeRewardGroup();
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropList,1,0, BIReason.SHEJI_ACTIVITY);
|
||||
|
|
|
@ -88,7 +88,7 @@ public class SeletSubRewardPoolRequestHandler extends BaseHandler<ActivityProto.
|
|||
}
|
||||
user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().add(selectId);
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
abstractActivity.sendActivityProgress(sessionByUid, activityMission, null);
|
||||
abstractActivity.sendActivityProgress(sessionByUid, null);
|
||||
return ActivityProto.SeletSubRewardPoolResponse.newBuilder().build();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.jbean.gm;
|
||||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
import com.ljsd.jieling.db.mongo.gmActivity.ARBActivity;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -16,14 +17,19 @@ public class GmActivity extends MongoBase {
|
|||
private String id;
|
||||
private int type;
|
||||
private int value;
|
||||
private String startTime;
|
||||
private String endTime;
|
||||
|
||||
public GmActivity() {
|
||||
//绑定关系
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
||||
public GmActivity(ARBActivity arbActivity) {
|
||||
this.id = arbActivity.getId();
|
||||
this.type = arbActivity.getType();
|
||||
//绑定关系
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
@ -64,22 +70,4 @@ public class GmActivity extends MongoBase {
|
|||
this.value = value;
|
||||
updateString("value",value);
|
||||
}
|
||||
|
||||
public String getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(String startTime) {
|
||||
this.startTime = startTime;
|
||||
updateString("startTime",startTime);
|
||||
}
|
||||
|
||||
public String getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(String endTime) {
|
||||
this.endTime = endTime;
|
||||
updateString("endTime",endTime);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,8 +13,6 @@ import java.util.HashMap;
|
|||
public class GmActivityManager extends MongoBase {
|
||||
private HashMap<String, GmActivity> activityMap = new HashMap<>();
|
||||
|
||||
private int updateVersion;
|
||||
|
||||
public HashMap<String, GmActivity> getActivityMap() {
|
||||
return activityMap;
|
||||
}
|
||||
|
@ -33,13 +31,4 @@ public class GmActivityManager extends MongoBase {
|
|||
this.activityMap.remove(activityId);
|
||||
updateString("activityMap",activityMap);
|
||||
}
|
||||
|
||||
public int getUpdateVersion() {
|
||||
return updateVersion;
|
||||
}
|
||||
|
||||
public void setUpdateVersion(int updateVersion) {
|
||||
this.updateVersion = updateVersion;
|
||||
updateString("updateVersion",updateVersion);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
package com.ljsd.jieling.jbean.gm;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import util.TimeUtils;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Date 2022/12/8 16:00:38
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class UserGodLvVo {
|
||||
//角色id
|
||||
private int uid;
|
||||
//角色名称
|
||||
private String name;
|
||||
//区服id
|
||||
private String serverId;
|
||||
//创角时间
|
||||
private String createTime;
|
||||
//神尊等级
|
||||
private int godLv;
|
||||
//神尊等级到达时间
|
||||
private String upTime;
|
||||
|
||||
public UserGodLvVo(User user) {
|
||||
this.uid = user.getId();
|
||||
this.name = user.getPlayerInfoManager().getNickName();
|
||||
this.serverId = String.valueOf(GameApplication.serverId);
|
||||
this.createTime = TimeUtils.getTimeStamp2(user.getPlayerInfoManager().getCreateTime());
|
||||
this.godLv = PlayerLogic.getInstance().getGodPrivilegeLv(user);
|
||||
this.upTime = TimeUtils.getTimeStamp2(TimeUtils.now());
|
||||
}
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
|
||||
public void setUid(int uid) {
|
||||
this.uid = uid;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getServerId() {
|
||||
return serverId;
|
||||
}
|
||||
|
||||
public void setServerId(String serverId) {
|
||||
this.serverId = serverId;
|
||||
}
|
||||
|
||||
public String getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(String createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
public int getGodLv() {
|
||||
return godLv;
|
||||
}
|
||||
|
||||
public void setGodLv(int godLv) {
|
||||
this.godLv = godLv;
|
||||
}
|
||||
|
||||
public String getUpTime() {
|
||||
return upTime;
|
||||
}
|
||||
|
||||
public void setUpTime(String upTime) {
|
||||
this.upTime = upTime;
|
||||
}
|
||||
}
|
|
@ -89,7 +89,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
updateProgressWithUser(user, activityMission, count);
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
|
||||
}
|
||||
|
||||
|
@ -120,15 +120,15 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
* @param activityMission
|
||||
* @return
|
||||
*/
|
||||
public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) {
|
||||
public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) throws Exception {
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
if (activityProgressInfoMap.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> item : activityProgressInfoMap.entrySet()) {
|
||||
ActivityProgressInfo activityProgressInfo = item.getValue();
|
||||
int missionStatus = activityProgressInfo.getState();
|
||||
if (missionStatus == ActivityType.WILL_TAKE) {
|
||||
User user = UserManager.getUser(uid);
|
||||
List<CommonProto.ActivityInfo.MissionInfo> allMissInfo = getAllMissInfo(user, activityMission);
|
||||
for (CommonProto.ActivityInfo.MissionInfo info : allMissInfo) {
|
||||
if (info.getState() == ActivityType.WILL_TAKE) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -184,11 +184,11 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
reSetValue(user);
|
||||
if(sGlobalActivity.getType() != ActivityType.OnlineReward) {
|
||||
ActivityMission newmiss = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
sendActivityProgress(session, newmiss, null);
|
||||
sendActivityProgress(session, null);
|
||||
}
|
||||
} else {
|
||||
if(sGlobalActivity.getType() != ActivityType.OnlineReward){
|
||||
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
||||
sendActivityProgress(session, Collections.singleton(missionId));
|
||||
}
|
||||
}
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
|
@ -391,29 +391,30 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
*
|
||||
* @param filterMissId miss过滤
|
||||
*/
|
||||
public void sendActivityProgress(ISession session, ActivityMission activityMission, Set<Integer> filterMissId) {
|
||||
public void sendActivityProgress(ISession session, Set<Integer> filterMissId){
|
||||
if (session == null) {
|
||||
return;
|
||||
}
|
||||
PlayerInfoProto.ActivityUpateProgressIndication.Builder builder = PlayerInfoProto.ActivityUpateProgressIndication.newBuilder();
|
||||
|
||||
User user = UserManager.getUserInMem(session.getUid());
|
||||
if (user != null && activityMission != null) {
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missInfo = getAllMissInfo(user, activityMission, filterMissId);
|
||||
CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder()
|
||||
.setValue(activityMission.getV())
|
||||
.addAllMission(missInfo)
|
||||
.setActivityId(id);
|
||||
builder.setActivityInfo(builder1);
|
||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true);
|
||||
User user = UserManager.getUserNotCache(session.getUid());
|
||||
ActivityMission mission = Optional.ofNullable(user).map(v -> v.getActivityManager().getActivityMissionMap().get(id)).orElse(null);
|
||||
if (mission == null) {
|
||||
return;
|
||||
}
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missInfo = getAllMissInfo(user, mission, filterMissId);
|
||||
CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder()
|
||||
.setValue(mission.getV())
|
||||
.addAllMission(missInfo)
|
||||
.setActivityId(id);
|
||||
builder.setActivityInfo(builder1);
|
||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true);
|
||||
|
||||
}
|
||||
|
||||
public void sendActivityProgress(User user, ActivityMission activityMission, Set<Integer> filterMissId) {
|
||||
public void sendActivityProgress(User user, Set<Integer> filterMissId) {
|
||||
ISession session = OnlineUserManager.sessionMap.get(user.getId());
|
||||
if (session != null){
|
||||
sendActivityProgress(session,activityMission,filterMissId);
|
||||
sendActivityProgress(session,filterMissId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -830,7 +830,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
|
||||
|
||||
public void checkActivityIsFinish(User user) {
|
||||
public void checkActivityIsFinish(User user) throws Exception {
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
||||
for (Map.Entry<Integer, ActivityMission> item : activityMissionMap.entrySet()) {
|
||||
|
@ -839,9 +839,6 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
ActivityMission activityMission = item.getValue();
|
||||
//7201活动弃用
|
||||
if(activityMission == null){
|
||||
continue;
|
||||
}
|
||||
if(item.getKey() == 7201){
|
||||
continue;
|
||||
}
|
||||
|
@ -1642,7 +1639,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
//发推送
|
||||
AbstractActivity acticityType = ActivityTypeEnum.getActicityById(activityId);
|
||||
if(acticityType!=null){
|
||||
acticityType.sendActivityProgress(session, activityMission, null);
|
||||
acticityType.sendActivityProgress(session, null);
|
||||
}
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.FU_XING_STORE_BUY_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ public interface ActivityType {
|
|||
int CONTINUOUS_GIFT_NEW = 87;//新连续礼包
|
||||
int ARENA_RANK_EXPERIMENT = 88;//竞技试炼
|
||||
int DAILY_PREFERENTIAL_GIFT = 89;//每日特惠礼包开启的活动
|
||||
int NEW_DAILY_RECHARGE = 93;//新每日充值
|
||||
int NEW_DAILY_RECHARGE = 93;//新每日充值(单笔充值活动)
|
||||
int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽宝阁活动
|
||||
int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包
|
||||
|
||||
|
@ -149,4 +149,6 @@ public interface ActivityType {
|
|||
int NEW_RECHARGE_SUM_DAY_30 = 92;//超值返利30
|
||||
int NEW_RECHARGE_SUM_DAY_12 = 111;//超值返利12
|
||||
int GIVE_ONE_HUNDRED_THOUSAND_RECHARGE = 112;//送十万真充
|
||||
int MONSTER_MONEY_TOTLE_RECHARGE = 113;//妖晶累充
|
||||
int GOD_MONEY_TOTLE_RECHARGE = 114;//仙晶累充
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ public class AllPeopleWelfareActivity extends AbstractActivity {
|
|||
// 活动数据处理
|
||||
updateValue(event1.getGiftId());
|
||||
// 状态推送
|
||||
sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(user, null);
|
||||
}
|
||||
|
||||
public static int getValue(int goodId){
|
||||
|
@ -156,7 +156,7 @@ public class AllPeopleWelfareActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,welfareConfig.getType(),missionId);
|
||||
return true;
|
||||
|
|
|
@ -77,7 +77,7 @@ public class BrushPrivilegeActivity extends AbstractActivity {
|
|||
uporsetValue(user, event1.getGiftId(), 1);
|
||||
// 客户端推送
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(session, null);
|
||||
}
|
||||
|
||||
public void uporsetValue(User user, int giftId, int state) {
|
||||
|
@ -202,7 +202,7 @@ public class BrushPrivilegeActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,newConfig.getExtraReward(),missionId);
|
||||
return true;
|
||||
|
|
|
@ -106,7 +106,7 @@ public class ChoiceDrawCardActivity extends AbstractActivity {
|
|||
// 检查是否需要重启奖励
|
||||
checkResetProgress(user,mission);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
return true;
|
||||
|
|
|
@ -65,7 +65,7 @@ public class ContinuousGiftActivity extends AbstractActivity {
|
|||
|
||||
// 客户端推送
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(session, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -87,7 +87,7 @@ public class CowFlySkyActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
return true;
|
||||
|
|
|
@ -117,7 +117,7 @@ public class DailyPreferentialGiftActivity extends AbstractActivity{
|
|||
if(day > mission.getV()){
|
||||
mission.setV(day-1);
|
||||
}
|
||||
sendActivityProgress(user, mission, null);
|
||||
sendActivityProgress(user, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,7 +173,7 @@ public class DailyPreferentialGiftActivity extends AbstractActivity{
|
|||
int[][] reward = sActivityRewardConfig.getReward();
|
||||
activityMission.setV(day+1);
|
||||
checkAndSetProgress(activityMission, activityProgressInfo, missionId);
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
sendActivityProgress(session, null);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
|
|
|
@ -47,7 +47,7 @@ class EquipExpectRankActivity extends ExpectRankActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -47,7 +47,7 @@ class EspecialEquipExpectActivity extends ExpectRankActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,17 +5,12 @@ import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
|||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.EndExpeditionNodeEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.MissingRoomBestEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
@ -48,7 +43,7 @@ public class ExpeditionExpert extends ExpectRankActivity implements IEventHandle
|
|||
updateProgressWithUser(user,activityMission,nodeEvent.getNodeScore());
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -17,8 +17,6 @@ import util.TimeUtils;
|
|||
|
||||
import java.util.*;
|
||||
|
||||
import static config.SGlobalActivity.getsGlobalActivityMapByType;
|
||||
|
||||
public class FifteenActivity extends AbstractActivity {
|
||||
|
||||
public FifteenActivity(int id) {
|
||||
|
@ -88,7 +86,7 @@ public class FifteenActivity extends AbstractActivity {
|
|||
if(isAll){
|
||||
activityMission.setV(2);
|
||||
}
|
||||
sendActivityProgress(session,activityMission , null);
|
||||
sendActivityProgress(session, null);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ public class GiveEndlessDrawActivity extends AbstractActivity {
|
|||
ISession session = OnlineUserManager.sessionMap.get(event1.getUid());
|
||||
User user = UserManager.getUser(event1.getUid());
|
||||
// 状态推送
|
||||
sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(session, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -160,7 +160,7 @@ public class GiveEndlessDrawActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,rewardConfig.getReward(),missionId);
|
||||
return true;
|
||||
|
|
|
@ -148,7 +148,7 @@ public class GiveOneHundredThousandActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,rewardList,missionId);
|
||||
return true;
|
||||
|
|
|
@ -70,7 +70,7 @@ public class HeroStarActivity extends AbstractActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -128,7 +128,7 @@ public class HeroStarActivity extends AbstractActivity {
|
|||
if(sActivityRewardConfig==null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
sendActivityProgress(session, null);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
|
|
|
@ -43,7 +43,7 @@ class HeroUpExpectRankActivity extends ExpectRankActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -9,11 +9,9 @@ import com.ljsd.jieling.logic.OnlineUserManager;
|
|||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
import rpc.protocols.CommonProto;
|
||||
|
@ -76,7 +74,7 @@ public class HeroUpStarActivity extends AbstractActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
|
||||
}
|
||||
|
||||
|
@ -121,7 +119,7 @@ public class HeroUpStarActivity extends AbstractActivity {
|
|||
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
|
||||
}
|
||||
|
||||
|
@ -144,7 +142,7 @@ public class HeroUpStarActivity extends AbstractActivity {
|
|||
if(sActivityRewardConfig==null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
sendActivityProgress(session, null);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
|
|
|
@ -59,7 +59,7 @@ public class InfiniteResourcesPavilionActivity extends AbstractActivity {
|
|||
update(user, event1.getGiftId());
|
||||
// 客户端推送
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(session, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -164,7 +164,7 @@ public class InfiniteResourcesPavilionActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,newConfig.getExtraReward(),missionId);
|
||||
return true;
|
||||
|
|
|
@ -51,7 +51,7 @@ public class LevelExpectActivity extends ExpectRankActivity {
|
|||
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -5,16 +5,12 @@ import com.ljsd.jieling.exception.ErrorCodeException;
|
|||
import com.ljsd.jieling.globals.BIReason;
|
||||
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.RandomCardEvent;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SLotterySpecialConfig;
|
||||
import config.SSpiritAnimalSummon;
|
||||
import manager.STableManager;
|
||||
import rpc.protocols.CommonProto;
|
||||
|
@ -94,7 +90,7 @@ public class LimitRandomSpecialMonsterActivityNew extends LimitRandomCardActivit
|
|||
// 检查是否需要重启奖励
|
||||
checkResetProgress(user,mission);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
return true;
|
||||
|
|
|
@ -42,7 +42,7 @@ public class LimitUpCardActivity extends AbstractActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -101,7 +101,7 @@ public class LuckyCatActivity extends AbstractActivity {
|
|||
activityProgressInfo.setState(ActivityType.HAD_TAKED);
|
||||
}
|
||||
|
||||
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
||||
sendActivityProgress(session, Collections.singleton(missionId));
|
||||
//drop
|
||||
int[][] reward = new int[1][];
|
||||
int[] temp2 = new int[2];
|
||||
|
|
|
@ -8,10 +8,7 @@ import com.ljsd.jieling.logic.dao.root.User;
|
|||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
import config.SSpecialConfig;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.TimeUtils;
|
||||
|
@ -92,7 +89,7 @@ public class LuckyGetActivity extends AbstractActivity{
|
|||
activityMission.setV(2);
|
||||
}
|
||||
|
||||
sendActivityProgress(session,activityMission , null);
|
||||
sendActivityProgress(session, null);
|
||||
|
||||
return true;
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ class MissSearchExpectRankActivity extends ExpectRankActivity {
|
|||
updateProgressWithUser(user,activityMission,1);
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ public class MistyTripActivity extends AbstractActivity {
|
|||
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,196 @@
|
|||
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.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
import config.SRechargeCommodityNewConfig;
|
||||
import config.SSuperZhenChong;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author hj
|
||||
* bt版:妖晶累充,仙晶累充
|
||||
* 2022-9-6
|
||||
*/
|
||||
public class MoneyTotalRechargeActivity extends AbstractActivity {
|
||||
|
||||
MoneyTotalRechargeActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, TotalItemEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
// 活动信息初始化
|
||||
ActivityMission mission = new ActivityMission();
|
||||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
LOGGER.info("累充活动-bt版...uid={},activityId={}",user.getId(), id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
// 类型验证
|
||||
if (!(event instanceof TotalItemEvent)) {
|
||||
return;
|
||||
}
|
||||
// 获取信息
|
||||
TotalItemEvent event1 = (TotalItemEvent) event;
|
||||
User user = UserManager.getUser(event1.getUserId());
|
||||
// 礼包处理
|
||||
update(user,event1.getMap());
|
||||
// 客户端推送
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(session,null);
|
||||
}
|
||||
|
||||
|
||||
public void update(User user, Map<Integer, Long> map) {
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
SActivityRewardConfig rewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).get(0);
|
||||
if (activityMission == null || rewardConfig == null){
|
||||
return;
|
||||
}
|
||||
int itemId = rewardConfig.getValues()[0][0];
|
||||
Long count = (long)activityMission.getV();
|
||||
for (Map.Entry<Integer, Long> entry : map.entrySet()) {
|
||||
if (entry.getKey() == itemId){
|
||||
count += entry.getValue();
|
||||
}
|
||||
}
|
||||
activityMission.setV(count.intValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取状态
|
||||
* @param user
|
||||
* @param config
|
||||
* @return
|
||||
* 0:不可领取
|
||||
* 1:可领取
|
||||
* 2:已领取
|
||||
*/
|
||||
private int getState(User user, SActivityRewardConfig config){
|
||||
if (config == null){
|
||||
return 0;
|
||||
}
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
ActivityProgressInfo info = mission.getActivityMissionMap().get(config.getId());
|
||||
if (info != null && info.getState() == 2){
|
||||
return 2;
|
||||
}
|
||||
if (mission.getV() >= config.getValues()[0][1]){
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(User user,ActivityMission activityMission, Set<Integer> filter) {
|
||||
if (activityMission == null){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
// 策划表的配置
|
||||
List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
// 返回对象
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missionInfos = new ArrayList<>(rewardConfigs.size());
|
||||
for (SActivityRewardConfig value : rewardConfigs) {
|
||||
// 参数初始化
|
||||
int missionId = value.getId();
|
||||
int progress = activityMission.getV();
|
||||
int state = getState(user,value);
|
||||
// 封装proto并返回
|
||||
CommonProto.ActivityInfo.MissionInfo build = CommonProto.ActivityInfo.MissionInfo.newBuilder()
|
||||
.setMissionId(missionId)
|
||||
.setProgress(progress)
|
||||
.setState(state)
|
||||
.build();
|
||||
missionInfos.add(build);
|
||||
}
|
||||
return missionInfos;
|
||||
}
|
||||
|
||||
/**
|
||||
* 领取奖励
|
||||
* @param session
|
||||
* @param missionId
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
// activity check
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (mission == null){
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE,"活动信息不存在:"+id);
|
||||
}
|
||||
SActivityRewardConfig rewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
int state = getState(user, rewardConfig);
|
||||
if (state != 1){
|
||||
throw new ErrorCodeException(ErrorCode.HAD_TAKE,"活动奖励领取失败:"+mission);
|
||||
}
|
||||
|
||||
// 更新数据库信息
|
||||
ActivityProgressInfo info = new ActivityProgressInfo();
|
||||
info.setState(2);
|
||||
mission.getActivityMissionMap().put(missionId,info);
|
||||
|
||||
// reward
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,rewardConfig.getReward(),missionId);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查活动是否完成或者可以领取
|
||||
* @param uid
|
||||
* @param activityId
|
||||
* @param activityMission
|
||||
* @return
|
||||
*/
|
||||
public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) throws Exception {
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
if (activityProgressInfoMap.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
User user = UserManager.getUser(uid);
|
||||
List<CommonProto.ActivityInfo.MissionInfo> allMissInfo = getAllMissInfo(user, activityMission);
|
||||
for (CommonProto.ActivityInfo.MissionInfo info : allMissInfo) {
|
||||
if (info.getState() != 2) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
|
||||
if(sGlobalActivity.getResetGrade()==0){
|
||||
activityMission.setActivityState(ActivityType.FINISH_STATE);
|
||||
Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(uid,activityId,ActivityType.FINISH_STATE));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -50,7 +50,7 @@ class NewRechargeSumDayActivity extends AbstractActivity {
|
|||
goodUpdate(user, goodId);
|
||||
}
|
||||
// 状态推送
|
||||
sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(user, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -32,39 +32,6 @@ public class NewWelfareActivity extends AbstractActivity {
|
|||
Poster.getPoster().listenEvent(this, NewWelfareEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
super.initActivity(user);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新进度
|
||||
*
|
||||
* @param filterMissId miss过滤
|
||||
*/
|
||||
@Override
|
||||
public void sendActivityProgress(ISession session, ActivityMission activityMission, Set<Integer> filterMissId) {
|
||||
if (session == null) {
|
||||
return;
|
||||
}
|
||||
PlayerInfoProto.ActivityUpateProgressIndication.Builder builder = PlayerInfoProto.ActivityUpateProgressIndication.newBuilder();
|
||||
|
||||
User user = UserManager.getUserInMem(session.getUid());
|
||||
if (user != null && activityMission != null) {
|
||||
if (activityMission.getActivityState() != ActivityType.OPEN_STATE) {
|
||||
return;
|
||||
}
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missInfo = getAllMissInfo(user, activityMission, filterMissId);
|
||||
CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder()
|
||||
.setValue(activityMission.getV())
|
||||
.addAllMission(missInfo)
|
||||
.setActivityId(id);
|
||||
builder.setActivityInfo(builder1);
|
||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
if (!(event instanceof NewWelfareEvent)) {
|
||||
|
@ -87,7 +54,7 @@ public class NewWelfareActivity extends AbstractActivity {
|
|||
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -228,7 +195,7 @@ public class NewWelfareActivity extends AbstractActivity {
|
|||
if (isUpdate) {
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -251,13 +218,10 @@ public class NewWelfareActivity extends AbstractActivity {
|
|||
activityMission.getActivityMissionMap().put(item.getKey(), item.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
reportTakeActivityReward(user, sActivityRewardConfigs.get(0).getReward(), missionId);
|
||||
|
||||
} else {
|
||||
//领取第三个奖励用
|
||||
if (!activityProgressInfoMap.containsKey(missionId) || activityProgressInfoMap.get(missionId).getState() != 3) {
|
||||
|
@ -269,11 +233,12 @@ public class NewWelfareActivity extends AbstractActivity {
|
|||
if (sActivityRewardConfig == null) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
reportTakeActivityReward(user, sActivityRewardConfig.getReward(), missionId);
|
||||
}
|
||||
|
||||
sendActivityProgress(session, null);
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ public class RechargeFirstActivity extends AbstractActivity {
|
|||
// 活动数据处理
|
||||
updateValue(user, event1.getGiftId());
|
||||
// 状态推送
|
||||
sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(user, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -165,7 +165,7 @@ public class RechargeFirstActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user, reward, missionId);
|
||||
return true;
|
||||
|
|
|
@ -54,7 +54,7 @@ public class RechargeRewardActivity extends AbstractActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
|
@ -17,7 +16,6 @@ import com.ljsd.jieling.util.ItemUtil;
|
|||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
import config.SLuxuryFund;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.TimeUtils;
|
||||
|
@ -73,7 +71,7 @@ class RechargeTotalActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,config.getReward(),missionId);
|
||||
return true;
|
||||
|
@ -142,7 +140,7 @@ class RechargeTotalActivity extends AbstractActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
|
||||
public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission){
|
||||
|
|
|
@ -68,7 +68,7 @@ public class SevenWorldActivity extends AbstractActivity {
|
|||
info.setState(1);
|
||||
mission.getActivityMissionMap().put(-1, info);
|
||||
// 状态推送
|
||||
sendActivityProgress(user, mission, null);
|
||||
sendActivityProgress(user, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,7 +151,7 @@ public class SevenWorldActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ class SignInSumActivity extends AbstractActivity {
|
|||
}
|
||||
reportTakeActivityReward(UserManager.getUser(session.getUid()),config.getReward(),missionId);
|
||||
ActivityMission activityMission = UserManager.getUser(session.getUid()).getActivityManager().getActivityMissionMap().get(this.id);
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
sendActivityProgress(session, null);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ class SoulEquipExpectActivity extends ExpectRankActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -144,7 +144,7 @@ public class SubActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 推送
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user, rewardList, missionId);
|
||||
return true;
|
||||
|
@ -215,9 +215,9 @@ public class SubActivity extends AbstractActivity {
|
|||
int curLay = user.getActivityManager().getSubRewardPoolInfo().getLay();
|
||||
if (curLay != sBlessingConfigNew.getFloorCount() && rewardId == activityMission.getV()) {
|
||||
ActivityLogic.getInstance().resumeActivity(user, ActivityType.SUB_ACTIVITY);
|
||||
sendActivityProgress(session, activityManager.getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(session, null);
|
||||
} else {
|
||||
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
||||
sendActivityProgress(session, Collections.singleton(missionId));
|
||||
}
|
||||
reportTakeActivityReward(user, rewards, missionId);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
|
|
|
@ -9,8 +9,6 @@ import com.ljsd.jieling.logic.OnlineUserManager;
|
|||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
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.PushRechargeType;
|
||||
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
|
@ -54,7 +52,7 @@ class SummonTreasureActivity extends AbstractActivity {
|
|||
// 推送客户端数据
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
mission.setV(user.getPlayerInfoManager().getGetFiveStarHeroNum());
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -107,7 +105,7 @@ class SummonTreasureActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
return true;
|
||||
|
|
|
@ -9,7 +9,6 @@ import com.ljsd.jieling.logic.activity.event.ActivityStateChangeEvent;
|
|||
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.ServerConfig;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.store.BuyGoodsNewLogic;
|
||||
|
@ -24,7 +23,6 @@ import rpc.protocols.CommonProto;
|
|||
import util.TimeUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author hj
|
||||
|
@ -71,7 +69,7 @@ public class SuperBoxActivity extends AbstractActivity {
|
|||
|
||||
// 客户端推送
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(session, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -65,7 +65,7 @@ public class SuperFundNewActivity extends AbstractActivity {
|
|||
// 零点刷新
|
||||
zeroRefresh(user,event1.getGiftId());
|
||||
// 状态推送
|
||||
sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
sendActivityProgress(user, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -198,7 +198,7 @@ public class SuperFundNewActivity extends AbstractActivity {
|
|||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
sendActivityProgress(session, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,rewards,missionId);
|
||||
return true;
|
||||
|
|
|
@ -1,29 +1,14 @@
|
|||
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.jbean.ActivityManager;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.BlessInfoRefreshEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.TaSuiLingXiaoEvent;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
import config.SLuckyCatConfig;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class TaSuiLingXiaoActivity extends AbstractActivity {
|
||||
|
@ -70,6 +55,6 @@ public class TaSuiLingXiaoActivity extends AbstractActivity {
|
|||
});
|
||||
//历史最高伤害
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,15 +2,11 @@ package com.ljsd.jieling.logic.activity;
|
|||
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
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.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
import util.TimeUtils;
|
||||
|
@ -52,7 +48,7 @@ class ThreeWorldActivity extends AbstractActivity {
|
|||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
sendActivityProgress(sessionByUid, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -10,20 +10,14 @@ import com.ljsd.jieling.globals.Global;
|
|||
import com.ljsd.jieling.jbean.gm.GmActivity;
|
||||
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;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.AyyncWorker;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import config.SErrorCodeEerverConfig;
|
||||
import config.SRechargeCommodityNewConfig;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -34,6 +28,7 @@ import org.springframework.data.mongodb.core.query.Query;
|
|||
import util.StringUtil;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -59,8 +54,6 @@ public class GmActivityLogic implements IEventHandler {
|
|||
public final static GmActivityLogic instance = new GmActivityLogic();
|
||||
}
|
||||
|
||||
private static int gameUpdateVersion = 0;
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
if (!(event instanceof AutoRechargeBackEvent)){
|
||||
|
@ -76,54 +69,83 @@ public class GmActivityLogic implements IEventHandler {
|
|||
}
|
||||
User user = UserManager.getUser(rechargeBackEvent.getUserId());
|
||||
GmActivityManager manager = user.getGmActivityManager();
|
||||
HashMap<String, GmActivity> activityMap = manager.getActivityMap();
|
||||
// 邮件信息
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("zidongfanli_mail_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("zidongfanli_mail_text");
|
||||
Map<String, ARBActivity> arbActivityMap = getArbActivity();
|
||||
|
||||
for (Map.Entry<String, GmActivity> entry : activityMap.entrySet()) {
|
||||
GmActivity gmActivity = entry.getValue();
|
||||
for (Map.Entry<String, ARBActivity> entry : arbActivityMap.entrySet()) {
|
||||
ARBActivity arbActivity = entry.getValue();
|
||||
// 时间校验
|
||||
long start = TimeUtils.dateFormat2(gmActivity.getStartTime());
|
||||
long end = TimeUtils.dateFormat2(gmActivity.getEndTime());
|
||||
long start = getStartTime(arbActivity);
|
||||
long end = getEndTime(arbActivity);
|
||||
long now = TimeUtils.now();
|
||||
if (start > now || end <= now){
|
||||
continue;
|
||||
}
|
||||
List<int[][]> rewards = new ArrayList<>();
|
||||
// 获取全部活动信息
|
||||
GmActivity gmActivity = manager.getActivityMap().getOrDefault(entry.getKey(), new GmActivity(arbActivity));
|
||||
switch (gmActivity.getType()){
|
||||
case 1:
|
||||
case 3:
|
||||
case 5://单笔累充,多日累充,永久大充
|
||||
getDefaultReward(gmActivity,config.getPrice(),rewards);
|
||||
break;
|
||||
case 2://妖晶返利
|
||||
getRewardToMonsterCurrencyBack(gmActivity,config.getPrice(),rewards);
|
||||
getRewardToMonsterCurrencyBack(user, gmActivity,config.getPrice());
|
||||
break;
|
||||
case 4://单笔充值
|
||||
getRewardToSingleRecharge(gmActivity,config.getPrice(),rewards);
|
||||
getRewardToSingleRecharge(user, gmActivity,config.getPrice());
|
||||
break;
|
||||
default://1、3、5、6(单笔累充,多日累充,永久大充,开服首日累充)
|
||||
getDefaultReward(user, gmActivity,config.getPrice());
|
||||
break;
|
||||
default:
|
||||
LOGGER.error("充值返利,未找到得活动类型,uid:{}, activityId:{}", user.getId(), gmActivity.getId());
|
||||
continue;
|
||||
}
|
||||
manager.putActivityMap(gmActivity.getId(),gmActivity);
|
||||
// 验证奖励非空
|
||||
String mailReward = ItemUtil.getMailReward(rewards);
|
||||
if (StringUtil.isEmpty(mailReward)){
|
||||
continue;
|
||||
}
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取开始时间
|
||||
* @param arbActivity
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
private long getStartTime(ARBActivity arbActivity) throws ParseException {
|
||||
long start = TimeUtils.dateFormat2(arbActivity.getStartTime());
|
||||
if (arbActivity.getType() == 6){
|
||||
start = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime());
|
||||
}
|
||||
return start;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结束时间
|
||||
* @param arbActivity
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
private long getEndTime(ARBActivity arbActivity) throws ParseException {
|
||||
long end = TimeUtils.dateFormat2(arbActivity.getEndTime());
|
||||
if (arbActivity.getType() == 6){
|
||||
end = TimeUtils.getTomorrowZero(GameApplication.serverConfig.getOpenTime(),1);
|
||||
}
|
||||
return end;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取gm活动
|
||||
* @return
|
||||
*/
|
||||
private Map<String, ARBActivity> getArbActivity(){
|
||||
HashMap<String, ARBActivity> map = new HashMap<>();
|
||||
// 单属于本服的活动
|
||||
Map<String, ARBActivity> arbActivityMap = RedisUtil.getInstence().getMapValues2(RedisKey.GM_ACTIVITY_INFO, String.valueOf(GameApplication.serverId), String.class, ARBActivity.class);
|
||||
map.putAll(arbActivityMap);
|
||||
// 全部服务器的活动
|
||||
Map<String, ARBActivity> allActivityMap = RedisUtil.getInstence().getMapValues2(RedisKey.GM_ACTIVITY_INFO, "0", String.class, ARBActivity.class);
|
||||
map.putAll(allActivityMap);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认奖励
|
||||
* @param gmActivity
|
||||
* @param price
|
||||
* @param rewards
|
||||
*/
|
||||
private void getDefaultReward(GmActivity gmActivity, double price, List<int[][]> rewards){
|
||||
private void getDefaultReward(User user, GmActivity gmActivity, double price) throws Exception {
|
||||
List<ARBMission> gmMissionList = findAllGmMission(gmActivity.getId());
|
||||
int num = gmActivity.getValue() + (int) price;
|
||||
for (ARBMission arbMission : gmMissionList) {
|
||||
|
@ -136,8 +158,11 @@ public class GmActivityLogic implements IEventHandler {
|
|||
if (num < arbMission.getRechargeNum()){
|
||||
continue;
|
||||
}
|
||||
// 奖励
|
||||
rewards.add(arbMission.getReward());
|
||||
// 发邮件
|
||||
String mailReward = ItemUtil.getMailReward(arbMission.getReward());
|
||||
if (!StringUtil.isEmpty(mailReward)){
|
||||
MailLogic.getInstance().sendMail(user.getId(),arbMission.getActivity().getName(),arbMission.getTitle(),mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
// 记录到库
|
||||
gmMission.setId(arbMission.getId());
|
||||
gmMission.setState(1);
|
||||
|
@ -150,9 +175,8 @@ public class GmActivityLogic implements IEventHandler {
|
|||
* 单笔充值奖励
|
||||
* @param gmActivity
|
||||
* @param price
|
||||
* @param rewards
|
||||
*/
|
||||
private void getRewardToSingleRecharge(GmActivity gmActivity, double price, List<int[][]> rewards){
|
||||
private void getRewardToSingleRecharge(User user, GmActivity gmActivity, double price) throws Exception {
|
||||
List<ARBMission> gmMissionList = findAllGmMission(gmActivity.getId());
|
||||
for (ARBMission arbMission : gmMissionList) {
|
||||
GmMission gmMission = gmActivity.getMissionMap().getOrDefault(arbMission.getId(), new GmMission());
|
||||
|
@ -164,8 +188,11 @@ public class GmActivityLogic implements IEventHandler {
|
|||
if (price != arbMission.getRechargeNum()){
|
||||
continue;
|
||||
}
|
||||
// 奖励
|
||||
rewards.add(arbMission.getReward());
|
||||
// 发邮件
|
||||
String mailReward = ItemUtil.getMailReward(arbMission.getReward());
|
||||
if (!StringUtil.isEmpty(mailReward)){
|
||||
MailLogic.getInstance().sendMail(user.getId(),arbMission.getActivity().getName(),arbMission.getTitle(),mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
// 记录到库
|
||||
gmMission.setId(arbMission.getId());
|
||||
gmMission.setState(1);
|
||||
|
@ -177,9 +204,8 @@ public class GmActivityLogic implements IEventHandler {
|
|||
* 妖晶返利奖励
|
||||
* @param gmActivity
|
||||
* @param price
|
||||
* @param rewards
|
||||
*/
|
||||
private void getRewardToMonsterCurrencyBack(GmActivity gmActivity, double price, List<int[][]> rewards){
|
||||
private void getRewardToMonsterCurrencyBack(User user, GmActivity gmActivity, double price) throws Exception {
|
||||
List<ARBMission> gmMissionList = findAllGmMission(gmActivity.getId());
|
||||
List<ARBMission> arbMissions = gmMissionList.stream().sorted(Comparator.comparing(ARBMission::getSort)).collect(Collectors.toList());
|
||||
int num = gmActivity.getValue() + (int) price;
|
||||
|
@ -205,10 +231,16 @@ public class GmActivityLogic implements IEventHandler {
|
|||
int rewardNum = (int) (arbMission.getBackRatio()/100d*1000*min);
|
||||
// 返利妖晶
|
||||
int[][] reward = {{16,rewardNum}};
|
||||
rewards.add(reward);
|
||||
|
||||
// 发邮件
|
||||
String mailReward = ItemUtil.getMailReward(reward);
|
||||
if (!StringUtil.isEmpty(mailReward)){
|
||||
MailLogic.getInstance().sendMail(user.getId(),arbMission.getActivity().getName(),arbMission.getTitle(),mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
// 档位信息更新
|
||||
gmMission.setId(arbMission.getId());
|
||||
if (num - min > 0){
|
||||
gmMission.setValue(arbMission.getAfterNum());
|
||||
gmMission.setState(1);
|
||||
num -= arbMission.getAfterNum();
|
||||
}else {
|
||||
|
@ -218,46 +250,20 @@ public class GmActivityLogic implements IEventHandler {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验活动开关
|
||||
* @param user
|
||||
*/
|
||||
public void updateGmActivity(User user){
|
||||
GmActivityManager gmActivityManager = user.getGmActivityManager();
|
||||
int version = getRedisUpdateVersion();
|
||||
if (gmActivityManager.getUpdateVersion() == version){
|
||||
return;
|
||||
}
|
||||
List<ARBActivity> list = findServerActivityList(String.valueOf(GameApplication.serverId));
|
||||
HashMap<String, GmActivity> activityMap = gmActivityManager.getActivityMap();
|
||||
// 删除不存在得活动
|
||||
Set<String> gmKeys = list.stream().map(ARBActivity::getId).collect(Collectors.toSet());
|
||||
Set<String> gameKeys = new HashSet<>(activityMap.keySet());
|
||||
for (String key : gameKeys) {
|
||||
if (!gmKeys.contains(key)){
|
||||
gmActivityManager.removeActivity(key);
|
||||
}
|
||||
}
|
||||
// 更新活动信息
|
||||
for (ARBActivity arbActivity : list) {
|
||||
GmActivity gmActivity = activityMap.getOrDefault(arbActivity.getId(),new GmActivity());
|
||||
gmActivity.setId(arbActivity.getId());
|
||||
gmActivity.setType(arbActivity.getType());
|
||||
gmActivity.setStartTime(arbActivity.getStartTime());
|
||||
gmActivity.setEndTime(arbActivity.getEndTime());
|
||||
gmActivityManager.putActivityMap(gmActivity.getId(),gmActivity);
|
||||
}
|
||||
gmActivityManager.setUpdateVersion(version);
|
||||
}
|
||||
|
||||
/**
|
||||
* 零点更新活动信息
|
||||
* @param user
|
||||
*/
|
||||
public void zeroUpdateGmActivity(User user){
|
||||
updateGmActivity(user);
|
||||
Map<String, ARBActivity> arbActivityMap = getArbActivity();
|
||||
GmActivityManager manager = user.getGmActivityManager();
|
||||
for (GmActivity gmActivity : manager.getActivityMap().values()) {
|
||||
ARBActivity arbActivity = arbActivityMap.get(gmActivity.getId());
|
||||
// 活动已经从gm上删除了,在这里删除数据库中的
|
||||
if (arbActivity == null){
|
||||
manager.removeActivity(gmActivity.getId());
|
||||
continue;
|
||||
}
|
||||
// 单笔累充和妖晶返利每日清零
|
||||
if (gmActivity.getType() == 1 || gmActivity.getType() == 2){
|
||||
gmActivity.setValue(0);
|
||||
|
@ -266,35 +272,11 @@ public class GmActivityLogic implements IEventHandler {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 每分钟处理
|
||||
*/
|
||||
public static void minuteTask(){
|
||||
int version = getRedisUpdateVersion();
|
||||
if (gameUpdateVersion == version){
|
||||
return;
|
||||
}
|
||||
gameUpdateVersion = version;
|
||||
try {
|
||||
for (ISession session : OnlineUserManager.sessionMap.values()) {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(user, true, user1 -> {
|
||||
GmActivityLogic.getInstance().updateGmActivity(user);
|
||||
});
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
}
|
||||
MongoUtil.getInstence().lastUpdate();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public List<ARBActivity> findAllGmActivity() {
|
||||
MongoTemplate coreMonoTemplate = MongoUtil.getCoreMongoTemplate();
|
||||
return coreMonoTemplate.findAll(ARBActivity.class);
|
||||
}
|
||||
|
||||
|
||||
public List<ARBActivity> findServerActivityList(String serverId) {
|
||||
List<ARBActivity> resultList = new ArrayList<>();
|
||||
for (ARBActivity activity : findAllGmActivity()) {
|
||||
|
@ -311,16 +293,4 @@ public class GmActivityLogic implements IEventHandler {
|
|||
return coreMonoTemplate.find(query, ARBMission.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 从redis获取更新号码(秒级时间戳格式)
|
||||
* @return
|
||||
*/
|
||||
public static int getRedisUpdateVersion(){
|
||||
String updateVersion = (String) RedisUtil.getInstence().get(RedisKey.GM_ACTIVITY_UPDATE);
|
||||
if (updateVersion == null){
|
||||
return 0;
|
||||
}
|
||||
return Integer.parseInt(updateVersion);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,20 +4,20 @@ import java.util.Map;
|
|||
|
||||
public class AddItemEvent implements IEvent {
|
||||
|
||||
private int useId;
|
||||
Map<Integer, Integer> useItemMap;
|
||||
private int userId;
|
||||
Map<Integer, Long> useItemMap;
|
||||
|
||||
public AddItemEvent(int useId, Map<Integer, Integer> useItemMap) {
|
||||
this.useId = useId;
|
||||
public AddItemEvent(int userId, Map<Integer, Long> useItemMap) {
|
||||
this.userId = userId;
|
||||
this.useItemMap = useItemMap;
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getUseItemMap() {
|
||||
public Map<Integer, Long> getUseItemMap() {
|
||||
return useItemMap;
|
||||
}
|
||||
|
||||
public int getUseId() {
|
||||
return useId;
|
||||
public int getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ public class SuperBoxEvent implements IEvent {
|
|||
/**
|
||||
* 礼包id
|
||||
*/
|
||||
private int giftId;
|
||||
private int giftId = default_id;
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
|
@ -32,6 +32,9 @@ public class SuperBoxEvent implements IEvent {
|
|||
*/
|
||||
private int type;
|
||||
|
||||
public SuperBoxEvent() {
|
||||
}
|
||||
|
||||
public SuperBoxEvent(int userId, int giftId) {
|
||||
this.userId = userId;
|
||||
this.giftId = giftId;
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
import com.ljsd.jieling.tools.Utils;
|
||||
import com.ljsd.jieling.util.ItemMap;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Date 2021/5/26 11:05
|
||||
* @Description: 累计
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class TotalItemEvent implements IEvent {
|
||||
|
||||
private int userId;
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Map<Integer, Long> map = new HashMap<>();
|
||||
|
||||
public TotalItemEvent() {
|
||||
}
|
||||
|
||||
public TotalItemEvent(int userId, Map<Integer, Long> map) {
|
||||
this.userId = userId;
|
||||
this.map = map;
|
||||
}
|
||||
|
||||
public TotalItemEvent(int userId, List<int[][]> list) {
|
||||
this.userId = userId;
|
||||
this.map = Utils.getItemMapObject(list);
|
||||
}
|
||||
|
||||
public TotalItemEvent(int userId, ItemMap itemMap) {
|
||||
this.userId = userId;
|
||||
this.map = itemMap.getItemMap();
|
||||
}
|
||||
|
||||
public int getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(int userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public Map<Integer, Long> getMap() {
|
||||
return map;
|
||||
}
|
||||
|
||||
public void setMap(Map<Integer, Long> map) {
|
||||
this.map = map;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package com.ljsd.jieling.logic.activity.eventhandler;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.jbean.gm.UserGodLvVo;
|
||||
import com.ljsd.jieling.logic.activity.IEventHandler;
|
||||
import com.ljsd.jieling.logic.activity.event.AddItemEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2020/1/7
|
||||
* @discribe
|
||||
*/
|
||||
public class AddItemHandler implements IEventHandler{
|
||||
public AddItemHandler() {
|
||||
Poster.getPoster().listenEvent(this, AddItemEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
if (!(event instanceof AddItemEvent)) {
|
||||
return;
|
||||
}
|
||||
AddItemEvent itemEvent = (AddItemEvent) event;
|
||||
User user = UserManager.getUser(itemEvent.getUserId());
|
||||
// 包含神尊经验道具,itemId:1352
|
||||
if (itemEvent.getUseItemMap().containsKey(1352)){
|
||||
int lv = PlayerLogic.getInstance().getGodPrivilegeLv(user);
|
||||
String key = RedisKey.GOD_LEVEL_UP_TIME + ":" + GameApplication.serverId + ":" + lv;
|
||||
String uid = String.valueOf(user.getId());
|
||||
UserGodLvVo userGodLvVo = RedisUtil.getInstence().getMapValue(key, uid, UserGodLvVo.class);
|
||||
if (userGodLvVo == null){
|
||||
userGodLvVo = new UserGodLvVo(user);
|
||||
RedisUtil.getInstence().putMapEntry(key, uid, userGodLvVo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -227,7 +227,7 @@ public class CombatLogic {
|
|||
err = StoreLogic.checkBuyGoodsAndUpdate(user,7,10008,1);
|
||||
}
|
||||
}else{
|
||||
err = StoreLogic.checkBuyGoodsAndUpdate(user,7,10015,1);
|
||||
err = StoreLogic.checkBuyGoodsAndUpdate(user,7,10015,0);
|
||||
}
|
||||
if (!"".equals(err)){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode(err));
|
||||
|
@ -277,7 +277,7 @@ public class CombatLogic {
|
|||
}
|
||||
int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin();
|
||||
ItemUtil.combineRewardByMainLine(user,false, true, randomRewardMin, times,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
ItemUtil.combineRewardByMainLine(user,true, false,targetMainLevelConfig.getRandomReward(), times,itemRandomObj,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
ItemUtil.combineRewardByMainLine(user,true, false, targetMainLevelConfig.getRandomReward(), times,itemRandomObj,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
itemRandomObj.setEquipMap(equipAutoCombine(itemRandomObj.getEquipMap()));
|
||||
//清除无用活动道具
|
||||
removeNoUseItem(user,itemRandomObj.getItemMap());
|
||||
|
@ -936,20 +936,17 @@ public class CombatLogic {
|
|||
int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||
int vipTimeAdd = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user, VipPrivilegeType.ADVENTURE_ADD_TIME);
|
||||
int adventureOffline = (gameSetting.getAdventureOffline()+vipTimeAdd)*60*60/adventureRefresh;
|
||||
ItemMap itemObj = new ItemMap();
|
||||
ItemMap itemRandom = new ItemMap();
|
||||
baseBuilder = CommonProto.Drop.newBuilder();
|
||||
randomBuilder = CommonProto.Drop.newBuilder();
|
||||
int takeTimes= 0;
|
||||
ArrayList<int[][]> baseList = new ArrayList<>();
|
||||
ArrayList<int[][]> randomList = new ArrayList<>();
|
||||
for(Map.Entry<Integer,Integer> fightStateInfoItem : fightStateInfo.entrySet()){
|
||||
Integer fightId = fightStateInfoItem.getKey();
|
||||
Integer times = fightStateInfoItem.getValue();
|
||||
SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId);
|
||||
int[] randomRewardMin = sMainLevelConfig.getRandomRewardMin();
|
||||
ItemUtil.combineRewardByMainLine(user,true,true,randomRewardMin, times,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
if (!viewBaseReward){
|
||||
ItemUtil.combineRewardByMainLine(user,true,false,sMainLevelConfig.getRandomReward(), times,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
}
|
||||
baseList.add(new int[][]{sMainLevelConfig.getRandomRewardMin(),new int[]{times}});
|
||||
randomList.add(new int[][]{sMainLevelConfig.getRandomReward(),new int[]{times}});
|
||||
takeTimes+=times;
|
||||
}
|
||||
int fightId = mainLevelManager.getFightId();
|
||||
|
@ -961,15 +958,17 @@ public class CombatLogic {
|
|||
boolean reset = maxTimes<times;
|
||||
if(maxTimes>0){
|
||||
times = reset?maxTimes:times;
|
||||
int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin();
|
||||
ItemUtil.combineRewardByMainLine(user,true,true,randomRewardMin, times,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
if (!viewBaseReward){
|
||||
ItemUtil.combineRewardByMainLine(user,true,false,targetMainLevelConfig.getRandomReward(), times,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
}
|
||||
baseList.add(new int[][]{targetMainLevelConfig.getRandomRewardMin(),new int[]{times}});
|
||||
randomList.add(new int[][]{targetMainLevelConfig.getRandomReward(),new int[]{times}});
|
||||
lastTimeTakes=times;
|
||||
}
|
||||
// ItemUtil.extraAddItem(user,itemObj.getItemMap(),BIReason.ADVENTURE_BASE_REWARD);
|
||||
// ItemUtil.extraAddItem(user,itemRandom.getItemMap(),BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
|
||||
ItemMap itemObj = new ItemMap();
|
||||
ItemMap itemRandom = new ItemMap();
|
||||
ItemUtil.combineRewardByMainLine(user,true,true,baseList,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
if (!viewBaseReward){
|
||||
ItemUtil.combineRewardByMainLine(user,true,false, randomList,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
}
|
||||
//装备合成
|
||||
itemRandom.setEquipMap(equipAutoCombine(itemRandom.getEquipMap()));
|
||||
if(viewBaseReward){
|
||||
|
|
|
@ -1038,7 +1038,7 @@ public class ItemLogic {
|
|||
//发推送
|
||||
AbstractActivity acticityType = ActivityTypeEnum.getActicityById(activityId);
|
||||
if(acticityType!=null){
|
||||
acticityType.sendActivityProgress(session, misson, null);
|
||||
acticityType.sendActivityProgress(session, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1992,7 +1992,7 @@ public class PlayerLogic {
|
|||
return 0;
|
||||
}
|
||||
int lv = 0;
|
||||
List<SPrestigeConfig> list = typeMap.values().stream().collect(Collectors.toList());
|
||||
List<SPrestigeConfig> list = new ArrayList<>(typeMap.values());
|
||||
Item item = user.getItemManager().getItem(list.get(0).getExperience()[0]);
|
||||
long num = Optional.ofNullable(item).map(Item::getItemNum).orElse(0L);
|
||||
for (SPrestigeConfig value : list) {
|
||||
|
|
|
@ -475,6 +475,10 @@ public class BuyGoodsNewLogic {
|
|||
public static void sendGoodsByType(User user,SRechargeCommodityNewConfig config,List<int[][]> dropList) throws Exception{
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
int type = config.getType();
|
||||
|
||||
// 道具累计活动充值活动
|
||||
Poster.getPoster().dispatchEvent(new TotalItemEvent(user.getId(),dropList));
|
||||
|
||||
CommonProto.Drop.Builder drop = null;
|
||||
if(dropList != null && !dropList.isEmpty()){
|
||||
drop = ItemUtil.drop(user, dropList, BIReason.DIRECT_BUY);
|
||||
|
|
|
@ -187,13 +187,6 @@ public class MinuteTask extends Thread {
|
|||
LOGGER.error("跨服排行榜初始化异常,Exception::=>{}",e.toString());
|
||||
}
|
||||
|
||||
try {
|
||||
GmActivityLogic.minuteTask();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
LOGGER.error("自动返利初始化异常,Exception::=>{}",e.toString());
|
||||
}
|
||||
|
||||
try {
|
||||
ArenaLogic.getInstance().worldSendReward();
|
||||
}catch (Exception e){
|
||||
|
|
|
@ -995,7 +995,7 @@ public class CBean2Proto {
|
|||
.build();
|
||||
}
|
||||
|
||||
public static PlayerInfoProto.GetMainLevelInfoResponse getMainLevelInfoResponse(User user ) throws Exception {
|
||||
public static PlayerInfoProto.GetMainLevelInfoResponse getMainLevelInfoResponse(User user ) throws Exception {
|
||||
long nowMs = TimeUtils.now();
|
||||
int now = (int)(nowMs/1000);
|
||||
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
||||
|
|
|
@ -55,20 +55,25 @@ public class ItemUtil {
|
|||
private static Set<Integer> dropAddition = new HashSet<>();//掉落权重加成id
|
||||
public static Map<Integer,String> equipQulityNameMap = new HashMap<>(2);
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class);
|
||||
|
||||
private static Set<Integer> currencyMap = new HashSet<>(2);
|
||||
private static HashSet<Integer> rmbItemSet = new HashSet<>();
|
||||
|
||||
|
||||
static {
|
||||
|
||||
|
||||
equipQulityNameMap.put(5,"传说");
|
||||
equipQulityNameMap.put(6,"远古");
|
||||
|
||||
currencyMap.add(Global.GEM);
|
||||
currencyMap.add(Global.GOLD);
|
||||
currencyMap.add(Global.SOULCRYSTAL);
|
||||
currencyMap.add(Global.DEVILJADE);//妖灵玉
|
||||
currencyMap.add(Global.ELITEPROOF);//精英证明
|
||||
currencyMap.add(Global.HEARTFIRE);//心火明晶
|
||||
|
||||
rmbItemSet.add(GlobalItemType.RMB_CARD);//现金卡
|
||||
rmbItemSet.add(GlobalItemType.DAY_RMB_CARD);//日抛现金卡
|
||||
rmbItemSet.add(GlobalItemType.XIAN_RECHARGE_CARD);//仙充卡
|
||||
rmbItemSet.add(GlobalItemType.DAY_XIAN_RECHARGE_CARD);//日抛仙充卡
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -358,6 +363,39 @@ public class ItemUtil {
|
|||
extraAddItem(user,itemObj.getItemMap(),reason);
|
||||
}
|
||||
|
||||
/**
|
||||
* 主线挂机奖励,避免循环
|
||||
* @throws ErrorCodeException
|
||||
*/
|
||||
public static void combineRewardByMainLine(User user,boolean isLoop,boolean fiexdOrRandom, List<int[][]> groupList,ItemMap itemObj,int reason)throws ErrorCodeException{
|
||||
for (int[][] list : groupList) {
|
||||
int[] groups = list[0];
|
||||
int time = list[1][0];
|
||||
for (int id:groups){
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(id);
|
||||
// 次数
|
||||
long num = time / sRewardGroup.getDrapRate();
|
||||
// 基础奖励和随机奖励
|
||||
if (fiexdOrRandom){
|
||||
combineRewardDropGroup(user, new int[]{id}, num,itemObj);
|
||||
}else {
|
||||
while (num-->0){
|
||||
combineRewardDropGroup(user, new int[]{id}, 1,itemObj);
|
||||
}
|
||||
}
|
||||
// 不足掉落的时间,看脸随机
|
||||
int remainder = time % sRewardGroup.getDrapRate();
|
||||
// 1-掉落时间,随机数值
|
||||
int random = MathUtils.random(1, sRewardGroup.getDrapRate());
|
||||
if (random <= remainder){
|
||||
combineRewardDropGroup(user, new int[]{id}, 1,itemObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 特权加成奖励
|
||||
extraAddItem(user,itemObj.getItemMap(),reason);
|
||||
}
|
||||
|
||||
public static void extraAddItem(User user, Map<Integer, Long> itemMap,int reason){
|
||||
ItemManager itemManager = user.getItemManager();
|
||||
for(Map.Entry<Integer,Long> item : itemMap.entrySet()){
|
||||
|
@ -384,7 +422,7 @@ public class ItemUtil {
|
|||
selectItemArr(itemArr,itemObj);
|
||||
}
|
||||
|
||||
public static void drop(User user,CommonProto.Drop.Builder dropBuilder,ItemMap itemObj,int reason) throws Exception {
|
||||
public static void drop(User user,CommonProto.Drop.Builder dropBuilder,ItemMap itemObj,int reason) throws Exception {
|
||||
// useRandomItem(user, randomMap, reason);
|
||||
mapToAdd(user,itemObj,dropBuilder,reason);
|
||||
}
|
||||
|
@ -551,7 +589,6 @@ public class ItemUtil {
|
|||
|
||||
/**
|
||||
* 成长百分比
|
||||
* @param sRewardItem
|
||||
* @return
|
||||
*/
|
||||
private static int getItemNum(User user,SRewardItem sRewardItem) {
|
||||
|
@ -675,144 +712,7 @@ public class ItemUtil {
|
|||
* @throws Exception
|
||||
*/
|
||||
public static void addItem(User user, Map<Integer, Long> itemMap,CommonProto.Drop.Builder dropBuilder,int reason) throws Exception {
|
||||
if (itemMap.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
EquipManager equipManager=user.getEquipManager();
|
||||
List<CommonProto.Item> itemProtoList = new CopyOnWriteArrayList<>();
|
||||
ItemManager itemManager = user.getItemManager();
|
||||
List<CommonProto.Item> sendToFront = new CopyOnWriteArrayList<>();
|
||||
//超过上限不能直接获得
|
||||
Map<Integer,Integer> extraItem = new HashMap<>(itemMap.size());
|
||||
List<Integer>changeEquipList=null;
|
||||
for (Map.Entry<Integer, Long> entry : itemMap.entrySet()) {
|
||||
SItem sItem = SItem.getsItemMap().get (entry.getKey());
|
||||
if (sItem.getItemBaseType()==6){
|
||||
equipManager.addEquipList(entry.getKey());
|
||||
}
|
||||
if (sItem.getItemType()==3 && reason != BIReason.EQUIP_UNLOAD_REWARD
|
||||
&& reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD){
|
||||
if (changeEquipList==null) {
|
||||
changeEquipList=new ArrayList<>();
|
||||
}
|
||||
itemManager.setEquipBookMap(entry.getKey(),entry.getValue());
|
||||
changeEquipList.add(entry.getKey());
|
||||
}
|
||||
long itemNumlimit = sItem.getItemNumlimit();
|
||||
long itemNum = entry.getValue().intValue();
|
||||
if(itemNum <= 0){
|
||||
continue;
|
||||
}
|
||||
if (itemNum >= itemNumlimit){
|
||||
itemNum = itemNumlimit;
|
||||
}
|
||||
Item item = itemManager.getItem(entry.getKey());
|
||||
if (item == null) {
|
||||
item = itemManager.newItem(entry.getKey(), itemNum);
|
||||
} else {
|
||||
if(sItem.getId()==Global.MISSING_ROOM_ITEM&&reason==BIReason.ADVENTURE_BASE_REWARD){
|
||||
itemNumlimit = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getMazeTreasureMax();
|
||||
}
|
||||
//数量超过了
|
||||
if(item.getItemNum()> itemNumlimit){
|
||||
|
||||
//如果是寻龙玉,直接返回不给
|
||||
if(sItem.getId()==Global.MISSING_ROOM_ITEM&&reason==BIReason.ADVENTURE_BASE_REWARD){
|
||||
continue;
|
||||
}
|
||||
if(reason==BIReason.TAKE_MAIL_REWARD){
|
||||
throw new ErrorCodeException(ErrorCode.BAG_FULL);
|
||||
}else{
|
||||
extraItem.put(entry.getKey(), (int) (extraItem.getOrDefault(entry.getKey(),0)+entry.getValue()));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (item.getItemNum() + entry.getValue() > itemNumlimit){
|
||||
if(sItem.getId()==Global.MISSING_ROOM_ITEM&&reason==BIReason.ADVENTURE_BASE_REWARD){
|
||||
item.setItemNum((int) (item.getItemNum() + entry.getValue()));
|
||||
}else{
|
||||
if(reason==BIReason.TAKE_MAIL_REWARD){
|
||||
throw new ErrorCodeException(ErrorCode.BAG_FULL);
|
||||
}else{
|
||||
extraItem.put(entry.getKey(), (int) (extraItem.getOrDefault(entry.getKey(),0)+entry.getValue()));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
item.setItemNum(item.getItemNum() + entry.getValue());
|
||||
|
||||
}
|
||||
}
|
||||
if(itemNum>=0){
|
||||
itemProtoList.add(CBean2Proto.getItem(item,itemNum));
|
||||
}
|
||||
|
||||
// 触发任务,东海寻仙
|
||||
if (sItem.getItemType() == GlobalItemType.TRANSFORMATION_CARD){
|
||||
long count = itemNum;
|
||||
while (count >= Integer.MAX_VALUE){
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),Integer.MAX_VALUE);
|
||||
count-=Integer.MAX_VALUE;
|
||||
}
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),(int)count);
|
||||
}
|
||||
|
||||
// ReportUtil.onReportEvent(user,ReportEventEnum.GET_ITEM.getType(),itemNum,String.valueOf(reason),item.getItemId());
|
||||
int eventType = ParamEventBean.UserItemEvent;
|
||||
if(currencyMap.contains(entry.getKey())){
|
||||
eventType = ParamEventBean.UserCurrencyEvent;
|
||||
}
|
||||
KtEventUtils.onKtEvent(user, eventType,reason,GlobalsDef.addReason,entry.getKey(),itemNum,item.getItemNum());
|
||||
|
||||
baseItemReport(user,item.getItemId(),(int)itemNum,1,reason);
|
||||
|
||||
if(sItem.getId() == Global.EXP){
|
||||
userLevelUp(user,itemNum);
|
||||
}
|
||||
if(sItem.getId() == Global.TREASURE_SCORE){
|
||||
treasureLevelUp(user);
|
||||
}
|
||||
extraDropAop(user,dropBuilder,sItem);
|
||||
sendToFront.add(CBean2Proto.getItem(item,-1));
|
||||
if(sItem.getItemType()==GlobalItemType.EQUIP){
|
||||
if(reason!=BIReason.EQUIP_UNLOAD_REWARD&&reason!=BIReason.DECOMPOS_HERO_REWARD&&reason!=BIReason.UPHERO_DECOMPOS_HERO_REWARD){
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.GET_EQUIP,sItem.getId(),(int)itemNum);
|
||||
ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),(int)itemNum,reason);
|
||||
}
|
||||
} else if (sItem.getItemType() == GlobalItemType.SOUL_MARK) {
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), (int)itemNum);
|
||||
}
|
||||
if(sItem.getId()==Global.DAILY_TASK_REMOVE_ITEM){
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,(int)itemNum,user);
|
||||
}
|
||||
//日志记录
|
||||
ItemLogic.getInstance().addItemLog(new ItemLog(user,0,reason,item,itemNum));
|
||||
}
|
||||
//发送装备图鉴修改推送
|
||||
SendEquipBookIndication(user.getId(),itemManager,changeEquipList);
|
||||
|
||||
for(Map.Entry<Integer,Integer> entry:extraItem.entrySet()){
|
||||
itemProtoList.add(CBean2Proto.getItem(itemManager.getItemMap().get(entry.getKey()),entry.getValue()));
|
||||
}
|
||||
if (dropBuilder != null) {
|
||||
dropBuilder.addAllItemlist(itemProtoList);
|
||||
}
|
||||
|
||||
if(!sendToFront.isEmpty()||extraItem.size()>0){
|
||||
MessageUtil.sendBagIndication(user.getId(),0,sendToFront,extraItem.size()>0);
|
||||
}
|
||||
if(extraItem.size()>0){
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for(Map.Entry<Integer,Integer> entry:extraItem.entrySet()){
|
||||
builder.append(entry.getKey()).append("#").append(entry.getValue());
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title");
|
||||
SItem item = SItem.getsItemMap().get(entry.getKey());
|
||||
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#");
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
builder = new StringBuilder();
|
||||
}
|
||||
}
|
||||
|
||||
addItemByMail(user,itemMap,dropBuilder,reason);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -833,18 +733,17 @@ public class ItemUtil {
|
|||
Map<Integer,Integer> extraItem = new HashMap<>(itemMap.size());
|
||||
List<Integer>changeEquipList=null;
|
||||
for (Map.Entry<Integer, Long> entry : itemMap.entrySet()) {
|
||||
SItem sItem = SItem.getsItemMap().get(entry.getKey());
|
||||
SItem sItem = SItem.getsItemMap().get (entry.getKey());
|
||||
if (sItem.getItemBaseType()==6){
|
||||
equipManager.addEquipList(entry.getKey());
|
||||
}
|
||||
if (sItem.getItemType()==3){
|
||||
if (sItem.getItemType()==3 && reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD){
|
||||
if (changeEquipList==null) {
|
||||
changeEquipList=new ArrayList<>();
|
||||
}
|
||||
itemManager.setEquipBookMap(entry.getKey(),entry.getValue());
|
||||
changeEquipList.add(entry.getKey());
|
||||
}
|
||||
|
||||
long itemNumlimit = sItem.getItemNumlimit();
|
||||
long itemNum = entry.getValue().intValue();
|
||||
if(itemNum <= 0){
|
||||
|
@ -894,8 +793,21 @@ public class ItemUtil {
|
|||
itemProtoList.add(CBean2Proto.getItem(item,itemNum));
|
||||
}
|
||||
|
||||
// 触发任务,东海寻仙
|
||||
if (sItem.getItemType() == GlobalItemType.TRANSFORMATION_CARD){
|
||||
long count = itemNum;
|
||||
while (count >= Integer.MAX_VALUE){
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),Integer.MAX_VALUE);
|
||||
count-=Integer.MAX_VALUE;
|
||||
}
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),(int)count);
|
||||
}
|
||||
|
||||
ReportUtil.onReportEvent(user,ReportEventEnum.GET_ITEM.getType(),itemNum,String.valueOf(reason),item.getItemId());
|
||||
int eventType = ParamEventBean.UserItemEvent;
|
||||
if(currencyMap.contains(entry.getKey())){
|
||||
eventType = ParamEventBean.UserCurrencyEvent;
|
||||
}
|
||||
KtEventUtils.onKtEvent(user, eventType,reason,GlobalsDef.addReason,entry.getKey(),itemNum,item.getItemNum());
|
||||
|
||||
baseItemReport(user,item.getItemId(),(int)itemNum,1,reason);
|
||||
|
||||
|
@ -910,18 +822,18 @@ public class ItemUtil {
|
|||
if(sItem.getItemType()==GlobalItemType.EQUIP){
|
||||
if(reason!=BIReason.EQUIP_UNLOAD_REWARD&&reason!=BIReason.DECOMPOS_HERO_REWARD&&reason!=BIReason.UPHERO_DECOMPOS_HERO_REWARD){
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.GET_EQUIP,sItem.getId(),(int)itemNum);
|
||||
ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),itemNum,reason);
|
||||
ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),(int)itemNum,reason);
|
||||
}
|
||||
} else if (sItem.getItemType() == GlobalItemType.SOUL_MARK) {
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), itemNum);
|
||||
}
|
||||
if (sItem.getItemType() == GlobalItemType.SOUL_MARK) {
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), (int)itemNum);
|
||||
}
|
||||
if(sItem.getId()==Global.DAILY_TASK_REMOVE_ITEM){
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,itemNum,user);
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,(int)itemNum,user);
|
||||
}
|
||||
//日志记录
|
||||
ItemLogic.getInstance().addItemLog(new ItemLog(user,0,reason,item,itemNum));
|
||||
}
|
||||
|
||||
//发送装备图鉴修改推送
|
||||
SendEquipBookIndication(user.getId(),itemManager,changeEquipList);
|
||||
|
||||
|
@ -931,6 +843,7 @@ public class ItemUtil {
|
|||
if (dropBuilder != null) {
|
||||
dropBuilder.addAllItemlist(itemProtoList);
|
||||
}
|
||||
|
||||
if(!sendToFront.isEmpty()||extraItem.size()>0){
|
||||
MessageUtil.sendBagIndication(user.getId(),0,sendToFront,extraItem.size()>0);
|
||||
}
|
||||
|
@ -940,15 +853,21 @@ public class ItemUtil {
|
|||
builder.append(entry.getKey()).append("#").append(entry.getValue());
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title");
|
||||
SItem item = SItem.getsItemMap().get(entry.getKey());
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())});
|
||||
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#");
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
builder = new StringBuilder();
|
||||
}
|
||||
}
|
||||
|
||||
Poster.getPoster().dispatchEvent(new AddItemEvent(user.getId(),itemMap));
|
||||
return 1;
|
||||
}
|
||||
///发送装备图鉴修改推送
|
||||
|
||||
/**
|
||||
* 发送装备图鉴修改推送
|
||||
* @param _uid
|
||||
* @param _itemManage
|
||||
* @param _equipList
|
||||
*/
|
||||
private static void SendEquipBookIndication(int _uid,ItemManager _itemManage, List<Integer>_equipList){
|
||||
if (_equipList==null||_equipList.isEmpty())return;
|
||||
List<CommonProto.EquipBookInfo>equipList=new ArrayList<>();
|
||||
|
@ -1494,28 +1413,29 @@ public class ItemUtil {
|
|||
* bt是否是记录累充人民币的类型
|
||||
* 真充券: 只获得对应金额的妖晶和名望经验
|
||||
* 现金卡: 计入游戏内所有累计充值的活动,不计入单笔充值和直购类活动
|
||||
* 仙充卡: 计入游戏内所有累计充值的活动和单笔充值活动,不计入直购类活动(用gm扶持)
|
||||
* 仙充卡(用gm扶持): 计入游戏内所有累计充值的活动和单笔充值活动,不计入直购类活动
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
private static boolean rmbItemHandler(User user, SItem sItem){
|
||||
boolean result = true;
|
||||
private static boolean rmbItemHandler(User user, SItem sItem) throws ErrorCodeException {
|
||||
if (!rmbItemSet.contains(sItem.getItemType())){
|
||||
return false;
|
||||
}
|
||||
NewRechargeInfo info = user.getPlayerInfoManager().getNewRechargeInfo();
|
||||
int num = sItem.getExtraReward()[1][0];
|
||||
switch (sItem.getItemType()){
|
||||
case GlobalItemType.RMB_CARD:
|
||||
case GlobalItemType.DAY_RMB_CARD:
|
||||
BuyGoodsNewLogic.changeActivity(user,num,info);
|
||||
break;
|
||||
case GlobalItemType.XIAN_RECHARGE_CARD:
|
||||
case GlobalItemType.DAY_XIAN_RECHARGE_CARD:
|
||||
info.addRmb(num);
|
||||
break;
|
||||
default:
|
||||
result = false;
|
||||
break;
|
||||
// 累充活动
|
||||
BuyGoodsNewLogic.changeActivity(user,num,info);
|
||||
|
||||
// 道具累计活动充值活动
|
||||
ItemMap itemMap = new ItemMap();
|
||||
combineRewardDropGroup(user,sItem.getRewardGroup(),1, itemMap);
|
||||
Poster.getPoster().dispatchEvent(new TotalItemEvent(user.getId(),itemMap));
|
||||
|
||||
// 单笔充值
|
||||
if (sItem.getItemType() == GlobalItemType.XIAN_RECHARGE_CARD || sItem.getItemType() == GlobalItemType.DAY_XIAN_RECHARGE_CARD){
|
||||
Poster.getPoster().dispatchEvent(new SingleRechargeEvent(user.getId(),num));
|
||||
}
|
||||
return result;
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void addCard(User user,int cardId,List<CommonProto.Hero> heroList,int reason) throws Exception {
|
||||
|
|
Loading…
Reference in New Issue