周卡更改
parent
2820f24561
commit
8293b63aca
|
@ -2,12 +2,14 @@ package com.ljsd.jieling.logic.activity.activityLogic;
|
||||||
|
|
||||||
|
|
||||||
import com.ljsd.jieling.globals.Global;
|
import com.ljsd.jieling.globals.Global;
|
||||||
|
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.WeekCardInfo;
|
import com.ljsd.jieling.logic.dao.WeekCardInfo;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
|
import com.ljsd.jieling.util.ToolsUtil;
|
||||||
import config.SErrorCodeEerverConfig;
|
import config.SErrorCodeEerverConfig;
|
||||||
import config.SWeekcardConfig;
|
import config.SWeekcardConfig;
|
||||||
import config.SWeekcardRotationConfig;
|
import config.SWeekcardRotationConfig;
|
||||||
|
@ -25,65 +27,61 @@ public class WeekCardLogic {
|
||||||
public WeekCardLogic() {
|
public WeekCardLogic() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Instance {
|
|
||||||
public final static WeekCardLogic instance = new WeekCardLogic();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static WeekCardLogic getInstance() {
|
public static WeekCardLogic getInstance() {
|
||||||
return WeekCardLogic.Instance.instance;
|
return WeekCardLogic.Instance.instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendWeekCardInitInfo(ISession session)throws Exception{
|
public void sendWeekCardInitInfo(ISession session) throws Exception {
|
||||||
ActivityProto.WeekCardIndicationInfoResponse.Builder res = ActivityProto.WeekCardIndicationInfoResponse.newBuilder();
|
ActivityProto.WeekCardIndicationInfoResponse.Builder res = ActivityProto.WeekCardIndicationInfoResponse.newBuilder();
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
List<CommonProto.WeekCard> weekCardList = initAllWeekCardInfo(user);
|
List<CommonProto.WeekCard> weekCardList = initAllWeekCardInfo(user);
|
||||||
res.addAllAllWeekCardInfo(weekCardList);
|
res.addAllAllWeekCardInfo(weekCardList);
|
||||||
//MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse, res.build(), true);
|
//MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse, res.build(), true);
|
||||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse_VALUE,res.build(),true);
|
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse_VALUE, res.build(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendWeekCardRewardMail(ISession session)throws Exception{
|
public void sendWeekCardRewardMail(ISession session) throws Exception {
|
||||||
//发每周未领取的奖励
|
//发每周未领取的奖励
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
Map<Integer, WeekCardInfo> weekCard = user.getPlayerInfoManager().getWeekCard();
|
Map<Integer, WeekCardInfo> weekCard = user.getPlayerInfoManager().getWeekCard();
|
||||||
Map<Integer,Integer>dropMap = new HashMap<>();
|
Map<Integer, Integer> dropMap = new HashMap<>();
|
||||||
boolean isSave = false;
|
boolean isSave = false;
|
||||||
for(WeekCardInfo weekCardVal:weekCard.values()){
|
for (WeekCardInfo weekCardVal : weekCard.values()) {
|
||||||
Map<Integer, SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
|
Map<Integer, SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
|
||||||
if(!config.containsKey(weekCardVal.getId())){
|
if (!config.containsKey(weekCardVal.getId())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(!weekCardVal.isBuy()){
|
if (!weekCardVal.isBuy()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(TimeUtils.isSameWeek7(weekCardVal.getBugTime())){
|
if (TimeUtils.isSameWeek7(weekCardVal.getBugTime())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays()>0){
|
if (Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays() > 0) {
|
||||||
for(int i= (Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays());i>0;i--){
|
for (int i = (Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays()); i > 0; i--) {
|
||||||
int [][]drop =config.get(weekCardVal.getId()).getBaseReward();
|
int[][] drop = config.get(weekCardVal.getId()).getBaseReward();
|
||||||
for(int[] single:drop){
|
for (int[] single : drop) {
|
||||||
if(dropMap.containsKey(single[0])){
|
if (dropMap.containsKey(single[0])) {
|
||||||
dropMap.put(single[0],dropMap.get(single[0])+single[1]);
|
dropMap.put(single[0], dropMap.get(single[0]) + single[1]);
|
||||||
}else{
|
} else {
|
||||||
dropMap.put(single[0],single[1]);
|
dropMap.put(single[0], single[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
weekCardVal.setBuy(false);
|
weekCardVal.setBuy(false);
|
||||||
weekCardVal.setBugTime(0);
|
weekCardVal.setBugTime(0);
|
||||||
isSave =true;
|
isSave = true;
|
||||||
}else{
|
} else {
|
||||||
weekCardVal.setBuy(false);
|
weekCardVal.setBuy(false);
|
||||||
weekCardVal.setBugTime(0);
|
weekCardVal.setBugTime(0);
|
||||||
isSave = true;
|
isSave = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isSave){
|
if (isSave) {
|
||||||
user.getPlayerInfoManager().setWeekCard(weekCard);
|
user.getPlayerInfoManager().setWeekCard(weekCard);
|
||||||
}
|
}
|
||||||
if(dropMap.size()>0){
|
if (dropMap.size() > 0) {
|
||||||
int [][] dropArray= dropMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new);
|
int[][] dropArray = dropMap.entrySet().stream().map(n -> new int[]{n.getKey(), n.getValue()}).toArray(int[][]::new);
|
||||||
String title = SErrorCodeEerverConfig.getI18NMessage("WeekcardReward_mail_title");
|
String title = SErrorCodeEerverConfig.getI18NMessage("WeekcardReward_mail_title");
|
||||||
String content = SErrorCodeEerverConfig.getI18NMessage("WeekcardReward_mail_txt");
|
String content = SErrorCodeEerverConfig.getI18NMessage("WeekcardReward_mail_txt");
|
||||||
// 排行奖励
|
// 排行奖励
|
||||||
|
@ -92,70 +90,69 @@ public class WeekCardLogic {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CommonProto.WeekCard> initAllWeekCardInfo(User user) throws Exception{
|
public List<CommonProto.WeekCard> initAllWeekCardInfo(User user) throws Exception {
|
||||||
long time= user.getPlayerInfoManager().getWeekCardTimeFirst();
|
long time = user.getPlayerInfoManager().getWeekCardTimeFirst();
|
||||||
if(!TimeUtils.isSameWeek7(time)){
|
if (!TimeUtils.isSameWeek7(time)) {
|
||||||
user.getPlayerInfoManager().setWeekCardTimeFirstLevel(user.getPlayerInfoManager().getLevel());
|
user.getPlayerInfoManager().setWeekCardTimeFirstLevel(user.getPlayerInfoManager().getLevel());
|
||||||
user.getPlayerInfoManager().setWeekCardTimeFirst(TimeUtils.now());
|
user.getPlayerInfoManager().setWeekCardTimeFirst(TimeUtils.now());
|
||||||
}
|
}
|
||||||
int [] weekCardType = getWeekCardType(user);
|
int[] weekCardType = getWeekCardType(user);
|
||||||
Map<Integer, WeekCardInfo> weekCard = user.getPlayerInfoManager().getWeekCard();
|
Map<Integer, WeekCardInfo> weekCard = user.getPlayerInfoManager().getWeekCard();
|
||||||
Map<Integer,SWeekcardRotationConfig> config = STableManager.getConfig(SWeekcardRotationConfig.class);
|
Map<Integer, SWeekcardRotationConfig> config = STableManager.getConfig(SWeekcardRotationConfig.class);
|
||||||
boolean isSaveToDb =false;
|
boolean isSaveToDb = false;
|
||||||
List<CommonProto.WeekCard> weekCardList=new ArrayList<>();
|
List<CommonProto.WeekCard> weekCardList = new ArrayList<>();
|
||||||
if(weekCardType == null || weekCardType.length ==0){
|
if (weekCardType == null || weekCardType.length == 0) {
|
||||||
return weekCardList;
|
return weekCardList;
|
||||||
}
|
}
|
||||||
for(int i= 1;i<weekCardType.length;i++){
|
for (int i = 1; i < weekCardType.length; i++) {
|
||||||
CommonProto.WeekCard.Builder weekCardProto = CommonProto.WeekCard.newBuilder();
|
CommonProto.WeekCard.Builder weekCardProto = CommonProto.WeekCard.newBuilder();
|
||||||
//周卡是否存在 判断是否过期
|
//周卡是否存在 判断是否过期
|
||||||
if(!weekCard.containsKey(weekCardType[i])){
|
if (!weekCard.containsKey(weekCardType[i])) {
|
||||||
weekCard.put(weekCardType[i],new WeekCardInfo(weekCardType[i],false,0,0));
|
weekCard.put(weekCardType[i], new WeekCardInfo(weekCardType[i], false, 0, 0));
|
||||||
|
isSaveToDb = true;
|
||||||
|
}
|
||||||
|
WeekCardInfo singleWeekCard = weekCard.get(weekCardType[i]);
|
||||||
|
if (singleWeekCard.isBuy()) {
|
||||||
|
//买过周卡
|
||||||
|
if (!TimeUtils.isSameWeek7(singleWeekCard.getBugTime())) {
|
||||||
|
//周卡已经过期
|
||||||
|
singleWeekCard.setBuy(false);
|
||||||
|
singleWeekCard.setLeaveGetRewardDays(0);
|
||||||
isSaveToDb = true;
|
isSaveToDb = true;
|
||||||
}
|
}
|
||||||
WeekCardInfo singleWeekCard = weekCard.get(weekCardType[i]);
|
}
|
||||||
if(singleWeekCard.isBuy()){
|
weekCardProto.setId(singleWeekCard.getId());
|
||||||
//买过周卡
|
weekCardProto.setIsBuy(singleWeekCard.isBuy());
|
||||||
if(!TimeUtils.isSameWeek7(singleWeekCard.getBugTime())){
|
weekCardProto.setLeaveGetRewardDays(TimeUtils.getDayOfWeek() - singleWeekCard.getLeaveGetRewardDays());
|
||||||
//周卡已经过期
|
weekCardList.add(weekCardProto.build());
|
||||||
singleWeekCard.setBuy(false);
|
|
||||||
singleWeekCard.setLeaveGetRewardDays(0);
|
|
||||||
isSaveToDb = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
weekCardProto.setId(singleWeekCard.getId());
|
|
||||||
weekCardProto.setIsBuy(singleWeekCard.isBuy());
|
|
||||||
weekCardProto.setLeaveGetRewardDays(TimeUtils.getDayOfWeek()-singleWeekCard.getLeaveGetRewardDays());
|
|
||||||
weekCardList.add(weekCardProto.build());
|
|
||||||
}
|
}
|
||||||
if(isSaveToDb){
|
if (isSaveToDb) {
|
||||||
user.getPlayerInfoManager().setWeekCard(weekCard);
|
user.getPlayerInfoManager().setWeekCard(weekCard);
|
||||||
}
|
}
|
||||||
return weekCardList;
|
return weekCardList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void buyWeekCard(User user, int weekCardType) throws Exception {
|
||||||
public void buyWeekCard(User user,int weekCardType) throws Exception{
|
|
||||||
Map<Integer, WeekCardInfo> weekCard = user.getPlayerInfoManager().getWeekCard();
|
Map<Integer, WeekCardInfo> weekCard = user.getPlayerInfoManager().getWeekCard();
|
||||||
int[] weekType = WeekCardLogic.getInstance().getWeekCardType(user);
|
int[] weekType = WeekCardLogic.getInstance().getWeekCardType(user);
|
||||||
if(weekType == null){
|
if (weekType == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//根据礼包id 找出此时开卖的周卡id
|
//根据礼包id 找出此时开卖的周卡id
|
||||||
int id = 0;
|
int id = 0;
|
||||||
Map<Integer,SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
|
Map<Integer, SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
|
||||||
for(int i=1;i<weekType.length;i++){
|
for (int i = 1; i < weekType.length; i++) {
|
||||||
if(config.containsKey(weekType[i])){
|
if (config.containsKey(weekType[i])) {
|
||||||
if(config.get(weekType[i]).getRechargeId()== weekCardType){
|
if (config.get(weekType[i]).getRechargeId() == weekCardType) {
|
||||||
id = config.get(weekType[i]).getId();
|
id = config.get(weekType[i]).getId();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(id == 0){
|
if (id == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!weekCard.containsKey(id)){
|
if (!weekCard.containsKey(id)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
WeekCardInfo singleWeekCard = weekCard.get(id);
|
WeekCardInfo singleWeekCard = weekCard.get(id);
|
||||||
|
@ -165,32 +162,43 @@ public class WeekCardLogic {
|
||||||
user.getPlayerInfoManager().setWeekCard(weekCard);
|
user.getPlayerInfoManager().setWeekCard(weekCard);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] getWeekCardType(User user) throws Exception{
|
public int[] getWeekCardType(User user) throws Exception {
|
||||||
Map<Integer, SWeekcardRotationConfig> config = STableManager.getConfig(SWeekcardRotationConfig.class);
|
Map<Integer, SWeekcardRotationConfig> config = STableManager.getConfig(SWeekcardRotationConfig.class);
|
||||||
for(SWeekcardRotationConfig con:config.values()){
|
for (SWeekcardRotationConfig con : config.values()) {
|
||||||
if( TimeUtils.now()>=TimeUtils.parseTimeToMiles(con.getStartTime(),TimeUtils.Stand_CeHua_Data_format)
|
if (con.getTime() == ActivityType.OPEN_TYPE_ROLE) {
|
||||||
&& TimeUtils.now()<=TimeUtils.parseTimeToMiles(con.getEndtime(),TimeUtils.Stand_CeHua_Data_format)){
|
long userCreateTime = user.getPlayerInfoManager().getCreateTime();
|
||||||
int [][]cardType = con.getWeekcardType();
|
long startTime = ToolsUtil.getTimeLong(Long.parseLong(con.getStartTime()), Long.parseLong(con.getEndtime()), con.getTime(), userCreateTime, 1);
|
||||||
int level= user.getPlayerInfoManager().getWeekCardTimeFirstLevel();
|
long endTime = ToolsUtil.getTimeLong(Long.parseLong(con.getStartTime()), Long.parseLong(con.getEndtime()), con.getTime(), userCreateTime, 2);
|
||||||
if(level == 0){
|
if (TimeUtils.now() >= startTime && TimeUtils.now() <= endTime) {
|
||||||
level = user.getPlayerInfoManager().getLevel();
|
return con.getWeekcardType()[0];
|
||||||
}
|
}
|
||||||
if(cardType.length>1){
|
}
|
||||||
if(level>=cardType[0][0]&&level<=cardType[1][0]){
|
if (con.getTime() == ActivityType.OPEN_TYPE_TIME) {
|
||||||
return cardType[0];
|
if (TimeUtils.now() >= TimeUtils.parseTimeToMiles(con.getStartTime(), TimeUtils.Stand_CeHua_Data_format)
|
||||||
}else {
|
&& TimeUtils.now() <= TimeUtils.parseTimeToMiles(con.getEndtime(), TimeUtils.Stand_CeHua_Data_format)) {
|
||||||
return cardType[1];
|
int[][] cardType = con.getWeekcardType();
|
||||||
|
int level = user.getPlayerInfoManager().getWeekCardTimeFirstLevel();
|
||||||
|
if (level == 0) {
|
||||||
|
level = user.getPlayerInfoManager().getLevel();
|
||||||
|
}
|
||||||
|
if (cardType.length > 1) {
|
||||||
|
if (level >= cardType[0][0] && level <= cardType[1][0]) {
|
||||||
|
return cardType[0];
|
||||||
|
} else {
|
||||||
|
return cardType[1];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return cardType[0];
|
||||||
}
|
}
|
||||||
}else {
|
|
||||||
return cardType[0];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Instance {
|
||||||
|
public final static WeekCardLogic instance = new WeekCardLogic();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue