.idea/misc.xml
@@ -1,5 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="DesignSurface"> <option name="filePathToZoomLevelMap"> <map> <entry key="app/src/main/res/layout/activity_home_login.xml" value="0.10030395136778116" /> </map> </option> </component> <component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" /> </project> app/src/main/java/com/hdl/photovoltaic/bean/HttpResponsePack.java
File was renamed from app/src/main/java/com/hdl/photovoltaic/bean/ResponsePack.java @@ -2,7 +2,7 @@ import java.io.Serializable; public class ResponsePack implements Serializable { public class HttpResponsePack implements Serializable { /** * 状态码 */ app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java
File was renamed from app/src/main/java/com/hdl/photovoltaic/config/ConfigManagement.java @@ -2,7 +2,7 @@ import com.hdl.photovoltaic.BuildConfig; public class ConfigManagement { public class AppConfigManage { /*********是否正式服务器*********/ app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
New file @@ -0,0 +1,14 @@ package com.hdl.photovoltaic.config; public class ConstantManage { public static final String ACCOUNT = "account"; public static final String PASSWORD = "password"; public static final String USERID = "userId"; private static final String LOGIN_STATE = "login_state"; public static final String LOGIN_TOKEN = "login_token"; public static final String HOME_NAME = "homeName"; public static final String REFRESH_TOKEN = "refresh_token"; public static final String HOME_ID = "homeId"; } app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
New file @@ -0,0 +1,207 @@ package com.hdl.photovoltaic.config; import android.text.TextUtils; import com.google.gson.Gson; import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.ui.bean.HouseListBean; import java.util.ArrayList; import java.util.List; public class UserConfigManage { private static UserConfigManage sUserConfigManage = null; /** * 获取当前对象 * * @return UserConfigManage */ public static UserConfigManage getInstance() { if (sUserConfigManage == null) { sUserConfigManage = new UserConfigManage(); sUserConfigManage.reFresh(); } return sUserConfigManage; } //当前账号:刷新Token用的token(不用记录什么有效期,如果刷新失败,就踢人即可) private String refreshToken; //账户登录成功时的时间 private long loginDateTime; //当前登录的帐号 private String account; //添加到Token头部的东西(不要理它,只给底层使用) private String headerPrefix; //登陆账号的Guid,也是账号的userId private String userId; //当前的住宅ID private String homeId; //是否登录状态 private boolean isLogin; //是否是B端账号登录 private boolean isB; //住宅文件列表 public List<String> homeFilePathList = new ArrayList<>(); //判断当前时间点是否能够自动登录 public boolean isAutoLogin() { //7天内自动登录 return ((System.currentTimeMillis() - loginDateTime) < 7 * 24 * 60 * 60); } //是否同意隐私政策 private boolean acceiptPolicy; //当前帐号的Token(这个东西不用存了) private String token; //远程连接的Mqtt的客户端ID public String connEmqClientId; //当前登录的账号是不是之前的账号 public boolean theSameLoginAccount; public String getRefreshToken() { return refreshToken == null ? "" : refreshToken; } public void setRefreshToken(String refreshToken) { this.refreshToken = refreshToken; } public long getLoginDateTime() { return loginDateTime; } public void setLoginDateTime(long loginDateTime) { this.loginDateTime = loginDateTime; } public String getAccount() { return account == null ? "" : account; } public void setAccount(String account) { this.account = account; } public String getHeaderPrefix() { return headerPrefix == null ? "" : headerPrefix; } public void setHeaderPrefix(String headerPrefix) { this.headerPrefix = headerPrefix; } public String getUserId() { return userId == null ? "" : userId; } public void setUserId(String userId) { this.userId = userId; } public String getHomeId() { return homeId == null ? "" : homeId; } public void setHomeId(String homeId) { this.homeId = homeId; } public boolean isAcceiptPolicy() { return acceiptPolicy; } public void setAcceiptPolicy(boolean acceiptPolicy) { this.acceiptPolicy = acceiptPolicy; } public String getToken() { return token == null ? "" : token; } public void setToken(String token) { this.token = token; } public boolean isLogin() { return isLogin; } public void setLogin(boolean login) { isLogin = login; } public boolean isTheSameLoginAccount() { return theSameLoginAccount; } public void setTheSameLoginAccount(boolean theSameLoginAccount) { this.theSameLoginAccount = theSameLoginAccount; } public boolean isB() { return isB; } public void setB(boolean b) { isB = b; } /** * 当前住宅 */ private HouseListBean m_Home = null; /** * 当前住宅 */ public HouseListBean home() { if (m_Home != null) { return m_Home; } m_Home = HdlResidenceLogic.getInstance().getHouseByHouseId(homeId); if (m_Home == null) { m_Home = new HouseListBean(); } return m_Home; } /** * 刷新 */ private void reFresh() { String str = HdlFileLogic.getInstance().readFile(FILENAME); if (!TextUtils.isEmpty(str) && str.length() > 0) { //读取保存的数据 Gson gson = new Gson(); sUserConfigManage = gson.fromJson(str, UserConfigManage.class); } } /** * 保存 */ public void Save() { if (sUserConfigManage == null) { HdlLogLogic.print("UserConfigManage", "保存用户信息文件失败"); return; } Gson gson = new Gson(); String json = gson.toJson(sUserConfigManage); HdlFileLogic.getInstance().writeFile(FILENAME, json); } /// <summary> /// Config文件名 /// </summary> private static final String FILENAME = "UserConfigManage.json"; } app/src/main/java/com/hdl/photovoltaic/config/UserManagement.java
File was deleted app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java
@@ -9,9 +9,11 @@ import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.hdl.hdlhttp.utils.GsonConvert; import com.hdl.photovoltaic.bean.ResponsePack; import com.hdl.photovoltaic.config.ConfigManagement; import com.hdl.photovoltaic.bean.HttpResponsePack; import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.utils.HDLMD5Utils; import java.io.IOException; @@ -55,7 +57,7 @@ * @param isExecute 是否是同步(true=同步,false=异步) */ public void requestHttp(String requestUrl, String json, boolean isBasicService, boolean isExecute, BaseSuccessFailureCallBeak baseSuccessCallBeak) { String fullUrl = ConfigManagement.getUserRegionUrl() + requestUrl; String fullUrl = AppConfigManage.getUserRegionUrl() + requestUrl; this.requestHttps(fullUrl, json, isBasicService, isExecute, baseSuccessCallBeak); } @@ -71,7 +73,6 @@ this.requestHttps(fullUrl, json, isBasicService, isExecute, baseSuccessCallBeak); } /** * 请求服务器的方法 * @@ -85,19 +86,22 @@ @Override public void run() { try { HdlLogLogic.print("http->发送->", fullUrl + "\r\n" + json); OkHttpClient okHttpClient = new OkHttpClient(); RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), getJson(json)); final Request request = new Request.Builder() .url(fullUrl)//请求的url// .addHeader("Authorization", "accessToken") .addHeader("Authorization", UserConfigManage.getInstance().getHeaderPrefix()+UserConfigManage.getInstance().getToken()) .post(requestBody) .build(); if (isExecute) { Response response = okHttpClient.newCall(request).execute();//同步 if (response.isSuccessful()) { String s = Objects.requireNonNull(response.body()).string(); ResponsePack responsePack = new Gson().fromJson(s, ResponsePack.class); baseSuccessCallBeak.onSuccess(responsePack); HttpResponsePack httpResponsePack = new Gson().fromJson(s, HttpResponsePack.class); baseSuccessCallBeak.onSuccess(httpResponsePack); HdlLogLogic.print("http->回复->", response.request().url()+"\r\n" + s); } else { //throw new IOException("Unexpected code " + response); baseSuccessCallBeak.onFailure(new Exception()); @@ -109,6 +113,7 @@ @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { System.out.println("失败" + e.toString()); HdlLogLogic.print("http->回复->", "\r\n" + e.getMessage()); } @Override @@ -116,8 +121,9 @@ System.out.println("url连接信息" + response.code()); if (response.code() == 200) { String s = Objects.requireNonNull(response.body()).string(); ResponsePack responsePack = new Gson().fromJson(s, ResponsePack.class); baseSuccessCallBeak.onSuccess(responsePack); HttpResponsePack httpResponsePack = new Gson().fromJson(s, HttpResponsePack.class); baseSuccessCallBeak.onSuccess(httpResponsePack); HdlLogLogic.print("http->回复->", "\r\n" + s); } else { baseSuccessCallBeak.onFailure(new Exception()); } @@ -126,10 +132,10 @@ } } catch (Exception e) { baseSuccessCallBeak.onFailure(e); HdlLogLogic.print("http->回复->", "\r\n" + e.getMessage()); } } }).start(); } @@ -138,8 +144,8 @@ */ private String getJson(String json) { final String timestamp = String.valueOf(System.currentTimeMillis()); final String appKey = ConfigManagement.getAppKey(); final String appSecret = ConfigManagement.getAppSecret(); final String appKey = AppConfigManage.getAppKey(); final String appSecret = AppConfigManage.getAppSecret(); JsonObject jsonObject = new Gson().fromJson(json, JsonObject.class); if (jsonObject == null) { jsonObject = new JsonObject(); app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
@@ -24,4 +24,17 @@ public static final String POST_UPLOAD_IMAGE_NEW = "/basis-cosmos/file/upload"; //查询图片路径 public static final String POST_GET_IMAGE_URL = "/home-wisdom/app/images/get_image_url"; /*-----电站列表---------*/ //电站列表 public static final String POST_PowerStation_List = "/home-wisdom/app/powerStation/page"; //电站创建 public static final String POST_PowerStation_Create = "/home-wisdom/app/powerStation/create"; //电站删除 public static final String POST_PowerStation_Remove = "/home-wisdom/app/powerStation/remove"; //电站详情 public static final String POST_PowerStation_Info = "/home-wisdom/app/powerStation/info"; //电站编辑 public static final String POST_PowerStation_Edit = "/home-wisdom/app/powerStation/edit"; } app/src/main/java/com/hdl/photovoltaic/listener/BaseSuccessFailureCallBeak.java
@@ -1,11 +1,11 @@ package com.hdl.photovoltaic.listener; import com.hdl.photovoltaic.bean.ResponsePack; import com.hdl.photovoltaic.bean.HttpResponsePack; public interface BaseSuccessFailureCallBeak extends BaseFailureCallBack { /** * 成功回调 */ void onSuccess(ResponsePack responsePack); void onSuccess(HttpResponsePack httpResponsePack); } app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -3,10 +3,11 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.photovoltaic.bean.LoginBean; import com.hdl.photovoltaic.bean.LoginUserRegionBean; import com.hdl.photovoltaic.bean.ResponsePack; import com.hdl.photovoltaic.config.ConfigManagement; import com.hdl.photovoltaic.ui.bean.LoginBean; import com.hdl.photovoltaic.ui.bean.LoginUserRegionBean; import com.hdl.photovoltaic.bean.HttpResponsePack; import com.hdl.photovoltaic.config.AppConfigManage; 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; @@ -36,20 +37,20 @@ /** * 初始化账号的Url区域地址(可能状态码:Success NotAccount NotNetWork) * 初始化账号的Url区域地址 * * @param i_account 账号 */ public void regionByAccount(String i_account, CloudCallBeak<LoginUserRegionBean> cloudCallBeak) { JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("account", i_account); String full = ConfigManagement.getAPPRegionUrl() + HttpApi.POST_RegionByUserAccount; String full = AppConfigManage.getAPPRegionUrl() + HttpApi.POST_RegionByUserAccount; HttpClient.getInstance().requestFullHttp(full, jsonObject.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(ResponsePack responsePack) { if (responsePack.getData() != null) { public void onSuccess(HttpResponsePack httpResponsePack) { if (httpResponsePack.getData() != null) { Gson gson = new Gson(); String json = gson.toJson(responsePack.getData()); String json = gson.toJson(httpResponsePack.getData()); LoginUserRegionBean loginUserRegionBean = new Gson().fromJson(json, LoginUserRegionBean.class); if (cloudCallBeak != null) { cloudCallBeak.onSuccess(loginUserRegionBean); @@ -86,11 +87,12 @@ HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() { @Override public void onSuccess(ResponsePack responsePack) { if (responsePack.getData() != null) { public void onSuccess(HttpResponsePack httpResponsePack) { if (httpResponsePack.getData() != null) { Gson gson = new Gson(); String json = gson.toJson(responsePack.getData()); String json = gson.toJson(httpResponsePack.getData()); LoginBean loginBean = new Gson().fromJson(json, LoginBean.class); saveUserData(loginBean); if (cloudCallBeak != null) { cloudCallBeak.onSuccess(loginBean); } else { @@ -120,5 +122,23 @@ return mailbox.matches(regex); } /** * 登录成功保存 */ private void saveUserData(LoginBean obj) { if (obj != null) { UserConfigManage.getInstance().setLogin(true); UserConfigManage.getInstance().setAcceiptPolicy(true); UserConfigManage.getInstance().setLoginDateTime(System.currentTimeMillis()); UserConfigManage.getInstance().setUserId(obj.getUserId()); UserConfigManage.getInstance().setAccount(obj.getAccount()); UserConfigManage.getInstance().setToken(obj.getAccessToken()); UserConfigManage.getInstance().setHeaderPrefix(obj.getHeaderPrefix()); UserConfigManage.getInstance().setRefreshToken(obj.getRefreshToken()); boolean isUserId = UserConfigManage.getInstance().getUserId().equals(obj.getUserId()); UserConfigManage.getInstance().setTheSameLoginAccount(isUserId); } } } app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java
@@ -27,4 +27,5 @@ } app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
New file @@ -0,0 +1,320 @@ 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; 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) { if (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()) { cloudCallBeak.onSuccess(true); return; } getResidenceList(pageNo + 1, 100, cloudCallBeak); } else { cloudCallBeak.onSuccess(false); } } } @Override public void onFailure(Exception exception) { cloudCallBeak.onFailure(exception); } }); } /** * 获取住宅(电站)详情 * * @param homeId 住宅id * @param cloudCallBeak 回调 */ public void getResidenceInfo(String homeId, CloudCallBeak<HouseInfoBean> cloudCallBeak) { String requestUrl = HttpApi.POST_GET_MEMBER_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) { if (httpResponsePack.getData() != null) { Gson gson = new Gson(); String jsonStr = gson.toJson(httpResponsePack.getData().toString()); HouseInfoBean houseInfoBean = gson.fromJson(jsonStr, HouseInfoBean.class); cloudCallBeak.onSuccess(houseInfoBean); } else { cloudCallBeak.onSuccess(null); } } } @Override public void onFailure(Exception exception) { cloudCallBeak.onFailure(exception); } }); } /** * 编辑住宅(电站) * * @param houseInfoBean - * @param cloudCallBeak - */ public void editResidence(HouseInfoBean houseInfoBean, CloudCallBeak<Boolean> cloudCallBeak) { String requestUrl = HttpApi.POST_PowerStation_Create; 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) { cloudCallBeak.onSuccess(true); } @Override public void onFailure(Exception exception) { 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) { cloudCallBeak.onSuccess(true); } @Override public void onFailure(Exception exception) { 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) { cloudCallBeak.onSuccess(true); } @Override public void onFailure(Exception exception) { 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; } } } app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
@@ -19,11 +19,14 @@ import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.bean.LoginUserRegionBean; import com.hdl.photovoltaic.config.ConfigManagement; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.ui.bean.LoginBean; import com.hdl.photovoltaic.ui.bean.LoginUserRegionBean; import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.databinding.ActivityHomeLoginBinding; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; public class HomeLoginActivity extends CustomBaseActivity { @@ -48,6 +51,10 @@ private void initView() { setStringDifferentColors(viewBinding.homeLoginPrivacyTv); //测试用 viewBinding.homeLoginAccountEt.setText("18402017839"); viewBinding.homeLoginPasswordEt.setText("123456"); isLoginTextViewEnabled(); } private void initEvent() { @@ -139,7 +146,10 @@ viewBinding.homeLoginTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean isLogin = isLocalCheckAccountAndPassword(); String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", ""); String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", ""); boolean isLogin = isLocalCheckAccountAndPassword(account, password); if (!isLogin) { return; } @@ -148,9 +158,49 @@ // //隐私协议提示 // return; // } restoreButtonStyleToInitializeState(); showLoading(getString(R.string.home_login_登录中)); HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<LoginUserRegionBean>() { @Override public void onSuccess(LoginUserRegionBean obj) { AppConfigManage.setUserRegionUrl(obj.getRegionUrl()); HdlAccountLogic.getInstance().loginByPassword(account, password, new CloudCallBeak<LoginBean>() { @Override public void onSuccess(LoginBean obj) { HdlThreadLogic.runMainThread(new Runnable() { @Override public void run() { HdlResidenceLogic.getInstance().getResidenceList(1, 100, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { startActivity(MyPowerStationActivity.class); } @Override public void onFailure(Exception exception) { } }); hideLoading(); restoreButtonStyleToInitializeState(); startActivity(MyPowerStationActivity.class); } }, null, null); } @Override public void onFailure(Exception exception) { hideLoading(); } }); } @Override public void onFailure(Exception exception) { hideLoading(); } }); } @@ -159,19 +209,7 @@ viewBinding.homeLoginExperienceTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // startActivity(MyPowerStationActivity.class); HdlAccountLogic.getInstance().regionByAccount("18402017839", new CloudCallBeak<LoginUserRegionBean>() { @Override public void onSuccess(LoginUserRegionBean obj) { ConfigManagement.setUserRegionUrl(obj.getRegionUrl()); } @Override public void onFailure(Exception exception) { } }); startActivity(MyPowerStationActivity.class); } }); @@ -189,12 +227,13 @@ /** * 本地校验输入账号或者密码是否正确 * 正确返回<true>true</true> * 一般方法 * * @param account 账号 * @param password 密码 * 正确返回<true>true</true> * 一般方法 */ private boolean isLocalCheckAccountAndPassword() { String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", ""); String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", ""); private boolean isLocalCheckAccountAndPassword(String account, String password) { if (TextUtils.isEmpty(account)) { viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_D34545)); viewBinding.homeLoginAccountTextErrorTv.setText(R.string.home_login_error_账号不能为空); app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
@@ -10,15 +10,15 @@ import androidx.recyclerview.widget.RecyclerView; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.HouseListBean; import java.util.List; public class HouseInfoAdapter extends RecyclerView.Adapter<HouseInfoAdapter.MyViewHolder> { private List<HouseInfoBean> mList; private List<HouseListBean> mList; public HouseInfoAdapter(List<HouseInfoBean> list) { public HouseInfoAdapter(List<HouseListBean> list) { this.mList = list; } @@ -31,8 +31,8 @@ @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { HouseInfoBean houseInfoBean = this.mList.get(position); holder.homeNameTv.setText(houseInfoBean.getName()); HouseListBean houseListBean = this.mList.get(position); holder.homeNameTv.setText(houseListBean.getHomeName()); } @@ -42,7 +42,7 @@ } public void setList(List<HouseInfoBean> list) { public void setList(List<HouseListBean> list) { this.mList = list; } app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseInfoBean.java
@@ -1,17 +1,199 @@ package com.hdl.photovoltaic.ui.bean; import java.io.Serializable; public class HouseInfoBean implements Serializable { public class HouseInfoBean { private String homeId;//电站id private Location location;//电站地址 private String address;//详细地址 private String latitude;//纬度 private String longitude;//经度 private String homeName;//电站名称 private String timezone;//时区 private int powerStationType;//电站类型(DOMESTIC_ROOF:家用屋顶,COMMERCIAL_ROOF:商业用屋顶,INDUSTRIAL_ROOF:工业用屋顶,SURFACE_POWER_STATION:地面电站) private int workMode;//工作模式(self_use:自发自用,peak_load_shifting:削峰填谷,battery_priority:电池优先,auto:智能模式) private String installedCapacity;//装机容量 private long productionTime;//投产日志 private String monetaryUnit;//货币单位 private String electrovalence;//电价 private String totalCost;//总成本 private String name; private String zoneType;//区域 public String getName() { return name; public String getHomeId() { return homeId == null ? "" : homeId; } public void setName(String name) { this.name = name; public void setHomeId(String homeId) { this.homeId = homeId; } public Location getLocation() { return location == null ? new Location() : location; } public void setLocation(Location location) { this.location = location; } public String getAddress() { return address == null ? "" : address; } public void setAddress(String address) { this.address = address; } public String getLatitude() { return latitude == null ? "" : latitude; } public void setLatitude(String latitude) { this.latitude = latitude; } public String getLongitude() { return longitude == null ? "" : longitude; } public void setLongitude(String longitude) { this.longitude = longitude; } public String getHomeName() { return homeName == null ? "" : homeName; } public void setHomeName(String homeName) { this.homeName = homeName; } public String getTimezone() { return timezone == null ? "" : timezone; } public void setTimezone(String timezone) { this.timezone = timezone; } public int getPowerStationType() { return powerStationType; } public void setPowerStationType(int powerStationType) { this.powerStationType = powerStationType; } public int getWorkMode() { return workMode; } public void setWorkMode(int workMode) { this.workMode = workMode; } public String getInstalledCapacity() { return installedCapacity == null ? "" : installedCapacity; } public void setInstalledCapacity(String installedCapacity) { this.installedCapacity = installedCapacity; } public long getProductionTime() { return productionTime; } public void setProductionTime(long productionTime) { this.productionTime = productionTime; } public String getMonetaryUnit() { return monetaryUnit == null ? "" : monetaryUnit; } public void setMonetaryUnit(String monetaryUnit) { this.monetaryUnit = monetaryUnit; } public String getElectrovalence() { return electrovalence == null ? "" : electrovalence; } public void setElectrovalence(String electrovalence) { this.electrovalence = electrovalence; } public String getTotalCost() { return totalCost == null ? "" : totalCost; } public void setTotalCost(String totalCost) { this.totalCost = totalCost; } public String getZoneType() { return zoneType == null ? "" : zoneType; } public void setZoneType(String zoneType) { this.zoneType = zoneType; } public static class Location { private String nationCode;//国家编码 private String nationName;//国家名称 private String provinceCode;//省编码 private String provinceName;//省名称 private String cityCode;//是编码 private String cityName;//是名称 public String getNationCode() { return nationCode == null ? "" : nationCode; } public void setNationCode(String nationCode) { this.nationCode = nationCode; } public String getNationName() { return nationName == null ? "" : nationName; } public void setNationName(String nationName) { this.nationName = nationName; } public String getProvinceCode() { return provinceCode == null ? "" : provinceCode; } public void setProvinceCode(String provinceCode) { this.provinceCode = provinceCode; } public String getCityCode() { return cityCode == null ? "" : cityCode; } public void setCityCode(String cityCode) { this.cityCode = cityCode; } public String getCityName() { return cityName == null ? "" : cityName; } public void setCityName(String cityName) { this.cityName = cityName; } public String getProvinceName() { return provinceName == null ? "" : provinceName; } public void setProvinceName(String provinceName) { this.provinceName = provinceName; } } } app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseListBean.java
New file @@ -0,0 +1,70 @@ package com.hdl.photovoltaic.ui.bean; import java.io.Serializable; public class HouseListBean implements Serializable { private String homeId;//电站id private String homeImage;//电站图片 private String homeName;//电站名称 private String installedCapacity;//装机容量 private String power;//发电功率 private String todayElectricity;//今天发电量 private int powerStationStatus;//电站状态(电站状态 1:正常(运行),2:离线,3:连接中,4:故障) public String getHomeId() { return homeId == null ? "" : homeId; } public void setHomeId(String homeId) { this.homeId = homeId; } public String getHomeImage() { return homeImage == null ? "" : homeImage; } public void setHomeImage(String homeImage) { this.homeImage = homeImage; } public String getHomeName() { return homeName == null ? "" : homeName; } public void setHomeName(String homeName) { this.homeName = homeName; } public String getInstalledCapacity() { return installedCapacity == null ? "" : installedCapacity; } public void setInstalledCapacity(String installedCapacity) { this.installedCapacity = installedCapacity; } public String getPower() { return power == null ? "" : power; } public void setPower(String power) { this.power = power; } public String getTodayElectricity() { return todayElectricity == null ? "" : todayElectricity; } public void setTodayElectricity(String todayElectricity) { this.todayElectricity = todayElectricity; } public int getPowerStationStatus() { return powerStationStatus; } public void setPowerStationStatus(int powerStationStatus) { this.powerStationStatus = powerStationStatus; } } app/src/main/java/com/hdl/photovoltaic/ui/bean/LoginBean.java
File was renamed from app/src/main/java/com/hdl/photovoltaic/bean/LoginBean.java @@ -1,4 +1,4 @@ package com.hdl.photovoltaic.bean; package com.hdl.photovoltaic.ui.bean; import androidx.annotation.NonNull; @@ -7,29 +7,59 @@ public class LoginBean implements Serializable { /// 用户有效身份Token private String accessToken; /// 用户有效身份Token过期时间 private String expiration; /// 刷新Token private String refreshToken; /// 刷新Token过期时间 private String refreshExpiration; /// 用户唯一ID private String userId; /// 登录帐号 private String account; /// headerPrefix private String headerPrefix; private String tokenUuid; private String tokenType; ///小区ID private String companyId; /// 用户有效身份Token过期时间 private String expiration; ///过期时间(秒) private String expiresIn; private String refreshExpiresIn; private String userType; /// 认证请求头前缀 private String headerPrefix; //用户姓名 private String name; /// 刷新Token过期时间 private String refreshExpiration; /// private String refreshExpiresIn; /// 刷新Token private String refreshToken; ///角色 private String role; ///租户ID private String tenantId; /// private String tokenType; private String tokenUuid; /// 用户id private String userId; ///手机号 private String userPhone; ///用户类型 private String userType; /// 用户邮箱 private String userEmail; ///企业单位id private String companyId; public String getRole() { return this.role == null ? "" : role; } public void setRole(String role) { this.role = role; } public String getTenantId() { return tenantId == null ? "" : tenantId; } public void setTenantId(String tenantId) { this.tenantId = tenantId; } @NonNull public String getAccessToken() { app/src/main/java/com/hdl/photovoltaic/ui/bean/LoginUserRegionBean.java
File was renamed from app/src/main/java/com/hdl/photovoltaic/bean/LoginUserRegionBean.java @@ -1,4 +1,4 @@ package com.hdl.photovoltaic.bean; package com.hdl.photovoltaic.ui.bean; import androidx.annotation.NonNull; app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -14,9 +14,8 @@ import com.hdl.photovoltaic.databinding.FragmentHouseListBinding; import com.hdl.photovoltaic.base.CustomBaseFragment; import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter; import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.HouseListBean; import com.hdl.photovoltaic.ui.device.FastScanActivity; import com.hdl.photovoltaic.utils.FlashLightUtils; import java.util.ArrayList; import java.util.List; @@ -26,7 +25,7 @@ private HouseInfoAdapter houseInfoAdapter; private CameraManager manager; private List<HouseInfoBean> houseInfoBeanList = null; private List<HouseListBean> houseListBeanList = null; @Override public Object getContentView() { @@ -74,7 +73,7 @@ viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setVisibility(View.VISIBLE); viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setImageResource(R.drawable.add); LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity); houseInfoAdapter = new HouseInfoAdapter(this.houseInfoBeanList); houseInfoAdapter = new HouseInfoAdapter(this.houseListBeanList); viewBinding.fragmentHouseSrlListRc.setLayoutManager(linearLayout); viewBinding.fragmentHouseSrlListRc.setAdapter(houseInfoAdapter); @@ -82,11 +81,11 @@ } private void initData() { this.houseInfoBeanList = new ArrayList<>(); this.houseListBeanList = new ArrayList<>(); for (int i = 0; i < 11; i++) { HouseInfoBean houseInfoBean = new HouseInfoBean(); houseInfoBean.setName("电站" + i); this.houseInfoBeanList.add(houseInfoBean); HouseListBean houseListBean = new HouseListBean(); houseListBean.setHomeName("电站" + i); this.houseListBeanList.add(houseListBean); } app/src/main/java/com/hdl/photovoltaic/utils/SharedPreUtils.java
New file @@ -0,0 +1,41 @@ package com.hdl.photovoltaic.utils; import android.content.Context; import android.content.SharedPreferences; public class SharedPreUtils { /** * 用户数据的存储 * * @param key 键名 * @param value 键值 * @param context 上下文 * @return - */ public static boolean saveMyDataInfo(String key, String value, Context context) { // 获取SharedPreferences对象,同时指定文件名称和访问权限 SharedPreferences sp = context.getSharedPreferences("MyData", Context.MODE_PRIVATE); // 获取获取SharedPreferences的编辑器对象 SharedPreferences.Editor edit = sp.edit(); // 通过编辑器进行数据的存储 edit.putString(key, value); edit.apply(); return true; } /** * 读取用户数据 * * @param key 键名 * @param context 上下文 * @return -value */ public String getSharedPreferencesKey(String key, Context context) { // 获取SharedPreferences对象,同时指定文件名称和访问权限 SharedPreferences sp = context.getSharedPreferences("MyData", Context.MODE_PRIVATE); return sp.getString(key, ""); } } app/src/main/res/values/strings.xml
@@ -21,6 +21,7 @@ <string name="home_login_注册">注册</string> <string name="home_login_忘记密码">忘记密码</string> <string name="home_login_登录">登录</string> <string name="home_login_登录中">登录中...</string> <string name="home_login_体验电站">体验电站</string> <string name="home_login_同意_服务协议">同意《服务协议》和《用户信息保护规定》</string> <string name="home_login_error_账号不能为空">账号不能为空.</string>