接口联调
This commit is contained in:
@@ -18,31 +18,31 @@ abstract class BaseRepository {
|
||||
|
||||
when (e) {
|
||||
is HttpException -> {
|
||||
ApiResponse(code = e.code(), message = e.message())
|
||||
ApiResponse(code = "${e.code()}", msg = e.message())
|
||||
}
|
||||
|
||||
is SocketTimeoutException -> {
|
||||
ApiResponse(code = -2, message = "请求超时: ${e.message}")
|
||||
ApiResponse(code = "-2", msg = "请求超时: ${e.message}")
|
||||
}
|
||||
|
||||
is ConnectException -> {
|
||||
ApiResponse(code = -3, message = "连接失败: ${e.message}")
|
||||
ApiResponse(code = "-3", msg = "连接失败: ${e.message}")
|
||||
}
|
||||
|
||||
is SSLHandshakeException -> {
|
||||
ApiResponse(code = -4, message = "SSL握手失败: ${e.message}")
|
||||
ApiResponse(code = "-4", msg = "SSL握手失败: ${e.message}")
|
||||
}
|
||||
|
||||
is JsonParseException -> {
|
||||
ApiResponse(code = -5, message = "JSON解析错误: ${e.message}")
|
||||
ApiResponse(code = "-5", msg = "JSON解析错误: ${e.message}")
|
||||
}
|
||||
|
||||
is IOException -> {
|
||||
ApiResponse(code = -6, message = "网络IO错误: ${e.message}")
|
||||
ApiResponse(code = "-6", msg = "网络IO错误: ${e.message}")
|
||||
}
|
||||
|
||||
else -> {
|
||||
ApiResponse(code = -1, message = "未知错误: ${e.message ?: "无错误信息"}")
|
||||
ApiResponse(code = "-1", msg = "未知错误: ${e.message ?: "无错误信息"}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,20 @@ import android.net.Uri
|
||||
import com.sw.dualscreen.GlobalData
|
||||
import com.sw.dualscreen.model.request.UserNutritionParam
|
||||
import com.sw.dualscreen.model.response.ApiResponse
|
||||
import com.sw.dualscreen.model.response.DinnerTypeInfo
|
||||
import com.sw.dualscreen.model.response.EquipmentInfo
|
||||
import com.sw.dualscreen.model.response.DinnerType
|
||||
import com.sw.dualscreen.model.response.FoodInfo
|
||||
import com.sw.dualscreen.model.response.UserFaceInfo
|
||||
import com.sw.dualscreen.model.response.FoodSearchReq
|
||||
import com.sw.dualscreen.model.response.UserFaceModel
|
||||
import com.sw.dualscreen.model.response.UserNutritionData
|
||||
import com.sw.dualscreen.network.api.ApiService
|
||||
import com.sw.dualscreen.objbox.CollectedFoodInfo
|
||||
import com.sw.dualscreen.utils.ImageUtil
|
||||
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
||||
import okhttp3.MultipartBody
|
||||
import okhttp3.RequestBody
|
||||
import okhttp3.RequestBody.Companion.asRequestBody
|
||||
import okhttp3.RequestBody.Companion.toRequestBody
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* 远程数据处理
|
||||
@@ -24,43 +29,65 @@ class RemoteRepository constructor(
|
||||
/**
|
||||
* 生成token
|
||||
*/
|
||||
suspend fun getDeviceToken(qrcodeId: String): ApiResponse<String> {
|
||||
return safeApiCall {
|
||||
apiService.getDeviceToken(
|
||||
qrcodeId
|
||||
)
|
||||
}
|
||||
}
|
||||
// suspend fun getDeviceToken(qrcodeId: String): ApiResponse<String> {
|
||||
// return safeApiCall {
|
||||
// apiService.getDeviceToken(
|
||||
// qrcodeId
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 获取设备信息
|
||||
*/
|
||||
suspend fun getDeviceInfo(equipmentCode: String, token: String): ApiResponse<EquipmentInfo> {
|
||||
return safeApiCall {
|
||||
apiService.getDeviceInfo(
|
||||
equipmentCode,
|
||||
token = token
|
||||
)
|
||||
}
|
||||
}
|
||||
// suspend fun getDeviceInfo(equipmentCode: String, token: String): ApiResponse<EquipmentInfo> {
|
||||
// return safeApiCall {
|
||||
// apiService.getDeviceInfo(
|
||||
// equipmentCode,
|
||||
// token = token
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 获取业务服务器token
|
||||
*/
|
||||
suspend fun getEquipmentToken(qrcodeId: String): ApiResponse<String> {
|
||||
return safeApiCall {
|
||||
apiService.getEquipmentToken(qrcodeId = qrcodeId)
|
||||
}
|
||||
}
|
||||
// suspend fun getEquipmentToken(qrcodeId: String): ApiResponse<String> {
|
||||
// return safeApiCall {
|
||||
// apiService.getEquipmentToken(qrcodeId = qrcodeId)
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 获取人脸数据
|
||||
*/
|
||||
suspend fun getUserFaceCache(
|
||||
pageIndex: Int
|
||||
): ApiResponse<UserFaceInfo> {
|
||||
pageNum: Int,
|
||||
pageSize: Int = 100,
|
||||
): ApiResponse<List<UserFaceModel>> {
|
||||
return safeApiCall {
|
||||
apiService.getUserFaceCache(pageIndex = pageIndex)
|
||||
apiService.getUserFaceCache(
|
||||
param = mapOf(
|
||||
"pageNum" to pageNum,
|
||||
"pageSize" to pageSize
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 获取人脸数据
|
||||
*/
|
||||
suspend fun getCollectedFoodList(
|
||||
pageNum: Int,
|
||||
pageSize: Int = 50,
|
||||
): ApiResponse<List<CollectedFoodInfo>> {
|
||||
return safeApiCall {
|
||||
apiService.getCollectedFoodList(
|
||||
param = mapOf(
|
||||
"pageNum" to pageNum,
|
||||
"pageSize" to pageSize
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +102,7 @@ class RemoteRepository constructor(
|
||||
foodName: String,
|
||||
): ApiResponse<List<FoodInfo>> {
|
||||
return safeApiCall {
|
||||
apiService.getRestInfoFoodsByType(restId = restId, type = type, foodName = foodName)
|
||||
apiService.getRestInfoFoodsByType(foodName = foodName)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,10 +120,10 @@ class RemoteRepository constructor(
|
||||
}
|
||||
|
||||
suspend fun getDinnerType(
|
||||
restId: String = GlobalData.restId,
|
||||
): ApiResponse<DinnerTypeInfo> {
|
||||
// restId: String = GlobalData.restId,
|
||||
): ApiResponse<DinnerType> {
|
||||
return safeApiCall {
|
||||
apiService.getDinnerType(restId = restId)
|
||||
apiService.getDinnerType()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,29 +145,31 @@ class RemoteRepository constructor(
|
||||
restId: String = GlobalData.restId,
|
||||
foodName: String,
|
||||
): ApiResponse<List<FoodInfo>> {
|
||||
return safeApiCall { apiService.getFoodInfo(restId = restId, foodName = foodName) }
|
||||
return safeApiCall {
|
||||
// val map = mutableMapOf<String, List<String>>()
|
||||
// map["nameList"] = foodName.split(",")
|
||||
apiService.getFoodInfo(req = FoodSearchReq(nameList = foodName.split(",")))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜品信息
|
||||
* @param restId 从device服务获取的canteenId字段
|
||||
* @param foodName 菜品名称,多个使用逗号拼接
|
||||
* 上传采集菜品信息
|
||||
*/
|
||||
suspend fun postImageData(
|
||||
context: Context,
|
||||
restId: String = GlobalData.restId,
|
||||
foodId: String,
|
||||
foodName: String,
|
||||
foodVector: String,
|
||||
uri: Uri,
|
||||
): ApiResponse<String> {
|
||||
|
||||
val params = HashMap<String, RequestBody>()
|
||||
params["placeId"] = restId.toRequestBody()
|
||||
params["foodId"] = foodId.toRequestBody()
|
||||
params["foodName"] = foodName.toRequestBody()
|
||||
params["foodVector"] = foodVector.toRequestBody()
|
||||
val imagePart = ImageUtil.uriToMultipart(context, uri, "foodPic")
|
||||
|
||||
return safeApiCall { apiService.postImageData(params = params, image = imagePart) }
|
||||
suspend fun uploadCollectFoodPics(fileList: List<File>, params: HashMap<String, RequestBody>): ApiResponse<String> {
|
||||
// 准备文件参数
|
||||
val fileParts = mutableListOf<MultipartBody.Part>()
|
||||
fileList.forEachIndexed { index, file ->
|
||||
val requestFile = file
|
||||
.asRequestBody("multipart/form-data".toMediaTypeOrNull())
|
||||
val filePart = MultipartBody.Part.createFormData(
|
||||
"foodPics",
|
||||
file.name,
|
||||
requestFile
|
||||
)
|
||||
fileParts.add(filePart)
|
||||
}
|
||||
return safeApiCall {
|
||||
apiService.uploadCollectFoodPics(params = params, foodPics = fileParts)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user