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.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.bean.PageNumberObject; 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; /** * 成员逻辑 */ public class HdlMemberLogic { private static volatile HdlMemberLogic sHdlMemberLogic; /** * 获取当前对象 * * @return HdlAccountLogic */ public static synchronized HdlMemberLogic getInstance() { if (sHdlMemberLogic == null) { synchronized (HdlMemberLogic.class) { if (sHdlMemberLogic == null) { sHdlMemberLogic = new HdlMemberLogic(); } } } return sHdlMemberLogic; } /** * 获取当前账号在公司的身份 * * @param cloudCallBeak - */ public void getUserRightType(CloudCallBeak cloudCallBeak) { String requestUrl = HttpApi.B_POST_GET_USERRIGHTTYPE; JsonObject json = new JsonObject(); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak() { @Override public void onSuccess(String jsonStr) { if (TextUtils.isEmpty(jsonStr)) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(new UserRightTypeBean()); } } Gson gson = new Gson(); UserRightTypeBean userRightTypeBean = gson.fromJson(jsonStr, UserRightTypeBean.class); if (cloudCallBeak != null) { cloudCallBeak.onSuccess(userRightTypeBean); } } @Override public void onFailure(HDLException e) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(e); } } }); } /** * 获取员工列表(B端) * * @param pageNo 页码 * @param pageSize 页数(一页多少数据) * @param cloudCallBeak - */ public void getStaffList(long pageNo, long pageSize, CloudCallBeak> cloudCallBeak) { String requestUrl = HttpApi.B_POST_GET_LISTBYPAGE; JsonObject json = new JsonObject(); json.addProperty("pageNo", pageNo); json.addProperty("pageSize", pageSize); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak() { @Override public void onSuccess(String jsonStr) { if (TextUtils.isEmpty(jsonStr)) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(new PageNumberObject<>()); } } Gson gson = new Gson(); Type type = new TypeToken>() { }.getType(); PageNumberObject pageNumberObject = gson.fromJson(jsonStr, type); if (cloudCallBeak != null) { cloudCallBeak.onSuccess(pageNumberObject); } } @Override public void onFailure(HDLException e) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(e); } } }); } /** * 获取员工详情(B端) * * @param userId - * @param cloudCallBeak - */ public void getStaffInfo(String userId, CloudCallBeak 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() { @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 cloudCallBeak) { String requestUrl = HttpApi.B_POST_GET_MANAGE_CREATE; JsonObject json = new JsonObject(); if (!TextUtils.isEmpty(staffBean.getUserName())) { json.addProperty("userName", staffBean.getUserName()); } if (staffBean.getUserSex() != 0) { json.addProperty("userSex", staffBean.getUserSex()); } if (!TextUtils.isEmpty(staffBean.getUserPhone())) { json.addProperty("userPhone", staffBean.getUserPhone()); } if (!TextUtils.isEmpty(staffBean.getUserEmail())) { json.addProperty("userEmail", staffBean.getUserEmail()); } HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak() { @Override public void onSuccess(String jsonStr) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); } } @Override public void onFailure(HDLException e) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(e); } } }); } /** * 员工编辑(B端) * * @param staffBean 员工对象 * @param cloudCallBeak - */ public void getStaffEdit(StaffBean staffBean, CloudCallBeak cloudCallBeak) { String requestUrl = HttpApi.B_POST_GET_MANAGE_EDIT; JsonObject json = new JsonObject(); if (!TextUtils.isEmpty(staffBean.getUserId())) { json.addProperty("userId", staffBean.getUserId()); } if (!TextUtils.isEmpty(staffBean.getUserName())) { json.addProperty("userName", staffBean.getUserName()); } if (staffBean.getUserSex() != 0) { json.addProperty("userSex", staffBean.getUserSex()); } if (!TextUtils.isEmpty(staffBean.getUserPhone())) { json.addProperty("userPhone", staffBean.getUserPhone()); } if (!TextUtils.isEmpty(staffBean.getUserEmail())) { json.addProperty("userEmail", staffBean.getUserEmail()); } HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak() { @Override public void onSuccess(String jsonStr) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); } } @Override public void onFailure(HDLException e) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(e); } } }); } /** * 员工删除(B端) * * @param staffBean 员工对象 * @param cloudCallBeak - */ public void getStaffDelete(StaffBean staffBean, CloudCallBeak cloudCallBeak) { String requestUrl = HttpApi.B_POST_GET_MANAGE_DELETE; JsonObject json = new JsonObject(); json.addProperty("userId", staffBean.getUserId()); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak() { @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 getMemberList(MemberBean memberBean, CloudCallBeak> 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() { @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>() { }.getType(); List 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 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() { @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 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() { @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 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() { @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 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() { @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 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[]{}); } } }); } }