riku
2025-10-27 0f58aa8ea118c3bd0b28396febc58fdbd94eef75
app/src/main/java/cn/flightfeather/thirdappmodule/repository/SceneRepository.kt
@@ -1,14 +1,19 @@
package cn.flightfeather.thirdappmodule.repository
import cn.flightfeather.thirdappmodule.bean.entity.*
import cn.flightfeather.thirdappmodule.bean.vo.BaseSubScene
import cn.flightfeather.thirdappmodule.bean.vo.SceneDetailStrVo
import cn.flightfeather.thirdappmodule.bean.vo.SceneDetailVo
import cn.flightfeather.thirdappmodule.common.net.ResponseBodyCallBack
import cn.flightfeather.thirdappmodule.common.net.ResultCallBack
import cn.flightfeather.thirdappmodule.common.net.ResultObserver
import cn.flightfeather.thirdappmodule.common.net.RetrofitFactory
import cn.flightfeather.thirdappmodule.httpservice.ScenseService
import cn.flightfeather.thirdappmodule.model.bean.BaseResponse
import cn.flightfeather.thirdappmodule.module.task.Division
import cn.flightfeather.thirdappmodule.repository.dao.DomainDao
import cn.flightfeather.thirdappmodule.repository.dao.SceneDao
import cn.flightfeather.thirdappmodule.util.Constant
import io.reactivex.Observable
import io.reactivex.functions.Function4
import okhttp3.ResponseBody
@@ -127,4 +132,42 @@
        retrofit.create(ScenseService::class.java).updateSceneList(sceneList)
                .enqueue(ResponseBodyCallBack(resultCallBack))
    }
    /**
     * 获取场景详情,包含基础信息和场景特有信息
     */
    fun <T : BaseSubScene> getSceneDetail(scene: Scense, resultCallBack: ResultCallBack<SceneDetailVo<T>>) {
        val sceneService = when (scene.typeid.toString()) {
            Constant.SCENE_TYPE_SITE -> retrofit.create(ScenseService::class.java).getSceneDetail<T>(scene.guid)
            else -> retrofit.create(ScenseService::class.java).getSceneDetail<T>(scene.guid)
        }
        RetrofitFactory.executeResult(sceneService, object : ResultObserver<BaseResponse<SceneDetailVo<T>>>() {
            override fun onSuccess(result: BaseResponse<SceneDetailVo<T>>?) {
                resultCallBack.onSuccess(result?.data)
            }
            override fun onFailure(e: Throwable, isNetWorkError: Boolean) {
                resultCallBack.onFailure()
            }
        })
    }
    /**
     * 更新场景详情
     */
    fun updateSceneDetail(vo: SceneDetailStrVo, resultCallBack: ResultCallBack<String>) {
        vo.scene ?: return
        val sceneService = retrofit.create(ScenseService::class.java).updateSceneDetail(vo.scene!!.typeid.toInt(), vo)
        RetrofitFactory.executeResult(sceneService, object : ResultObserver<BaseResponse<String>>() {
            override fun onSuccess(result: BaseResponse<String>?) {
                resultCallBack.onSuccess(result?.data)
            }
            override fun onFailure(e: Throwable, isNetWorkError: Boolean) {
                resultCallBack.onFailure()
            }
        })
    }
}