package com.znv.linkup.rest;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.os.Handler;
import android.os.Message;
import com.znv.linkup.MyApplication;
import com.znv.linkup.ViewSettings;
import com.znv.linkup.util.RestUtil;
import com.znv.linkup.util.StringUtil;
/**
* 第三方平台用户关卡分数或时间管理
*
* @author yzb
*
*/
public class UserScore {
private static String USER_ADD_URI = ViewSettings.WebRoot + "/webapi/user/add";
private static String USER_UPDATE_URI = ViewSettings.WebRoot + "/webapi/user/update";
private static String USER_LIKE_URI = ViewSettings.LikeWebRoot + "/webapi/user/like";
public static String USER_TOTALRANK_URI = ViewSettings.WebRoot + "/webapi/user/totalrank";
public static String LEVEL_ADD_URI = ViewSettings.WebRoot + "/webapi/level/add";
public static String LEVEL_GET_URI = ViewSettings.WebRoot + "/webapi/level/get";
public static String LEVEL_ADDGET_URI = ViewSettings.WebRoot + "/webapi/level/addget";
/**
* 记录用户登录
*
* @param userInfo
* 用户登录信息
* @param handler
* 消息处理
*/
public static void login(final UserInfo userInfo, final Handler handler) {
final List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("userid", userInfo.getUserId()));
params.add(new BasicNameValuePair("username", userInfo.getUserName()));
params.add(new BasicNameValuePair("usergender", userInfo.getUserGender()));
params.add(new BasicNameValuePair("usericon", userInfo.getUserIcon()));
if (!StringUtil.isNullOrEmpty(MyApplication.Push_Reg_ID)) {
params.add(new BasicNameValuePair("regid", MyApplication.Push_Reg_ID));
}
new Thread(new Runnable() {
@Override
public void run() {
String result = RestUtil.post(USER_ADD_URI, params);
if (result != null) {
Message msg = new Message();
msg.what = ViewSettings.MSG_LOGIN;
msg.obj = result;
handler.sendMessage(msg);
} else {
// 网络或其它问题
handler.sendEmptyMessage(ViewSettings.MSG_NETWORK_EXCEPTION);
}
}
}).start();
}
/**
* 更新用户的钻石和金币
*
* @param userId
* 用户ID
* @param diamond
* 改变的钻石数
* @param gold
* 改变的金币数
* @param handler
* 消息处理
*/
public static void updateAward(final String userId, int diamond, int gold, final Handler handler) {
final List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("userid", userId));
params.add(new BasicNameValuePair("diamond", String.valueOf(diamond)));
params.add(new BasicNameValuePair("gold", String.valueOf(gold)));
new Thread(new Runnable() {
@Override
public void run() {
String result = RestUtil.post(USER_UPDATE_URI, params);
if (result != null) {
Message msg = new Message();
msg.what = ViewSettings.MSG_UPDATE_GOLD;
msg.obj = result;
handler.sendMessage(msg);
} else {
// 网络或其它问题
handler.sendEmptyMessage(ViewSettings.MSG_NETWORK_EXCEPTION);
}
}
}).start();
}
/**
* 点赞用户
*
* @param tag
* 用户ID;用户名
* @param likeNum
* 1:赞;-1:取消赞
* @param handler
*/
public static void updateLike(final String tag, final int likeNum, final Handler handler) {
final List<NameValuePair> params = new ArrayList<NameValuePair>();
String userId = tag.substring(0, tag.indexOf(";"));
params.add(new BasicNameValuePair("userid", userId));
params.add(new BasicNameValuePair("like", String.valueOf(likeNum)));
new Thread(new Runnable() {
@Override
public void run() {
String result = RestUtil.post(USER_LIKE_URI, params);
if (result != null) {
Message msg = new Message();
msg.what = ViewSettings.MSG_UPDATE_LIKE;
msg.obj = String.valueOf(likeNum) + ";" + tag;
handler.sendMessage(msg);
} else {
// 网络或其它问题
handler.sendEmptyMessage(ViewSettings.MSG_NETWORK_EXCEPTION);
}
}
}).start();
}
/**
* 新增用户关卡分数,用于排名
*
* @param levelInfo
* 上传的分数信息
* @param handler
* 消息处理
*/
public static void addGetResult(LevelInfo levelInfo, final Handler handler) {
final List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("userid", levelInfo.getUserId()));
params.add(new BasicNameValuePair("level", String.valueOf(levelInfo.getLevel())));
params.add(new BasicNameValuePair("score", String.valueOf(levelInfo.getScore())));
params.add(new BasicNameValuePair("time", String.valueOf(levelInfo.getTime())));
params.add(new BasicNameValuePair("diamond", String.valueOf(levelInfo.getDiamond())));
params.add(new BasicNameValuePair("gold", String.valueOf(levelInfo.getGold())));
new Thread(new Runnable() {
@Override
public void run() {
String result = RestUtil.post(LEVEL_ADDGET_URI, params);
if (result != null) {
// 成功获取排名信息
Message msg = new Message();
msg.what = ViewSettings.MSG_LEVEL_ADDGET;
msg.obj = result;
handler.sendMessage(msg);
} else {
// 网络或其它问题
handler.sendEmptyMessage(ViewSettings.MSG_NETWORK_EXCEPTION);
}
}
}).start();
}
/**
* 按关卡获取排名信息
*
* @param level
* 关卡id
* @param handler
* 消息处理
*/
public static void getLevelTops(int level, final Handler handler) {
getLevelTops(level, ViewSettings.TopN, handler);
}
/**
* 按关卡获取排名信息
*
* @param level
* 关卡id
* @param handler
* 消息处理
*/
public static void getLevelTops(int level, int topN, final Handler handler) {
final String uri = LEVEL_GET_URI + "?level=" + String.valueOf(level) + "&top=" + String.valueOf(topN);
new Thread(new Runnable() {
@Override
public void run() {
String result = RestUtil.get(uri);
if (result != null) {
// 成功获取排名信息
Message msg = new Message();
msg.what = ViewSettings.MSG_LEVEL_GET;
msg.obj = result;
handler.sendMessage(msg);
} else {
// 网络或其它问题
handler.sendEmptyMessage(ViewSettings.MSG_NETWORK_EXCEPTION);
}
}
}).start();
}
// /**
// * 获取用户icon
// *
// * @param url
// * url地址
// * @param handler
// * 消息处理
// */
// public static void getUserImage(final String url, final Handler handler) {
// new Thread(new Runnable() {
//
// @Override
// public void run() {
// String newUrl = url;
// // 获取清晰的QQ图像
// // if(newUrl.endsWith("/30")){
// // newUrl = newUrl.substring(0, newUrl.length() - 3) + "/100";
// // }
// Bitmap bm = IconCacheUtil.getIcon(newUrl);
// if (bm == null) {
// try {
// bm = BitmapFactory.decodeStream((new URL(newUrl)).openStream());
// } catch (Exception e) {
// e.printStackTrace();
// bm = null;
// }
// }
// if (bm != null) {
// IconCacheUtil.putIcon(newUrl, bm);
// // 成功获取排名信息
// Message msg = new Message();
// msg.what = ViewSettings.MSG_IMAGE_GET;
// msg.obj = bm;
// handler.sendMessage(msg);
// } else {
// // 网络或其它问题
// handler.sendEmptyMessage(ViewSettings.MSG_NETWORK_EXCEPTION);
// }
// }
// }).start();
// }
}