定时系统邮件
parent
d54dbb502f
commit
e76e1f93c6
|
@ -1,35 +1,122 @@
|
|||
package com.ljsd.jieling.config;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.logic.STableManager;
|
||||
import com.ljsd.jieling.logic.Table;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.util.TimeUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="TestWelfare")
|
||||
@Table(name = "TestWelfare")
|
||||
public class STestWelfare implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
private int id;
|
||||
|
||||
private int[] reward;
|
||||
private String startTime;
|
||||
|
||||
public static Map<Integer, STestWelfare> testWelfareMap;
|
||||
private String endTime;
|
||||
|
||||
private int time;
|
||||
|
||||
private String title;
|
||||
|
||||
|
||||
@Override
|
||||
private String value;
|
||||
|
||||
private long startTimeLong;
|
||||
|
||||
private long endTimeLong;
|
||||
|
||||
private int[] reward;
|
||||
|
||||
public static Map<Integer, STestWelfare> sTestWelfareMap;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
testWelfareMap= STableManager.getConfig(STestWelfare.class);
|
||||
|
||||
Map<Integer, STestWelfare> cfg = STableManager.getConfig(STestWelfare.class);
|
||||
|
||||
for(STestWelfare sTestWelfare : cfg.values()){
|
||||
int time = sTestWelfare.getTime();
|
||||
String startTime = sTestWelfare.getStartTime();
|
||||
String endtime = sTestWelfare.getEndTime();
|
||||
if(time == 1 ){
|
||||
if(!"0".equals(startTime)){
|
||||
sTestWelfare.setStartTimeLong(TimeUtils.parseTimeToMiles(startTime,TimeUtils.Stand_CeHua_Data_format));
|
||||
}
|
||||
if(!"0".equals(endtime)){
|
||||
sTestWelfare.setEndTimeLong(TimeUtils.parseTimeToMiles(endtime,TimeUtils.Stand_CeHua_Data_format));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
sTestWelfare.setStartTimeLong(Long.parseLong(startTime));
|
||||
sTestWelfare.setEndTimeLong(Long.parseLong(endtime));
|
||||
}
|
||||
sTestWelfareMap = cfg;
|
||||
}
|
||||
|
||||
public static Map<Integer, STestWelfare> getsTestWelfareMap() {
|
||||
return sTestWelfareMap;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
public static void setsTestWelfareMap(Map<Integer, STestWelfare> sTestWelfareMap) {
|
||||
STestWelfare.sTestWelfareMap = sTestWelfareMap;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int[] getReward() {
|
||||
public String getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public String getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public int getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public String gettitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public String getvalue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public int[] getReward() {
|
||||
return reward;
|
||||
}
|
||||
|
||||
public void setStartTimeLong(long startTimeLong) {
|
||||
this.startTimeLong = startTimeLong;
|
||||
}
|
||||
|
||||
public void setEndTimeLong(long endTimeLong) {
|
||||
this.endTimeLong = endTimeLong;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param type 获取1 开始时间2 结束时间
|
||||
*/
|
||||
public long getTimeLong(long createUserTime,int type) {
|
||||
long baseTime = startTimeLong;
|
||||
if(type == 2){
|
||||
baseTime = endTimeLong;
|
||||
}
|
||||
long startTime=0;
|
||||
if(time ==1){
|
||||
startTime = baseTime;
|
||||
}else if(time == 3){
|
||||
long serverOpenTime = GameApplication.serverConfig.getCacheOpenTime();
|
||||
startTime = serverOpenTime + baseTime*1000;
|
||||
}else if(time == 2){
|
||||
startTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000;
|
||||
}
|
||||
return startTime;
|
||||
}
|
||||
}
|
|
@ -285,11 +285,13 @@ public class GlobalDataManaager {
|
|||
user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0);
|
||||
FriendLogic.getInstance().refreshState(session);
|
||||
int sendDays = user.getPlayerInfoManager().getSendDays();
|
||||
int differentDays = TimeUtils.differentDaysByHour( user.getPlayerInfoManager().getLoginTime(),System.currentTimeMillis(), 5);
|
||||
int days = sendDays + differentDays;
|
||||
PlayerLogic.getInstance().sendTestWelfareMail(user,sendDays+1,sendDays+differentDays);
|
||||
user.getPlayerInfoManager().setSendDays(days);
|
||||
|
||||
PlayerLogic.getInstance().sendTimingMail(user);
|
||||
// int sendDays = user.getPlayerInfoManager().getSendDays();
|
||||
// int differentDays = TimeUtils.differentDaysByHour( user.getPlayerInfoManager().getLoginTime(),System.currentTimeMillis(), 5);
|
||||
// int days = sendDays + differentDays;
|
||||
// PlayerLogic.getInstance().sendTestWelfareMail(user,sendDays+1,sendDays+differentDays);
|
||||
// user.getPlayerInfoManager().setSendDays(days);
|
||||
// MapLogic.getInstance().towerAutoReset(session,fBuilder);
|
||||
if(fBuilder!=null){
|
||||
fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build());
|
||||
|
|
|
@ -88,6 +88,8 @@ public class PlayerManager extends MongoBase {
|
|||
|
||||
private PhoneBindInfo phoneBindInfo;
|
||||
|
||||
private Set<Integer> sysMailIds = new CopyOnWriteArraySet<>();
|
||||
|
||||
public PlayerManager(){
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
@ -501,4 +503,16 @@ public class PlayerManager extends MongoBase {
|
|||
public int getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
|
||||
public Set<Integer> getSysMailIds() {
|
||||
return sysMailIds;
|
||||
}
|
||||
|
||||
public void setSysMailIds(Set<Integer> sysMailIds) {
|
||||
updateString("sysMailIds", sysMailIds);
|
||||
this.sysMailIds = sysMailIds;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -498,17 +498,44 @@ public class PlayerLogic {
|
|||
}
|
||||
|
||||
|
||||
public void sendTestWelfareMail(User user,int sendDay,int duration) throws Exception {
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("welfare_activity_daily_title");
|
||||
for(;sendDay<=duration;sendDay++){
|
||||
STestWelfare sTestWelfare = STestWelfare.testWelfareMap.get(sendDay);
|
||||
if(sTestWelfare == null){
|
||||
return;
|
||||
public void sendTimingMail(User user) throws Exception {
|
||||
|
||||
long now = System.currentTimeMillis();
|
||||
Map<Integer, STestWelfare> sTestWelfareMap = STestWelfare.getsTestWelfareMap();
|
||||
|
||||
for (STestWelfare sTestWelfare : sTestWelfareMap.values()) {
|
||||
Set<Integer> timingMailIds = user.getPlayerInfoManager().getSysMailIds();
|
||||
if (timingMailIds.contains(sTestWelfare.getId()))
|
||||
continue;
|
||||
long startTime = sTestWelfare.getTimeLong(0, 1);
|
||||
long endTime = sTestWelfare.getTimeLong(0, 2);
|
||||
if (now < startTime) {
|
||||
continue;
|
||||
}
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("welfare_activity_daily_txt",new String[]{Integer.toString(sendDay)});
|
||||
if (endTime != 0 && now > endTime) {
|
||||
continue;
|
||||
}
|
||||
String title = sTestWelfare.gettitle();
|
||||
String content = sTestWelfare.getvalue();
|
||||
String mailReward = ItemUtil.getMailReward(user, sTestWelfare.getReward(), 1.0f);
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int)(System.currentTimeMillis()/1000),Global.MAIL_EFFECTIVE_TIME);
|
||||
MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, (int) (System.currentTimeMillis() / 1000), Global.MAIL_EFFECTIVE_TIME);
|
||||
|
||||
timingMailIds.add(sTestWelfare.getId());
|
||||
user.getPlayerInfoManager().setSysMailIds(timingMailIds);
|
||||
}
|
||||
}
|
||||
|
||||
public void sendTestWelfareMail(User user,int sendDay,int duration) throws Exception {
|
||||
// String title = SErrorCodeEerverConfig.getI18NMessage("welfare_activity_daily_title");
|
||||
// for(;sendDay<=duration;sendDay++){
|
||||
// STestWelfare sTestWelfare = STestWelfare.testWelfareMap.get(sendDay);
|
||||
// if(sTestWelfare == null){
|
||||
// return;
|
||||
// }
|
||||
// String content = SErrorCodeEerverConfig.getI18NMessage("welfare_activity_daily_txt",new String[]{Integer.toString(sendDay)});
|
||||
// String mailReward = ItemUtil.getMailReward(user, sTestWelfare.getReward(), 1.0f);
|
||||
// MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int)(System.currentTimeMillis()/1000),Global.MAIL_EFFECTIVE_TIME);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue