福星高照
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 福星高照储值
|
||||
*/
|
||||
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;
|
||||
|
||||
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.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.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;
|
||||
|
@ -29,33 +28,33 @@ public class LuckyGetActivity extends AbstractActivity{
|
|||
|
||||
public LuckyGetActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, LuckyGetBuyEvent.class);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
if (!(event instanceof LuckyGetBuyEvent))
|
||||
return;
|
||||
LuckyGetBuyEvent buyEvent = (LuckyGetBuyEvent) event;
|
||||
ActivityManager activityManager = buyEvent.getUser().getActivityManager();
|
||||
if(!activityManager.getActivityMissionMap().containsKey(id)){
|
||||
return;
|
||||
}
|
||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||
public void initActivity(User user) {
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
|
||||
ActivityLogic.getInstance().initAllActivityMission(user.getActivityManager().getActivityMissionMap(),id);
|
||||
|
||||
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
|
||||
int[] onceArrayValue = SSpecialConfig.getOnceArrayValue(SSpecialConfig.FU_XING);
|
||||
long buyTimeDeadLine = startTime + TimeUtils.DAY * onceArrayValue[0];//截止购买的时间
|
||||
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 {
|
||||
if(missionId!=-1){
|
||||
return super.takeReward(session, missionId);
|
||||
|
@ -75,6 +74,20 @@ public class LuckyGetActivity extends AbstractActivity{
|
|||
|
||||
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;
|
||||
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, 0, 1);
|
||||
long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, 0, 2);
|
||||
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);
|
||||
if (now < startTime || now > endTime) {
|
||||
continue;
|
||||
}
|
||||
|
@ -376,6 +376,17 @@ public class StoreLogic implements IEventHandler {
|
|||
if(storeManager.getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
||||
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){ //固定商店
|
||||
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
||||
long startTime = 0;
|
||||
|
@ -500,9 +511,6 @@ public class StoreLogic implements IEventHandler {
|
|||
int vipLeve = user.getPlayerInfoManager().getVipLevel();
|
||||
user.getPlayerInfoManager().setHadTakeLevelBoxVip(vipLeve);
|
||||
}
|
||||
if(storeId==Global.LUCKY_GET){
|
||||
Poster.getPoster().dispatchEvent(new LuckyGetBuyEvent(user));
|
||||
}
|
||||
if(sStoreConfig.getOpenPrivilege()!=null){
|
||||
PlayerInfoProto.PrivilegeIndication.Builder indication = PlayerInfoProto.PrivilegeIndication.newBuilder();
|
||||
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_DISMISS_TIME ="GuildDismissTime";//公会全员不上线解散时长
|
||||
public static final String SHEN_ZHUANG = "ShenZhuang";//神装礼包推送等级
|
||||
public static final String FU_XING = "FuXing";//福星高照可购买天数和可领取天数
|
||||
public static final String FU_XING_STORE = "FuXingStore";//福星高照购买解锁奖励
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
|
|
Loading…
Reference in New Issue