package com.hdl.photovoltaic.other; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.photovoltaic.bean.HttpResponsePack; 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 com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.HouseListBean; import java.util.ArrayList; import java.util.List; /** * 住宅逻辑界面 */ public class HdlResidenceLogic { private static volatile HdlResidenceLogic sHdlResidenceLogic; /** * 获取当前对象 * * @return HdlResidenceLogic */ public static synchronized HdlResidenceLogic getInstance() { if (sHdlResidenceLogic == null) { synchronized (HdlResidenceLogic.class) { if (sHdlResidenceLogic == null) { sHdlResidenceLogic = new HdlResidenceLogic(); } } } return sHdlResidenceLogic; } public List getHouseInfoList() { return houseInfoList; } public void setHouseInfoList(List houseInfoList) { this.houseInfoList = houseInfoList; } public List getHouseInfoBeanList() { return houseList; } public void setHouseInfoBeanList(List houseListBeanList) { this.houseList = houseListBeanList; } //住宅列表 private List houseList = new ArrayList<>(); //住宅详情列表 private List houseInfoList = new ArrayList<>(); public HouseListBean getHouseByHouseId(String homeId) { return new HouseListBean(); } /** * 获取住宅(电站)列表 * * @param pageNo 当前页数 * @param pageSize 一页大小 */ public void getResidenceList(int pageNo, int pageSize, CloudCallBeak cloudCallBeak) { if (pageNo == 1) { //第一次进来清空列表 houseList.clear(); } String requestUrl = HttpApi.POST_PowerStation_List; JsonObject json = new JsonObject(); // json.addProperty("powerSort", "descending");//发电功率排序(descending:降序ascending:升序) // json.addProperty("todayElectricitySort", "descending");//今日发电量排序 // json.addProperty("createTimeSort", "descending");//创建时间排序 // json.addProperty("zoneType", "password");//区域 json.addProperty("pageNo", pageNo);//页码 json.addProperty("pageSize", pageSize);//页数 HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(HttpResponsePack httpResponsePack) { if (httpResponsePack != null && httpResponsePack.getData() != null) { Gson gson = new Gson(); String jsonStr = gson.toJson(httpResponsePack.getData()); HouseInfoBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseInfoBeanClass.class); houseList.addAll(houseInfoBeanClass.getList()); //总共有多少页 long totalPage = houseInfoBeanClass.totalPage; if (totalPage == houseInfoBeanClass.getPageNo()) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); } return; } getResidenceList(pageNo + 1, 100, cloudCallBeak); } } @Override public void onFailure(Exception exception) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(exception); } } }); } /** * 获取住宅(电站)详情 * * @param homeId 住宅id * @param cloudCallBeak 回调 */ public void getResidenceInfo(String homeId, CloudCallBeak cloudCallBeak) { String requestUrl = HttpApi.POST_PowerStation_Info; JsonObject json = new JsonObject(); json.addProperty("homeId", homeId);//电站id //json.addProperty("zoneType", "password");//区域 HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(HttpResponsePack httpResponsePack) { if (httpResponsePack != null && httpResponsePack.getData() != null) { Gson gson = new Gson(); String jsonStr = gson.toJson(httpResponsePack.getData()); HouseInfoBean houseInfoBean = gson.fromJson(jsonStr, HouseInfoBean.class); if (cloudCallBeak != null) { cloudCallBeak.onSuccess(houseInfoBean); } } } @Override public void onFailure(Exception exception) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(exception); } } }); } /** * 编辑住宅(电站) * * @param houseInfoBean - * @param cloudCallBeak - */ public void editResidence(HouseInfoBean houseInfoBean, CloudCallBeak cloudCallBeak) { String requestUrl = HttpApi.POST_PowerStation_Edit; JsonObject json = new JsonObject(); JsonObject location = new JsonObject(); json.addProperty("homeId", houseInfoBean.getHomeId()); location.addProperty("nationCode", houseInfoBean.getLocation().getNationCode()); location.addProperty("nationName", houseInfoBean.getLocation().getNationName()); location.addProperty("provinceCode", houseInfoBean.getLocation().getProvinceCode()); location.addProperty("provinceName", houseInfoBean.getLocation().getProvinceName()); location.addProperty("cityCode", houseInfoBean.getLocation().getCityCode()); location.addProperty("cityName", houseInfoBean.getLocation().getCityName()); json.add("location", location); json.addProperty("address", houseInfoBean.getAddress()); json.addProperty("latitude", houseInfoBean.getLatitude()); json.addProperty("longitude", houseInfoBean.getLongitude()); json.addProperty("homeName", houseInfoBean.getHomeName()); json.addProperty("timezone", houseInfoBean.getTimezone()); json.addProperty("powerStationType", houseInfoBean.getPowerStationType()); json.addProperty("workMode", houseInfoBean.getWorkMode()); json.addProperty("installedCapacity", houseInfoBean.getInstalledCapacity()); json.addProperty("productionTime", houseInfoBean.getProductionTime()); json.addProperty("monetaryUnit", houseInfoBean.getMonetaryUnit()); json.addProperty("electrovalence", houseInfoBean.getElectrovalence()); json.addProperty("totalCost", houseInfoBean.getTotalCost()); json.addProperty("zoneType", houseInfoBean.getZoneType()); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(HttpResponsePack httpResponsePack) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); } } @Override public void onFailure(Exception exception) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(exception); } } }); } /** * 删除住宅(电站) * * @param homeId - * @param cloudCallBeak - */ public void delResidence(String homeId, CloudCallBeak cloudCallBeak) { String requestUrl = HttpApi.POST_PowerStation_Remove; JsonObject json = new JsonObject(); json.addProperty("homeId", homeId);//电站id //json.addProperty("zoneType", "password");//区域 HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(HttpResponsePack httpResponsePack) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); } } @Override public void onFailure(Exception exception) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(exception); } } }); } /** * 添加住宅(电站) * * @param houseInfoBean - * @param cloudCallBeak - */ public void addResidence(HouseInfoBean houseInfoBean, CloudCallBeak cloudCallBeak) { String requestUrl = HttpApi.POST_PowerStation_Create; JsonObject json = new JsonObject(); JsonObject location = new JsonObject(); json.addProperty("powerStationImage", ""); location.addProperty("nationCode", houseInfoBean.getLocation().getNationCode()); location.addProperty("nationName", houseInfoBean.getLocation().getNationName()); location.addProperty("provinceCode", houseInfoBean.getLocation().getProvinceCode()); location.addProperty("provinceName", houseInfoBean.getLocation().getProvinceName()); location.addProperty("cityCode", houseInfoBean.getLocation().getCityCode()); location.addProperty("cityName", houseInfoBean.getLocation().getCityName()); json.add("location", location); json.addProperty("address", houseInfoBean.getAddress()); json.addProperty("latitude", houseInfoBean.getLatitude()); json.addProperty("longitude", houseInfoBean.getLongitude()); json.addProperty("homeName", houseInfoBean.getHomeName()); json.addProperty("timezone", houseInfoBean.getTimezone()); json.addProperty("powerStationType", houseInfoBean.getPowerStationType()); json.addProperty("workMode", houseInfoBean.getWorkMode()); json.addProperty("installedCapacity", houseInfoBean.getInstalledCapacity()); json.addProperty("productionTime", houseInfoBean.getProductionTime()); json.addProperty("monetaryUnit", houseInfoBean.getMonetaryUnit()); json.addProperty("electrovalence", houseInfoBean.getElectrovalence()); json.addProperty("totalCost", houseInfoBean.getTotalCost()); json.addProperty("zoneType", houseInfoBean.getZoneType()); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(HttpResponsePack httpResponsePack) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); } } @Override public void onFailure(Exception exception) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(exception); } } }); } static class HouseInfoBeanClass { //总条数 private long totalCount; //总页数 private long totalPage; //当前页 private long pageNo; //页数 private long pageSize; //电站列表 private List list; public long getTotalCount() { return totalCount; } public void setTotalCount(long totalCount) { this.totalCount = totalCount; } public long getTotalPage() { return totalPage; } public void setTotalPage(long totalPage) { this.totalPage = totalPage; } public long getPageNo() { return pageNo; } public void setPageNo(long pageNo) { this.pageNo = pageNo; } public long getPageSize() { return pageSize; } public void setPageSize(long pageSize) { this.pageSize = pageSize; } public List getList() { return list == null ? new ArrayList<>() : list; } public void setList(List list) { this.list = list; } } }