mac
2023-10-25 28880ba7540c523d3e50d35416422396ef802c50
app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -1,19 +1,27 @@
package com.hdl.photovoltaic.other;
import android.text.TextUtils;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.hdl.linkpm.sdk.core.callback.IResponseCallBack;
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.bean.ImageSubmitInfo;
import com.hdl.linkpm.sdk.user.callback.ILoginCallBack;
import com.hdl.linkpm.sdk.user.callback.IRegionByAccountCallBack;
import com.hdl.linkpm.sdk.user.controller.HDLPMUserController;
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.BUserInfo;
import com.hdl.photovoltaic.ui.bean.CUserInfo;
import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -110,8 +118,8 @@
     * @param verifyCode    验证码
     * @param cloudCallBeak -
     */
    public void changePassword(boolean isPhone, String account, String loginPwd, String verifyCode, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_FORGET_PROGRAM_PWD;
    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);//用户手机号 手机号和邮箱必填其一
@@ -121,7 +129,6 @@
        json.addProperty("loginPwd", loginPwd);//新密码
        json.addProperty("verifyCode", verifyCode);//验证码
//       json.addProperty("platform", "APP");
        json.addProperty("grantType", "password");
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
@@ -143,7 +150,367 @@
    }
    /**
     * 修改密码(B端账号)
     * 更改个人密码(B端账号)
     *
     * @param loginOldPwd 老密码
     * @param loginPwd    新密码
     */
    public void updateBPassword(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(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);
                }
            }
        });
    }
    /**
     * 获取用户详情信息(B端账号)
     *
     * @param cloudCallBeak -
     */
    public void getUserInfo(CloudCallBeak<BUserInfo> cloudCallBeak) {
        String requestUrl = HttpApi.B_POST_GET_USERINFO;
        JsonObject json = new JsonObject();
        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(File file, CloudCallBeak<String> cloudCallBeak) {
        String requestUrl = HttpApi.C_POST_GET_IMAGE_URL;
        HttpClient.getInstance().requestHttpFile(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(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(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 languageType   语言类型
     * @param memberName     用户昵称
     * @param memberBirthday 用户生日
     * @param memberHeadIcon 用户头像
     * @param loginName      登陆账号
     * @param memberSex      用户性别
     * @param cloudCallBeak  -
     */
    public void updateMemberInfo(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 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);
                }
            }
        });
    }
    /**
     * 更改个人密码(C端账号)
     *
     * @param loginOldPwd 老密码
     * @param loginPwd    新密码
     */
    public void updateCPassword(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);
                }
            }
        });
    }
    // endregion
    /**
     * 发送验证码
     *
     * @param isPhone       true表示手机号,否则是邮箱
     * @param account       账号 (手机或者邮箱)
@@ -185,45 +552,6 @@
    }
    /**
     * 刷新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);
                }
            }
        });
    }
    // endregion
    // region --------【C端账号】---------
    // endregion
    /**
     * 退出登录时调用,清除推送数据
     */
    public void SignOutClearData() {
@@ -257,6 +585,7 @@
            UserConfigManage.getInstance().setRefreshToken(obj.getRefreshToken());//刷新Token用的刷新Token用的
            boolean isUserId = UserConfigManage.getInstance().getUserId().equals(obj.getUserId());
            UserConfigManage.getInstance().setTheSameLoginAccount(isUserId);//与上一个账号是否同一个
            UserConfigManage.getInstance().Save();
        }
    }