package com.hdl.photovoltaic.other; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.photovoltaic.bean.LoginBean; import com.hdl.photovoltaic.bean.LoginUserRegionBean; import com.hdl.photovoltaic.bean.ResponsePack; import com.hdl.photovoltaic.config.ConfigManagement; import com.hdl.photovoltaic.internet.HttpClient; import com.hdl.photovoltaic.internet.api.HttpApi; import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak; import com.hdl.photovoltaic.listener.CloudCallBeak; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 登陆界面的逻辑 */ public class HdlAccountLogic { private static volatile HdlAccountLogic sHdlAccountLogic; public static synchronized HdlAccountLogic getInstance() { if (sHdlAccountLogic == null) { synchronized (HdlAccountLogic.class) { if (sHdlAccountLogic == null) { sHdlAccountLogic = new HdlAccountLogic(); } } } return sHdlAccountLogic; } /** * 初始化账号的Url区域地址(可能状态码:Success NotAccount NotNetWork) * * @param i_account 账号 */ public void regionByAccount(String i_account, CloudCallBeak cloudCallBeak) { JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("account", i_account); String full = ConfigManagement.getAPPRegionUrl() + HttpApi.POST_RegionByUserAccount; HttpClient.getInstance().requestFullHttp(full, jsonObject.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(ResponsePack responsePack) { if (responsePack.getData() != null) { Gson gson = new Gson(); String json = gson.toJson(responsePack.getData()); LoginUserRegionBean loginUserRegionBean = new Gson().fromJson(json, LoginUserRegionBean.class); if (cloudCallBeak != null) { cloudCallBeak.onSuccess(loginUserRegionBean); } else { cloudCallBeak.onFailure(new Exception()); } } } @Override public void onFailure(Exception exception) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(exception); } } }); } /** * 登录 * 通过账号和密码 * * @param account 手机或者邮箱 * @param loginPwd 密码 * @param cloudCallBeak - */ public void loginByPassword(String account, String loginPwd, CloudCallBeak cloudCallBeak) { String requestUrl = HttpApi.POST_Login; JsonObject json = new JsonObject(); json.addProperty("account", account); json.addProperty("loginPwd", loginPwd); // json.addProperty("platform", "APP"); json.addProperty("grantType", "password"); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(ResponsePack responsePack) { if (responsePack.getData() != null) { Gson gson = new Gson(); String json = gson.toJson(responsePack.getData()); LoginBean loginBean = new Gson().fromJson(json, LoginBean.class); if (cloudCallBeak != null) { cloudCallBeak.onSuccess(loginBean); } else { cloudCallBeak.onFailure(new Exception()); } } } @Override public void onFailure(Exception exception) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(exception); } } }); } public boolean isPhone(String phone) { Pattern p = Pattern.compile("^((13[0-9])|(14[0|5|6|7|9])|(15[0-3])|(15[5-9])|(16[6|7])|(17[2|3|5|6|7|8])|(18[0-9])|(19[1|8|9]))\\d{8}$"); Matcher m = p.matcher(phone); return m.matches(); } public boolean isMailbox(String mailbox) { String regex = "^(\\w+([-.][A-Za-z0-9]+)*){3,18}@\\w+([-.][A-Za-z0-9]+)*\\.\\w+([-.][A-Za-z0-9]+)*$"; return mailbox.matches(regex); } }