青龙秘宝增加登录任务处理
parent
8ba46fbfc3
commit
71aea7d873
|
|
@ -77,13 +77,17 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
User user = UserManager.getUser(userId);
|
||||
QuestionLogic.getInstence().onLogin(user);
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
//登录任务新增上次登录时间参数,用于部分任务记录累计登录天数用,每日登录只记录1次
|
||||
long lastLoginTime = playerInfoManager.getLoginTime();
|
||||
ActivityLogic.getInstance().flushForLogin(user,iSession);
|
||||
GlobalDataManaager.checkNeedReFlush(iSession,user,null);
|
||||
boolean flag = GlobalDataManaager.checkNeedReFlush(iSession,user,null);
|
||||
GmSingleActivityLogic.getInstance().updateGmSingle(user);
|
||||
BuyGoodsNewLogic.refreshWelfareState(user);
|
||||
// 罗浮争锋,领取称号奖励
|
||||
LuofuLogic.getInstance().takeTitleReward(user);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME,MissionType.LOGIN_TIMES,0);
|
||||
if(!flag){
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME,MissionType.LOGIN_TIMES,0,lastLoginTime);
|
||||
}
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.EVERY_DAY_UPDATE,MissionType.LOGIN_TIMES,0);
|
||||
long now = TimeUtils.now();
|
||||
playerInfoManager.setLoginTime(now);
|
||||
|
|
|
|||
|
|
@ -415,8 +415,9 @@ public class GlobalDataManaager implements IManager {
|
|||
getFunctionOfTimeResponse=builder.build();
|
||||
}
|
||||
|
||||
public static void checkNeedReFlush(ISession session,User user,PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception {
|
||||
public static boolean checkNeedReFlush(ISession session,User user,PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception {
|
||||
// 需要隔天刷新的字段统一在这里处理
|
||||
boolean flag = false;
|
||||
if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())) {
|
||||
//活动刷新
|
||||
ActivityLogic.getInstance().flushEveryDay(user,fBuilder);
|
||||
|
|
@ -502,8 +503,12 @@ public class GlobalDataManaager implements IManager {
|
|||
user.getPlayerInfoManager().getNewRechargeInfo().ClearDayPushMap();
|
||||
// 清空当天在线时间
|
||||
user.getPlayerInfoManager().setDayOfOnlineTime(0);
|
||||
//刷新登录任务
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME,MissionType.LOGIN_TIMES,0,user.getPlayerInfoManager().getLoginTime());
|
||||
flag = true;
|
||||
}
|
||||
user.getPlayerInfoManager().setLoginTime(TimeUtils.now());
|
||||
return flag;
|
||||
}
|
||||
|
||||
public static void flushGoodsTimes(User user){
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ public class UserMissionManager extends MongoBase {
|
|||
private CumulationData treasureCumulationData = new CumulationData();
|
||||
private CumulationData treasureWeekCumulationData = new CumulationData();
|
||||
private CumulationData treasureMonthCumulationData = new CumulationData();
|
||||
private CumulationData treasureLifeCumulationData = new CumulationData();//青龙秘宝终身任务数据
|
||||
private CumulationData sevenHappyCumulationData = new CumulationData();
|
||||
private CumulationData achievementMap = new CumulationData();
|
||||
private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据
|
||||
|
|
@ -210,6 +211,7 @@ public class UserMissionManager extends MongoBase {
|
|||
if(sTreasureTaskConfigs!=null){
|
||||
CumulationData.Result weekResult = treasureWeekCumulationData.updateData(missionType, parm);
|
||||
CumulationData.Result monthResult = treasureMonthCumulationData.updateData(missionType, parm);
|
||||
CumulationData.Result lifeResult = treasureLifeCumulationData.updateData(missionType, parm);
|
||||
if(weekResult!=null){
|
||||
weekResult.setMissionTimeType(2);
|
||||
treasureMissionIdsType.calCumulationDataResult(user,weekResult,missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION),treasureWeekCumulationData);
|
||||
|
|
@ -222,6 +224,12 @@ public class UserMissionManager extends MongoBase {
|
|||
updateString("treasureMonthCumulationData",treasureMonthCumulationData);
|
||||
updateString("treasureMissionIdsType",treasureMissionIdsType);
|
||||
}
|
||||
if(lifeResult!=null){
|
||||
lifeResult.setMissionTimeType(4);
|
||||
treasureMissionIdsType.calCumulationDataResult(user,lifeResult,missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION),treasureLifeCumulationData);
|
||||
updateString("treasureLifeCumulationData",treasureLifeCumulationData);
|
||||
updateString("treasureMissionIdsType",treasureMissionIdsType);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -413,6 +421,11 @@ public class UserMissionManager extends MongoBase {
|
|||
updateString("treasureMonthCumulationData", treasureMonthCumulationData);
|
||||
}
|
||||
|
||||
public void setTreasureLifeCumulationData(CumulationData treasureLifeCumulationData) {
|
||||
this.treasureLifeCumulationData = treasureLifeCumulationData;
|
||||
updateString("treasureLifeCumulationData", treasureLifeCumulationData);
|
||||
}
|
||||
|
||||
public void setSevenHappyCumulationData(CumulationData sevenHappyCumulationData) {
|
||||
this.sevenHappyCumulationData = sevenHappyCumulationData;
|
||||
updateString("sevenHappyCumulationData", sevenHappyCumulationData);
|
||||
|
|
@ -493,6 +506,10 @@ public class UserMissionManager extends MongoBase {
|
|||
return treasureMonthCumulationData;
|
||||
}
|
||||
|
||||
public CumulationData getTreasureLifeCumulationData() {
|
||||
return treasureLifeCumulationData;
|
||||
}
|
||||
|
||||
public void setMissingRoomMissionType(MissingRoomMissionType missingRoomMissionType) {
|
||||
this.missingRoomMissionType = missingRoomMissionType;
|
||||
updateString("missingRoomMissionType",missingRoomMissionType);
|
||||
|
|
|
|||
|
|
@ -3,12 +3,21 @@ package com.ljsd.jieling.logic.mission.data;
|
|||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import util.TimeUtils;
|
||||
|
||||
public class LoginTimeManager extends AbstractDataManager {
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
int dayTh = (int) parm[1];
|
||||
//有上次登录时间参数,说明单日登录只记录1次,跨天才叠加
|
||||
if(parm[2]!= null){
|
||||
long lastLoginTime = (long)parm[2];
|
||||
//今天已经登录过了,不记录次数
|
||||
if(TimeUtils.isSameDay(System.currentTimeMillis(),lastLoginTime)){
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
||||
data.loginTimesDay.put(dayTh, data.loginTimesDay.getOrDefault(dayTh,0) + 1);
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,169 @@
|
|||
package com.ljsd.util;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class HttpUtils {
|
||||
|
||||
public static String doPost(String url, Map<String,String> parms) throws IOException {
|
||||
CloseableHttpClient httpclient = HttpClients.createDefault();
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
List<NameValuePair> nvps =getFromMap(parms);
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(nvps));
|
||||
CloseableHttpResponse response2 = httpclient.execute(httpPost);
|
||||
|
||||
try {
|
||||
HttpEntity entity = response2.getEntity();
|
||||
return EntityUtils.toString(entity);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
} finally {
|
||||
response2.close();
|
||||
}
|
||||
}
|
||||
|
||||
public static List<NameValuePair> getFromMap(Map<String,String> parms){
|
||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>(parms.size());
|
||||
for(Map.Entry<String,String> item : parms.entrySet()){
|
||||
nvps.add(new BasicNameValuePair(item.getKey(), item.getValue()));
|
||||
}
|
||||
return nvps;
|
||||
}
|
||||
|
||||
|
||||
public static String httpGetRequest(String httpUrl){
|
||||
HttpURLConnection connection = null;
|
||||
InputStream is = null;
|
||||
BufferedReader br = null;
|
||||
String result = null;// 返回结果字符串
|
||||
try {
|
||||
// 创建远程url连接对象
|
||||
URL url = new URL(httpUrl);
|
||||
// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
|
||||
connection = (HttpURLConnection) url.openConnection();
|
||||
// 设置连接方式:get
|
||||
connection.setRequestMethod("GET");
|
||||
// 设置连接主机服务器的超时时间:15000毫秒
|
||||
connection.setConnectTimeout(15000);
|
||||
// 设置读取远程返回的数据时间:60000毫秒
|
||||
connection.setReadTimeout(60000);
|
||||
// 发送请求
|
||||
connection.connect();
|
||||
// 通过connection连接,获取输入流
|
||||
if (connection.getResponseCode() == 200) {
|
||||
is = connection.getInputStream();
|
||||
// 封装输入流is,并指定字符集
|
||||
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||||
// 存放数据
|
||||
StringBuffer sbf = new StringBuffer();
|
||||
String temp = null;
|
||||
while ((temp = br.readLine()) != null) {
|
||||
sbf.append(temp);
|
||||
sbf.append("\r\n");
|
||||
}
|
||||
result = sbf.toString();
|
||||
}
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
// 关闭资源
|
||||
if (null != br) {
|
||||
try {
|
||||
br.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
if (null != is) {
|
||||
try {
|
||||
is.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
connection.disconnect();// 关闭远程连接
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 向指定 URL 发送POST方法的请求
|
||||
*
|
||||
* @param url
|
||||
* 发送请求的 URL
|
||||
* @param param
|
||||
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
|
||||
* @return 所代表远程资源的响应结果
|
||||
*/
|
||||
public static String sendPost(String url, JSONObject param) {
|
||||
PrintWriter out = null;
|
||||
BufferedReader in = null;
|
||||
String result = "";
|
||||
try {
|
||||
URL realUrl = new URL(url);
|
||||
// 打开和URL之间的连接
|
||||
URLConnection conn = realUrl.openConnection();
|
||||
// 设置通用的请求属性
|
||||
conn.setRequestProperty("accept", "*/*");
|
||||
conn.setRequestProperty("connection", "Keep-Alive");
|
||||
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
||||
// 发送POST请求必须设置如下两行
|
||||
conn.setDoOutput(true);
|
||||
conn.setDoInput(true);
|
||||
// 获取URLConnection对象对应的输出流
|
||||
out = new PrintWriter(conn.getOutputStream());
|
||||
// 发送请求参数
|
||||
out.print(param);
|
||||
// flush输出流的缓冲
|
||||
out.flush();
|
||||
// 定义BufferedReader输入流来读取URL的响应
|
||||
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
|
||||
String line;
|
||||
while ((line = in.readLine()) != null) {
|
||||
result += line;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("发送 POST 请求出现异常!" + e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
// 使用finally块来关闭输出流、输入流
|
||||
finally {
|
||||
try {
|
||||
if (out != null) {
|
||||
out.close();
|
||||
}
|
||||
if (in != null) {
|
||||
in.close();
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue