diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt index 76c5af3e91..3297dcf31b 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt @@ -31,8 +31,11 @@ import com.zhjt.mogo_core_function_devatools.R import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.AiDataListAdapter import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.BadCaseNetManager +import com.zhjt.mogo_core_function_devatools.badcase.repository.store.BadCaseReasonStore import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch +import org.json.JSONArray +import org.json.JSONObject import record_cache.RecordPanelOuterClass import java.lang.StringBuilder import java.util.* @@ -266,4 +269,28 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener } } + override fun onAiDataError() { + //数据请求错误,使用缓存数据 + if(BadCaseReasonStore.getAiDataRecord().isNotEmpty()){ + val list = ArrayList() + val result = JSONArray(BadCaseReasonStore.getAiDataRecord()) + if(result.length()>0){ + for(i in 0 until result.length()){ + val jsonObject = result[i] as JSONObject + val id = jsonObject.optInt("id") + val name = jsonObject.optString("name") + val content = jsonObject.optString("content") + val entity = AiDataEntity(id, name, content,false) + list.add(entity) + } + } + if(list.isNotEmpty()){ + //刷新列表 + aiDataListAdapter?.setData(list) + } + }else{ + ToastUtils.showShort("AI数据采集数据请求错误且无缓存数据可用") + } + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt index 40546a04dd..e5396eee24 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt @@ -56,8 +56,10 @@ import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.BadReasonListAd import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig import com.zhjt.mogo_core_function_devatools.badcase.record.RecordManager import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.BadCaseNetManager +import com.zhjt.mogo_core_function_devatools.badcase.repository.store.BadCaseReasonStore import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch +import org.json.JSONArray import org.json.JSONException import org.json.JSONObject import record_cache.RecordPanelOuterClass @@ -565,4 +567,41 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList } } + override fun onInitiativeError() { + if(BadCaseReasonStore.getInitiativeDataRecord().isNotEmpty()){ + val list = ArrayList() + val result = JSONArray(BadCaseReasonStore.getInitiativeDataRecord()) + if(result.length() > 0){ + for(i in 0 until result.length()){ + val entity = RecordOptionEntity() + val jsonObject = result[i] as JSONObject + val optionName = jsonObject.optString("optionName") + entity.optionName = optionName + val optionCode = jsonObject.optString("optionCode") + entity.optionCode = optionCode + val children = jsonObject.optJSONArray("children") + if (children != null) { + if(children.length() > 0){ + for(index in 0 until children.length()){ + val childJson = children[index] as JSONObject + val child = RecordOptionEntity() + val childOptionNme = childJson.optString("optionName") + val childOptionCode = childJson.optString("optionCode") + child.optionName = childOptionNme + child.optionCode = childOptionCode + entity.children.add(child) + } + } + } + list.add(entity) + } + } + if(list.isNotEmpty()){ + badReasonListAdapter?.setData(list) + } + }else{ + ToastUtils.showShort("主动录包数据采集错误且无缓存数据可用") + } + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/BadCaseNetManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/BadCaseNetManager.kt index 7d7b8260ad..0b2732c082 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/BadCaseNetManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/BadCaseNetManager.kt @@ -5,6 +5,7 @@ import com.mogo.eagle.core.data.deva.badcase.AiDataEntity import com.mogo.eagle.core.data.deva.badcase.RecordOptionEntity import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsNetManager import com.zhjt.mogo_core_function_devatools.badcase.repository.net.BadCaseNetModel +import com.zhjt.mogo_core_function_devatools.badcase.repository.store.BadCaseReasonStore import org.json.JSONArray import org.json.JSONObject @@ -39,10 +40,12 @@ class BadCaseNetManager { } //将结果回调到调用页面 CallerDevaToolsNetManager.invokeAiDataResponse(list) + //缓存数据 + BadCaseReasonStore.setAiDataRecord(it) }, onError = { - + CallerDevaToolsNetManager.invokeAiDataError() }) } @@ -50,7 +53,6 @@ class BadCaseNetManager { badCaseNetModel.getRecordOption(optionType,mac, onSuccess = { - Log.i("xuxinchao","onSuccess="+it) val list = ArrayList() val result = JSONArray(it) if(result.length() > 0){ @@ -82,14 +84,24 @@ class BadCaseNetManager { if(optionType == 1){ //主动录包 CallerDevaToolsNetManager.invokeInitiativeResponse(list) + //缓存数据 + BadCaseReasonStore.setInitiativeDataRecord(it) } else if(optionType == 2){ //被动录包 CallerDevaToolsNetManager.invokePassiveResponse(list) + //缓存数据 + BadCaseReasonStore.setPassiveDataRecord(it) } }, onError = { - + if(optionType == 1){ + //主动录包 + CallerDevaToolsNetManager.invokeInitiativeError() + }else if(optionType == 2){ + //被动录包 + CallerDevaToolsNetManager.invokePassiveError() + } } ) } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/store/BadCaseReasonStore.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/store/BadCaseReasonStore.kt new file mode 100644 index 0000000000..5fd8303ab5 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/store/BadCaseReasonStore.kt @@ -0,0 +1,56 @@ +package com.zhjt.mogo_core_function_devatools.badcase.repository.store + +import com.mogo.eagle.core.utilcode.util.SPUtils + +object BadCaseReasonStore { + + //AI数据采集 + private const val aiData = "AI_DATA" + //主动录包 + private const val initiativeData = "INITIATIVE_DATA" + //被动录包 + private const val passiveData = "PASSIVE_DATA" + + /** + * 获取AI数据采集缓存数据 + */ + fun getAiDataRecord(): String{ + return SPUtils.getInstance().getString(aiData,"") + } + + /** + * 设置AI数据采集缓存数据 + */ + fun setAiDataRecord(data: String){ + SPUtils.getInstance().put(aiData,data) + } + + /** + * 获取主动录包缓存数据 + */ + fun getInitiativeDataRecord(): String{ + return SPUtils.getInstance().getString(initiativeData,"") + } + + /** + * 设置主动录包缓存数据 + */ + fun setInitiativeDataRecord(data: String){ + SPUtils.getInstance().put(initiativeData,data) + } + + /** + * 获取被动录包缓存数据 + */ + fun getPassiveDataRecord(): String{ + return SPUtils.getInstance().getString(passiveData,"") + } + + /** + * 设置被动录包缓存数据 + */ + fun setPassiveDataRecord(data: String){ + SPUtils.getInstance().put(passiveData,data) + } + +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/badcase/BadCaseNetListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/badcase/BadCaseNetListener.kt index 8ee2294155..e1dcad3d5b 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/badcase/BadCaseNetListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/badcase/BadCaseNetListener.kt @@ -9,13 +9,28 @@ interface BadCaseNetListener { */ fun onAiDataResponse(list: List){} + /** + * AI数据采集请求错误回调 + */ + fun onAiDataError(){} + /** * 主动录包数据回调 */ fun onInitiativeResponse(list: List){} + /** + * 主动录包请求错误回调 + */ + fun onInitiativeError(){} + /** * 被动录包数据回调 */ fun onPassiveResponse(list: List){} + + /** + * 被动录包请求错误回调 + */ + fun onPassiveError(){} } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsNetManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsNetManager.kt index bd980dd414..dd99793bf6 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsNetManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsNetManager.kt @@ -17,6 +17,16 @@ object CallerDevaToolsNetManager: CallerBase() { } } + /** + * AI数据采集请求错误回调 + */ + fun invokeAiDataError(){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onAiDataError() + } + } + /** * 主动录包数据回调 */ @@ -27,6 +37,16 @@ object CallerDevaToolsNetManager: CallerBase() { } } + /** + * 主动录包请求错误回调 + */ + fun invokeInitiativeError(){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onInitiativeError() + } + } + /** * 被动录包数据回调 */ @@ -37,4 +57,14 @@ object CallerDevaToolsNetManager: CallerBase() { } } + /** + * 被动录包请求错误回调 + */ + fun invokePassiveError(){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onPassiveError() + } + } + } \ No newline at end of file