e2cdd2ec2f3bfdb8d9a2d63abd19a68d7c4dbb5b.svn-base 4.8 KB
/**
 * @author 郎咸智
 * 下午2:13:20
 */
package com.ivt.android.me.model.main;

import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

import com.ivt.android.me.api.UserApiBean;
import com.ivt.android.me.bean.BaseBean;
import com.ivt.android.me.bean.UserBean;
import com.ivt.android.me.bean.UserEntity;
import com.ivt.android.me.constant.BaseInfo;
import com.ivt.android.me.utils.httputil.HttpUtils;
import com.ivt.android.me.utils.httputil.HttpUtils.HttpCallback;
import com.ivt.android.me.utils.httputil.JsonUtils;
import com.ivt.android.me.utils.publics.DateUtils;
import com.ivt.android.me.utils.publics.LocationUserUtil;
import com.ivt.android.me.utils.xmpp.XmppConnectionTool;

public class TestPhoneModel implements ITestPhone {

	private Context context;
	/** 获取验证码成功 */
	private final int GETCODESUCCESS = 1000;
	/** 获取验证码失败 */
	private final int GETCODEFail = -1;
	/** 手机号登陆成功 */
	private final int PHONELOGINSUCCESS = 1001;
	/** 手机号登陆失败 */
	private final int PHONELOGINFAIL = -2;
	/** 登录中 */
	private final int LOGINING = 1002;
	/** 判定手机号 */
	private final int BANGPHONENUM = 1003;

	/** 登录XMPP成功 */
	private final int LOGINXMPPSUCCESS = 1008;
	/** 登录XMPP失败 */
	private final int LOGINXMPPFAIL = 1009;
	private Message msg;
	private Handler h;

	public TestPhoneModel(Context context, Handler h) {
		// TODO Auto-generated constructor stub
		this.context = context;
		this.h = h;
	}

	public void LoginXmpp(String userId, final String Captcha,
			final UserEntity user) {
		new Thread() {
			public void run() {
				if (user.getCaptcha().length() <= 0) {
					user.setCaptcha(Captcha);
				}
				Boolean b = XmppConnectionTool.getInstance().intent(user);
				if (b) {
					h.sendEmptyMessage(LOGINXMPPSUCCESS);
				} else {
					h.sendEmptyMessage(LOGINXMPPFAIL);
				}
			};
		}.start();
	}

	@Override
	public void GetCode(String phone, String value, String thirdPartyAccount) {
		// TODO Auto-generated method stub
		// 请求的方式
		String requestUrl = UserApiBean.sendsms(phone, value,
				thirdPartyAccount, "", "", "", "");

		HttpUtils.get(requestUrl, new HttpCallback() {
			@Override
			public void onSuccess(String data) {
				// TODO Auto-generated method stub
				BaseBean user = JsonUtils.deserialize(data, BaseBean.class);
				int code = user.getCode();
				String description = user.getDescription();
				if (code == 0) {
					h.sendEmptyMessage(GETCODESUCCESS);
				} else {
					h.sendEmptyMessage(GETCODEFail);
				}
			}

			@Override
			public void onError(String msg) {
				// TODO Auto-generated method stub
				super.onError(msg);
				h.sendEmptyMessage(GETCODEFail);
			}
		});
	}

	@Override
	public void PangThird(String Value, String thirdPartyAccount,
			final String phone, final String code) {
		// TODO Auto-generated method stub
		// 请求的路径
		String requestUrl = UserApiBean.boundingThirdPartAccount(phone, code,
				Value, thirdPartyAccount);

		HttpUtils.get(requestUrl, new HttpCallback() {

			@Override
			public void onStart() {
				// TODO Auto-generated method stub
				super.onStart();
				h.sendEmptyMessage(LOGINING);
			}

			@Override
			public void onSuccess(String data) {
				// TODO Auto-generated method stub
				BaseBean bean = JsonUtils.deserialize(data, BaseBean.class);
				String description = bean.getDescription();
				Login(phone, code);
			}

			@Override
			public void onError(String msg) {
				// TODO Auto-generated method stub
				super.onError(msg);
				h.sendEmptyMessage(PHONELOGINFAIL);
			}
		});
	}

	@Override
	public void Login(final String phone, final String Captcha) {
		// TODO Auto-generated method stub
		String requestUrl = UserApiBean.Login(phone, Captcha);
		HttpUtils httpUtils = new HttpUtils();
		HttpUtils.get(requestUrl, new HttpCallback() {
			@Override
			public void onSuccess(String data) {
				// TODO Auto-generated method stub
				UserBean bean = JsonUtils.deserialize(data, UserBean.class);
				int code = bean.getCode();
				if (code == 0) {
					UserEntity user = bean.getData();
					user.setCaptcha(Captcha);
					user.setMsisdn(phone);
					BaseInfo.timeDiff = user.getServertime()
							- DateUtils.getCurrentTime();
					SaveInfo(user);
					Bundle b = new Bundle();
					b.putSerializable("user", user);
					msg = new Message();
					msg.what = PHONELOGINSUCCESS;
					msg.obj = b;
					h.sendMessage(msg);
				} else {
					h.sendEmptyMessage(PHONELOGINFAIL);
				}
			}

			@Override
			public void onError(String msg) {
				// TODO Auto-generated method stub
				super.onError(msg);
				h.sendEmptyMessage(PHONELOGINFAIL);
			}
		});

	}

	private void SaveInfo(UserEntity user) {
		BaseInfo.Captcha = user.getCaptcha();
		BaseInfo.UserId = user.getId() + "";
		BaseInfo.base_user = user;
		LocationUserUtil.SaveUser(user);
	}

}