优化家庭状态

This commit is contained in:
2026-06-15 14:06:13 +08:00
parent 7e362038b3
commit 6bd31327db
3 changed files with 61 additions and 4 deletions

View File

@@ -0,0 +1,8 @@
package com.ckkj.defense_device.bean
data class UpdateFamilyUserRequest(
val id: String,
val optionPassword: String,
val optionStatus: String,
val status: String,
)

View File

@@ -7,6 +7,7 @@ import androidx.lifecycle.lifecycleScope
import com.ckkj.defense_device.R import com.ckkj.defense_device.R
import com.ckkj.defense_device.bean.DeleteDeviceUserRequest import com.ckkj.defense_device.bean.DeleteDeviceUserRequest
import com.ckkj.defense_device.bean.ObtainInviterInformationRequest import com.ckkj.defense_device.bean.ObtainInviterInformationRequest
import com.ckkj.defense_device.bean.UpdateFamilyUserRequest
import com.ckkj.defense_device.bean.VerifyOptionPasswordRequest import com.ckkj.defense_device.bean.VerifyOptionPasswordRequest
import com.ckkj.defense_device.personal.PasswordInputDialog import com.ckkj.defense_device.personal.PasswordInputDialog
import com.ckkj.defense_device.utils.DeviceIdEvent import com.ckkj.defense_device.utils.DeviceIdEvent
@@ -26,6 +27,7 @@ class UserDetailsActivity : AppCompatActivity() {
private var userId: String = "" private var userId: String = ""
private var isPasswordVerified: Boolean = false private var isPasswordVerified: Boolean = false
private lateinit var passwordDialog: PasswordInputDialog private lateinit var passwordDialog: PasswordInputDialog
private var optionPassword: String = ""
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@@ -87,10 +89,12 @@ class UserDetailsActivity : AppCompatActivity() {
binding.swUserStatus.setOnCheckedChangeListener { _, isChecked -> binding.swUserStatus.setOnCheckedChangeListener { _, isChecked ->
if (!isPasswordVerified) { if (!isPasswordVerified) {
binding.swUserStatus.isChecked = !isChecked binding.swUserStatus.isChecked = !isChecked
showPasswordDialog { showPasswordDialog(isChecked) {
isPasswordVerified = true isPasswordVerified = true
binding.swUserStatus.isChecked = isChecked binding.swUserStatus.isChecked = isChecked
} }
} else {
updateFamilyUserStatus(isChecked)
} }
} }
@@ -99,7 +103,7 @@ class UserDetailsActivity : AppCompatActivity() {
} }
} }
private fun showPasswordDialog(onVerified: () -> Unit) { private fun showPasswordDialog(status: Boolean, onVerified: () -> Unit) {
passwordDialog = PasswordInputDialog(this).apply { passwordDialog = PasswordInputDialog(this).apply {
setOnConfirmListener { inputPassword -> setOnConfirmListener { inputPassword ->
lifecycleScope.launch { lifecycleScope.launch {
@@ -109,6 +113,7 @@ class UserDetailsActivity : AppCompatActivity() {
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
if (response.code == 200) { if (response.code == 200) {
dismiss() dismiss()
updateFamilyUserStatus(status, inputPassword)
onVerified() onVerified()
} else { } else {
Toast.makeText( Toast.makeText(
@@ -135,6 +140,48 @@ class UserDetailsActivity : AppCompatActivity() {
} }
private fun updateFamilyUserStatus(status: Boolean) {
updateFamilyUserStatus(status, optionPassword)
}
private fun updateFamilyUserStatus(status: Boolean, password: String) {
if (userId.isEmpty()) {
Toast.makeText(this, "用户ID为空", Toast.LENGTH_SHORT).show()
return
}
if (password.isNotEmpty()) {
optionPassword = password
}
lifecycleScope.launch {
try {
val request = UpdateFamilyUserRequest(
id = userId,
optionPassword = optionPassword,
optionStatus = "status",
status = if (status) "1" else "0"
)
val response = RetrofitNetwork.getNetworkService().updateFamilyUser(request)
withContext(Dispatchers.Main) {
if (response.code == 200) {
Toast.makeText(this@UserDetailsActivity, "状态修改成功", Toast.LENGTH_SHORT).show()
DeviceUserUpdateEvent.notifyUpdate()
} else {
Toast.makeText(this@UserDetailsActivity, response.msg ?: "状态修改失败", Toast.LENGTH_SHORT).show()
binding.swUserStatus.isChecked = !status
}
}
} catch (e: Exception) {
e.printStackTrace()
withContext(Dispatchers.Main) {
Toast.makeText(this@UserDetailsActivity, "网络请求失败", Toast.LENGTH_SHORT).show()
binding.swUserStatus.isChecked = !status
}
}
}
}
private fun showDeleteDialog() { private fun showDeleteDialog() {
val dialog = CustomDialogFragmentText() val dialog = CustomDialogFragmentText()
dialog.setTitle(getString(R.string.tip)) dialog.setTitle(getString(R.string.tip))
@@ -146,7 +193,7 @@ class UserDetailsActivity : AppCompatActivity() {
if (isPasswordVerified) { if (isPasswordVerified) {
deleteDeviceUser() deleteDeviceUser()
} else { } else {
showPasswordDialog { showPasswordDialog(false) {
isPasswordVerified = true isPasswordVerified = true
deleteDeviceUser() deleteDeviceUser()
} }

View File

@@ -19,6 +19,7 @@ import com.ckkj.defense_device.bean.MessageListResponse
import com.ckkj.defense_device.bean.ObtainInviterInformationBean import com.ckkj.defense_device.bean.ObtainInviterInformationBean
import com.ckkj.defense_device.bean.ObtainInviterInformationRequest import com.ckkj.defense_device.bean.ObtainInviterInformationRequest
import com.ckkj.defense_device.bean.SwitchFamilyRequest import com.ckkj.defense_device.bean.SwitchFamilyRequest
import com.ckkj.defense_device.bean.UpdateFamilyUserRequest
import com.ckkj.defense_device.bean.UpdatePassword import com.ckkj.defense_device.bean.UpdatePassword
import com.ckkj.defense_device.bean.UpdateUserInfo import com.ckkj.defense_device.bean.UpdateUserInfo
import com.ckkj.defense_device.bean.UploadResponse import com.ckkj.defense_device.bean.UploadResponse
@@ -250,7 +251,8 @@ interface ApiService {
/** /**
* 修改家庭用户状态 * 修改家庭用户状态
*/ */
//@POST("/app/updateFamilyUser") @POST("/app/updateFamilyUser")
suspend fun updateFamilyUser(@Body request: UpdateFamilyUserRequest): GetCodeBean<Any>
} }