| | |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.JsonObject; |
| | | import com.hdl.photovoltaic.ui.bean.LoginUserBean; |
| | | import com.hdl.photovoltaic.ui.bean.LoginUserRegionBean; |
| | | import com.hdl.photovoltaic.bean.HttpResponsePack; |
| | | import com.hdl.photovoltaic.config.AppConfigManage; |
| | | 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 java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | |
| | | /** |
| | | * 登录界面的逻辑 |
| | | * 账号逻辑 |
| | | */ |
| | | public class HdlAccountLogic { |
| | | |
| | |
| | | return sHdlAccountLogic; |
| | | } |
| | | |
| | | // region --------【B端账号】--------- |
| | | |
| | | /** |
| | | * 初始化账号的Url区域地址 |
| | | * |
| | | * @param i_account 账号 |
| | | */ |
| | | public void regionByAccount(String i_account, CloudCallBeak<LoginUserRegionBean> cloudCallBeak) { |
| | | JsonObject jsonObject = new JsonObject(); |
| | | jsonObject.addProperty("account", i_account); |
| | | String full = AppConfigManage.getAPPRegionUrl() + HttpApi.POST_RegionByUserAccount; |
| | | HttpClient.getInstance().requestFullHttp(full, jsonObject.toString(), true, true, new BaseSuccessFailureCallBeak() { |
| | | public void regionByAccount(String i_account, CloudCallBeak<HDLUserRegionBean> cloudCallBeak) { |
| | | HDLLinkPMUser.getInstance().regionByAccount(i_account, new IRegionByAccountCallBack() { |
| | | @Override |
| | | public void onSuccess(HttpResponsePack httpResponsePack) { |
| | | if (httpResponsePack != null && httpResponsePack.getData() != null) { |
| | | Gson gson = new Gson(); |
| | | String json = gson.toJson(httpResponsePack.getData()); |
| | | LoginUserRegionBean loginUserRegionBean = new Gson().fromJson(json, LoginUserRegionBean.class); |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(loginUserRegionBean); |
| | | } |
| | | 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(error); |
| | | } |
| | | } |
| | | }); |
| | |
| | | * 登录(B端账号) |
| | | * 通过账号和密码 |
| | | * |
| | | * @param account 手机或者邮箱 |
| | | * @param loginPwd 密码 |
| | | * @param cloudCallBeak - |
| | | * @param account 手机或者邮箱 |
| | | * @param loginPwd 密码 |
| | | * @param callBack - |
| | | */ |
| | | public void loginByPassword(String account, String loginPwd, CloudCallBeak<LoginUserBean> cloudCallBeak) { |
| | | 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"); |
| | | |
| | | HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { |
| | | HDLLinkPMUser.getInstance().loginByPassword(account, loginPwd, new ILoginCallBack() { |
| | | @Override |
| | | public void onSuccess(HttpResponsePack httpResponsePack) { |
| | | if (httpResponsePack != null && httpResponsePack.getData() != null) { |
| | | Gson gson = new Gson(); |
| | | String json = gson.toJson(httpResponsePack.getData()); |
| | | LoginUserBean loginUserBean = new Gson().fromJson(json, LoginUserBean.class); |
| | | saveUserData(loginUserBean); |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(loginUserBean); |
| | | } |
| | | public void onSuccess(HDLLoginBean loginBean) { |
| | | |
| | | if (callBack != null) { |
| | | saveUserData(loginBean); |
| | | callBack.onSuccess(loginBean); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(Exception exception) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onFailure(exception); |
| | | public void onFailure(HDLException error) { |
| | | if (callBack != null) { |
| | | callBack.onFailure(error); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 修改密码(B端账号) |
| | | * |
| | | * @param isPhone true表示手机号,否则是邮箱 |
| | | * @param account 账号 (手机或者邮箱) |
| | | * @param loginPwd 新密码 |
| | | * @param verifyCode 验证码 |
| | | * @param cloudCallBeak - |
| | | */ |
| | | public void changeBPassword(boolean isPhone, String account, String loginPwd, String verifyCode, CloudCallBeak<Boolean> cloudCallBeak) { |
| | | String requestUrl = HttpApi.B_POST_FORGET_PROGRAM_PWD; |
| | | JsonObject json = new JsonObject(); |
| | | if (isPhone) { |
| | | json.addProperty("userPhone", account);//用户手机号 手机号和邮箱必填其一 |
| | | } 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); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 刷新Token(B端账号) |
| | |
| | | * @param loginPwd 密码 |
| | | * @param cloudCallBeak - |
| | | */ |
| | | public void refreshToken(String account, String loginPwd, CloudCallBeak<LoginUserBean> 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(), true, true, new BaseSuccessFailureCallBeak() { |
| | | HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { |
| | | @Override |
| | | public void onSuccess(HttpResponsePack httpResponsePack) { |
| | | if (httpResponsePack != null && httpResponsePack.getData() != null) { |
| | | Gson gson = new Gson(); |
| | | String json = gson.toJson(httpResponsePack.getData()); |
| | | LoginUserBean loginUserBean = new Gson().fromJson(json, LoginUserBean.class); |
| | | saveUserData(loginUserBean); |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(loginUserBean); |
| | | } |
| | | 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(Exception exception) { |
| | | public void onFailure(HDLException e) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onFailure(exception); |
| | | cloudCallBeak.onFailure(e); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | // endregion |
| | | |
| | | // region --------【C端账号】--------- |
| | | |
| | | /** |
| | | * 注册账号(C端账号) |
| | | * 注意:B |
| | | * |
| | | * @param isPhone true表示手机号,否则是邮箱 |
| | | * @param account 账号 (手机或者邮箱) |
| | | * @param loginPwd 密码 |
| | | * @param verifyCode 验证码 |
| | | * @param cloudCallBeak - |
| | | */ |
| | | public void registerAccount(boolean isPhone, String account, String loginPwd, String verifyCode, CloudCallBeak<Boolean> cloudCallBeak) { |
| | | String requestUrl = HttpApi.C_POST_GET_OAUTH_REGISTER; |
| | | JsonObject json = new JsonObject(); |
| | | if (isPhone) { |
| | | json.addProperty("memberPhone", account);//用户手机号 手机号和邮箱必填其一 |
| | | } 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 cloudCallBeak - |
| | | */ |
| | | public void changeCPassword(boolean isPhone, String account, String loginPwd, String verifyCode, CloudCallBeak<Boolean> cloudCallBeak) { |
| | | String requestUrl = HttpApi.C_POST_FORGET_PROGRAM_PWD; |
| | | JsonObject json = new JsonObject(); |
| | | if (isPhone) { |
| | | json.addProperty("memberPhone", account);//用户手机号 手机号和邮箱必填其一 |
| | | } 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); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | // endregion |
| | | |
| | | |
| | | /** |
| | | * 发送验证码 |
| | | * |
| | | * @param isPhone true表示手机号,否则是邮箱 |
| | | * @param account 账号 (手机或者邮箱) |
| | | * @param phonePrefix 手机号前缀 |
| | | * @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; |
| | | JsonObject json = new JsonObject(); |
| | | if (isPhone) { |
| | | json.addProperty("phone", account);//用户手机号 |
| | | json.addProperty("phonePrefix", phonePrefix);//手机号前缀 |
| | | } 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); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 退出登录时调用,清除推送数据 |
| | |
| | | /** |
| | | * 登录成功保存登录信息 |
| | | */ |
| | | private void saveUserData(LoginUserBean obj) { |
| | | private void saveUserData(HDLLoginBean obj) { |
| | | if (obj != null) { |
| | | UserConfigManage.getInstance().setLogin(true);//是否登录 |
| | | UserConfigManage.getInstance().setAcceiptPolicy(true);//是否选择隐私政策 |