From 1f3acf4c29f367e40a3f589b51176ed24e28948f Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 02 九月 2025 17:54:42 +0800
Subject: [PATCH] 2025年09月02日17:54:39
---
app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 211 insertions(+), 16 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 927a8b1..2d9a54f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -5,6 +5,7 @@
import com.google.gson.Gson;
import com.google.gson.JsonObject;
+import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
import com.hdl.linkpm.sdk.user.bean.HDLLoginBean;
@@ -12,13 +13,20 @@
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.enums.LogoutType;
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.internet.api.HttpApi;
import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.ui.bean.AuthorizationAccountBean;
import com.hdl.photovoltaic.ui.bean.BUserInfo;
import com.hdl.photovoltaic.ui.bean.CUserInfo;
+import com.hdl.photovoltaic.utils.SharedPreUtils;
import java.io.File;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -54,7 +62,8 @@
* @param i_account 璐﹀彿
*/
public void regionByAccount(String i_account, CloudCallBeak<HDLUserRegionBean> cloudCallBeak) {
- HDLLinkPMUser.getInstance().regionByAccount(i_account, new IRegionByAccountCallBack() {
+ boolean isBooleanB = UserConfigManage.getInstance().isBAccount();
+ HDLLinkPMUser.getInstance().regionByAccount(isBooleanB, i_account, new IRegionByAccountCallBack() {
@Override
public void onSuccess(HDLUserRegionBean regionBean) {
if (cloudCallBeak != null) {
@@ -65,7 +74,7 @@
@Override
public void onFailure(HDLException error) {
if (cloudCallBeak != null) {
- cloudCallBeak.onFailure(error);
+ cloudCallBeak.onFailure(HttpClient.getException(error));
}
}
});
@@ -91,6 +100,7 @@
public void onSuccess(HDLLoginBean loginBean) {
if (callBack != null) {
+ loginBean.setAccount(account);
saveUserData(loginBean);
callBack.onSuccess(loginBean);
}
@@ -99,12 +109,54 @@
@Override
public void onFailure(HDLException error) {
if (callBack != null) {
- callBack.onFailure(error);
+ callBack.onFailure(HttpClient.getException(error));
}
}
});
}
+
+ /**
+ * 妫�楠岃处鍙锋潈闄�(B绔处鍙�)
+ *
+ * @param cloudCallBeak -
+ */
+ public void getCompanyParterMenu_B(CloudCallBeak<Boolean> cloudCallBeak) {
+ String requestUrl = HttpApi.B_POST_getCompanyParterMenu;
+ JsonObject json = new JsonObject();
+ json.addProperty("sysCode", "xenterra-app");
+ HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String json) {
+ if (cloudCallBeak != null) {
+ if (TextUtils.isEmpty(json)) {
+ cloudCallBeak.onSuccess(false);
+ } else {
+ Gson gson = new Gson();
+ Type type = new TypeToken<List<AuthorizationAccountBean>>() {
+ }.getType();
+ List<AuthorizationAccountBean> authorizationAccounts = gson.fromJson(json, type);
+ if (authorizationAccounts != null && !authorizationAccounts.isEmpty()) {
+ cloudCallBeak.onSuccess(true);
+ } else {
+ cloudCallBeak.onSuccess(false);
+ }
+ }
+
+ }
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onFailure(e);
+ }
+ }
+ });
+
+
+ }
+
/**
* 淇敼瀵嗙爜(B绔处鍙�)
@@ -115,11 +167,13 @@
* @param verifyCode 楠岃瘉鐮�
* @param cloudCallBeak -
*/
- public void changePassword_B(boolean isPhone, String account, String loginPwd, String verifyCode, CloudCallBeak<Boolean> cloudCallBeak) {
+ public void changePassword_B(boolean isPhone, String account, String loginPwd, String verifyCode, String phonePrefix, CloudCallBeak<Boolean> cloudCallBeak) {
String requestUrl = HttpApi.B_POST_FORGET_PROGRAM_PWD;
JsonObject json = new JsonObject();
if (isPhone) {
+
json.addProperty("userPhone", account);//鐢ㄦ埛鎵嬫満鍙� 鎵嬫満鍙峰拰閭蹇呭~鍏朵竴
+ json.addProperty("phonePrefix", phonePrefix.replace("+", ""));//鎵嬫満鍙峰墠缂�
} else {
json.addProperty("userEmail", account);
}
@@ -220,6 +274,7 @@
public void getUserInfo_B(CloudCallBeak<BUserInfo> cloudCallBeak) {
String requestUrl = HttpApi.B_POST_GET_USERINFO;
JsonObject json = new JsonObject();
+ json.addProperty("userId", UserConfigManage.getInstance().getUserId());
HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
@Override
public void onSuccess(String jsonStr) {
@@ -330,6 +385,41 @@
}
+ /**
+ * 涓嬭浇瀛愯处鍙峰ご鍍�(C绔处鍙�)
+ *
+ * @param childAccountId 瀛愯处鍙穒d
+ * @param childId 瀛愯处鍙�(鎴愬憳)id鏌ユ壘瀛愯处鍙锋帴鍙h幏鍙栧埌鐨勬暟鎹甶d
+ * @param homeId 浣忓畢id
+ * @param cloudCallBeak -
+ */
+ public void getHeadPortrait_C(String childAccountId, String childId, String homeId, CloudCallBeak<String> cloudCallBeak) {
+ String requestUrl = HttpApi.C_POST_GET_IMAGE_URL;
+ JsonObject json = new JsonObject();
+ json.addProperty("childAccountId", childAccountId);
+ if (TextUtils.isEmpty(childId)) {
+ json.addProperty("childId", childId);
+ }
+ json.addProperty("homeId", homeId);
+ HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String jsonStr) {
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onSuccess(jsonStr);
+ }
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onFailure(e);
+ }
+ }
+ });
+
+
+ }
+
/**
* 淇敼鐢ㄦ埛鍚嶇О
@@ -411,13 +501,15 @@
* @param account 璐﹀彿 (鎵嬫満鎴栬�呴偖绠�)
* @param loginPwd 瀵嗙爜
* @param verifyCode 楠岃瘉鐮�
+ * @param phonePrefix 鎵嬫満鍙峰墠缂�
* @param cloudCallBeak -
*/
- public void registerAccount_C(boolean isPhone, String account, String loginPwd, String verifyCode, CloudCallBeak<Boolean> cloudCallBeak) {
+ public void registerAccount_C(boolean isPhone, String account, String loginPwd, String verifyCode, String phonePrefix, CloudCallBeak<Boolean> cloudCallBeak) {
String requestUrl = HttpApi.C_POST_GET_OAUTH_REGISTER;
JsonObject json = new JsonObject();
if (isPhone) {
json.addProperty("memberPhone", account);//鐢ㄦ埛鎵嬫満鍙� 鎵嬫満鍙峰拰閭蹇呭~鍏朵竴
+ json.addProperty("phonePrefix", phonePrefix.replace("+", ""));//鎵嬫満鍙峰墠缂�
} else {
json.addProperty("memberEmail", account);
}
@@ -453,13 +545,15 @@
* @param account 璐﹀彿 (鎵嬫満鎴栬�呴偖绠�)
* @param loginPwd 鏂板瘑鐮�
* @param verifyCode 楠岃瘉鐮�
+ * @param phonePrefix 鎵嬫満鍙峰墠缂�
* @param cloudCallBeak -
*/
- public void changePassword_C(boolean isPhone, String account, String loginPwd, String verifyCode, CloudCallBeak<Boolean> cloudCallBeak) {
+ public void changePassword_C(boolean isPhone, String account, String loginPwd, String verifyCode, String phonePrefix, CloudCallBeak<Boolean> cloudCallBeak) {
String requestUrl = HttpApi.C_POST_FORGET_PROGRAM_PWD;
JsonObject json = new JsonObject();
if (isPhone) {
json.addProperty("memberPhone", account);//鐢ㄦ埛鎵嬫満鍙� 鎵嬫満鍙峰拰閭蹇呭~鍏朵竴
+ json.addProperty("phonePrefix", phonePrefix.replace("+", ""));//鎵嬫満鍙峰墠缂�
} else {
json.addProperty("memberEmail", account);
}
@@ -520,17 +614,19 @@
/**
* 缁戝畾璁よ瘉(鎵嬫満/閭)(C绔处鍙�)
*
- * @param memberPhone 鎵嬫満鍙凤紙缁戝畾鎵嬫満鍙穖emberEmail鍙傛暟浼犵┖锛�
- * @param memberEmail 閭锛堢粦瀹氶偖绠眒emberPhone鍙傛暟浼犵┖锛�
+ * @param memberPhone 鎵嬫満鍙凤紙鏈粦瀹氭墜鏈哄彿鍙傛暟浼爊ull锛�
+ * @param memberEmail 閭锛堟湭缁戝畾閭鍙傛暟浼爊ull锛�
+ * @param phonePrefix 鎵嬫満鍙峰墠缂�
* @param verifyCode 楠岃瘉鐮�
*/
- public void bindingAccount_C(String memberPhone, String memberEmail, String verifyCode, CloudCallBeak<Boolean> cloudCallBeak) {
+ public void bindingAccount_C(String memberPhone, String memberEmail, String verifyCode, String phonePrefix, CloudCallBeak<Boolean> cloudCallBeak) {
String requestUrl = HttpApi.C_POST_MEMBERINFO_BINDWITHACCOUNT;
JsonObject json = new JsonObject();
if (!TextUtils.isEmpty(memberPhone)) {
json.addProperty("memberPhone", memberPhone);//鎵嬫満鍙�
+ json.addProperty("phonePrefix", phonePrefix.replace("+", ""));//鎵嬫満鍙峰墠缂�
}
- if (!TextUtils.isEmpty(memberPhone)) {
+ if (!TextUtils.isEmpty(memberEmail)) {
json.addProperty("memberEmail", memberEmail);//閭
}
json.addProperty("verifyCode", verifyCode);//楠岃瘉鐮�
@@ -587,7 +683,7 @@
/**
- * 鍙戦�侀獙璇佺爜(B鍜孋绔叡鐢�)
+ * 鍙戦�侀獙璇佺爜(C绔�)
*
* @param isPhone true琛ㄧず鎵嬫満鍙�,鍚﹀垯鏄偖绠�
* @param account 璐﹀彿 (鎵嬫満鎴栬�呴偖绠�)
@@ -595,14 +691,56 @@
* @param verifyType 1:娉ㄥ唽 2锛氭壘鍥炲瘑鐮� 3锛氱粦瀹�4:楠岃瘉鐮佺櫥闄� 5:鏁忔劅鏁版嵁
* @param cloudCallBeak -
*/
- public void sendVerifyCode(boolean isPhone, String account, String phonePrefix, int verifyType, CloudCallBeak<Boolean> cloudCallBeak) {
- String requestUrl = HttpApi.POST_SEND_VERIFICATION;
+ public void sendVerifyCode_C(boolean isPhone, String account, String phonePrefix, String verifyType, CloudCallBeak<Boolean> cloudCallBeak) {
+ String requestUrl = HttpApi.POST_SEND_VERIFICATION_C;
JsonObject json = new JsonObject();
if (isPhone) {
json.addProperty("phone", account);//鐢ㄦ埛鎵嬫満鍙�
- json.addProperty("phonePrefix", phonePrefix);//鎵嬫満鍙峰墠缂�
+ json.addProperty("phonePrefix", phonePrefix.replace("+", ""));//鎵嬫満鍙峰墠缂�
} else {
json.addProperty("mail", account);//閭
+ }
+ json.addProperty("verifyType", verifyType);//1:娉ㄥ唽 2锛氭壘鍥炲瘑鐮� 3锛氱粦瀹�4:楠岃瘉鐮佺櫥闄� 5:鏁忔劅鏁版嵁
+// json.addProperty("languageType", loginPwd);//璇█
+// json.addProperty("expireSecond", expireSecond);//楠岃瘉鐮佽繃鏈熸椂闂达紙绉掞級,榛樿5鍒嗛挓
+// json.addProperty("platform", "APP");
+
+ HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String str) {
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onSuccess(true);
+ }
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onFailure(e);
+ }
+ }
+ });
+
+
+ }
+
+ /**
+ * 鍙戦�侀獙璇佺爜(B绔�)
+ *
+ * @param isPhone true琛ㄧず鎵嬫満鍙�,鍚﹀垯鏄偖绠�
+ * @param account 璐﹀彿 (鎵嬫満鎴栬�呴偖绠�)
+ * @param phonePrefix 鎵嬫満鍙峰墠缂�
+ * @param verifyType 1:娉ㄥ唽 2锛氭壘鍥炲瘑鐮� 3锛氱粦瀹�4:楠岃瘉鐮佺櫥闄� 5:鏁忔劅鏁版嵁
+ * @param cloudCallBeak -
+ */
+ public void sendVerifyCode_B(boolean isPhone, String account, String phonePrefix, String verifyType, CloudCallBeak<Boolean> cloudCallBeak) {
+ String requestUrl = isPhone ? HttpApi.POST_SEND_VERIFICATION_Phone_B : HttpApi.POST_SEND_VERIFICATION_Email_B;
+ JsonObject json = new JsonObject();
+ if (isPhone) {
+ json.addProperty("userPhone", account);//鐢ㄦ埛鎵嬫満鍙�
+ json.addProperty("phonePrefix", phonePrefix.replace("+", ""));//鎵嬫満鍙峰墠缂�
+ } else {
+ json.addProperty("userEmail", account);//閭
}
json.addProperty("verifyType", verifyType);//1:娉ㄥ唽 2锛氭壘鍥炲瘑鐮� 3锛氱粦瀹�4:楠岃瘉鐮佺櫥闄� 5:鏁忔劅鏁版嵁
// json.addProperty("languageType", loginPwd);//璇█
@@ -649,15 +787,67 @@
}
/**
+ * 娉ㄩ攢璐﹀彿(C绔处鍙�)
+ *
+ * @param pwd 璐﹀彿瀵嗙爜
+ * @param cloudCallBeak -
+ */
+ public void accountUnregisterC(String pwd, CloudCallBeak<Boolean> cloudCallBeak) {
+ String requestUrl = HttpApi.C_POST_MEMBER_UNREGISTER;
+ JsonObject json = new JsonObject();
+ json.addProperty("userId", UserConfigManage.getInstance().getUserId());
+ json.addProperty("pwd", pwd);
+ HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String jsonStr) {
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onSuccess(true);
+ }
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onFailure(e);
+ }
+ }
+ });
+
+
+ }
+
+ /**
+ * 閫�鍑虹櫥褰�
+ */
+ public void logout(LogoutType logoutType) {
+ HdlResidenceLogic.getInstance().pushDel(new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String obj) {
+// SharedPreUtils.putBoolean("pushAddCache", true);
+ HDLLinkPMUser.getInstance().logout(logoutType.getValue());
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+// SharedPreUtils.putBoolean("pushAddCache", false);
+ HDLLinkPMUser.getInstance().logout(logoutType.getValue());
+ }
+ });
+ }
+
+ /**
* 鐧诲綍鎴愬姛淇濆瓨鐧诲綍淇℃伅
*/
private void saveUserData(HDLLoginBean obj) {
if (obj != null) {
boolean isUserId = UserConfigManage.getInstance().getUserId().equals(obj.getUserId());
UserConfigManage.getInstance().setTheSameLoginAccount(isUserId);//涓庝笂涓�涓处鍙锋槸鍚﹀悓涓�涓�
- if (!UserConfigManage.getInstance().isTheSameLoginAccount()) {
+ //UserConfigManage.getInstance().getUserId()琛ㄧず绗竴娆″畨瑁呯櫥褰�
+ if (!TextUtils.isEmpty(UserConfigManage.getInstance().getUserId()) && !UserConfigManage.getInstance().isTheSameLoginAccount()) {
//涓嶅悓璐﹀彿,鍒犻櫎涔嬪墠鐨勬棫璐﹀彿鏃ュ織淇℃伅;
HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentUserRootPath());
+ HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getUserFilePath());
+ UserConfigManage.getInstance().setHomeId("");
}
UserConfigManage.getInstance().setLogin(true);//鏄惁鐧诲綍
UserConfigManage.getInstance().setAcceiptPolicy(true);//鏄惁閫夋嫨闅愮鏀跨瓥
@@ -665,9 +855,14 @@
UserConfigManage.getInstance().setUserId(obj.getUserId());//鐢ㄦ埛id
//b绔拰c绔畾涔夎处鍙峰瓧娈典笉涓�鏍�
UserConfigManage.getInstance().setAccount(TextUtils.isEmpty(obj.getAccount()) ? obj.getUserPhone() : obj.getAccount());//璐﹀彿
+ UserConfigManage.getInstance().setBingPhone(obj.getUserPhone());//缁戝畾鎵嬫満
+ UserConfigManage.getInstance().setBingEmail(obj.getUserEmail());//缁戝畾閭
+
+ UserConfigManage.getInstance().setUserName(obj.getName());
UserConfigManage.getInstance().setToken(obj.getAccessToken());//Token
UserConfigManage.getInstance().setHeaderPrefix(obj.getHeaderPrefix());//璁よ瘉璇锋眰澶村墠缂�(搴曞眰璇锋眰缁熶竴鍔�)
- UserConfigManage.getInstance().setRefreshToken(obj.getRefreshToken());//鍒锋柊Token鐢ㄧ殑鍒锋柊Token鐢ㄧ殑
+ UserConfigManage.getInstance().setRefreshToken(obj.getRefreshToken());//鍒锋柊Token鐢ㄧ殑
+ UserConfigManage.getInstance().setNoNetworkFlag(false);
UserConfigManage.getInstance().Save();
}
--
Gitblit v1.8.0