Browse Source

1.登陆成功添加获取用户信息接口

王鹏鹏 2 years ago
parent
commit
dc2266a7db

+ 5 - 0
baselib/src/main/java/com/yingyangfly/baselib/utils/CommonParam.kt

@@ -4,4 +4,9 @@ object CommonParam {
     val TOKEN = "token"
     val PHONE = "phone"
     val AVATAR = "avatar"
+    val NAME = "name"
+    val PASSWORD = "password"
+    val DOCTORID = "doctorId"
+    val ID = "id"
+    val DOCTORNAME = "doctorName"
 }

+ 75 - 0
baselib/src/main/java/com/yingyangfly/baselib/utils/User.kt

@@ -43,4 +43,79 @@ object User {
     fun logout() {
         saveToken("")
     }
+
+    /**
+     * 保存医生姓名
+     */
+    fun saveDoctorName(doctorName: String) {
+        Preferences.put(CommonParam.DOCTORNAME, doctorName)
+    }
+
+    fun getDoctorName(): String {
+        return if (Preferences.getString(CommonParam.DOCTORNAME).isNullOrEmpty()) {
+            ""
+        } else {
+            Preferences.getString(CommonParam.DOCTORNAME)!!
+        }
+    }
+
+    /**
+     * 保存医生id
+     */
+    fun saveDoctorId(doctorName: String) {
+        Preferences.put(CommonParam.DOCTORID, doctorName)
+    }
+
+    fun getDoctorId(): String {
+        return if (Preferences.getString(CommonParam.DOCTORID).isNullOrEmpty()) {
+            ""
+        } else {
+            Preferences.getString(CommonParam.DOCTORID)!!
+        }
+    }
+
+    /**
+     * 保存患者头像
+     */
+    fun saveAvatar(avatar: String) {
+        Preferences.put(CommonParam.AVATAR, avatar)
+    }
+
+    fun getAvatar(): String {
+        return if (Preferences.getString(CommonParam.AVATAR).isNullOrEmpty()) {
+            ""
+        } else {
+            Preferences.getString(CommonParam.AVATAR)!!
+        }
+    }
+
+    /**
+     * 保存患者姓名
+     */
+    fun saveName(name: String) {
+        Preferences.put(CommonParam.NAME, name)
+    }
+
+    fun getName(): String {
+        return if (Preferences.getString(CommonParam.NAME).isNullOrEmpty()) {
+            ""
+        } else {
+            Preferences.getString(CommonParam.NAME)!!
+        }
+    }
+
+    /**
+     * 保存患者ID
+     */
+    fun saveUserId(id: String) {
+        Preferences.put(CommonParam.ID, id)
+    }
+
+    fun getUserId(): String {
+        return if (Preferences.getString(CommonParam.ID).isNullOrEmpty()) {
+            ""
+        } else {
+            Preferences.getString(CommonParam.ID)!!
+        }
+    }
 }

+ 94 - 0
login/src/main/java/com/yingyang/login/entity/UserInfoBean.kt

@@ -0,0 +1,94 @@
+package com.yingyang.login.entity
+
+/**
+ * 用户信息
+ */
+data class UserInfoBean(
+    val accountNonExpired: Boolean,
+    val accountNonLocked: Boolean,
+    val authorities: String,
+    val avatar: String,
+    val birthDate: String,
+    val createBy: String,
+    val createTime: String,
+    val credentialsNonExpired: Boolean,
+    val diagnoseResult: List<String>,
+    val doctorId: String,
+    val doctorName: String,
+    val enabled: Boolean,
+    val hospitalDepartment: String,
+    val id: String,
+    val idcard: String,
+    val lastLoginDate: String,
+    val mobile: String,
+    val name: String,
+    val nickName: String,
+    val openid: String,
+    val orderEndTime: String,
+    val orderStartTime: String,
+    val orgCode: String,
+    val orgName: String,
+    val password: String,
+    val pwd: String,
+    val remark: String,
+    val status: String,
+    val updateBy: String,
+    val updateTime: String,
+    val username: String
+) {
+    fun getUserNameInfo(): String {
+        return if (name.isNullOrEmpty()) {
+            "姓名:"
+        } else {
+            "姓名:$name"
+        }
+    }
+
+    fun getBirthDateInfo(): String {
+        return if (birthDate.isNullOrEmpty()) {
+            "出生日期:"
+        } else {
+            "出生日期:$birthDate"
+        }
+    }
+
+    fun getStartTime(): String {
+        return if (orderStartTime.isNullOrEmpty()) {
+            "开通训练日期:"
+        } else {
+            "开通训练日期:$orderStartTime"
+        }
+    }
+
+    fun getEndTime(): String {
+        return if (orderEndTime.isNullOrEmpty()) {
+            "订单截止日期:"
+        } else {
+            "订单截止日期:$orderEndTime"
+        }
+    }
+
+    fun getDoctorNameInfo(): String {
+        return if (doctorName.isNullOrEmpty()) {
+            "医生:"
+        } else {
+            "医生:$doctorName"
+        }
+    }
+
+    fun getHospitalDepartmentInfo(): String {
+        return if (hospitalDepartment.isNullOrEmpty()) {
+            "院内科室:"
+        } else {
+            "院内科室:$hospitalDepartment"
+        }
+    }
+
+    fun getOrgNameInfo(): String {
+        return if (orgName.isNullOrEmpty()) {
+            "就诊医院:"
+        } else {
+            "就诊医院:$orgName"
+        }
+    }
+}

+ 7 - 0
login/src/main/java/com/yingyang/login/net/LoginApiService.kt

@@ -1,5 +1,6 @@
 package com.yingyang.login.net
 
+import com.yingyang.login.entity.UserInfoBean
 import com.yingyangfly.baselib.net.BaseResp
 import okhttp3.RequestBody
 import retrofit2.http.*
@@ -13,4 +14,10 @@ interface LoginApiService {
     suspend fun login(
         @Body requestBody: RequestBody
     ): BaseResp<String>
+
+    /**
+     * 获取个人中心信息接口
+     */
+    @POST("app/user/info")
+    suspend fun getUserInfo(): BaseResp<UserInfoBean>
 }

+ 42 - 8
login/src/main/java/com/yingyang/login/ui/login/LoginActivity.kt

@@ -20,14 +20,7 @@ class LoginActivity : BaseMVVMActivity<ActivityLoginBinding, LoginViewModel>() {
 
     override fun initListener() {
         binding.login.setOnClickListener {
-            viewModel.login("18701938401", "yingyang2023@@!", fail = {
-                it.toast()
-            }, success = {
-                if (it.isNullOrEmpty().not()) {
-                    User.saveToken(it)
-                    JumpUtil.jumpActivity(RouterUrlCommon.personalCenter)
-                }
-            })
+            login()
         }
     }
 
@@ -35,4 +28,45 @@ class LoginActivity : BaseMVVMActivity<ActivityLoginBinding, LoginViewModel>() {
 
     }
 
+    /**
+     * 用户登录
+     */
+    private fun login() {
+        viewModel.login("18701938401", "yingyang2023@@!", fail = {
+            it.toast()
+        }, success = {
+            if (it.isNullOrEmpty().not()) {
+                User.saveToken(it)
+                getUserInfo()
+            }
+        })
+    }
+
+    /**
+     * 登录完成获取用户信息
+     */
+    private fun getUserInfo() {
+        viewModel.getUserInfo(fail = {
+            it.toast()
+        }, success = {
+            //保存用户头像
+            if (it.avatar.isNullOrEmpty().not()) {
+                User.saveAvatar(it.avatar)
+            }
+            //保存用户名
+            if (it.name.isNullOrEmpty().not()) {
+                User.saveName(it.name)
+            }
+            //保存医生姓名
+            if (it.doctorName.isNullOrEmpty().not()) {
+                User.saveDoctorName(it.doctorName)
+            }
+            //保存医生id
+            if (it.doctorId.isNullOrEmpty().not()) {
+                User.saveDoctorId(it.doctorId)
+            }
+            JumpUtil.jumpActivity(RouterUrlCommon.workbenches)
+        })
+    }
+
 }

+ 12 - 1
login/src/main/java/com/yingyang/login/ui/login/LoginViewModel.kt

@@ -1,6 +1,7 @@
 package com.yingyang.login.ui.login
 
 import com.yingyang.login.net.LOGIN_API
+import com.yingyang.login.entity.UserInfoBean
 import com.yingyangfly.baselib.mvvm.BaseViewModel
 import com.yingyangfly.baselib.net.XUtils
 import com.yingyangfly.baselib.utils.GsonUtil
@@ -18,7 +19,7 @@ class LoginViewModel : BaseViewModel() {
         pwd: String,
         fail: ((msg: String) -> Unit)? = null,
         success: ((success: String) -> Unit)? = null,
-    ) = launchFlow(false) {
+    ) = launchFlow(true) {
         val requestBean = LoginRequestBodyBean().apply {
             loginName = name
             passWord = pwd
@@ -29,4 +30,14 @@ class LoginViewModel : BaseViewModel() {
         success,
         fail
     )
+
+    fun getUserInfo(
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: UserInfoBean) -> Unit)? = null,
+    ) = launchFlow(true) {
+        LOGIN_API.getUserInfo()
+    }.runUI(
+        success,
+        fail
+    )
 }