From ebf1b9c813030a366bdc8967d2788eba3f3d9b5a Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 21 八月 2023 13:18:58 +0800
Subject: [PATCH] 2023年08月21日13:18:56
---
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