增加初始化功能、采样菜品搜索功能优化、布局移动到layout目录
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.shuwei.dish.match.http
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
@@ -7,9 +8,11 @@ import com.google.gson.reflect.TypeToken
|
||||
import com.shuwei.dish.match.base.BaseApp
|
||||
import com.shuwei.dish.match.base.BaseReq
|
||||
import com.shuwei.dish.match.http.HttpUtil.runMainThread
|
||||
import com.shuwei.dish.match.utils.SpTool
|
||||
import com.shuwei.dish.match.utils.ext.put
|
||||
import com.shuwei.dish.match.utils.ext.toType
|
||||
import com.shuwei.dish.match.utils.ext.toast
|
||||
import kotlinx.coroutines.Runnable
|
||||
import okhttp3.Call
|
||||
import okhttp3.Callback
|
||||
import okhttp3.HttpUrl
|
||||
@@ -18,6 +21,8 @@ import okhttp3.Request
|
||||
import okhttp3.RequestBody.Companion.toRequestBody
|
||||
import okhttp3.Response
|
||||
import java.io.IOException
|
||||
import java.util.concurrent.Executors
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
|
||||
object HttpUtil {
|
||||
@@ -31,50 +36,57 @@ object HttpUtil {
|
||||
// GET请求(HTTPS)
|
||||
fun get(
|
||||
url: String,
|
||||
header: Map<String, String>?=null,
|
||||
doSuccess: (data: Any) -> Unit,
|
||||
doFailure: (code: Int?, msg: String?) -> Unit
|
||||
) {
|
||||
val token = getToken()
|
||||
val request = Request.Builder()
|
||||
.url(url)
|
||||
.apply {
|
||||
if (token.isNotBlank()) {
|
||||
addHeader("X-Access-Token", token)
|
||||
}
|
||||
}
|
||||
.get()
|
||||
.build()
|
||||
HttpClient.instance.newCall(request).enqueue(CallbackImpl(doSuccess, doFailure))
|
||||
}
|
||||
|
||||
fun get(
|
||||
isHttps: Boolean = false,
|
||||
host: String = "vip.shuziweidao.com",
|
||||
pathSegmentList: List<String>,
|
||||
queryParams: Map<String, String>,
|
||||
doSuccess: (data: Any) -> Unit,
|
||||
doFailure: (code: Int?, msg: String?) -> Unit
|
||||
) {
|
||||
val token = getToken()
|
||||
val url = HttpUrl.Builder()
|
||||
.scheme(if (isHttps) "https" else "http")
|
||||
.host(host)
|
||||
.apply {
|
||||
pathSegmentList.forEach { addPathSegment(it) }
|
||||
queryParams.forEach { (key, value) -> addQueryParameter(key, value) }
|
||||
}
|
||||
.build()
|
||||
val request = Request.Builder()
|
||||
.url(url)
|
||||
.apply {
|
||||
if (token.isNotBlank()) {
|
||||
addHeader("Authorization", token)
|
||||
if (header != null) {
|
||||
header.forEach {
|
||||
addHeader(it.value, it.value)
|
||||
}
|
||||
} else {
|
||||
val token = getToken()
|
||||
if (token.isNotBlank()) {
|
||||
addHeader("X-Access-Token", token)
|
||||
}
|
||||
}
|
||||
}
|
||||
.get()
|
||||
.build()
|
||||
HttpClient.instance.newCall(request).enqueue(CallbackImpl(doSuccess, doFailure))
|
||||
}
|
||||
//
|
||||
// fun get(
|
||||
// isHttps: Boolean = false,
|
||||
// host: String = "vip.shuziweidao.com",
|
||||
// pathSegmentList: List<String>,
|
||||
// queryParams: Map<String, String>,
|
||||
// doSuccess: (data: Any) -> Unit,
|
||||
// doFailure: (code: Int?, msg: String?) -> Unit
|
||||
// ) {
|
||||
// val token = getToken()
|
||||
// val url = HttpUrl.Builder()
|
||||
// .scheme(if (isHttps) "https" else "http")
|
||||
// .host(host)
|
||||
// .apply {
|
||||
// pathSegmentList.forEach { addPathSegment(it) }
|
||||
// queryParams.forEach { (key, value) -> addQueryParameter(key, value) }
|
||||
// }
|
||||
// .build()
|
||||
// val request = Request.Builder()
|
||||
// .url(url)
|
||||
// .apply {
|
||||
// if (token.isNotBlank()) {
|
||||
// addHeader("Authorization", token)
|
||||
// }
|
||||
// }
|
||||
// .get()
|
||||
// .build()
|
||||
// HttpClient.instance.newCall(request).enqueue(CallbackImpl(doSuccess, doFailure))
|
||||
// }
|
||||
|
||||
// POST表单(HTTPS)
|
||||
// fun postForm(url: String, params: Map<String, String>, callback: Callback) {
|
||||
@@ -110,57 +122,79 @@ object HttpUtil {
|
||||
.let { HttpClient.instance.newCall(it).enqueue(CallbackImpl(doSuccess, doFailure)) }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class CallbackImpl(
|
||||
private val doSuccess: (data: Any) -> Unit,
|
||||
private val doFailure: (code: Int?, msg: String?) -> Unit
|
||||
) :
|
||||
Callback {
|
||||
override fun onFailure(call: Call, e: IOException) {
|
||||
runMainThread {
|
||||
e.printStackTrace()
|
||||
doFailure(-1, "服务异常,${e.message}")
|
||||
val executor = Executors.newSingleThreadScheduledExecutor()
|
||||
var getTokenIsRunning = false
|
||||
private fun exeTokenThread() {
|
||||
if (getTokenIsRunning.not()) {
|
||||
executor.scheduleWithFixedDelay(
|
||||
task, 0, 1, TimeUnit.MINUTES
|
||||
)
|
||||
getTokenIsRunning = true
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResponse(call: Call, response: Response) {
|
||||
val respData = response.body?.string()
|
||||
runMainThread {
|
||||
Log.d("HttpUtil", respData ?: "")
|
||||
runCatching {
|
||||
val typeToken = object : TypeToken<BaseReq<Any>>() {}
|
||||
val baseReq = respData?.toType<BaseReq<Any>>(typeToken = typeToken)
|
||||
if (baseReq == null) {
|
||||
doFailure(-1, "查询数据失败")
|
||||
return@runCatching
|
||||
}
|
||||
if (baseReq.code != 200) {
|
||||
doFailure(baseReq.code, baseReq.message)
|
||||
if (baseReq.code == 500 || baseReq.code == 401) {
|
||||
getAppToken()
|
||||
}
|
||||
return@runCatching
|
||||
}
|
||||
doSuccess(baseReq.result ?: "")
|
||||
}.onFailure {
|
||||
it.printStackTrace()
|
||||
doFailure(-1, "解析异常")
|
||||
}
|
||||
val task = Runnable {
|
||||
if (BaseApp.token.isNullOrBlank()) {
|
||||
getAppToken()
|
||||
} else {
|
||||
executor.shutdown()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getToken() = BaseApp.instance?.token ?:""
|
||||
fun getToken() = SpTool.getString(SpTool.TOKEN)
|
||||
//BaseApp.instance?.token ?:""
|
||||
//BaseApp.getSharedPref()?.getString("token", "") ?: ""
|
||||
|
||||
private fun getAppToken() {
|
||||
val url = "${UrlConfig.GET_TOKEN}?qrcodeId=${BaseApp.instance?.androidId}"
|
||||
fun getAppToken() {
|
||||
val url = "${UrlConfig.GET_TOKEN}?qrcodeId=${SpTool.getString(SpTool.DEVICE_ID)}"
|
||||
// Log.d(TAG, "getToken: url = $url")
|
||||
HttpUtil.get(url = url, doSuccess = {
|
||||
BaseApp.getSharedPref()?.put("token" to it)
|
||||
BaseApp.instance?.token = it.toString()
|
||||
}) { code, msg ->
|
||||
//toast(msg)
|
||||
get(url = url, doSuccess = {
|
||||
SpTool.put(SpTool.TOKEN, it)
|
||||
BaseApp.token = it.toString()
|
||||
}) { code, msg ->
|
||||
//toast(msg)
|
||||
}
|
||||
}
|
||||
|
||||
class CallbackImpl(
|
||||
private val doSuccess: (data: Any) -> Unit,
|
||||
private val doFailure: (code: Int?, msg: String?) -> Unit
|
||||
) :
|
||||
Callback {
|
||||
override fun onFailure(call: Call, e: IOException) {
|
||||
runMainThread {
|
||||
e.printStackTrace()
|
||||
doFailure(-1, "服务异常,${e.message}")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResponse(call: Call, response: Response) {
|
||||
val respData = response.body?.string()
|
||||
runMainThread {
|
||||
Log.d("HttpUtil", respData ?: "")
|
||||
runCatching {
|
||||
val typeToken = object : TypeToken<BaseReq<Any>>() {}
|
||||
val baseReq = respData?.toType<BaseReq<Any>>(typeToken = typeToken)
|
||||
if (baseReq == null) {
|
||||
doFailure(-1, "查询数据失败")
|
||||
return@runCatching
|
||||
}
|
||||
if (baseReq.code != 200) {
|
||||
doFailure(baseReq.code, baseReq.message)
|
||||
if (baseReq.code == 500 || baseReq.code == 401) {
|
||||
exeTokenThread()
|
||||
}
|
||||
return@runCatching
|
||||
}
|
||||
doSuccess(baseReq.result ?: "")
|
||||
}.onFailure {
|
||||
it.printStackTrace()
|
||||
doFailure(-1, "解析异常")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,24 +1,36 @@
|
||||
package com.shuwei.dish.match.http
|
||||
|
||||
import com.shuwei.dish.match.base.BaseApp
|
||||
|
||||
object UrlConfig {
|
||||
private const val DEVICE_BASE_URL = "http://device.shuziweidao.com:8889"
|
||||
/**
|
||||
* device获取token
|
||||
*/
|
||||
const val DEVICE_TOKEN = "${DEVICE_BASE_URL}/sys/getEquipmentToken"
|
||||
/**
|
||||
*获取配置信息
|
||||
*/
|
||||
const val DEVICE_CONFIG = "${DEVICE_BASE_URL}/equipment/stEquipment/queryByEquipmentCode"
|
||||
|
||||
// const val BASE_URL = "http://vip.shuziweidao.com/shuwei-zhct"
|
||||
// const val DISH_DETAIL = "$BASE_URL/scales/goodsUseList?foodId={foodId}&foodWeight={foodWeight}"
|
||||
// const val DISH_LIST = "$BASE_URL/scales/getRestInfoFoods?eaId=99&type=0&foodName"
|
||||
|
||||
// const val BASE_URL = "http://192.168.1.207:9102"
|
||||
const val BASE_URL = "https://yyjk.shuziweidao.com/gateway"
|
||||
// const val BASE_URL = "https://yyjk.shuziweidao.com/gateway"
|
||||
// const val DISH_LIST = "$BASE_URL/scales/getRestInfoFoods?eaId=99&type=0&foodName"
|
||||
|
||||
const val DISH_DETAIL = "$BASE_URL/food/stFoodInfoMatching/queryById"
|
||||
|
||||
var DISH_DETAIL = "${BaseApp.configUrl}/food/stFoodInfoMatching/queryById"
|
||||
|
||||
// "$BASE_URL/scales/generateToken?deviceId=1111111111111111111111111111"
|
||||
|
||||
const val GET_TOKEN = "$BASE_URL/restaurant/equipment/stEquipment/getEquipmentToken"
|
||||
const val SUBMIT_DISH = "$BASE_URL/food/stFoodInfoMatching/saveoredit"
|
||||
var GET_TOKEN = "${BaseApp.configUrl}/restaurant/equipment/stEquipment/getEquipmentToken"
|
||||
var SUBMIT_DISH = "${BaseApp.configUrl}/food/stFoodInfoMatching/saveoredit"
|
||||
|
||||
const val QUERY_GOODS_LIST = "$BASE_URL/food/stFoodInfoMatching/queryGoodsInfoList"
|
||||
const val QUERY_FOOD_LIST = "$BASE_URL/food/stFoodInfoMatching/list"
|
||||
const val SAMPLING_LIST = "$BASE_URL/food/stFoodInfoMatching/queryHistorical/goodsInfoList"
|
||||
var QUERY_GOODS_LIST = "${BaseApp.configUrl}/food/stFoodInfoMatching/queryGoodsInfoList"
|
||||
var QUERY_FOOD_LIST = "${BaseApp.configUrl}/food/stFoodInfoMatching/list"
|
||||
var SAMPLING_LIST = "${BaseApp.configUrl}/food/stFoodInfoMatching/queryHistorical/goodsInfoList"
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user