From d1ebb94e1a17b7c25d4fcf73d85345d92cc86b5c Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 02 一月 2024 18:41:34 +0800
Subject: [PATCH] 2024年01月02日18:41:32
---
app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java | 187 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 142 insertions(+), 45 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
index 93f1665..f6c19bb 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
@@ -21,6 +21,8 @@
public class HdlMessageLogic {
private static volatile HdlMessageLogic sHdlMessageLogic;
+ private int pageSize = 50;//椤垫暟
+
/**
* 鑾峰彇褰撳墠瀵硅薄
*
@@ -41,7 +43,7 @@
/**
* 鑾峰彇鍙戠敓涓紦瀛樺垪琛�
*/
- public List<MessageBean> getRecoverMessageMemoryList() {
+ public List<MessageBean> getNascentMessageMemoryList() {
if (this.mListMessage == null || this.mListMessage.size() == 0) {
return new ArrayList<>();
}
@@ -57,9 +59,9 @@
}
/**
- * 鑾峰彇澶勭悊涓紦瀛樺垪琛�
+ * 鑾峰彇鎭㈠涓紦瀛樺垪琛�
*/
- public List<MessageBean> getNascentMessageMemoryList() {
+ public List<MessageBean> getRecoverMessageMemoryList() {
if (this.mListMessage == null || this.mListMessage.size() == 0) {
return new ArrayList<>();
}
@@ -74,10 +76,15 @@
return newList;
}
- public List<MessageBean> getListMessage() {
+ public List<MessageBean> getAllMessageList() {
return mListMessage;
}
+ /**
+ * 娣诲姞娑堟伅鍒板垪琛ㄩ噷闈�
+ *
+ * @param list -
+ */
public void setListMessage(List<MessageBean> list) {
try {
if (list == null || list.size() == 0) {
@@ -87,23 +94,37 @@
this.mListMessage.addAll(list);
return;
}
- List<MessageBean> newList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
- MessageBean messageBean = list.get(i);
- boolean if_boolean = false;
- for (int j = 0; j < mListMessage.size(); j++) {
- if (mListMessage.get(j).toString().equals(messageBean.getMsgId().toString())) {
- mListMessage.remove(j);
- mListMessage.add(j, messageBean);
- if_boolean = true;
- break;
- }
- }
- if (!if_boolean) {
- newList.add(messageBean);
+ this.setListMessage(list.get(i));
+ }
+ } catch (Exception ignored) {
+ }
+ }
+
+ /**
+ * 娣诲姞娑堟伅鍒板垪琛ㄩ噷闈�
+ *
+ * @param messageBean -
+ */
+ public void setListMessage(MessageBean messageBean) {
+ try {
+ if (messageBean == null) {
+ return;
+ }
+ boolean if_boolean = false;
+ for (int i = 0; i < mListMessage.size(); i++) {
+ if (mListMessage.get(i).getMsgId().toString().equals(messageBean.getMsgId().toString())) {
+ //瀛樺湪鏇挎崲
+ mListMessage.remove(i);
+ mListMessage.add(i, messageBean);
+ if_boolean = true;
+ break;
}
}
- this.mListMessage.addAll(newList);
+ if (!if_boolean) {
+ //娌℃湁娣诲姞
+ this.mListMessage.add(messageBean);
+ }
} catch (Exception ignored) {
}
}
@@ -146,7 +167,16 @@
* @param cloudCallBeak -
*/
public void getAllMessageList(CloudCallBeak<List<MessageBean>> cloudCallBeak) {
- getMessageList(MessageStatus.all, cloudCallBeak);
+ getMessageList(MessageStateType.all, cloudCallBeak);
+ }
+
+ /**
+ * 鑾峰彇鎭㈠涓垪琛�
+ *
+ * @param cloudCallBeak -
+ */
+ public void getRecoverMessageList(CloudCallBeak<List<MessageBean>> cloudCallBeak) {
+ getMessageList(MessageStateType.processed, cloudCallBeak);
}
/**
@@ -154,33 +184,22 @@
*
* @param cloudCallBeak -
*/
- public void getRecoverMessageList(CloudCallBeak<List<MessageBean>> cloudCallBeak) {
- getMessageList(MessageStatus.untreated, cloudCallBeak);
- }
-
- /**
- * 鑾峰彇澶勭悊涓垪琛�
- *
- * @param cloudCallBeak -
- */
public void getNascentMessageList(CloudCallBeak<List<MessageBean>> cloudCallBeak) {
- getMessageList(MessageStatus.processed, cloudCallBeak);
+ getMessageList(MessageStateType.untreated, cloudCallBeak);
}
/**
* 鑾峰彇娑堟伅鍒楄〃
*
- * @param messageStatus all:鍏ㄩ儴,untreated:鏈鐞�,processed:宸插鐞�;
- * @param cloudCallBeak -
+ * @param messageStateType all:鍏ㄩ儴,UNTREATED:鏈鐞�,PROCESSED:宸插鐞�;
+ * @param cloudCallBeak -
*/
- public void getMessageList(MessageStatus messageStatus, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
+ private void getMessageList(String messageStateType, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
String requestUrl = HttpApi.POST_Message_List;
JsonObject json = new JsonObject();
- if (messageStatus == MessageStatus.untreated) {
- json.addProperty("status", "UNTREATED");//鏈鐞�
- } else if (messageStatus == MessageStatus.processed) {
- json.addProperty("status", "PROCESSED");//宸插鐞�
+ if (!MessageStateType.all.equals(messageStateType)) {
+ json.addProperty("status", messageStateType);
}
json.addProperty("pageNo", 1);//椤电爜
json.addProperty("pageSize", 50);//椤垫暟
@@ -189,8 +208,94 @@
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<>());
+ }
+ return;
+ }
+ Gson gson = new Gson();
+ MessageListClass messageListClass = gson.fromJson(jsonStr, MessageListClass.class);
+ list.addAll(messageListClass.getList());
+ setListMessage(messageListClass.getList());
+ //鎬诲叡鏈夊灏戦〉
+ long totalPage = messageListClass.totalPage;
+ if (totalPage < 2) {
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onSuccess(list);
+ }
+ return;
+ }
+ //璁板綍璇锋眰鏉℃暟
+ AtomicInteger atomicInteger = new AtomicInteger(0);
+ //浠庣浜岄〉鑾峰彇鏁版嵁
+ for (int i = 2; i <= totalPage; i++) {
+ json.addProperty("pageNo", i);//鏇存柊椤电爜
+ HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String jsonStr) {
+ atomicInteger.set(atomicInteger.get() + 1);
+ MessageListClass messageListClass1 = gson.fromJson(jsonStr, MessageListClass.class);
+ list.addAll(messageListClass1.getList());
+ setListMessage(messageListClass.getList());
+ if (atomicInteger.get() == totalPage - 1) {
+ //鏈�鍚庝竴鏉¢��鍑�
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onSuccess(list);
+ }
+ }
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ atomicInteger.set(atomicInteger.get() + 1);
+ if (atomicInteger.get() == totalPage - 1) {
+ //鏈�鍚庝竴鏉¢��鍑�
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onSuccess(list);
+ }
+ }
+ }
+ });
+ }
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
if (cloudCallBeak != null) {
- cloudCallBeak.onSuccess(new ArrayList<>());
+ cloudCallBeak.onFailure(e);
+ }
+ }
+ });
+
+
+ }
+
+ /**
+ * 鑾峰彇娑堟伅鍒楄〃
+ *
+ * @param messageStateType all:鍏ㄩ儴,UNTREATED:鏈鐞�,PROCESSED:宸插鐞�;
+ * @param cloudCallBeak -
+ */
+ private void getMessageList(int pageNo, String messageStateType, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
+ String requestUrl = HttpApi.POST_Message_List;
+ JsonObject json = new JsonObject();
+
+ if (!MessageStateType.all.equals(messageStateType)) {
+ json.addProperty("status", messageStateType);
+ }
+ json.addProperty("pageNo", 1);//椤电爜
+ json.addProperty("pageSize", pageSize);//椤垫暟
+
+ List<MessageBean> list = new ArrayList<>();
+ 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<>());
+ }
+ return;
}
Gson gson = new Gson();
MessageListClass messageListClass = gson.fromJson(jsonStr, MessageListClass.class);
@@ -315,14 +420,6 @@
}
-
- public enum MessageStatus {
- all,//鍏ㄩ儴
- untreated,//鏈鐞�
- processed,//宸插鐞�
-
-
- }
static class MessageListClass {
--
Gitblit v1.8.0