| | |
| | | |
| | | 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.ui.bean.LoginUserBean; |
| | | import com.hdl.photovoltaic.ui.bean.LoginUserRegionBean; |
| | | import com.hdl.photovoltaic.bean.HttpResponsePack; |
| | | import com.hdl.photovoltaic.config.AppConfigManage; |
| | | import com.hdl.photovoltaic.config.UserConfigManage; |
| | | import com.hdl.photovoltaic.internet.HttpClient; |
| | | import com.hdl.photovoltaic.internet.api.HttpApi; |
| | | import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak; |
| | |
| | | import java.util.regex.Pattern; |
| | | |
| | | /** |
| | | * 登陆界面的逻辑 |
| | | * 登录界面的逻辑 |
| | | */ |
| | | public class HdlAccountLogic { |
| | | |
| | | private static volatile HdlAccountLogic sHdlAccountLogic; |
| | | |
| | | /** |
| | | * 获取当前对象 |
| | | * |
| | | * @return HdlAccountLogic |
| | | */ |
| | | public static synchronized HdlAccountLogic getInstance() { |
| | | if (sHdlAccountLogic == null) { |
| | | synchronized (HdlAccountLogic.class) { |
| | |
| | | |
| | | |
| | | /** |
| | | * 初始化账号的Url区域地址(可能状态码:Success NotAccount NotNetWork) |
| | | * 初始化账号的Url区域地址 |
| | | * |
| | | * @param i_account 账号 |
| | | */ |
| | | public void regionByAccount(String i_account, CloudCallBeak<LoginUserRegionBean> cloudCallBeak) { |
| | | JsonObject jsonObject = new JsonObject(); |
| | | jsonObject.addProperty("account", i_account); |
| | | String full = ConfigManagement.getAPPRegionUrl() + HttpApi.POST_RegionByUserAccount; |
| | | String full = AppConfigManage.getAPPRegionUrl() + HttpApi.POST_RegionByUserAccount; |
| | | HttpClient.getInstance().requestFullHttp(full, jsonObject.toString(), true, true, new BaseSuccessFailureCallBeak() { |
| | | @Override |
| | | public void onSuccess(ResponsePack responsePack) { |
| | | if (responsePack.getData() != null) { |
| | | public void onSuccess(HttpResponsePack httpResponsePack) { |
| | | if (httpResponsePack != null && httpResponsePack.getData() != null) { |
| | | Gson gson = new Gson(); |
| | | String json = gson.toJson(responsePack.getData()); |
| | | String json = gson.toJson(httpResponsePack.getData()); |
| | | LoginUserRegionBean loginUserRegionBean = new Gson().fromJson(json, LoginUserRegionBean.class); |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(loginUserRegionBean); |
| | | } else { |
| | | cloudCallBeak.onFailure(new Exception()); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 登录 |
| | | * 登录(B端账号) |
| | | * 通过账号和密码 |
| | | * |
| | | * @param account 手机或者邮箱 |
| | | * @param loginPwd 密码 |
| | | * @param cloudCallBeak - |
| | | */ |
| | | public void loginByPassword(String account, String loginPwd, CloudCallBeak<LoginBean> cloudCallBeak) { |
| | | public void loginByPassword(String account, String loginPwd, CloudCallBeak<LoginUserBean> cloudCallBeak) { |
| | | String requestUrl = HttpApi.POST_Login; |
| | | JsonObject json = new JsonObject(); |
| | | json.addProperty("account", account); |
| | |
| | | |
| | | HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { |
| | | @Override |
| | | public void onSuccess(ResponsePack responsePack) { |
| | | if (responsePack.getData() != null) { |
| | | public void onSuccess(HttpResponsePack httpResponsePack) { |
| | | if (httpResponsePack != null && httpResponsePack.getData() != null) { |
| | | Gson gson = new Gson(); |
| | | String json = gson.toJson(responsePack.getData()); |
| | | LoginBean loginBean = new Gson().fromJson(json, LoginBean.class); |
| | | String json = gson.toJson(httpResponsePack.getData()); |
| | | LoginUserBean loginUserBean = new Gson().fromJson(json, LoginUserBean.class); |
| | | saveUserData(loginUserBean); |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(loginBean); |
| | | } else { |
| | | cloudCallBeak.onFailure(new Exception()); |
| | | cloudCallBeak.onSuccess(loginUserBean); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(Exception exception) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onFailure(exception); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 刷新Token(B端账号) |
| | | * |
| | | * @param account 手机或者邮箱 |
| | | * @param loginPwd 密码 |
| | | * @param cloudCallBeak - |
| | | */ |
| | | public void refreshToken(String account, String loginPwd, CloudCallBeak<LoginUserBean> cloudCallBeak) { |
| | | String requestUrl = HttpApi.POST_Login; |
| | | JsonObject json = new JsonObject(); |
| | | json.addProperty("grantType", "refresh_token"); |
| | | // json.addProperty("refreshToken", UserConfigManage.getInstance().getRefreshToken()); |
| | | |
| | | HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { |
| | | @Override |
| | | public void onSuccess(HttpResponsePack httpResponsePack) { |
| | | if (httpResponsePack != null && httpResponsePack.getData() != null) { |
| | | Gson gson = new Gson(); |
| | | String json = gson.toJson(httpResponsePack.getData()); |
| | | LoginUserBean loginUserBean = new Gson().fromJson(json, LoginUserBean.class); |
| | | saveUserData(loginUserBean); |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(loginUserBean); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 退出登录时调用,清除推送数据 |
| | | */ |
| | | public void SignOutClearData() { |
| | | String requestUrl = HttpApi.POST_GET_IMAGE_LOGOUT; |
| | | //通知云端,已经退出登陆 |
| | | } |
| | | |
| | | 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 mailbox.matches(regex); |
| | | } |
| | | |
| | | /** |
| | | * 登录成功保存登录信息 |
| | | */ |
| | | private void saveUserData(LoginUserBean obj) { |
| | | if (obj != null) { |
| | | UserConfigManage.getInstance().setLogin(true);//是否登录 |
| | | UserConfigManage.getInstance().setAcceiptPolicy(true);//是否选择隐私政策 |
| | | UserConfigManage.getInstance().setLoginDateTime(System.currentTimeMillis());//登录时间 |
| | | UserConfigManage.getInstance().setUserId(obj.getUserId());//用户id |
| | | UserConfigManage.getInstance().setAccount(obj.getAccount());//账号 |
| | | UserConfigManage.getInstance().setToken(obj.getAccessToken());//Token |
| | | UserConfigManage.getInstance().setHeaderPrefix(obj.getHeaderPrefix());//认证请求头前缀(底层请求统一加) |
| | | UserConfigManage.getInstance().setRefreshToken(obj.getRefreshToken());//刷新Token用的刷新Token用的 |
| | | boolean isUserId = UserConfigManage.getInstance().getUserId().equals(obj.getUserId()); |
| | | UserConfigManage.getInstance().setTheSameLoginAccount(isUserId);//与上一个账号是否同一个 |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |