From 7ed4aac0fa53652624f4c78bf0625423b6111bd4 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期一, 21 八月 2023 17:12:30 +0800 Subject: [PATCH] 2023年08月21日17:12:26 --- app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java | 187 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 143 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java index 63c9ae5..136372c 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java @@ -1,13 +1,34 @@ package com.hdl.photovoltaic.other; +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import com.hdl.linkpm.sdk.core.exception.HDLException; +import com.hdl.linkpm.sdk.user.HDLLinkPMUser; +import com.hdl.linkpm.sdk.user.bean.HDLLoginBean; +import com.hdl.linkpm.sdk.user.bean.HDLUserRegionBean; +import com.hdl.linkpm.sdk.user.callback.ILoginCallBack; +import com.hdl.linkpm.sdk.user.callback.IRegionByAccountCallBack; +import com.hdl.photovoltaic.config.UserConfigManage; +import com.hdl.photovoltaic.internet.HttpClient; +import com.hdl.photovoltaic.internet.api.HttpApi; +import com.hdl.photovoltaic.listener.CloudCallBeak; + +import java.util.regex.Matcher; +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) { @@ -22,55 +43,133 @@ /** - * 鍒濆鍖栬处鍙风殑Url鍖哄煙鍦板潃(鍙兘鐘舵�佺爜:Sucess NotAccount NotNetWork) + * 鍒濆鍖栬处鍙风殑Url鍖哄煙鍦板潃 * - * @param i_account - * @return + * @param i_account 璐﹀彿 */ - private void InitAccoutRegionInfo(String i_account) { -// String regionUrl = this.GetAccoutRegionInfo(i_account); -// -// -// if (regionUrl == null) { -// return AccountStatu.NotNetWork; -// } -// if (regionUrl == string.Empty) { -// return AccountStatu.NotAccount; -// } -// -// return AccountStatu.Sucess; + public void regionByAccount(String i_account, CloudCallBeak<HDLUserRegionBean> cloudCallBeak) { + HDLLinkPMUser.getInstance().regionByAccount(i_account, new IRegionByAccountCallBack() { + @Override + public void onSuccess(HDLUserRegionBean regionBean) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(regionBean); + } + } + + @Override + public void onFailure(HDLException error) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(error); + } + } + }); } /** - * 鑾峰彇璐﹀彿鎵�鍦ㄥ尯鍩� + * 鐧诲綍(B绔处鍙�) + * 閫氳繃璐﹀彿鍜屽瘑鐮� * - * @param account - * @param callBack - * @return https://nearest.hdlcontrol.com/smart-footstone/region/regionByUserAccount + * @param account 鎵嬫満鎴栬�呴偖绠� + * @param loginPwd 瀵嗙爜 + * @param callBack - */ -// public Disposable regionByAccount(String account, IRegionByAccountCallBack callBack) { -// String requestUrl = HDLLinkPMSdk.getInitUrl() + HttpApi.POST_RegionByUserAccount; -// return HxHttp.builder() -// .url(requestUrl) -// .params("account", account) -// .build() -// .post() -// .subscribeWith(new HDLResponse<HDLUserRegionBean>() { -// @Override -// public void onResponse(HDLUserRegionBean response) { -// if (callBack != null) { -// callBack.onSuccess(response); -// } -// } -// -// @Override -// public void onFailure(HDLException e) { -// HDLExceptionSubmitUtils.submit(requestUrl, account, e); -// if (callBack != null) { -// callBack.onFailure(e); -// } -// } -// }); + public void loginByPassword(String account, String loginPwd, ILoginCallBack callBack) { + 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"); + HDLLinkPMUser.getInstance().loginByPassword(account, loginPwd, new ILoginCallBack() { + @Override + public void onSuccess(HDLLoginBean loginBean) { -// } + if (callBack != null) { + saveUserData(loginBean); + callBack.onSuccess(loginBean); + } + } + + @Override + public void onFailure(HDLException error) { + if (callBack != null) { + callBack.onFailure(error); + } + } + }); + + } + + /** + * 鍒锋柊Token(B绔处鍙�) + * + * @param account 鎵嬫満鎴栬�呴偖绠� + * @param loginPwd 瀵嗙爜 + * @param cloudCallBeak - + */ + public void refreshToken(String account, String loginPwd, CloudCallBeak<HDLLoginBean> 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(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + Gson gson = new Gson(); + HDLLoginBean loginBean = gson.fromJson(jsonStr, HDLLoginBean.class); +// saveUserData(loginBean); + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(loginBean); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + } + + + /** + * 閫�鍑虹櫥褰曟椂璋冪敤锛屾竻闄ゆ帹閫佹暟鎹� + */ + 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 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); + } + + /** + * 鐧诲綍鎴愬姛淇濆瓨鐧诲綍淇℃伅 + */ + private void saveUserData(HDLLoginBean 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);//涓庝笂涓�涓处鍙锋槸鍚﹀悓涓�涓� + } + + } + + } -- Gitblit v1.8.0