wjc
2023-06-19 a1ac20d9cbe90b566bffe3ed39a6e07700c3248f
app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
New file
@@ -0,0 +1,340 @@
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<HouseInfoBean> getHouseInfoList() {
        return houseInfoList;
    }
    public void setHouseInfoList(List<HouseInfoBean> houseInfoList) {
        this.houseInfoList = houseInfoList;
    }
    public List<HouseListBean> getHouseInfoBeanList() {
        return houseList;
    }
    public void setHouseInfoBeanList(List<HouseListBean> houseListBeanList) {
        this.houseList = houseListBeanList;
    }
    //住宅列表
    private List<HouseListBean> houseList = new ArrayList<>();
    //住宅详情列表
    private List<HouseInfoBean> houseInfoList = new ArrayList<>();
    public HouseListBean getHouseByHouseId(String homeId) {
        return new HouseListBean();
    }
    /**
     * 获取住宅(电站)列表
     *
     * @param pageNo   当前页数
     * @param pageSize 一页大小
     */
    public void getResidenceList(int pageNo, int pageSize, CloudCallBeak<Boolean> 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().toString());
                    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<HouseInfoBean> 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().toString());
                    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<Boolean> 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<Boolean> 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<Boolean> 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<HouseListBean> 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<HouseListBean> getList() {
            return list == null ? new ArrayList<>() : list;
        }
        public void setList(List<HouseListBean> list) {
            this.list = list;
        }
    }
}