diff --git a/app/src/main/java/com/xjjk/healthyclients/bean/home/HomeBean.kt b/app/src/main/java/com/xjjk/healthyclients/bean/home/HomeBean.kt index ec6f816..199bb0f 100644 --- a/app/src/main/java/com/xjjk/healthyclients/bean/home/HomeBean.kt +++ b/app/src/main/java/com/xjjk/healthyclients/bean/home/HomeBean.kt @@ -49,3 +49,6 @@ data class HomeBannerBean( val updateTime: String ) +data class EncryptInfoBean( + val encryptData: String? +) diff --git a/app/src/main/java/com/xjjk/healthyclients/data/api/HomeApi.kt b/app/src/main/java/com/xjjk/healthyclients/data/api/HomeApi.kt index f49b2bc..001cbc6 100644 --- a/app/src/main/java/com/xjjk/healthyclients/data/api/HomeApi.kt +++ b/app/src/main/java/com/xjjk/healthyclients/data/api/HomeApi.kt @@ -4,6 +4,7 @@ import com.xjjk.healthyclients.bean.home.HomeBannerBean import com.xjjk.healthyclients.bean.home.HomeNoticeBean import com.xjjk.healthyclients.bean.home.HomeWatchAllDataBean import com.xjjk.healthyclients.bean.home.WatchInfoBean +import com.xjjk.healthyclients.bean.home.EncryptInfoBean import com.xjjk.healthyclients.bean.user.CheckInBean import com.xjjk.healthyclients.bean.user.PointDetailBean import com.xjjk.healthyclients.bean.user.PointRank @@ -85,5 +86,11 @@ interface HomeApi { @GET("/health-watch/api/watchData/findWatchInfo") suspend fun getHomeWatchInfo(@QueryMap params: MutableMap): ApiResponse + /** + * weburl参数加密 + */ + @GET("/health-system/api/sys/encryptInfo") + suspend fun getSysEnCryptInfo(@QueryMap params: MutableMap): ApiResponse + } \ No newline at end of file diff --git a/app/src/main/java/com/xjjk/healthyclients/data/repository/HomeRepository.kt b/app/src/main/java/com/xjjk/healthyclients/data/repository/HomeRepository.kt index fe22256..79f1463 100644 --- a/app/src/main/java/com/xjjk/healthyclients/data/repository/HomeRepository.kt +++ b/app/src/main/java/com/xjjk/healthyclients/data/repository/HomeRepository.kt @@ -1,6 +1,7 @@ package com.xjjk.healthyclients.data.repository import com.xjjk.healthyclients.base.repository.BaseRepository +import com.xjjk.healthyclients.bean.home.EncryptInfoBean import com.xjjk.healthyclients.bean.home.HomeBannerBean import com.xjjk.healthyclients.bean.home.HomeNoticeBean import com.xjjk.healthyclients.bean.home.HomeWatchAllDataBean @@ -100,4 +101,12 @@ object HomeRepository : BaseRepository() { service.getHomeWatchInfo(map) } } + + suspend fun getSysEnCryptInfo(str: String?): ApiResponse { + return apiCall { + val map = mutableMapOf() + map["str"] = str + service.getSysEnCryptInfo(map) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/xjjk/healthyclients/fragment/HomeFragment.kt b/app/src/main/java/com/xjjk/healthyclients/fragment/HomeFragment.kt index 0f36a8c..1fe6d7a 100644 --- a/app/src/main/java/com/xjjk/healthyclients/fragment/HomeFragment.kt +++ b/app/src/main/java/com/xjjk/healthyclients/fragment/HomeFragment.kt @@ -1,6 +1,7 @@ package com.xjjk.healthyclients.fragment import android.os.Bundle +import android.text.TextUtils import android.view.View import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope @@ -17,12 +18,14 @@ import com.xjjk.healthyclients.base.BaseVMBFragment import com.xjjk.healthyclients.bean.guidance.GuidanceListBean import com.xjjk.healthyclients.databinding.FragmentHomeBinding import com.xjjk.healthyclients.event.HomeTabChangeEvent +import com.xjjk.healthyclients.retrofit.UrlConfig import com.xjjk.healthyclients.superfuntion.initColors import com.xjjk.healthyclients.superfuntion.showBanner import com.xjjk.healthyclients.superfuntion.startAppointmentWaitAffirmActivity import com.xjjk.healthyclients.superfuntion.startGroupChat import com.xjjk.healthyclients.superfuntion.startLoginActivity import com.xjjk.healthyclients.superfuntion.startMyGuidanceActivity +import com.xjjk.healthyclients.superfuntion.startWebActivity import com.xjjk.healthyclients.ui.activity.EmptyActivity import com.xjjk.healthyclients.ui.activity.LoginActivity import com.xjjk.healthyclients.ui.activity.guidance.adapter.GuidanceFragmentDoctorAdapter @@ -169,16 +172,26 @@ class HomeFragment : } R.id.home_head_tab4 -> { + if (UrlConfig.baseUrlType == UrlConfig.BaseUrlType.TEST) { + if (DataStoreManager.isLogin()) { + val value = mViewModel.enCryptInfoUrl.value + if (TextUtils.isEmpty(value)) { + mViewModel.getSysEnCryptInfo(UrlConfig.getHomeBankH5Url()) + showToast("网络错误") + return + } + requireContext().startWebActivity(UrlConfig.HOME_BANK_H5+"?param="+ value, myTitle = "健康银行") + } else { + startLoginActivity(requireContext()) + } + return + } + val bundle = Bundle() bundle.putString("title", "健康银行") toActivity(EmptyActivity::class.java, bundle) -// -// if (DataStoreManager.isLogin()) { -// requireContext().startWebActivity(UrlConfig.getHomeBankH5Url(), myTitle = "健康银行") -// } else { -// startLoginActivity(requireContext()) -// } + } R.id.home_head_tab3 -> { @@ -327,6 +340,16 @@ class HomeFragment : } } } +// lifecycleScope.launch{ +// repeatOnLifecycle(Lifecycle.State.CREATED){ +// mViewModel.enCryptInfoUrl.collectLatest { url -> +// requireContext().startWebActivity( +// UrlConfig.HOME_BANK_H5+"?param="+url, +// myTitle = "健康银行" +// ) +// } +// } +// } } @@ -338,6 +361,7 @@ class HomeFragment : if (DataStoreManager.isLogin()) { homeNoticeStartRepeat() mViewModel.getHomeWatchInfo(DataStoreManager.getUserId()) + mViewModel.getSysEnCryptInfo(UrlConfig.getHomeBankH5Url()) } } diff --git a/app/src/main/java/com/xjjk/healthyclients/retrofit/UrlConfig.kt b/app/src/main/java/com/xjjk/healthyclients/retrofit/UrlConfig.kt index 5cd87eb..0674605 100644 --- a/app/src/main/java/com/xjjk/healthyclients/retrofit/UrlConfig.kt +++ b/app/src/main/java/com/xjjk/healthyclients/retrofit/UrlConfig.kt @@ -28,7 +28,7 @@ object UrlConfig { // 安眼修改密码 const val ANYAN_CHANGE_PASSWORD_H5 = "https://sso.iosp.ydpt.tech/SSOManageClient/userController/changePassword" - private const val HOME_BANK_H5 = "https://gstest.superwx.cn/healthbank/index.html" + const val HOME_BANK_H5 = "https://gstest.superwx.cn/healthbank/index.html" val baseUrlType: BaseUrlType = BaseUrlType.PRODUCT @@ -100,12 +100,12 @@ object UrlConfig { } /** - * 手机银行外链h5 + * 手机银行外链h5 参数 */ fun getHomeBankH5Url(): String{ var httpUrl = getDefaultBaseUrl().toHttpUrl() - return HOME_BANK_H5+"?scheme=" + httpUrl.scheme + + return "scheme=" + httpUrl.scheme + "&host=" + httpUrl.host + "&tokenF=" + DataStoreManager.getToken() diff --git a/app/src/main/java/com/xjjk/healthyclients/ui/viewmodel/HomeViewModel.kt b/app/src/main/java/com/xjjk/healthyclients/ui/viewmodel/HomeViewModel.kt index e9a7e0a..c0e65e2 100644 --- a/app/src/main/java/com/xjjk/healthyclients/ui/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/xjjk/healthyclients/ui/viewmodel/HomeViewModel.kt @@ -23,6 +23,8 @@ class HomeViewModel : BaseViewModel() { var homeBannerList = MutableSharedFlow?>() var sessionPicUrl = MutableSharedFlow() + var enCryptInfoUrl = MutableStateFlow(null) + //手表 var watchInfo = MutableSharedFlow() var watchAllData = MutableSharedFlow?>() @@ -164,5 +166,17 @@ class HomeViewModel : BaseViewModel() { ) } + fun getSysEnCryptInfo(str: String?) { + launch(showDialog = false, + { + handleRequest( + HomeRepository.getSysEnCryptInfo(str), + successBlock = { + enCryptInfoUrl.emit(it.result?.encryptData) + }) + } + ) + } + } \ No newline at end of file