feat(home): 新增银行积分 API 接口和配置

- 新增 HomeBankBean 数据模型,包含今日积分和总积分字段
- 在 HomeApi 中新增 postUserPointDetail() 接口,支持自定义请求头和签名
- 新增银行积分 Retrofit 配置:getBankRetrofit() 函数
- 新增银行积分 BASE_URL 配置和 SECRET_KEY 密钥
- 优化 UrlConfig,支持测试和生产环境的银行积分 API 地址切换
This commit is contained in:
zhanglei
2026-03-17 17:02:22 +08:00
parent 72f4c21b3a
commit e76474b74e
4 changed files with 47 additions and 7 deletions
@@ -52,3 +52,9 @@ data class HomeBannerBean(
data class EncryptInfoBean( data class EncryptInfoBean(
val encryptData: String? val encryptData: String?
) )
data class HomeBankBean(
val todayPoints: String?,
val totalPoints: String?
)
@@ -1,6 +1,7 @@
package com.xjjk.healthyclients.data.api package com.xjjk.healthyclients.data.api
import com.xjjk.healthyclients.bean.home.EncryptInfoBean import com.xjjk.healthyclients.bean.home.EncryptInfoBean
import com.xjjk.healthyclients.bean.home.HomeBankBean
import com.xjjk.healthyclients.bean.home.HomeBannerBean import com.xjjk.healthyclients.bean.home.HomeBannerBean
import com.xjjk.healthyclients.bean.home.HomeNoticeBean import com.xjjk.healthyclients.bean.home.HomeNoticeBean
import com.xjjk.healthyclients.bean.home.HomeWatchAllDataBean import com.xjjk.healthyclients.bean.home.HomeWatchAllDataBean
@@ -12,9 +13,12 @@ import com.xjjk.healthyclients.bean.user.PointRecord
import com.xjjk.healthyclients.bean.user.PointsTask import com.xjjk.healthyclients.bean.user.PointsTask
import com.xjjk.healthyclients.bean.user.UserPointBean import com.xjjk.healthyclients.bean.user.UserPointBean
import com.xjjk.healthyclients.data.bean.ApiResponse import com.xjjk.healthyclients.data.bean.ApiResponse
import com.xjjk.healthyclients.retrofit.UrlConfig
import okhttp3.RequestBody import okhttp3.RequestBody
import retrofit2.Call
import retrofit2.http.Body import retrofit2.http.Body
import retrofit2.http.GET import retrofit2.http.GET
import retrofit2.http.HeaderMap
import retrofit2.http.POST import retrofit2.http.POST
import retrofit2.http.QueryMap import retrofit2.http.QueryMap
@@ -102,6 +106,11 @@ interface HomeApi {
*/ */
@GET("/health-watch/watch/watchDevice/app/unbundleDevice") @GET("/health-watch/watch/watchDevice/app/unbundleDevice")
suspend fun getUnbundleDevice(@QueryMap params: MutableMap<String, Any?>): ApiResponse<String> suspend fun getUnbundleDevice(@QueryMap params: MutableMap<String, Any?>): ApiResponse<String>
/**
* 获取首页银行积分
*/
@POST("${UrlConfig.middle}api/v1/users/point-details")
fun postUserPointDetail(@HeaderMap headers :Map<String, String>, @Body requestBody: RequestBody): Call<ApiResponse<HomeBankBean>>
} }
@@ -1,24 +1,21 @@
package com.xjjk.healthyclients.retrofit package com.xjjk.healthyclients.retrofit
import com.xjjk.healthyclients.retrofit.UrlConfig.getDefaultBaseUrl import com.xjjk.healthyclients.retrofit.UrlConfig.getDefaultBankBaseUrl
import com.xjjk.healthyclients.retrofit.interceptor.LoggingInterceptor2
import com.xjjk.healthyclients.utils.ApiDns import com.xjjk.healthyclients.utils.ApiDns
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import retrofit2.Retrofit import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
fun getHealthCheckRetrofit(): Retrofit { fun getBankRetrofit(): Retrofit {
val builder = OkHttpClient.Builder() val builder = OkHttpClient.Builder()
builder.connectTimeout(30, TimeUnit.SECONDS) builder.connectTimeout(30, TimeUnit.SECONDS)
builder.readTimeout(30, TimeUnit.SECONDS) builder.readTimeout(30, TimeUnit.SECONDS)
builder.addInterceptor(LoggingInterceptor2()) // builder.addInterceptor(LoggingInterceptor2())
builder.dns(ApiDns()) builder.dns(ApiDns())
var baseUrl="" var baseUrl = getDefaultBankBaseUrl()
baseUrl = getDefaultBaseUrl()
return Retrofit.Builder() return Retrofit.Builder()
.baseUrl(baseUrl) .baseUrl(baseUrl)
// .addConverterFactory(MoshiConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create())
.client(builder.build()) .client(builder.build())
.build() .build()
@@ -31,9 +31,17 @@ object UrlConfig {
private const val TEST_HOME_BANK_H5 = "https://gstest.superwx.cn/healthbank/index.html" private const val TEST_HOME_BANK_H5 = "https://gstest.superwx.cn/healthbank/index.html"
private const val PRODUCT_HOME_BANK_H5 = "https://console-jkglpt.iosp.ydpt.tech/hb/healthweb/index.html" private const val PRODUCT_HOME_BANK_H5 = "https://console-jkglpt.iosp.ydpt.tech/hb/healthweb/index.html"
//手机银行
const val SECRET_KEY = "XJp3EHpcnwReXc1A"
private const val TEST_HOME_BANK_IP = "https://gstest.superwx.cn/"
private const val PRODUCT_HOME_BANK_IP = "https://api-jkglpt.iosp.ydpt.tech/"
val baseUrlType: BaseUrlType = BaseUrlType.PRODUCT val baseUrlType: BaseUrlType = BaseUrlType.PRODUCT
// const val middle = "xj_health/" //test
const val middle = "hb/" //product
var isOpenIm: Boolean = true var isOpenIm: Boolean = true
enum class BaseUrlType(val type: Int) { enum class BaseUrlType(val type: Int) {
@@ -57,6 +65,19 @@ object UrlConfig {
} }
} }
} }
private fun getBankBaseUrl(baseUrlType: BaseUrlType = BaseUrlType.PRODUCT): String {
return when (baseUrlType) {
BaseUrlType.DEBUG, BaseUrlType.TEST -> {
TEST_HOME_BANK_IP
}
BaseUrlType.PRODUCT -> {
PRODUCT_HOME_BANK_IP
}
}
}
fun getH5BaseUrl(baseUrlType: BaseUrlType = BaseUrlType.PRODUCT): String { fun getH5BaseUrl(baseUrlType: BaseUrlType = BaseUrlType.PRODUCT): String {
return when (baseUrlType) { return when (baseUrlType) {
BaseUrlType.DEBUG -> { BaseUrlType.DEBUG -> {
@@ -90,6 +111,13 @@ object UrlConfig {
return getBaseUrl(baseUrlType) return getBaseUrl(baseUrlType)
} }
/**
* 手机银行
*/
fun getDefaultBankBaseUrl(): String {
return getBankBaseUrl(baseUrlType)
}
/** /**
* 方便在APP运行之后切换环境所以用 get获取 * 方便在APP运行之后切换环境所以用 get获取
*/ */