diff --git a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt index f16ead0..e93ed21 100644 --- a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt @@ -467,14 +467,15 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission private fun refresh() { refresh.setRefresh(binding.mRefresh) { isJob = false - getXtInfo(showIdInfo) + // getXtInfo(showIdInfo) // get24HourReportInfo(showIdInfo) request() - uploadWhatchData() + // uploadWhatchData() } } private fun request() { +// LogUtils.e("DynamicManagementFrag","请求数据拉") mViewModel.getAllInfo(showIdInfo, false) // mViewModel.getMySetting() mViewModel.getTips() @@ -748,7 +749,8 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission //获取首页所有信息返回 mViewModel.allData.observe(this) { - it.data.let { bean -> + LogUtils.e("DynamicManagementFrag","请求到数据了") + it.data?.let { bean -> if (bean.user.name.isNullOrEmpty()||bean.user.age.isNullOrEmpty()) { dialogInfoUn.show() } @@ -1589,6 +1591,7 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission @Subscribe(threadMode = ThreadMode.MAIN) fun onLoginOrRegisterSuccess(event: LoginOrRegisterEvent){ +// LogUtils.e("DynamicManagementFrag","登录啦啦啦") showIdInfo =if (MMkvHelper.getLong(Const.USER_ID).toString() == "0") { "" } else { @@ -1605,21 +1608,21 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission // } } - getXtInfo(showIdInfo) + // getXtInfo(showIdInfo) isJob = false - get24HourReportInfo(showIdInfo) + // get24HourReportInfo(showIdInfo) request() - uploadWhatchData() + // uploadWhatchData() } @Subscribe(threadMode = ThreadMode.MAIN) fun bindDevSuccess(event: BindDevEvent){ - getXtInfo(showIdInfo) + // getXtInfo(showIdInfo) isJob = false - get24HourReportInfo(showIdInfo) + // get24HourReportInfo(showIdInfo) request() - uploadWhatchData() + // uploadWhatchData() } override fun onPermissionsGranted(requestCode: Int, perms: MutableList) { diff --git a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt index ed93cb1..3dc513b 100644 --- a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt @@ -106,7 +106,7 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ binding.mNoNetwork.mRefreshBtn.isSelected = true binding.mNoNetwork.mRefreshBtn.setOnClickListener { mViewModel.getMySetting() - mViewModel.getAllInfo(showIdInfo,false) + // mViewModel.getAllInfo(showIdInfo,false) mViewModel.searchInviteInfo() } @@ -168,8 +168,7 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ return@setOnClickListener } - - mViewModel.allData.value?.apply { + mViewModel.deviceInfo.value?.apply { data.apply { if (adorn.wearCount > 29 && adorn.activeWear > 14) { onEventObject(requireContext(), UmengEventId.Health30Day) @@ -187,6 +186,7 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ } } } + } } @@ -603,7 +603,8 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ MMkvHelper.getLong(Const.USER_ID).toString() } mViewModel.getMySetting() - mViewModel.getAllInfo(showIdInfo,false) + mViewModel.getUserDeviceInfo(showIdInfo) + // mViewModel.getAllInfo(showIdInfo,false) mViewModel.searchInviteInfo() mViewModel.getUserOtherInfo() } @@ -616,7 +617,8 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ @Subscribe(threadMode = ThreadMode.MAIN) fun addSuccess(event: AddSuccessEvent){ // mViewModel.getMySetting() - mViewModel.getAllInfo(showIdInfo,false) + // mViewModel.getAllInfo(showIdInfo,false) + mViewModel.getUserDeviceInfo(showIdInfo) // mViewModel.getScore(1) } @@ -624,13 +626,15 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ @Subscribe(threadMode = ThreadMode.MAIN) fun bindDevSuccess(event:BindDevEvent){ // mViewModel.getMySetting() - mViewModel.getAllInfo(showIdInfo,false) + // mViewModel.getAllInfo(showIdInfo,false) + mViewModel.getUserDeviceInfo(showIdInfo) // mViewModel.getScore(1) } @Subscribe(threadMode = ThreadMode.MAIN) fun refreshUI(event: MyInfoEvent){ mViewModel.getMySetting() - mViewModel.getAllInfo(showIdInfo,false) + // mViewModel.getAllInfo(showIdInfo,false) + mViewModel.getUserDeviceInfo(showIdInfo) mViewModel.searchInviteInfo() mViewModel.getUserOtherInfo() } diff --git a/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt b/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt index d1bc6f0..d7d844e 100644 --- a/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt +++ b/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt @@ -11,6 +11,7 @@ import com.xty.base.utils.OrganStatusCalcUtil import com.xty.base.vm.BaseVm import com.xty.common.Const import com.xty.common.Dateutils +import com.xty.common.LogUtils import com.xty.common.MMkvHelper import com.xty.common.TimeUtils import com.xty.common.util.CommonUtils @@ -64,6 +65,7 @@ class DynamicManagementVm : BaseVm() { * 获取所有信息 */ fun getAllInfo(id: String, isShowDialog: Boolean,isTimer:Boolean = false) { + startHttp(isShowDialog) { withContext(Dispatchers.IO){ if(isTimer){ diff --git a/app/src/main/res/layout/frag_mine.xml b/app/src/main/res/layout/frag_mine.xml index 2bd3e67..a9857a1 100644 --- a/app/src/main/res/layout/frag_mine.xml +++ b/app/src/main/res/layout/frag_mine.xml @@ -135,7 +135,7 @@ android:layout_height="wrap_content" android:paddingTop="@dimen/dp_25" android:orientation="horizontal" - android:weightSum="4" + android:weightSum="3" android:background="@color/white" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" diff --git a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt index 90960fc..292f39f 100644 --- a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt +++ b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt @@ -178,6 +178,8 @@ class ARouterUrl { const val NS_OPEN = "/health/com/zj365/health/act/NSuanOpenAct" const val NS_HOW_OPEN = "/health/com/zj365/health/act/NSuanHowOpenAct" const val NS_MESSAGE_PERFECT = "/health/com/zj365/health/act/NSuanMessagePerfectAct" + const val URIC_CALIBRATION_SUBMIT = "/health/com/xty/health/act/UricCalibrationSubmitAct" + const val URIC_CALIBRATION_HISTORY = "/health/com/xty/health/act/UricCalibrationHistoryAct" const val BL_FAT_EXCEPTION_DATA = "/health/com/zj365/health/fragment/bloodlipid/BloodFatExceptionDataAct" const val BL_ADJUST_RECORD ="/health/com/zj365/health/act/BloodLipidAdjustRecordsAct" //血脂校准记录 diff --git a/health/src/main/AndroidManifest.xml b/health/src/main/AndroidManifest.xml index 74789a4..9b9fd3d 100644 --- a/health/src/main/AndroidManifest.xml +++ b/health/src/main/AndroidManifest.xml @@ -348,6 +348,13 @@ android:launchMode="singleTop" android:screenOrientation="portrait" /> + + + diff --git a/health/src/main/java/com/zj365/health/act/UricCalibrationHistoryAct.kt b/health/src/main/java/com/zj365/health/act/UricCalibrationHistoryAct.kt new file mode 100644 index 0000000..42b710f --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/UricCalibrationHistoryAct.kt @@ -0,0 +1,121 @@ +package com.zj365.health.act + +import android.annotation.SuppressLint +import android.view.View +import android.widget.ImageView +import androidx.recyclerview.widget.LinearLayoutManager +import com.alibaba.android.arouter.facade.annotation.Route +import com.xty.base.act.BaseListAct +import com.xty.common.arouter.ARouterUrl +import com.xty.common.util.CommonToastUtils +import com.zj365.health.R +import com.zj365.health.adapter.UricCalibrationListAdapter +import com.zj365.health.databinding.ActUricCalibrationHistoryBinding + +import com.zj365.health.vm.UricAcidVm + +/** + * 尿酸记录列表 + */ +@Route(path = ARouterUrl.URIC_CALIBRATION_HISTORY) +class UricCalibrationHistoryAct : BaseListAct() { + + private val binding by lazy { ActUricCalibrationHistoryBinding.inflate(layoutInflater) } + override fun setLayout(): View = binding.root + + var isManage = false + var isEdit = false + private var userId: String = "" + val adapter by lazy { UricCalibrationListAdapter() } + + override fun initData() { + super.initData() + + userId = intent.getStringExtra("userId").toString() + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mIvBack.setOnClickListener { finish() } + binding.title.mTvTitle.text = "校准记录" + + binding.mTvManage.setOnClickListener { + toManage(!isManage) + } + //退出管理 + binding.mTvExitManage.setOnClickListener { + toManage(false) + } + //删除 + binding.mDelete.setOnClickListener { + val selectData = adapter.getSelectData() + if (selectData.isEmpty()) { + CommonToastUtils.showToast("未勾选数据") + return@setOnClickListener + } + deleteDialog.show() + } + } + + override fun initAdapter() { + binding.mRecycle.adapter = adapter + binding.mRecycle.layoutManager = LinearLayoutManager(this) + setRecycleRefresh(binding.mRecycle, binding.mRefresh, true) + + adapter.setOnItemClickListener { _, view, position -> + val bloodFatBean = adapter.data[position] + if (isManage) { + val findViewById = view.findViewById(R.id.ivSelected) + findViewById.isSelected = !findViewById.isSelected + bloodFatBean.isSelected = findViewById.isSelected + } + } + } + + @SuppressLint("NotifyDataSetChanged") + private fun toManage(isManager: Boolean) { + isManage = isManager + adapter.isSelect = isManager + adapter.notifyDataSetChanged() + if (isManager) { + binding.mTvManage.visibility = View.GONE + binding.mDelete.visibility = View.VISIBLE + binding.mTvExitManage.visibility = View.VISIBLE + isEdit = true + } else { + binding.mTvManage.visibility = View.VISIBLE + binding.mDelete.visibility = View.GONE + binding.mTvExitManage.visibility = View.GONE + adapter.reset() + isEdit = false + } + } + + override fun deleteData() { + super.deleteData() + mViewModel.getUricCalibrationDeleteRequest(adapter.getSelectData()) + } + + override fun loadData() { + mViewModel.getUricCalibrationListRequest(page, userId) + } + + @SuppressLint("SetTextI18n") + override fun liveObserver() { + mViewModel.getUricCalibrationListLive.observe(this) { + setDate(adapter, it.data.records) + binding.title.mTvTitle.text = "校准记录(${it.data.total})" + } + //删除尿酸校准记录 + mViewModel.deteleUricCalibrationLive.observe(this) { + if (it.code == 0) { + page = 1 + loadData() + CommonToastUtils.showSucceedToast("删除成功") + } else { + CommonToastUtils.showToast("删除失败:${it.msg}") + } + } + } +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/act/UricCalibrationSubmitAct.kt b/health/src/main/java/com/zj365/health/act/UricCalibrationSubmitAct.kt new file mode 100644 index 0000000..f153ef9 --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/UricCalibrationSubmitAct.kt @@ -0,0 +1,191 @@ +package com.zj365.health.act + +import android.annotation.SuppressLint +import android.view.LayoutInflater +import android.view.View +import android.widget.EditText +import android.widget.TextView +import androidx.core.view.get +import androidx.core.view.isVisible +import com.alibaba.android.arouter.facade.annotation.Route +import com.tamsiree.rxkit.RxKeyboardTool +import com.xty.base.act.BaseVmAct +import com.xty.common.TimeSelect +import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager +import com.xty.common.util.ChineseNumberAndNumberUtils +import com.xty.common.util.CommonToastUtils +import com.xty.common.util.PointLengthFilter +import com.zj365.health.R +import com.zj365.health.databinding.ActUricCalibrationSubmitBinding +import com.zj365.health.model.UricCalibrationBean +import com.zj365.health.vm.UricAcidVm + + +/** + * 尿酸校准提交 + */ +@Route(path = ARouterUrl.URIC_CALIBRATION_SUBMIT) +class UricCalibrationSubmitAct : BaseVmAct() { + + private val binding by lazy { ActUricCalibrationSubmitBinding.inflate(layoutInflater) } + override fun setLayout(): View = binding.root + + private var userId: String = "" + private val MAX_LENGTH = 10 + private var recordNumber = 0 + + private val timSelect by lazy { + TimeSelect(this) { + }.apply { + showHour = true + showMin = true + showSec = false + } + } + + override fun initData() { + super.initData() + addChildViews() + userId = intent.getStringExtra("userId").toString() + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = "尿酸校准" + binding.title.mIvBack.setOnClickListener { finish() } + + binding.mAdd.setOnClickListener { + addChildViews() + } + + binding.mSubmit.isSelected = true + binding.mSubmit.setOnClickListener { + val bloods: MutableList = + getBloodLipidAdjustData() ?: return@setOnClickListener + mViewModel.submitUricCalibrationRequest(bloods, userId) + } + + //尿酸校准记录 + binding.jiaozhijilu.setOnClickListener { + bundle.clear() + bundle.putString("userId", userId) + RouteManager.goAct(ARouterUrl.URIC_CALIBRATION_HISTORY, bundle) + } + + //尿酸校准须知 + binding.mTip.setOnClickListener { + val webUrl = "" + bundle.clear() + bundle.putString("title", "尿酸校准须知") + bundle.putString("url", webUrl) + RouteManager.goAct(ARouterUrl.WEB_ACT, bundle) + } + } + + @SuppressLint("SetTextI18n", "InflateParams", "MissingInflatedId") + private fun addChildViews() { + val viewIndex = binding.childLayout.childCount + val viewNum = viewIndex + 1 + if (viewNum > MAX_LENGTH) { + CommonToastUtils.showToast("尿酸校准最多添加" + MAX_LENGTH + "条") + return + } + val childView = LayoutInflater.from(this).inflate( + R.layout.item_uric_calibration_submit, + null + ) + childView.findViewById(R.id.mTitle).text = "第${ + ChineseNumberAndNumberUtils.intToChinese(viewNum) + }次" + childView.findViewById(R.id.edUricValue).filters = arrayOf( + PointLengthFilter(2) + ) + val mTvTimeView = childView.findViewById(R.id.mVTimeView) + mTvTimeView.tag = viewNum - 1 + mTvTimeView.setOnClickListener { + RxKeyboardTool.hideSoftInput(this) + timSelect.selectTime(it, "yyyy-MM-dd HH:mm") + recordNumber = it.tag.toString().toInt() + } + childView.setPadding(0, 0, 0, dp2px(0)) + + binding.childLayout.addView( + childView + ) + } + + private fun getBloodLipidAdjustData(): MutableList? { + val list: MutableList = mutableListOf() + for (i in 0 until binding.childLayout.childCount) { + val uricCalibrationBean = UricCalibrationBean() + uricCalibrationBean.bpTime = (getChildView( + i, + R.id.mVTimeView + ) as TextView).text.toString() + uricCalibrationBean.uaValue = (getChildView( + i, + R.id.edUricValue + ) as TextView).text.toString() + + if (uricCalibrationBean.bpTime.isNullOrEmpty()) { + CommonToastUtils.showToast("请选择测量时间") + return null + } + + if (uricCalibrationBean.uaValue.isNullOrEmpty()) { + CommonToastUtils.showToast("请填写测量值") + return null + } + + uricCalibrationBean.bpTime = "${uricCalibrationBean.bpTime}:00" + list.add(uricCalibrationBean) + } + return list + } + + private fun getChildView(index: Int, childId: Int = 0): View { + return if (childId == 0) { + binding.childLayout[index] + } else { + binding.childLayout[index].findViewById(childId) + } + } + + override fun liveObserver() { + mViewModel.submitUricCalibrationLive.observe(this) { + if (it.code == 0) { + CommonToastUtils.showSucceedToast("提交成功") + bundle.clear() + bundle.putString("userId", userId) + RouteManager.goAct(ARouterUrl.URIC_CALIBRATION_HISTORY, bundle) + finish() + } else { + CommonToastUtils.showToast("提交失败:${it.msg}") + } + } + + //获取尿酸检测数据 + mViewModel.getUricAcidMeasurementRecordLive.observe(this) { + if (it.code == 0) { + if (it.data != null) { + val data = it.data + val line = getChildView(recordNumber, R.id.vUricAcidLine) + line.isVisible = false + val lastLayout = getChildView(recordNumber, R.id.llUricAcidLyout) + lastLayout.isVisible = true + (getChildView( + recordNumber, + R.id.tvUricAcidLastValue + ) as TextView).text = data.uaValue.toString() + } else { + val line = getChildView(recordNumber, R.id.vUricAcidLine) + line.isVisible = true + val lastLayout = getChildView(recordNumber, R.id.llUricAcidLyout) + lastLayout.isVisible = false + } + } + } + } +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/adapter/UricCalibrationListAdapter.kt b/health/src/main/java/com/zj365/health/adapter/UricCalibrationListAdapter.kt new file mode 100644 index 0000000..8e1eac4 --- /dev/null +++ b/health/src/main/java/com/zj365/health/adapter/UricCalibrationListAdapter.kt @@ -0,0 +1,101 @@ +package com.zj365.health.adapter + +import android.annotation.SuppressLint +import android.widget.ImageView +import android.widget.TextView +import androidx.core.content.ContextCompat +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.xty.base.adapter.BaseAdapter +import com.xty.common.SizeUtil +import com.xty.network.model.UricCalibrationListBean +import com.zj365.health.R + +class UricCalibrationListAdapter : BaseAdapter( + R.layout.item_uric_calibration_list +) { + + var isSelect = false + + val textColor by lazy { + arrayOf( + R.color.col_9BD, + R.color.col_25C, + R.color.col_FDA481 + ) + } + val bg by lazy { + arrayOf( + R.drawable.shape_xya_status_yellow, + R.drawable.shape_xya_status, + R.drawable.shape_xya_status_orange + ) + } + + override fun convert(holder: BaseViewHolder, item: UricCalibrationListBean) { + holder.setGone(R.id.ivSelected, !isSelect) + val view = holder.getView(R.id.ivSelected) + view.isSelected = item.isSelected + + val colorIndex = when (item.upType) { + 1 -> 0 + 2, 5 -> 1 + else -> 2 + } + val result = when (item.upType) { + 1 -> "用户上传" + 2 -> "管家上传" + 3 -> "物联网上传" + 4 -> "管理员上传" + else -> "家人上传" + } + holder.setBackgroundResource(R.id.tvStatus, bg[colorIndex]) + holder.setTextColor( + R.id.tvStatus, + ContextCompat.getColor( + context, + textColor[colorIndex] + ) + ) + holder.getView(R.id.tvStatus).apply { + text = result + setPadding( + SizeUtil.dp2px(context, 10f), + SizeUtil.dp2px(context, 5f), + SizeUtil.dp2px(context, 10f), + SizeUtil.dp2px(context, 5f) + ) + } + + holder.setText(R.id.tvCalibrationTime, "校准时间:${item.createTime}") + holder.setText(R.id.tvUploadingName, "上传人:${item.upName}") + holder.setText(R.id.tvMeasurementTime, "测量时间:${item.bpTime}") + + holder.setText(R.id.tvMeasurementValue, "尿酸数值:${item.uaValue.toFloat().toInt()}μmol/L") + + val sysValue = item.sysValue + if (sysValue > 0) { + holder.setGone(R.id.llLastValueLayout, false) + holder.setText(R.id.tvItemLastUricAcidValue, "尿酸数值:${sysValue}μmol/L") + } else { + holder.setGone(R.id.llLastValueLayout, true) + } + } + + fun getSelectData(): MutableList { + val result = mutableListOf() + for (datum in data) { + if (datum.isSelected) { + result.add(datum) + } + } + return result + } + + @SuppressLint("NotifyDataSetChanged") + fun reset() { + for (datum in data) { + datum.isSelected = false + } + notifyDataSetChanged() + } +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/fragment/UricAcidFrag.kt b/health/src/main/java/com/zj365/health/fragment/UricAcidFrag.kt index 97967e1..38ed753 100644 --- a/health/src/main/java/com/zj365/health/fragment/UricAcidFrag.kt +++ b/health/src/main/java/com/zj365/health/fragment/UricAcidFrag.kt @@ -21,6 +21,7 @@ import android.view.View import android.widget.TextView import androidx.core.content.ContextCompat import androidx.core.text.isDigitsOnly +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import com.bigkoo.pickerview.adapter.ArrayWheelAdapter import com.blankj.utilcode.util.TimeUtils @@ -281,6 +282,12 @@ class UricAcidFrag : BaseVmFrag() { RouteManager.goAct(ARouterUrl.OPEN_OR_RENEW, bundle) } + binding.mTvUricCalibration.setOnClickListener { + bundle.clear() + bundle.putString("userId", id) + RouteManager.goAct(ARouterUrl.URIC_CALIBRATION_SUBMIT, bundle) + } + if (isDemonstrate) { // binding.tvUricAcidInfo.text = "马上开通" binding.tvOpen.visibility = View.GONE @@ -427,6 +434,9 @@ class UricAcidFrag : BaseVmFrag() { binding.tvRenew.visibility = View.GONE binding.compareTv.visibility = View.VISIBLE binding.tvModelingExplain.visibility = View.GONE + + binding.mTvUricCalibration.isVisible = + id == MMkvHelper.getLong(Const.USER_ID).toString() } } diff --git a/health/src/main/java/com/zj365/health/model/UricCalibrationBean.kt b/health/src/main/java/com/zj365/health/model/UricCalibrationBean.kt new file mode 100644 index 0000000..879de7f --- /dev/null +++ b/health/src/main/java/com/zj365/health/model/UricCalibrationBean.kt @@ -0,0 +1,6 @@ +package com.zj365.health.model + +class UricCalibrationBean { + var bpTime: String = "" + var uaValue: String = "" +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/vm/UricAcidVm.kt b/health/src/main/java/com/zj365/health/vm/UricAcidVm.kt index 758ffe4..0aee45b 100644 --- a/health/src/main/java/com/zj365/health/vm/UricAcidVm.kt +++ b/health/src/main/java/com/zj365/health/vm/UricAcidVm.kt @@ -1,8 +1,12 @@ package com.zj365.health.vm import androidx.lifecycle.MutableLiveData +import com.alibaba.fastjson.JSONArray import com.xty.base.vm.BaseVm +import com.xty.common.Const +import com.xty.common.util.CommonUtils import com.xty.network.model.* +import com.zj365.health.model.UricCalibrationBean import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async import kotlinx.coroutines.withContext @@ -20,6 +24,12 @@ class UricAcidVm : BaseVm() { val userInfo by lazy { MutableLiveData>() } + val submitUricCalibrationLive by lazy { MutableLiveData>() } + val getUricCalibrationListLive by lazy { MutableLiveData>>() } + val deteleUricCalibrationLive by lazy { MutableLiveData>() } + val servicePeriodData by lazy { MutableLiveData>() } + val getUricAcidMeasurementRecordLive by lazy { MutableLiveData>() } + fun getUserInfo(id:String){ startHttp(false) { val json= JSONObject() @@ -142,5 +152,57 @@ class UricAcidVm : BaseVm() { return body.getLoginStatus(nowData) } + /** + * 提交尿酸校准记录 + */ + fun submitUricCalibrationRequest(list: MutableList, userId: String) { + val jsonObject = com.alibaba.fastjson.JSONObject() + jsonObject["userId"] = userId + jsonObject["list"] = JSONArray(list as List) + startHttp { + val body = apiInterface().submitUricCalibration( + retrofits.getRequestBody( + jsonObject.toString() + ) + ) + body.getCodeStatus(submitUricCalibrationLive, nowData) + } + } + + /** + * 尿酸校准记录列表 + */ + fun getUricCalibrationListRequest(pageNum: Int, userId: String) { + startHttp { + val json = JSONObject() + json.put("pageNum", pageNum) + json.put("pageSize", Const.PAGE_SIZE) + json.put("userId", userId) + val response = apiInterface().getUricCalibrationList( + retrofits.getRequestBody( + json.toString() + ) + ) + response.getCodeStatus(getUricCalibrationListLive, nowData) + } + } + + /** + * 批量删除尿酸校准记录 + */ + fun getUricCalibrationDeleteRequest(list: MutableList) { + startHttp { + var ids = "" + list.forEachIndexed { _, uricCalibrationListBean -> + ids += "${uricCalibrationListBean.id}," + } + val uricCalibrationDelete = apiInterface().getUricCalibrationDelete(ids) + uricCalibrationDelete.getCodeStatus(deteleUricCalibrationLive, nowData) + } + } + + + + } \ No newline at end of file diff --git a/health/src/main/res/layout/act_blood_fat_history.xml b/health/src/main/res/layout/act_blood_fat_history.xml index 310c633..c5fc802 100644 --- a/health/src/main/res/layout/act_blood_fat_history.xml +++ b/health/src/main/res/layout/act_blood_fat_history.xml @@ -49,7 +49,7 @@ android:paddingTop="@dimen/dp_10" android:paddingBottom="@dimen/dp_10" android:text="退出管理" - android:textColor="@color/col_8D0" + android:textColor="@color/col_02c" android:textSize="@dimen/sp_16" android:textStyle="bold" android:visibility="gone" /> diff --git a/health/src/main/res/layout/act_blood_lipid_adjust.xml b/health/src/main/res/layout/act_blood_lipid_adjust.xml index 8cc4581..9f1a53e 100644 --- a/health/src/main/res/layout/act_blood_lipid_adjust.xml +++ b/health/src/main/res/layout/act_blood_lipid_adjust.xml @@ -21,6 +21,7 @@ android:text="注:血脂校准须知" android:textColor="@color/col_f23" android:textSize="@dimen/sp_15" + android:visibility="gone" tools:ignore="HardcodedText,UseCompatTextViewDrawableXml" /> @@ -89,7 +90,7 @@ android:gravity="center" android:padding="@dimen/dp_10" android:text="@string/blood_align_history" - android:textColor="@color/col_02b" + android:textColor="@color/col_02c" android:textSize="@dimen/sp_16" android:textStyle="bold" /> diff --git a/health/src/main/res/layout/act_uric_calibration_history.xml b/health/src/main/res/layout/act_uric_calibration_history.xml new file mode 100644 index 0000000..4b6a3c5 --- /dev/null +++ b/health/src/main/res/layout/act_uric_calibration_history.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/act_uric_calibration_submit.xml b/health/src/main/res/layout/act_uric_calibration_submit.xml new file mode 100644 index 0000000..6e95d5b --- /dev/null +++ b/health/src/main/res/layout/act_uric_calibration_submit.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/act_xtang_upload.xml b/health/src/main/res/layout/act_xtang_upload.xml index 5d94fbc..80f511f 100644 --- a/health/src/main/res/layout/act_xtang_upload.xml +++ b/health/src/main/res/layout/act_xtang_upload.xml @@ -22,6 +22,7 @@ android:text="注:血糖校准须知" android:textColor="@color/col_f23" android:textSize="@dimen/sp_15" + android:visibility="gone" tools:ignore="HardcodedText,UseCompatTextViewDrawableXml" /> + tools:ignore="HardcodedText" + tools:visibility="visible" /> diff --git a/health/src/main/res/layout/item_uric_calibration_list.xml b/health/src/main/res/layout/item_uric_calibration_list.xml new file mode 100644 index 0000000..3b2629d --- /dev/null +++ b/health/src/main/res/layout/item_uric_calibration_list.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/item_uric_calibration_submit.xml b/health/src/main/res/layout/item_uric_calibration_submit.xml new file mode 100644 index 0000000..c1cd73d --- /dev/null +++ b/health/src/main/res/layout/item_uric_calibration_submit.xml @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/network/src/main/java/com/xty/network/ApiInterface.kt b/network/src/main/java/com/xty/network/ApiInterface.kt index bcb6420..6086ce3 100644 --- a/network/src/main/java/com/xty/network/ApiInterface.kt +++ b/network/src/main/java/com/xty/network/ApiInterface.kt @@ -417,6 +417,28 @@ interface ApiInterface { @POST("customer/bloodfat/selectNow") suspend fun getBloodFatNowInfo(@Body rb: RequestBody): RespBody + + /** + * 添加尿酸校准记录 + */ + @POST("customer/uricAcid/addCalibrationData") + suspend fun submitUricCalibration(@Body rb: RequestBody): RespBody + + /** + * 尿酸校准记录列表 + */ + @POST("customer/uricAcid/calibrationList") + suspend fun getUricCalibrationList(@Body rb: RequestBody): RespBody> + + /** + * 批量删除尿酸校准记录 + */ + @GET("customer/uricAcid/delete") + suspend fun getUricCalibrationDelete(@Query("ids") ids: String): RespBody + + + + /** * 获取尿酸最新数据 */ @@ -474,6 +496,7 @@ interface ApiInterface { @POST("customer/user/getDeviceFuncList") suspend fun getDeviceFunctionList(@Body rb: RequestBody) :RespBody> + /** * 首页小贴士 */ diff --git a/network/src/main/java/com/xty/network/TokenIntercept.kt b/network/src/main/java/com/xty/network/TokenIntercept.kt index 24bddfa..dfe2c97 100644 --- a/network/src/main/java/com/xty/network/TokenIntercept.kt +++ b/network/src/main/java/com/xty/network/TokenIntercept.kt @@ -24,11 +24,11 @@ class TokenIntercept:Interceptor { newBuilder.header("auth-token",mmkv!!.decodeString("Auth-Token")!!) newBuilder.header("auth-id",mmkv!!.decodeString("Auth-Id")!!) newBuilder.header("mark",MyRetrofit.get().BLUETOOTH_MAC) - newBuilder.header("appVersion", "${mmkv!!.decodeString("appVersion")!!}") - newBuilder.header("versionCode", "${mmkv!!.decodeInt("version_code")!!}") - } + } + newBuilder.header("appVersion", "${mmkv!!.decodeString("appVersion")!!}") + newBuilder.header("versionCode", "${mmkv!!.decodeInt("version_code")!!}") newBuilder.header("sourceBazaar","Android") //newBuilder.header("company", Const.COMPANY) newBuilder.addHeader("Content-Type", "application/json; charset=utf-8") diff --git a/network/src/main/java/com/xty/network/model/BoodfatFatMeasurementRecordBean.kt b/network/src/main/java/com/xty/network/model/BoodfatFatMeasurementRecordBean.kt new file mode 100644 index 0000000..3b66fa1 --- /dev/null +++ b/network/src/main/java/com/xty/network/model/BoodfatFatMeasurementRecordBean.kt @@ -0,0 +1,28 @@ +package com.xty.network.model + +data class BoodfatFatMeasurementRecordBean( + var id: String, + var userId: Long, + + //血脂 + var tc: Float, + var tg: Float, + var hdl: Float, + var ldl: Float, + + //尿酸 + var uaValue: Int, + + //血糖 + var bloodsugar: Float, + + //血压 + var gdbp: Int, + var ddbp: Int, + + var time: String, + var timeDay: String, + var timeMonth: String, + var timeYear: String, + var createTime: String +) \ No newline at end of file diff --git a/network/src/main/java/com/xty/network/model/RespBody.kt b/network/src/main/java/com/xty/network/model/RespBody.kt index 7a632c9..da8deeb 100644 --- a/network/src/main/java/com/xty/network/model/RespBody.kt +++ b/network/src/main/java/com/xty/network/model/RespBody.kt @@ -30,6 +30,7 @@ data class RespBody( 0 -> liveData.postValue(this.apply { this.paramsData=paramsData }) 102 -> liveData.postValue(this) 403 -> status.postValue("") + 222 -> "" else -> showToast(msg) } } diff --git a/network/src/main/java/com/xty/network/model/UricCalibrationListBean.kt b/network/src/main/java/com/xty/network/model/UricCalibrationListBean.kt new file mode 100644 index 0000000..2712b76 --- /dev/null +++ b/network/src/main/java/com/xty/network/model/UricCalibrationListBean.kt @@ -0,0 +1,16 @@ +package com.xty.network.model + +data class UricCalibrationListBean( + val id: String,//记录ID + val userId: String,//用户ID + val sysValue: Int,//系统尿酸值 + val uaValue: String,//测量尿酸值 + val bpTime: String,//测量时间 + val remark: String,//备注 + val createTime: String,//上传时间 + val upType: Int,//上传类型 + val upName: String,//上传类型名 + val timeDay: String,//日期 + + var isSelected:Boolean +) \ No newline at end of file