wjc
3 天以前 80f2ca2df62ff1cd03046864af504245be078eb2
app/src/main/java/com/hdl/photovoltaic/other/HdlMemberLogic.java
@@ -6,19 +6,29 @@
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.callback.ILoginCallBack;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.bean.PageNumberObject;
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.CloudInverterDeviceBean;
import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo;
import com.hdl.photovoltaic.ui.bean.MemberBean;
import com.hdl.photovoltaic.ui.bean.StaffBean;
import com.hdl.photovoltaic.ui.bean.UserRightTypeBean;
import com.hdl.photovoltaic.utils.AesUtils;
import com.hdl.photovoltaic.utils.Md5Utils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import okhttp3.ResponseBody;
/**
 * 成员逻辑
@@ -44,31 +54,26 @@
    }
    /**
     * 获取员工列表
     * 获取当前账号在公司的身份
     *
     * @param pageNo        页码
     * @param pageSize      页数(一页多少数据)
     * @param cloudCallBeak -
     */
    public void getStaffList(long pageNo, long pageSize, CloudCallBeak<PageNumberObject<List<StaffBean>>> cloudCallBeak) {
        String requestUrl = "/home-wisdom/app/powerStation/user/manage/listByPage";// HttpApi.POST_PowerStation_List;
    public void getUserRightType(CloudCallBeak<UserRightTypeBean> cloudCallBeak) {
        String requestUrl = HttpApi.B_POST_GET_USERRIGHTTYPE;
        JsonObject json = new JsonObject();
        json.addProperty("pageNo", pageNo);
        json.addProperty("pageSize", pageNo);
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (TextUtils.isEmpty(jsonStr)) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(new PageNumberObject<>());
                        cloudCallBeak.onSuccess(new UserRightTypeBean());
                    }
                }
                Gson gson = new Gson();
                Type type = new TypeToken<PageNumberObject<List<StaffBean>>>() {
                }.getType();
                PageNumberObject<List<StaffBean>> pageNumberObject = gson.fromJson(jsonStr, type);
                UserRightTypeBean userRightTypeBean = gson.fromJson(jsonStr, UserRightTypeBean.class);
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(pageNumberObject);
                    cloudCallBeak.onSuccess(userRightTypeBean);
                }
            }
@@ -83,15 +88,17 @@
    }
    /**
     * 获取员工详情
     * 获取员工列表(B端)
     *
     * @param userId        -
     * @param pageNo        页码
     * @param pageSize      页数(一页多少数据)
     * @param cloudCallBeak -
     */
    public void getStaffInfo(String userId, CloudCallBeak<PageNumberObject<StaffBean>> cloudCallBeak) {
        String requestUrl = "/home-wisdom/app/powerStation/user/manage/info";// HttpApi.POST_PowerStation_List;
    public void getStaffList(long pageNo, long pageSize, CloudCallBeak<PageNumberObject<StaffBean>> cloudCallBeak) {
        String requestUrl = HttpApi.B_POST_GET_LISTBYPAGE;
        JsonObject json = new JsonObject();
        json.addProperty("userId", userId);
        json.addProperty("pageNo", pageNo);
        json.addProperty("pageSize", pageSize);
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
@@ -120,13 +127,49 @@
    }
    /**
     * 员工添加
     * 获取员工详情(B端)
     *
     * @param userId        -
     * @param cloudCallBeak -
     */
    public void getStaffInfo(String userId, CloudCallBeak<StaffBean> cloudCallBeak) {
        String requestUrl = HttpApi.B_POST_GET_MANAGE_INFO;
        JsonObject json = new JsonObject();
        json.addProperty("userId", userId);
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (TextUtils.isEmpty(jsonStr)) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(new StaffBean());
                    }
                }
                Gson gson = new Gson();
                StaffBean staffBean = gson.fromJson(jsonStr, StaffBean.class);
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(staffBean);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 员工添加(B端)
     *
     * @param staffBean     员工对象
     * @param cloudCallBeak -
     */
    public void getStaffAdd(StaffBean staffBean, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = "/home-wisdom/app/powerStation/user/manage/create";// HttpApi.POST_PowerStation_List;
        String requestUrl = HttpApi.B_POST_GET_MANAGE_CREATE;
        JsonObject json = new JsonObject();
        if (!TextUtils.isEmpty(staffBean.getUserName())) {
            json.addProperty("userName", staffBean.getUserName());
@@ -159,13 +202,13 @@
    }
    /**
     * 员工编辑
     * 员工编辑(B端)
     *
     * @param staffBean     员工对象
     * @param cloudCallBeak -
     */
    public void getStaffEdit(StaffBean staffBean, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = "/home-wisdom/app/powerStation/user/manage/edit";// HttpApi.POST_PowerStation_List;
        String requestUrl = HttpApi.B_POST_GET_MANAGE_EDIT;
        JsonObject json = new JsonObject();
        if (!TextUtils.isEmpty(staffBean.getUserId())) {
            json.addProperty("userId", staffBean.getUserId());
@@ -201,13 +244,13 @@
    }
    /**
     * 员工删除
     * 员工删除(B端)
     *
     * @param staffBean     员工对象
     * @param cloudCallBeak -
     */
    public void getStaffDelete(StaffBean staffBean, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = "/home-wisdom/app/powerStation/user/manage/delete";// HttpApi.POST_PowerStation_List;
        String requestUrl = HttpApi.B_POST_GET_MANAGE_DELETE;
        JsonObject json = new JsonObject();
        json.addProperty("userId", staffBean.getUserId());
@@ -228,4 +271,211 @@
        });
    }
    /**
     * 获取成员列表(C端)
     *
     * @param memberBean    成员对象
     * @param cloudCallBeak -
     */
    public void getMemberList(MemberBean memberBean, CloudCallBeak<List<MemberBean>> cloudCallBeak) {
        String requestUrl = HttpApi.C_POST_MEMBER_LIST;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", memberBean.getHomeId());
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (TextUtils.isEmpty(jsonStr)) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(new ArrayList<>());
                    }
                }
                Gson gson = new Gson();
                Type type = new TypeToken<List<MemberBean>>() {
                }.getType();
                List<MemberBean> memberBeanList = gson.fromJson(jsonStr, type);
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(memberBeanList);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 添加成员(C端)
     *
     * @param memberBean    成员对象
     * @param cloudCallBeak -
     */
    public void getMemberAdd(MemberBean memberBean, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.C_POST_MEMBER_ADD;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", memberBean.getHomeId());
        json.addProperty("account", memberBean.getAccount());
        json.addProperty("childAccountType", memberBean.getChildAccountType());////子账户类型(ORDINARY :普通成员,DEBUG : 调试人员,ADMIN : 管理员,VIEW : 仅查看)
        json.addProperty("nickName", memberBean.getNickName());
        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);
                }
            }
        });
    }
    /**
     * 编辑成员(C端)
     *
     * @param memberBean    成员对象
     * @param cloudCallBeak -
     */
    public void getMemberEdit(MemberBean memberBean, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.C_POST_MEMBER_EDIT;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", memberBean.getHomeId());
        json.addProperty("childAccountId", memberBean.getChildAccountId());
        json.addProperty("childId", memberBean.getId());//查找子账号接口获取到的数据(主键id==childId)
        json.addProperty("childAccountType", memberBean.getChildAccountType());////子账户类型(ORDINARY :普通成员,DEBUG : 调试人员,ADMIN : 管理员,VIEW : 仅查看)
        json.addProperty("nickName", memberBean.getNickName());
//        json.addProperty("isRemoteControl", memberBean.getNickName());//远程控制
//        json.addProperty("isAllowCreateScene", memberBean.getNickName());//创建场景
        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);
                }
            }
        });
    }
    /**
     * 删除成员(C端)
     *
     * @param memberBean    成员对象
     * @param cloudCallBeak -
     */
    public void getMemberDelete(MemberBean memberBean, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.C_POST_MEMBER_DELETE;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", memberBean.getHomeId());
        json.addProperty("childAccountId", memberBean.getChildAccountId());
        json.addProperty("childId", memberBean.getId());//查找子账号接口获取到的数据(主键id==childId)
        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 getHeadPIortrait(MemberBean memberBean, CloudCallBeak<byte[]> cloudCallBeak) {
        String requestUrl = HttpApi.C_POST_HOME_GETHEADPÏORTRAIT;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", memberBean.getHomeId());
        json.addProperty("childAccountId", memberBean.getChildAccountId());
//        json.addProperty("childId", memberBean.getChildAccountId());//查找子账号接口获取到的数据(主键id==childId)
        HttpClient.getInstance().downLoadFile(requestUrl, new CloudCallBeak<ResponseBody>() {
            @Override
            public void onSuccess(ResponseBody zipData) {
                HdlThreadLogic.runSubThread(new Runnable() {
                    @Override
                    public void run() {
                        byte[] buf = new byte[1204 * 4];
                        int len = 0;
                        try {
                            long total = zipData.contentLength();
                            if (total == 0) {
                                if (cloudCallBeak != null) {
                                    cloudCallBeak.onSuccess(new byte[]{});
                                }
                                return;
                            }
                            List<Byte> byteList = new ArrayList<>();
                            InputStream is = zipData.byteStream();
                            while ((len = is.read(buf)) != -1) {
                                for (int i = 0; i < len; i++) {
                                    byteList.add(buf[i]);
                                }
                            }
                            is.close();
                            if (byteList.size() == 0) {
                                if (cloudCallBeak != null) {
                                    cloudCallBeak.onSuccess(new byte[]{});
                                }
                                return;
                            }
                            byte[] newByte = new byte[byteList.size()];
                            for (int i = 0; i < byteList.size(); i++) {
                                newByte[i] = byteList.get(i);
                            }
                            if (cloudCallBeak != null) {
                                cloudCallBeak.onSuccess(newByte);
                            }
                        } catch (Exception e) {
                            if (cloudCallBeak != null) {
                                cloudCallBeak.onSuccess(new byte[]{});
                            }
                        }
                    }
                });
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(new byte[]{});
                }
            }
        });
    }
}