福星高照
parent
0228b97402
commit
15bd393c89
|
@ -0,0 +1,26 @@
|
||||||
|
package com.ljsd.jieling.handler.activity;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
|
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import rpc.protocols.ActivityProto;
|
||||||
|
import rpc.protocols.MessageTypeProto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lvxinran
|
||||||
|
* @date 2021/4/19
|
||||||
|
* @discribe
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class FuxingStoreBuyHandler extends BaseHandler<ActivityProto.FuXingStoreBuyRequest> {
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.FU_XING_STORE_BUY_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void processWithProto(ISession iSession, ActivityProto.FuXingStoreBuyRequest proto) throws Exception {
|
||||||
|
ActivityLogic.getInstance().fuxingStoreBuy(iSession,proto.getActivityId());
|
||||||
|
}
|
||||||
|
}
|
|
@ -1454,4 +1454,43 @@ public class ActivityLogic implements IEventHandler{
|
||||||
|
|
||||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 福星高照储值
|
||||||
|
*/
|
||||||
|
public void fuxingStoreBuy(ISession session,int activityId) throws Exception {
|
||||||
|
int uid = session.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||||
|
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
|
||||||
|
if(activity.getType()!=ActivityType.LUCKY_GET){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
if(activityMission==null||activityMission.getV()!=0||TimeUtils.now()>activityMission.getCreatTime()){//此活动2为已不可购买状态,1为已购买
|
||||||
|
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean itemCost = ItemUtil.itemCost(user, SSpecialConfig.getTwiceArrayValue(SSpecialConfig.FU_XING_STORE), 1, 1);
|
||||||
|
if(!itemCost){
|
||||||
|
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(activityId);
|
||||||
|
if(sActivityRewardConfigs == null){return;}
|
||||||
|
//已经激活购买的商品
|
||||||
|
//拿到激活当天0点
|
||||||
|
long beginOfDay = TimeUtils.getBeginOfDay(TimeUtils.now());
|
||||||
|
for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){
|
||||||
|
ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo();
|
||||||
|
activityProgressInfo.setProgrss((int)(beginOfDay/1000)+(sActivityRewardConfig.getValues()[1][0]-1)*(int)(TimeUtils.ONE_DAY/1000));
|
||||||
|
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||||
|
}
|
||||||
|
activityMission.setV(1);
|
||||||
|
//发推送
|
||||||
|
AbstractActivity acticityType = ActivityTypeEnum.getActicityType(activityId);
|
||||||
|
if(acticityType!=null){
|
||||||
|
acticityType.sendActivityProgress(session, activityMission, null);
|
||||||
|
}
|
||||||
|
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.FU_XING_STORE_BUY_RESPONSE_VALUE,null,true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
package com.ljsd.jieling.logic.activity;
|
package com.ljsd.jieling.logic.activity;
|
||||||
|
|
||||||
import com.ljsd.jieling.globals.BIReason;
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
import com.ljsd.jieling.jbean.ActivityManager;
|
|
||||||
import com.ljsd.jieling.jbean.ActivityMission;
|
import com.ljsd.jieling.jbean.ActivityMission;
|
||||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
|
||||||
import com.ljsd.jieling.logic.activity.event.LuckyGetBuyEvent;
|
|
||||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.util.ItemUtil;
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
|
import com.ljsd.jieling.util.ToolsUtil;
|
||||||
import config.SActivityRewardConfig;
|
import config.SActivityRewardConfig;
|
||||||
|
import config.SGlobalActivity;
|
||||||
|
import config.SSpecialConfig;
|
||||||
import rpc.protocols.CommonProto;
|
import rpc.protocols.CommonProto;
|
||||||
import rpc.protocols.PlayerInfoProto;
|
import rpc.protocols.PlayerInfoProto;
|
||||||
import util.TimeUtils;
|
import util.TimeUtils;
|
||||||
|
@ -29,33 +28,33 @@ public class LuckyGetActivity extends AbstractActivity{
|
||||||
|
|
||||||
public LuckyGetActivity(int id) {
|
public LuckyGetActivity(int id) {
|
||||||
super(id);
|
super(id);
|
||||||
Poster.getPoster().listenEvent(this, LuckyGetBuyEvent.class);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEvent(IEvent event) throws Exception {
|
public void initActivity(User user) {
|
||||||
if (!(event instanceof LuckyGetBuyEvent))
|
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||||
return;
|
|
||||||
LuckyGetBuyEvent buyEvent = (LuckyGetBuyEvent) event;
|
ActivityLogic.getInstance().initAllActivityMission(user.getActivityManager().getActivityMissionMap(),id);
|
||||||
ActivityManager activityManager = buyEvent.getUser().getActivityManager();
|
|
||||||
if(!activityManager.getActivityMissionMap().containsKey(id)){
|
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
|
||||||
return;
|
int[] onceArrayValue = SSpecialConfig.getOnceArrayValue(SSpecialConfig.FU_XING);
|
||||||
}
|
long buyTimeDeadLine = startTime + TimeUtils.DAY * onceArrayValue[0];//截止购买的时间
|
||||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
user.getActivityManager().getActivityMissionMap().get(id).setCreatTime(buyTimeDeadLine);
|
||||||
|
if(buyTimeDeadLine<TimeUtils.now()){
|
||||||
|
//已经结束
|
||||||
|
user.getActivityManager().getActivityMissionMap().get(id).setV(2);
|
||||||
|
|
||||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
|
||||||
if(sActivityRewardConfigs == null){return;}
|
|
||||||
//已经激活购买的商品
|
|
||||||
activityMission.setV(1);
|
|
||||||
//拿到激活当天0点
|
|
||||||
long beginOfDay = TimeUtils.getBeginOfDay(TimeUtils.now());
|
|
||||||
for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){
|
|
||||||
ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo();
|
|
||||||
activityProgressInfo.setProgrss((int)(beginOfDay/1000)+(sActivityRewardConfig.getValues()[1][1]-1)*(int)(TimeUtils.ONE_DAY/1000));
|
|
||||||
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume(User user) throws Exception {
|
||||||
|
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||||
|
if(activityMission.getV()!=1&&TimeUtils.now()>=activityMission.getCreatTime()){
|
||||||
|
activityMission.setV(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||||
if(missionId!=-1){
|
if(missionId!=-1){
|
||||||
return super.takeReward(session, missionId);
|
return super.takeReward(session, missionId);
|
||||||
|
@ -75,6 +74,20 @@ public class LuckyGetActivity extends AbstractActivity{
|
||||||
|
|
||||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||||
|
|
||||||
|
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||||
|
boolean isAll = true;
|
||||||
|
for(Map.Entry<Integer,ActivityProgressInfo> entry:activityMission.getActivityMissionMap().entrySet()){
|
||||||
|
if(entry.getValue().getState()==0){
|
||||||
|
isAll=false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isAll){
|
||||||
|
activityMission.setV(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
sendActivityProgress(session,activityMission , null);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
package com.ljsd.jieling.logic.activity.event;
|
|
||||||
|
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author lvxinran
|
|
||||||
* @date 2021/3/30
|
|
||||||
* @discribe
|
|
||||||
*/
|
|
||||||
public class LuckyGetBuyEvent implements IEvent {
|
|
||||||
|
|
||||||
private User user;
|
|
||||||
|
|
||||||
public LuckyGetBuyEvent(User user) {
|
|
||||||
this.user = user;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public User getUser() {
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUser(User user) {
|
|
||||||
this.user = user;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -108,8 +108,8 @@ public class StoreLogic implements IEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (sStoreTypeConfig.getStoreOpenRule() == 7) {
|
} else if (sStoreTypeConfig.getStoreOpenRule() == 7) {
|
||||||
long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, 0, 1);
|
long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 1);
|
||||||
long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, 0, 2);
|
long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 2);
|
||||||
if (now < startTime || now > endTime) {
|
if (now < startTime || now > endTime) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -376,6 +376,17 @@ public class StoreLogic implements IEventHandler {
|
||||||
if(storeManager.getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
if(storeManager.getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if(sStoreTypeConfig.getStoreOpenRule() == 7){
|
||||||
|
|
||||||
|
long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,0, 1);
|
||||||
|
long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,0, 2);
|
||||||
|
long now = TimeUtils.now();
|
||||||
|
if(now>startTime&&now<endTime){
|
||||||
|
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
||||||
|
storeManager.newStoreInfo(sStoreTypeConfig.getId(),refreshTimeDelay,startTime,endTime,itemNumMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
if (sStoreTypeConfig.getStoreOpenRule() == 1 && sStoreTypeConfig.getId() !=8){ //固定商店
|
if (sStoreTypeConfig.getStoreOpenRule() == 1 && sStoreTypeConfig.getId() !=8){ //固定商店
|
||||||
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
||||||
long startTime = 0;
|
long startTime = 0;
|
||||||
|
@ -500,9 +511,6 @@ public class StoreLogic implements IEventHandler {
|
||||||
int vipLeve = user.getPlayerInfoManager().getVipLevel();
|
int vipLeve = user.getPlayerInfoManager().getVipLevel();
|
||||||
user.getPlayerInfoManager().setHadTakeLevelBoxVip(vipLeve);
|
user.getPlayerInfoManager().setHadTakeLevelBoxVip(vipLeve);
|
||||||
}
|
}
|
||||||
if(storeId==Global.LUCKY_GET){
|
|
||||||
Poster.getPoster().dispatchEvent(new LuckyGetBuyEvent(user));
|
|
||||||
}
|
|
||||||
if(sStoreConfig.getOpenPrivilege()!=null){
|
if(sStoreConfig.getOpenPrivilege()!=null){
|
||||||
PlayerInfoProto.PrivilegeIndication.Builder indication = PlayerInfoProto.PrivilegeIndication.newBuilder();
|
PlayerInfoProto.PrivilegeIndication.Builder indication = PlayerInfoProto.PrivilegeIndication.newBuilder();
|
||||||
int[] openPrivilege = sStoreConfig.getOpenPrivilege();
|
int[] openPrivilege = sStoreConfig.getOpenPrivilege();
|
||||||
|
|
|
@ -97,6 +97,8 @@ public class SSpecialConfig implements BaseConfig {
|
||||||
public static final String GUILD_LEADER_PASS_TIME = "GuildLeaderPassTime";//会长不上线移交时长
|
public static final String GUILD_LEADER_PASS_TIME = "GuildLeaderPassTime";//会长不上线移交时长
|
||||||
public static final String GUILD_DISMISS_TIME ="GuildDismissTime";//公会全员不上线解散时长
|
public static final String GUILD_DISMISS_TIME ="GuildDismissTime";//公会全员不上线解散时长
|
||||||
public static final String SHEN_ZHUANG = "ShenZhuang";//神装礼包推送等级
|
public static final String SHEN_ZHUANG = "ShenZhuang";//神装礼包推送等级
|
||||||
|
public static final String FU_XING = "FuXing";//福星高照可购买天数和可领取天数
|
||||||
|
public static final String FU_XING_STORE = "FuXingStore";//福星高照购买解锁奖励
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue