| | |
| | | package com.hdl.photovoltaic.other; |
| | | |
| | | |
| | | import android.text.TextUtils; |
| | | |
| | | 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; |
| | | 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 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) { |
| | |
| | | return sHdlAccountLogic; |
| | | } |
| | | |
| | | // region --------【B端账号】--------- |
| | | |
| | | /** |
| | | * 初始化账号的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) { |
| | | boolean isBooleanB = UserConfigManage.getInstance().isBAccount(); |
| | | HDLLinkPMUser.getInstance().regionByAccount(isBooleanB, 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(HttpClient.getException(error)); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 获取账号所在区域 |
| | | * 登录(B,C端账号) |
| | | * 通过账号和密码 |
| | | * |
| | | * @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) { |
| | | 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"); |
| | | HDLLinkPMUser.getInstance().loginByPassword(isBooleanB, account, loginPwd, new ILoginCallBack() { |
| | | @Override |
| | | public void onSuccess(HDLLoginBean loginBean) { |
| | | |
| | | // } |
| | | if (callBack != null) { |
| | | loginBean.setAccount(account); |
| | | saveUserData(loginBean); |
| | | callBack.onSuccess(loginBean); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | 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) { |
| | | 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 --------【C端账号】--------- |
| | | |
| | | |
| | | /** |
| | | * 上传用户头像 |
| | | * |
| | | * @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 子账号id |
| | | * @param childId 子账号(成员)id查找子账号接口获取到的数据id |
| | | * @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);//登陆密码,需要MD5处理 |
| | | 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 手机号(未绑定手机号参数传null) |
| | | * @param memberEmail 邮箱(未绑定邮箱参数传null) |
| | | * @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); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 解绑认证(手机/邮箱)(C端账号) |
| | | * |
| | | * @param unBindLabel 解绑标识(PHONE 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}$"); |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | | * 注销账号(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(); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |