From 247a332ff30d054051b8f0b7ac3fc8de60c086d5 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Mon, 12 Jan 2026 14:42:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shelves/activity/InitActivity.kt | 1 + .../intelligent/shelves/model/ShelfModel.kt | 4 +- .../intelligent/shelves/net/ApiService.kt | 22 ++---- .../intelligent/shelves/net/HttpManager.kt | 27 +++---- .../intelligent/shelves/net/NetViewModel.kt | 12 +-- .../shelves/net/RequestInterceptor.kt | 35 +++++++++ .../intelligent/shelves/net/RespData.kt | 8 +- .../intelligent/shelves/task/SyncTask.kt | 10 ++- .../intelligent/shelves/utils/AppUtil.java | 76 +++++++++---------- 9 files changed, 113 insertions(+), 82 deletions(-) create mode 100644 app/src/main/java/com/shuwei/intelligent/shelves/net/RequestInterceptor.kt diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/activity/InitActivity.kt b/app/src/main/java/com/shuwei/intelligent/shelves/activity/InitActivity.kt index d2d4178..79e3a03 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/activity/InitActivity.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/activity/InitActivity.kt @@ -48,6 +48,7 @@ class InitActivity : BaseActivity() { App.deviceId = AppUtil.getUDID( this) +// App.deviceId = "4787e213-90ab-3e32-88e0-ac271a937751" Log.d(TAG, "onCreate: deviceId = ${App.deviceId}") SpTool.put(SpTool.DEVICE_ID, App.deviceId) App.configUrl = UrlConfig.BASE_URL diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/model/ShelfModel.kt b/app/src/main/java/com/shuwei/intelligent/shelves/model/ShelfModel.kt index 53124db..e3848b6 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/model/ShelfModel.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/model/ShelfModel.kt @@ -9,8 +9,8 @@ data class ShelfModel( var goodsId: String = "", var goodsName: String? = null, var deviceId: String? = null, - var weight: Double? = null, - var weightBak: Double? = null, + var weight: Double = 0.0, + var weightBak: Double = 0.0, var createTime: String? = null, var putCabinetDay: String? = null, var updateTime: String? = null, diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/net/ApiService.kt b/app/src/main/java/com/shuwei/intelligent/shelves/net/ApiService.kt index f570d56..7d84b05 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/net/ApiService.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/net/ApiService.kt @@ -3,7 +3,6 @@ package com.shuwei.intelligent.shelves.net import com.shuwei.intelligent.shelves.App import com.shuwei.intelligent.shelves.model.DeviceConfigInfo import com.shuwei.intelligent.shelves.model.GoodsModel -import com.shuwei.intelligent.shelves.model.GoodsRecord import com.shuwei.intelligent.shelves.model.ShelfBody import com.shuwei.intelligent.shelves.model.ShelfResult import retrofit2.http.Body @@ -29,24 +28,19 @@ interface ApiService { @GET("/equipment/stEquipment/queryByEquipmentCode") suspend fun getDeviceInfo( @Query("equipmentCode") equipmentCode: String, - @Query("appVersion") appVersion: String = App.appVersion, - @Header("X-Access-Token") token: String + @Query("appVersion") appVersion: String = App.appVersion ): RespData @GET suspend fun getAccessToken( @Url url: String = UrlConfig.GET_ACCESS_TOKEN, - @Query("qrcodeId") qrcodeId: String, - @Query("x-access-token") token: String = App.accessToken + @Query("qrcodeId") qrcodeId: String ): RespData @GET suspend fun getShelfList( @Url url: String = UrlConfig.GET_SHELF_LIST, - @Query("deviceId") deviceId: String, - @Query("x-access-token") token: String = App.accessToken, - @Header("X-DEVICE-CODE") deviceCode:String = App.deviceId, - @Header("authorization") authorization: String = "57ee87183f2a4fa59683ec9ef41c8f5d" + @Query("deviceId") deviceId: String ): RespData @GET @@ -55,19 +49,13 @@ interface ApiService { @Query("canteenId") canteenId: String = "0", @Query("goodsName") goodsName: String? = null, @Query("pageNo") pageNo: Int = 1, - @Query("pageSize") pageSize: Int = 50, - @Query("x-access-token") token: String = App.accessToken, - @Header("X-DEVICE-CODE") deviceCode:String = App.deviceId, - @Header("authorization") authorization: String = "57ee87183f2a4fa59683ec9ef41c8f5d" + @Query("pageSize") pageSize: Int = 50 ): RespData?> @POST suspend fun saveShelfGoodsList( @Url url: String = UrlConfig.SAVE_SHELF_GOODS_LIST, - @Body body: ShelfBody, - @Query("x-access-token") token: String = App.accessToken, - @Header("X-DEVICE-CODE") deviceCode:String = App.deviceId, - @Header("authorization") authorization: String = "57ee87183f2a4fa59683ec9ef41c8f5d" + @Body body: ShelfBody ): RespData } \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/net/HttpManager.kt b/app/src/main/java/com/shuwei/intelligent/shelves/net/HttpManager.kt index 5505926..876a245 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/net/HttpManager.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/net/HttpManager.kt @@ -33,7 +33,7 @@ class HttpManager private constructor() { writeTimeout(15, TimeUnit.SECONDS) sslSocketFactory(createSSLSocketFactory(), TrustAllCerts()) hostnameVerifier { _, _ -> true } - addInterceptor(LoggingInterceptor()) +// addInterceptor(LoggingInterceptor()) addNetworkInterceptor(HttpLoggingInterceptor(logger = { Log.d("HttpManager","okhttp logger ==>${it}") }).apply { @@ -50,6 +50,7 @@ class HttpManager private constructor() { // .build() // chain.proceed(request) // } + addInterceptor(RequestInterceptor()) } .build() } @@ -60,18 +61,18 @@ class HttpManager private constructor() { // fun newCall(request: Request): Call = client.newCall(request) - inner class LoggingInterceptor : Interceptor { - override fun intercept(chain: Interceptor.Chain): Response { - val request = chain.request() - // 打印请求日志 - Log.d("HttpManager", "--> ${request.method},${request.url},${request.body}") - - val response = chain.proceed(request) - // 打印响应日志 - Log.d("HttpManager", "<-- ${response.body}") - return response - } - } +// inner class LoggingInterceptor : Interceptor { +// override fun intercept(chain: Interceptor.Chain): Response { +// val request = chain.request() +// // 打印请求日志 +// Log.d("HttpManager", "--> ${request.method},${request.url},${request.body}") +// +// val response = chain.proceed(request) +// // 打印响应日志 +// Log.d("HttpManager", "<-- ${response.body}") +// return response +// } +// } // 信任所有证书的TrustManager实现 @SuppressLint("CustomX509TrustManager") diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/net/NetViewModel.kt b/app/src/main/java/com/shuwei/intelligent/shelves/net/NetViewModel.kt index 98e7c5f..5d72b1f 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/net/NetViewModel.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/net/NetViewModel.kt @@ -45,7 +45,7 @@ class NetViewModel : ViewModel() { _getDeviceTokenUiState.value = UiState.Loading runCatching { val response = apiService.getDeviceToken(qrcodeId = deviceId) - if (response.code == 0) { + if (response.isSuccess()) { _getDeviceTokenUiState.value = UiState.Success(response) } else { _getDeviceTokenUiState.value = UiState.Error(response.msg ?: "请求失败") @@ -61,8 +61,8 @@ class NetViewModel : ViewModel() { _getDeviceTokenUiState.value = UiState.Loading runCatching { val response = - apiService.getDeviceInfo(equipmentCode = deviceId, token = deviceToken) - if (response.code == 0) { + apiService.getDeviceInfo(equipmentCode = deviceId) + if (response.isSuccess()) { _getDeviceTokenUiState.value = UiState.Success(response) } else { _getDeviceTokenUiState.value = UiState.Error(response.msg ?: "请求失败") @@ -78,7 +78,7 @@ class NetViewModel : ViewModel() { _getAccessTokenUiState.value = UiState.Loading runCatching { val response = apiService.getAccessToken(qrcodeId = deviceId) - if (response.code == 0) { + if (response.isSuccess()) { _getAccessTokenUiState.value = UiState.Success(response) } else { _getAccessTokenUiState.value = UiState.Error(response.msg ?: "请求失败") @@ -94,7 +94,7 @@ class NetViewModel : ViewModel() { _getShelfListUiState.value = UiState.Loading runCatching { val response = apiService.getShelfList(deviceId = deviceId) - if (response.code == 0) { + if (response.isSuccess()) { _getShelfListUiState.value = UiState.Success(response) } else { _getShelfListUiState.value = UiState.Error(response.msg ?: "请求失败") @@ -139,7 +139,7 @@ class NetViewModel : ViewModel() { pageNo = pageNo, pageSize = pageSize ) - if (response.code == 0) { + if (response.isSuccess()) { _getGoodsListUiState.value = UiState.Success(response) } else { _getGoodsListUiState.value = UiState.Error(response.msg ?: "请求失败") diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/net/RequestInterceptor.kt b/app/src/main/java/com/shuwei/intelligent/shelves/net/RequestInterceptor.kt new file mode 100644 index 0000000..b44c995 --- /dev/null +++ b/app/src/main/java/com/shuwei/intelligent/shelves/net/RequestInterceptor.kt @@ -0,0 +1,35 @@ +package com.shuwei.intelligent.shelves.net + +import android.text.TextUtils +import com.shuwei.intelligent.shelves.App +import okhttp3.Interceptor +import okhttp3.Request +import okhttp3.Response + +/** + * 请求拦截器 + */ +class RequestInterceptor : Interceptor { + override fun intercept(chain: Interceptor.Chain): Response { + val originalRequest = chain.request() + val requestBuilder = originalRequest.newBuilder() + .header("Content-Type", "application/json") + .header("Accept", "application/json") + .header("X-Access-Token", "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjYW50ZWVuSWQiOiJiZTE1NDgzMS0zNDY2LTNiYTItYTJlYS01NzY1MmM5MTlmZWQiLCJ0eXBlIjoiNCIsInVzZXJJZCI6IjAwMDAwMDAwMDAwMDAwMDAwMDEifQ.sN40cOC-O5WQFrF4IDUs8fFlkNdUKLbJt_rHyTsgYYM") + .header("X-DEVICE-CODE", App.deviceId) + .header("authorization", "57ee87183f2a4fa59683ec9ef41c8f5d") + + val newRequest = requestBuilder.build() + + return chain.proceed(newRequest) + } + +// private fun getToken(originRequest: Request): String { +// val tokenParam = originRequest.header("X-Access-Token") +// if (!TextUtils.isEmpty(tokenParam)) return tokenParam!! +// // 从本地获取token的逻辑 +// val spUtil = SPUtil.getInstance(context = App.getContext()) +// return spUtil.get(GlobalKey.KEY_TOKEN, "") as String +//// return "eyJhbGciOiJIUzUxMiJ9.eyJpZCI6MTQ2LCJ1c2VyTmFtZSI6IjEzNjgxNDQ4ODU2IiwibmFtZSI6IuW-kOejiiIsInBhc3N3b3JkIjoiOTllOTQ1ZmVjZmZjNWIzNDI4MmUwNDRlODYyMzdjM2UxZjU5OWY5OCIsInNhbHQiOiI0NmEzMzUzYWU4OTA0MDYxYjMzODU5ZWNlYTBlMGE2NyIsInBob25lIjoiMTM2ODE0NDg4NTYiLCJzdGF0dXMiOjEsInVzZXJUeXBlIjoyLCJjcmVhdGVVc2VyTm8iOiIxNDEiLCJjcmVhdGVUaW1lIjoxNjI2OTQzNDE2MDAwLCJ1cGRhdGVVc2VyTm8iOiIxNDEiLCJ1cGRhdGVUaW1lIjoxNjI2OTQzNDE2MDAwLCJpc0RlbCI6ZmFsc2UsImVhSWQiOjk5LCJlYUlkTGlzdCI6Ijk5IiwiaXNTaG9wTWFuYWdlciI6dHJ1ZSwidXNlck5vIjoiMWY5Nzk5ZWMtODlkYi00MWYyLTk1YTEtY2UzNTA3Y2QyMTU2In0.f7wImPgBOYMV0AqRchnXGPkUWZN9dFJ9gLPsaB8uNldd21IfXLjJl8y-FiWVuVUvlwUvGpgqGDFR1JKj5H7amw" +// } +} \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/net/RespData.kt b/app/src/main/java/com/shuwei/intelligent/shelves/net/RespData.kt index ac6bfe5..a3e5151 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/net/RespData.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/net/RespData.kt @@ -3,7 +3,9 @@ package com.shuwei.intelligent.shelves.net data class RespData( // val success: Boolean = false, val msg: String? = null, - val code: Int = 0, + val code: String? = null, val data: T? = null, - val total: Int -) \ No newline at end of file +// val total: Int +) { + fun isSuccess() = code == "00000" +} \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/task/SyncTask.kt b/app/src/main/java/com/shuwei/intelligent/shelves/task/SyncTask.kt index 5fb8b52..ca369ff 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/task/SyncTask.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/task/SyncTask.kt @@ -48,15 +48,19 @@ class SyncTask(appContext: Context, workerParams: WorkerParameters) : // it.humidity = HomeActivity.showHumidity // } val body = ShelfBody().also { - it.deviceId = App.deviceId ?: "" + it.deviceId = App.deviceId it.canteenId = App.canteenId it.temperature = HomeActivity.showTemperatureC it.humidity = HomeActivity.showHumidity it.goodsList = submitList } Log.d(TAG, "performSync: body:${body.toJsonString()}") - val resp = apiService.saveShelfGoodsList(body = body) - Log.d(TAG, "performSync: resp:${resp.toJsonString()}") + try { + val resp = apiService.saveShelfGoodsList(body = body) + Log.d(TAG, "performSync: resp:${resp.toJsonString()}") + } catch (e: Exception) { + e.printStackTrace() + } } } diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/utils/AppUtil.java b/app/src/main/java/com/shuwei/intelligent/shelves/utils/AppUtil.java index 901786d..1776e1f 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/utils/AppUtil.java +++ b/app/src/main/java/com/shuwei/intelligent/shelves/utils/AppUtil.java @@ -406,45 +406,45 @@ public class AppUtil { */ @SuppressLint("MissingPermission") public static String getUDID(Context context) { - return "SWZC-HG-001"; +// return "SWZC-HG-001"; //// //"test111"; -// String androidID = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); -// if (!androidID.equals("")) { -// try { -// if (!"9774d56d682e549c".equals(androidID)) { -// androidID = UUID.nameUUIDFromBytes(androidID.getBytes("utf8")).toString(); -// } else { -// @SuppressLint("MissingPermission") final String deviceId = ((TelephonyManager) context.getSystemService(TELEPHONY_SERVICE)).getDeviceId(); -// androidID = deviceId != null ? UUID.nameUUIDFromBytes(deviceId.getBytes("utf8")).toString() : UUID.randomUUID().toString(); -// } -// } catch (UnsupportedEncodingException e) { -// throw new RuntimeException(e); -// } -// return androidID; -// } -// -// //需要权限 android.permission.READ_PHONE_STATE -// TelephonyManager TelephonyMgr = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE); -// String szImei = TelephonyMgr.getDeviceId(); -// if (!szImei.equals("")) { -// return szImei; -// } -// -// //需要权限 android.permission.ACCESS_WIFI_STATE -// WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); -// String m_szWLANMAC = wm.getConnectionInfo().getMacAddress(); -// if (!m_szWLANMAC.equals("")) { -// return m_szWLANMAC; -// } -// -// //需要权限 android.permission.BLUETOOTH -// BluetoothAdapter m_BluetoothAdapter = null; -// m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); -// String m_szBTMAC = m_BluetoothAdapter.getAddress(); -// if (!m_szBTMAC.equals("")) { -// return m_szBTMAC; -// } -// return getUniquePsuedoID(); + String androidID = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); + if (!androidID.equals("")) { + try { + if (!"9774d56d682e549c".equals(androidID)) { + androidID = UUID.nameUUIDFromBytes(androidID.getBytes("utf8")).toString(); + } else { + @SuppressLint("MissingPermission") final String deviceId = ((TelephonyManager) context.getSystemService(TELEPHONY_SERVICE)).getDeviceId(); + androidID = deviceId != null ? UUID.nameUUIDFromBytes(deviceId.getBytes("utf8")).toString() : UUID.randomUUID().toString(); + } + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + return androidID; + } + + //需要权限 android.permission.READ_PHONE_STATE + TelephonyManager TelephonyMgr = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE); + String szImei = TelephonyMgr.getDeviceId(); + if (!szImei.equals("")) { + return szImei; + } + + //需要权限 android.permission.ACCESS_WIFI_STATE + WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + String m_szWLANMAC = wm.getConnectionInfo().getMacAddress(); + if (!m_szWLANMAC.equals("")) { + return m_szWLANMAC; + } + + //需要权限 android.permission.BLUETOOTH + BluetoothAdapter m_BluetoothAdapter = null; + m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + String m_szBTMAC = m_BluetoothAdapter.getAddress(); + if (!m_szBTMAC.equals("")) { + return m_szBTMAC; + } + return getUniquePsuedoID(); } //获得 Psuedo ID