From b9cc7390e8e8ce64c41c26fb369c98ce669d660c Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 07 五月 2025 15:02:30 +0800
Subject: [PATCH] Merge branch '1.2.0'

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java |  814 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 770 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 27b8699..ae8e8b7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -1,27 +1,45 @@
 package com.hdl.photovoltaic.other;
 
 
+import android.text.TextUtils;
+
 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.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;
+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.BaseSuccessFailureCallBeak;
 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 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;
 
 /**
- * 鐧婚檰鐣岄潰鐨勯�昏緫
+ * 璐﹀彿閫昏緫
  */
 public class HdlAccountLogic {
 
     private static volatile HdlAccountLogic sHdlAccountLogic;
 
+    /**
+     * 鑾峰彇褰撳墠瀵硅薄
+     *
+     * @return HdlAccountLogic
+     */
     public static synchronized HdlAccountLogic getInstance() {
         if (sHdlAccountLogic == null) {
             synchronized (HdlAccountLogic.class) {
@@ -34,80 +52,726 @@
         return sHdlAccountLogic;
     }
 
+    // region --------銆怋绔处鍙枫��---------
 
     /**
-     * 鍒濆鍖栬处鍙风殑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;
-        HttpClient.getInstance().requestFullHttp(full, jsonObject.toString(), true, true, new BaseSuccessFailureCallBeak() {
+    public void regionByAccount(String i_account, CloudCallBeak<HDLUserRegionBean> cloudCallBeak) {
+        boolean isBooleanB = UserConfigManage.getInstance().isBAccount();
+        HDLLinkPMUser.getInstance().regionByAccount(isBooleanB, i_account, new IRegionByAccountCallBack() {
             @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());
-                    }
+            public void onSuccess(HDLUserRegionBean regionBean) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(regionBean);
                 }
             }
 
             @Override
-            public void onFailure(Exception exception) {
+            public void onFailure(HDLException error) {
                 if (cloudCallBeak != null) {
-                    cloudCallBeak.onFailure(exception);
+                    cloudCallBeak.onFailure(HttpClient.getException(error));
                 }
             }
         });
     }
 
     /**
-     * 鐧诲綍
+     * 鐧诲綍(B,C绔处鍙�)
      * 閫氳繃璐﹀彿鍜屽瘑鐮�
      *
-     * @param account       鎵嬫満鎴栬�呴偖绠�
-     * @param loginPwd      瀵嗙爜
-     * @param cloudCallBeak -
+     * @param account  鎵嬫満鎴栬�呴偖绠�
+     * @param loginPwd 瀵嗙爜
+     * @param callBack -
      */
-    public void loginByPassword(String account, String loginPwd, CloudCallBeak<LoginBean> cloudCallBeak) {
-        String requestUrl = HttpApi.POST_Login;
+    public void loginByPassword(String account, String loginPwd, ILoginCallBack callBack) {
+        boolean isBooleanB = UserConfigManage.getInstance().isBAccount();
         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() {
+        HDLLinkPMUser.getInstance().loginByPassword(isBooleanB, account, loginPwd, new ILoginCallBack() {
             @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());
-                    }
+            public void onSuccess(HDLLoginBean loginBean) {
+
+                if (callBack != null) {
+                    loginBean.setAccount(account);
+                    saveUserData(loginBean);
+                    callBack.onSuccess(loginBean);
                 }
             }
 
             @Override
-            public void onFailure(Exception exception) {
+            public void onFailure(HDLException error) {
+                if (callBack != null) {
+                    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) {
-                    cloudCallBeak.onFailure(exception);
+                    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绔处鍙�)
+     *
+     * @param isPhone       true琛ㄧず鎵嬫満鍙�,鍚﹀垯鏄偖绠�
+     * @param account       璐﹀彿 (鎵嬫満鎴栬�呴偖绠�)
+     * @param loginPwd      鏂板瘑鐮�
+     * @param verifyCode    楠岃瘉鐮�
+     * @param 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);
+        }
+        json.addProperty("loginPwd", loginPwd);//鏂板瘑鐮�
+        json.addProperty("verifyCode", verifyCode);//楠岃瘉鐮�
+//       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 loginOldPwd 鑰佸瘑鐮�
+     * @param loginPwd    鏂板瘑鐮�
+     */
+    public void updatePassword_B(String loginOldPwd, String loginPwd, CloudCallBeak<String> cloudCallBeak) {
+        String requestUrl = HttpApi.B_POST_UPDATE_PROGRAM_PASSWORD;
+        JsonObject json = new JsonObject();
+        json.addProperty("userId", UserConfigManage.getInstance().getUserId());
+        json.addProperty("loginOldPwd", loginOldPwd);//	鑰佸瘑鐮�
+        json.addProperty("loginPwd", loginPwd);//鏂板瘑鐮�
+        json.addProperty("confirmLoginPwd", loginPwd);//鏂板瘑鐮佺‘璁ゅ瘑鐮�
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String str) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(str);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+
+
+    }
+
+
+    /**
+     * 鍒锋柊Token(C绔处鍙�)
+     *
+     * @param account       鎵嬫満鎴栬�呴偖绠�
+     * @param loginPwd      瀵嗙爜
+     * @param cloudCallBeak -
+     */
+    public void refreshToken_B(String account, String loginPwd, CloudCallBeak<HDLLoginBean> cloudCallBeak) {
+        String requestUrl = HttpApi.C_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);
                 }
             }
         });
     }
 
+
+    /**
+     * 鑾峰彇鐢ㄦ埛璇︽儏淇℃伅(B绔处鍙�)
+     *
+     * @param cloudCallBeak -
+     */
+    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) {
+                Gson gson = new Gson();
+                BUserInfo bUserInfo = gson.fromJson(jsonStr, BUserInfo.class);
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(bUserInfo);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+
+
+    }
+
+
+    // endregion
+
+    // region --------銆怌绔处鍙枫��---------
+
+
+    /**
+     * 涓婁紶鐢ㄦ埛澶村儚
+     *
+     * @param file          鍥剧墖鏂囦欢
+     * @param cloudCallBeak -
+     */
+    public void uploadUserHeadImage_C(File file, CloudCallBeak<String> cloudCallBeak) {
+        String requestUrl = HttpApi.C_POST_GET_IMAGE_URL;
+        HttpClient.getInstance().uploadingFile(requestUrl, file, 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);
+                }
+            }
+        });
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛澶村儚璺緞(C绔处鍙�)
+     *
+     * @param imageKey      鐢ㄦ埛澶村儚imageKey
+     * @param cloudCallBeak -
+     */
+    public void getImageKey_C(String imageKey, CloudCallBeak<String> cloudCallBeak) {
+        String requestUrl = HttpApi.C_POST_GET_IMAGE_URL;
+        JsonObject json = new JsonObject();
+        json.addProperty("imageKey", imageKey);
+        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);
+                }
+            }
+        });
+
+
+    }
+
+    /**
+     * 鑾峰彇涓汉淇℃伅(C绔处鍙�)
+     *
+     * @param cloudCallBeak -
+     */
+    public void getMemberInfo_C(CloudCallBeak<CUserInfo> cloudCallBeak) {
+        String requestUrl = HttpApi.C_POST_GET_MEMBER_INFO;
+        JsonObject json = new JsonObject();
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String jsonStr) {
+                Gson gson = new Gson();
+                CUserInfo cUserInfo = gson.fromJson(jsonStr, CUserInfo.class);
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(cUserInfo);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+
+
+    }
+
+    /**
+     * 涓嬭浇瀛愯处鍙峰ご鍍�(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);
+                }
+            }
+        });
+
+
+    }
+
+
+    /**
+     * 淇敼鐢ㄦ埛鍚嶇О
+     *
+     * @param memberName    鐢ㄦ埛鍚嶇О
+     * @param cloudCallBeak -
+     */
+    public void updateMemberName_C(String memberName, CloudCallBeak<Boolean> cloudCallBeak) {
+        updateMemberInfo_C("", memberName, "", "", "", "", cloudCallBeak);
+    }
+
+    /**
+     * 淇敼鐢ㄦ埛澶村儚
+     *
+     * @param memberHeadIcon 澶村儚鍦板潃
+     * @param cloudCallBeak  -
+     */
+    public void updateMemberHeadIcon_C(String memberHeadIcon, CloudCallBeak<Boolean> cloudCallBeak) {
+        updateMemberInfo_C("", "", "", memberHeadIcon, "", "", cloudCallBeak);
+    }
+
+    /**
+     * 鏇存柊涓汉淇℃伅(C绔处鍙�)
+     *
+     * @param languageType   璇█绫诲瀷
+     * @param memberName     鐢ㄦ埛鏄电О
+     * @param memberBirthday 鐢ㄦ埛鐢熸棩
+     * @param memberHeadIcon 鐢ㄦ埛澶村儚
+     * @param loginName      鐧婚檰璐﹀彿
+     * @param memberSex      鐢ㄦ埛鎬у埆
+     * @param cloudCallBeak  -
+     */
+    public void updateMemberInfo_C(String languageType, String memberName, String memberBirthday, String memberHeadIcon, String loginName, String memberSex, CloudCallBeak<Boolean> cloudCallBeak) {
+        String requestUrl = HttpApi.C_POST_UPDATE_MEMBER_INFO;
+        JsonObject json = new JsonObject();
+        if (!TextUtils.isEmpty(languageType)) {
+            json.addProperty("languageType", languageType);//璇█绫诲瀷
+        }
+        if (!TextUtils.isEmpty(memberName)) {
+            json.addProperty("memberName", memberName);//鐢ㄦ埛鏄电О
+        }
+        if (!TextUtils.isEmpty(memberBirthday)) {
+            json.addProperty("memberBirthday", memberBirthday);//鐢ㄦ埛鐢熸棩
+        }
+        if (!TextUtils.isEmpty(memberHeadIcon)) {
+            json.addProperty("memberHeadIcon", memberHeadIcon);//鐢ㄦ埛澶村儚
+        }
+        if (!TextUtils.isEmpty(loginName)) {
+            json.addProperty("loginName", loginName);//鐧婚檰璐﹀彿
+        }
+        if (!TextUtils.isEmpty(memberSex)) {
+            json.addProperty("memberSex", memberSex);//鐢ㄦ埛鎬у埆
+        }
+        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);
+                }
+            }
+        });
+
+
+    }
+
+
+    /**
+     * 娉ㄥ唽璐﹀彿(C绔处鍙�)
+     * 娉ㄦ剰:B绔笉鏀寔娉ㄥ唽璐﹀彿
+     *
+     * @param isPhone       true琛ㄧず鎵嬫満鍙�,鍚﹀垯鏄偖绠�
+     * @param account       璐﹀彿 (鎵嬫満鎴栬�呴偖绠�)
+     * @param loginPwd      瀵嗙爜
+     * @param verifyCode    楠岃瘉鐮�
+     * @param phonePrefix    鎵嬫満鍙峰墠缂�
+     * @param 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);
+        }
+        json.addProperty("loginPwd", loginPwd);//鐧婚檰瀵嗙爜锛岄渶瑕丮D5澶勭悊
+        json.addProperty("verifyCode", verifyCode);//楠岃瘉鐮�
+//       json.addProperty("platform", "APP");
+//        json.addProperty("memberName", "memberName");//浼氬憳鏄电О
+
+        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);
+                }
+            }
+        });
+
+
+    }
+
+
+    /**
+     * 淇敼瀵嗙爜(C绔处鍙�)
+     *
+     * @param isPhone       true琛ㄧず鎵嬫満鍙�,鍚﹀垯鏄偖绠�
+     * @param account       璐﹀彿 (鎵嬫満鎴栬�呴偖绠�)
+     * @param loginPwd      鏂板瘑鐮�
+     * @param verifyCode    楠岃瘉鐮�
+     * @param phonePrefix    鎵嬫満鍙峰墠缂�
+     * @param 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);
+        }
+        json.addProperty("loginPwd", loginPwd);//鏂板瘑鐮�
+        json.addProperty("verifyCode", verifyCode);//楠岃瘉鐮�
+//       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);
+                }
+            }
+        });
+
+
+    }
+
+
+    /**
+     * 鏇存敼涓汉瀵嗙爜(C绔处鍙�)
+     *
+     * @param loginOldPwd 鑰佸瘑鐮�
+     * @param loginPwd    鏂板瘑鐮�
+     */
+    public void updatePassword_C(String loginOldPwd, String loginPwd, CloudCallBeak<String> cloudCallBeak) {
+        String requestUrl = HttpApi.C_POST_UPDATE_PROGRAM_PASSWORD;
+        JsonObject json = new JsonObject();
+        json.addProperty("loginPwd", loginOldPwd);//鑰佸瘑鐮�
+        json.addProperty("loginNewPwd", loginPwd);//鏂板瘑鐮�
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String str) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(str);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+
+
+    }
+
+    /**
+     * 缁戝畾璁よ瘉(鎵嬫満/閭)(C绔处鍙�)
+     *
+     * @param memberPhone 鎵嬫満鍙凤紙鏈粦瀹氭墜鏈哄彿鍙傛暟浼爊ull锛�
+     * @param memberEmail 閭锛堟湭缁戝畾閭鍙傛暟浼爊ull锛�
+     * @param phonePrefix    鎵嬫満鍙峰墠缂�
+     * @param verifyCode  楠岃瘉鐮�
+     */
+    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(memberEmail)) {
+            json.addProperty("memberEmail", memberEmail);//閭
+        }
+        json.addProperty("verifyCode", verifyCode);//楠岃瘉鐮�
+        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);
+                }
+            }
+        });
+
+
+    }
+
+
+    /**
+     * 瑙g粦璁よ瘉(鎵嬫満/閭)(C绔处鍙�)
+     *
+     * @param unBindLabel 瑙g粦鏍囪瘑锛圥HONE   EMAIL锛�
+     */
+    public void unBindingAccount_C(String unBindLabel, CloudCallBeak<Boolean> cloudCallBeak) {
+        String requestUrl = HttpApi.C_POST_MEMBERINFO_UNBINDWITHACCOUNT;
+        JsonObject json = new JsonObject();
+        json.addProperty("unBindLabel", unBindLabel);//鎵嬫満鍙凤紙PHONE   EMAIL锛�
+        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);
+                }
+            }
+        });
+
+
+    }
+
+
+    // endregion
+
+
+    /**
+     * 鍙戦�侀獙璇佺爜(C绔�)
+     *
+     * @param isPhone       true琛ㄧず鎵嬫満鍙�,鍚﹀垯鏄偖绠�
+     * @param account       璐﹀彿 (鎵嬫満鎴栬�呴偖绠�)
+     * @param phonePrefix   鎵嬫満鍙峰墠缂�
+     * @param verifyType    1:娉ㄥ唽 2锛氭壘鍥炲瘑鐮� 3锛氱粦瀹�4:楠岃瘉鐮佺櫥闄� 5:鏁忔劅鏁版嵁
+     * @param cloudCallBeak -
+     */
+    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.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);//璇█
+//        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);
+                }
+            }
+        });
+
+
+    }
+
+    /**
+     * 閫�鍑虹櫥褰曟椂璋冪敤锛屾竻闄ゆ帹閫佹暟鎹�
+     */
+    public void signOutClearData() {
+        String requestUrl = HttpApi.POST_GET_IMAGE_LOGOUT;
+        //閫氱煡浜戠锛屽凡缁忛��鍑虹櫥闄�
+        HttpClient.getInstance().requestHttp(requestUrl, new JsonObject().toString(), null);
+    }
 
     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}$");
@@ -120,5 +784,67 @@
         return mailbox.matches(regex);
     }
 
+    /**
+     * 娉ㄩ攢璐﹀彿(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);
+                }
+            }
+        });
+
+
+    }
+
+    /**
+     * 鐧诲綍鎴愬姛淇濆瓨鐧诲綍淇℃伅
+     */
+    private void saveUserData(HDLLoginBean obj) {
+        if (obj != null) {
+            boolean isUserId = UserConfigManage.getInstance().getUserId().equals(obj.getUserId());
+            UserConfigManage.getInstance().setTheSameLoginAccount(isUserId);//涓庝笂涓�涓处鍙锋槸鍚﹀悓涓�涓�
+            //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);//鏄惁閫夋嫨闅愮鏀跨瓥
+            UserConfigManage.getInstance().setLoginDateTime(System.currentTimeMillis());//鐧诲綍鏃堕棿
+            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鐢ㄧ殑
+            UserConfigManage.getInstance().Save();
+        }
+
+    }
+
 
 }

--
Gitblit v1.8.0