diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bdc4fc4..e0db0e9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -184,6 +184,8 @@
+
diff --git a/app/src/main/java/com/xjjk/healthyclients/adapter/UserListAdapter.kt b/app/src/main/java/com/xjjk/healthyclients/adapter/UserListAdapter.kt
new file mode 100644
index 0000000..0cc5ae2
--- /dev/null
+++ b/app/src/main/java/com/xjjk/healthyclients/adapter/UserListAdapter.kt
@@ -0,0 +1,41 @@
+package com.xjjk.healthyclients.adapter
+
+import com.chad.library.adapter.base.viewholder.BaseDataBindingHolder
+import com.xjjk.healthyclients.R
+import com.xjjk.healthyclients.adapter.common.BaseDataBindingAdapter
+import com.xjjk.healthyclients.bean.UserListBean
+import com.xjjk.healthyclients.databinding.ItemUserListBinding
+import com.xjjk.healthyclients.superfuntion.loadRoundedImage
+
+/**
+ * @author nanfeifei
+ * @time 2023/7/17 16:40
+ * @description
+ */
+class UserListAdapter : BaseDataBindingAdapter(
+ R.layout.item_user_list
+) {
+
+ override fun convert(
+ holder: BaseDataBindingHolder,
+ item: UserListBean.RecordsDTO
+ ) {
+ val mBinding = holder.dataBinding
+ mBinding?.let {
+ it.tvAccount.text = item.username
+ it.tvName.text = item.realname
+ it.userNum.text = "员工编号:" + item.workNo + " 手机号:" + item.phone
+ it.userIdCard.text = "身份证号:" + item.idCard
+ if (!item.departTree.isNullOrEmpty()) {
+ if (item.departTree.size > 2) {
+ it.tvUnit.text = item.departTree.get(1)
+ it.tvClass.text = item.departTree.get(2)
+ } else if (item.departTree.size > 1) {
+ it.tvUnit.text = item.departTree.get(0)
+ it.tvClass.text = item.departTree.get(1)
+ }
+ }
+ it.ivHead.loadRoundedImage(item.avatar, 5.0f)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/xjjk/healthyclients/bean/UserListBean.java b/app/src/main/java/com/xjjk/healthyclients/bean/UserListBean.java
new file mode 100644
index 0000000..ce2ee1f
--- /dev/null
+++ b/app/src/main/java/com/xjjk/healthyclients/bean/UserListBean.java
@@ -0,0 +1,1568 @@
+package com.xjjk.healthyclients.bean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class UserListBean {
+
+ private List records=new ArrayList<>();
+ private Integer total;
+ private Integer size;
+ private Integer current;
+ private Integer pages;
+
+ public List getRecords() {
+ return records;
+ }
+
+ public void setRecords(List records) {
+ this.records = records;
+ }
+
+ public Integer getTotal() {
+ return total;
+ }
+
+ public void setTotal(Integer total) {
+ this.total = total;
+ }
+
+ public Integer getSize() {
+ return size;
+ }
+
+ public void setSize(Integer size) {
+ this.size = size;
+ }
+
+ public Integer getCurrent() {
+ return current;
+ }
+
+ public void setCurrent(Integer current) {
+ this.current = current;
+ }
+
+ public Integer getPages() {
+ return pages;
+ }
+
+ public void setPages(Integer pages) {
+ this.pages = pages;
+ }
+
+ public static class RecordsDTO {
+ private String id;
+ private String username;
+ private String realname;
+ private String avatar;
+ private String birthday;
+ private Integer age;
+ private String sex;
+ private String sex_dictText;
+ private Object email;
+ private String phone;
+ private String orgCode;
+ private Object orgCodeThree;
+ private Integer loginTenantId;
+ private String status;
+ private String status_dictText;
+ private Integer delFlag;
+ private String workNo;
+ private Object post;
+ private Object telephone;
+ private Object createBy;
+ private String createTime;
+ private Object updateBy;
+ private String updateTime;
+ private Object activitiSync;
+ private Object userIdentity;
+ private Object departIds;
+ private Object departCodes;
+ private String relTenantIds;
+ private Object clientId;
+ private Object homePath;
+ private Object postText;
+ private Object bpmStatus;
+ private String idCard;
+ private Object postageCode;
+ private String userGroup;
+ private String userGroupUpdateTime;
+ private String personType;
+ private String personType_dictText;
+ private List departTree;
+ private SecondDepartDTO secondDepart;
+ private ThreeDepartDTO threeDepart;
+ private DepartDTO depart;
+ private Object postId;
+ private Object roleCodes;
+ private Integer familyNum;
+ private Object client;
+ private String orgCodeTxt;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getRealname() {
+ return realname;
+ }
+
+ public void setRealname(String realname) {
+ this.realname = realname;
+ }
+
+ public String getAvatar() {
+ return avatar;
+ }
+
+ public void setAvatar(String avatar) {
+ this.avatar = avatar;
+ }
+
+ public String getBirthday() {
+ return birthday;
+ }
+
+ public void setBirthday(String birthday) {
+ this.birthday = birthday;
+ }
+
+ public Integer getAge() {
+ return age;
+ }
+
+ public void setAge(Integer age) {
+ this.age = age;
+ }
+
+ public String getSex() {
+ return sex;
+ }
+
+ public void setSex(String sex) {
+ this.sex = sex;
+ }
+
+ public String getSex_dictText() {
+ return sex_dictText;
+ }
+
+ public void setSex_dictText(String sex_dictText) {
+ this.sex_dictText = sex_dictText;
+ }
+
+ public Object getEmail() {
+ return email;
+ }
+
+ public void setEmail(Object email) {
+ this.email = email;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getOrgCode() {
+ return orgCode;
+ }
+
+ public void setOrgCode(String orgCode) {
+ this.orgCode = orgCode;
+ }
+
+ public Object getOrgCodeThree() {
+ return orgCodeThree;
+ }
+
+ public void setOrgCodeThree(Object orgCodeThree) {
+ this.orgCodeThree = orgCodeThree;
+ }
+
+ public Integer getLoginTenantId() {
+ return loginTenantId;
+ }
+
+ public void setLoginTenantId(Integer loginTenantId) {
+ this.loginTenantId = loginTenantId;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatus_dictText() {
+ return status_dictText;
+ }
+
+ public void setStatus_dictText(String status_dictText) {
+ this.status_dictText = status_dictText;
+ }
+
+ public Integer getDelFlag() {
+ return delFlag;
+ }
+
+ public void setDelFlag(Integer delFlag) {
+ this.delFlag = delFlag;
+ }
+
+ public String getWorkNo() {
+ return workNo;
+ }
+
+ public void setWorkNo(String workNo) {
+ this.workNo = workNo;
+ }
+
+ public Object getPost() {
+ return post;
+ }
+
+ public void setPost(Object post) {
+ this.post = post;
+ }
+
+ public Object getTelephone() {
+ return telephone;
+ }
+
+ public void setTelephone(Object telephone) {
+ this.telephone = telephone;
+ }
+
+ public Object getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(Object createBy) {
+ this.createBy = createBy;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public Object getUpdateBy() {
+ return updateBy;
+ }
+
+ public void setUpdateBy(Object updateBy) {
+ this.updateBy = updateBy;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Object getActivitiSync() {
+ return activitiSync;
+ }
+
+ public void setActivitiSync(Object activitiSync) {
+ this.activitiSync = activitiSync;
+ }
+
+ public Object getUserIdentity() {
+ return userIdentity;
+ }
+
+ public void setUserIdentity(Object userIdentity) {
+ this.userIdentity = userIdentity;
+ }
+
+ public Object getDepartIds() {
+ return departIds;
+ }
+
+ public void setDepartIds(Object departIds) {
+ this.departIds = departIds;
+ }
+
+ public Object getDepartCodes() {
+ return departCodes;
+ }
+
+ public void setDepartCodes(Object departCodes) {
+ this.departCodes = departCodes;
+ }
+
+ public String getRelTenantIds() {
+ return relTenantIds;
+ }
+
+ public void setRelTenantIds(String relTenantIds) {
+ this.relTenantIds = relTenantIds;
+ }
+
+ public Object getClientId() {
+ return clientId;
+ }
+
+ public void setClientId(Object clientId) {
+ this.clientId = clientId;
+ }
+
+ public Object getHomePath() {
+ return homePath;
+ }
+
+ public void setHomePath(Object homePath) {
+ this.homePath = homePath;
+ }
+
+ public Object getPostText() {
+ return postText;
+ }
+
+ public void setPostText(Object postText) {
+ this.postText = postText;
+ }
+
+ public Object getBpmStatus() {
+ return bpmStatus;
+ }
+
+ public void setBpmStatus(Object bpmStatus) {
+ this.bpmStatus = bpmStatus;
+ }
+
+ public String getIdCard() {
+ return idCard;
+ }
+
+ public void setIdCard(String idCard) {
+ this.idCard = idCard;
+ }
+
+ public Object getPostageCode() {
+ return postageCode;
+ }
+
+ public void setPostageCode(Object postageCode) {
+ this.postageCode = postageCode;
+ }
+
+ public String getUserGroup() {
+ return userGroup;
+ }
+
+ public void setUserGroup(String userGroup) {
+ this.userGroup = userGroup;
+ }
+
+ public String getUserGroupUpdateTime() {
+ return userGroupUpdateTime;
+ }
+
+ public void setUserGroupUpdateTime(String userGroupUpdateTime) {
+ this.userGroupUpdateTime = userGroupUpdateTime;
+ }
+
+ public String getPersonType() {
+ return personType;
+ }
+
+ public void setPersonType(String personType) {
+ this.personType = personType;
+ }
+
+ public String getPersonType_dictText() {
+ return personType_dictText;
+ }
+
+ public void setPersonType_dictText(String personType_dictText) {
+ this.personType_dictText = personType_dictText;
+ }
+
+ public List getDepartTree() {
+ return departTree;
+ }
+
+ public void setDepartTree(List departTree) {
+ this.departTree = departTree;
+ }
+
+ public SecondDepartDTO getSecondDepart() {
+ return secondDepart;
+ }
+
+ public void setSecondDepart(SecondDepartDTO secondDepart) {
+ this.secondDepart = secondDepart;
+ }
+
+ public ThreeDepartDTO getThreeDepart() {
+ return threeDepart;
+ }
+
+ public void setThreeDepart(ThreeDepartDTO threeDepart) {
+ this.threeDepart = threeDepart;
+ }
+
+ public DepartDTO getDepart() {
+ return depart;
+ }
+
+ public void setDepart(DepartDTO depart) {
+ this.depart = depart;
+ }
+
+ public Object getPostId() {
+ return postId;
+ }
+
+ public void setPostId(Object postId) {
+ this.postId = postId;
+ }
+
+ public Object getRoleCodes() {
+ return roleCodes;
+ }
+
+ public void setRoleCodes(Object roleCodes) {
+ this.roleCodes = roleCodes;
+ }
+
+ public Integer getFamilyNum() {
+ return familyNum;
+ }
+
+ public void setFamilyNum(Integer familyNum) {
+ this.familyNum = familyNum;
+ }
+
+ public Object getClient() {
+ return client;
+ }
+
+ public void setClient(Object client) {
+ this.client = client;
+ }
+
+ public String getOrgCodeTxt() {
+ return orgCodeTxt;
+ }
+
+ public void setOrgCodeTxt(String orgCodeTxt) {
+ this.orgCodeTxt = orgCodeTxt;
+ }
+
+ public static class SecondDepartDTO {
+ private String id;
+ private String parentId;
+ private String departName;
+ private Object departNameEn;
+ private Object departNameAbbr;
+ private Integer departOrder;
+ private Object description;
+ private String orgCategory;
+ private String orgType;
+ private String orgCode;
+ private String orgClass;
+ private String orgClass_dictText;
+ private Object mobile;
+ private Object fax;
+ private Object address;
+ private Object healthManageUserName;
+ private Object healthManageUserMobile;
+ private Object healthManageUserAddress;
+ private Object medialManageUserName;
+ private Object medialManageUserMobile;
+ private Object medialManageUserAddress;
+ private Object monitorManageUserName;
+ private Object monitorManageUserMobile;
+ private Object memo;
+ private String status;
+ private String status_dictText;
+ private String delFlag;
+ private String delFlag_dictText;
+ private Object qywxIdentifier;
+ private Object createBy;
+ private String createTime;
+ private Object updateBy;
+ private Object updateTime;
+ private Object lng;
+ private Object lat;
+ private Integer tenantId;
+ private Integer izLeaf;
+ private Object manager;
+ private Object directorUserIds;
+ private Object oldDirectorUserIds;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(String parentId) {
+ this.parentId = parentId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public Object getDepartNameEn() {
+ return departNameEn;
+ }
+
+ public void setDepartNameEn(Object departNameEn) {
+ this.departNameEn = departNameEn;
+ }
+
+ public Object getDepartNameAbbr() {
+ return departNameAbbr;
+ }
+
+ public void setDepartNameAbbr(Object departNameAbbr) {
+ this.departNameAbbr = departNameAbbr;
+ }
+
+ public Integer getDepartOrder() {
+ return departOrder;
+ }
+
+ public void setDepartOrder(Integer departOrder) {
+ this.departOrder = departOrder;
+ }
+
+ public Object getDescription() {
+ return description;
+ }
+
+ public void setDescription(Object description) {
+ this.description = description;
+ }
+
+ public String getOrgCategory() {
+ return orgCategory;
+ }
+
+ public void setOrgCategory(String orgCategory) {
+ this.orgCategory = orgCategory;
+ }
+
+ public String getOrgType() {
+ return orgType;
+ }
+
+ public void setOrgType(String orgType) {
+ this.orgType = orgType;
+ }
+
+ public String getOrgCode() {
+ return orgCode;
+ }
+
+ public void setOrgCode(String orgCode) {
+ this.orgCode = orgCode;
+ }
+
+ public String getOrgClass() {
+ return orgClass;
+ }
+
+ public void setOrgClass(String orgClass) {
+ this.orgClass = orgClass;
+ }
+
+ public String getOrgClass_dictText() {
+ return orgClass_dictText;
+ }
+
+ public void setOrgClass_dictText(String orgClass_dictText) {
+ this.orgClass_dictText = orgClass_dictText;
+ }
+
+ public Object getMobile() {
+ return mobile;
+ }
+
+ public void setMobile(Object mobile) {
+ this.mobile = mobile;
+ }
+
+ public Object getFax() {
+ return fax;
+ }
+
+ public void setFax(Object fax) {
+ this.fax = fax;
+ }
+
+ public Object getAddress() {
+ return address;
+ }
+
+ public void setAddress(Object address) {
+ this.address = address;
+ }
+
+ public Object getHealthManageUserName() {
+ return healthManageUserName;
+ }
+
+ public void setHealthManageUserName(Object healthManageUserName) {
+ this.healthManageUserName = healthManageUserName;
+ }
+
+ public Object getHealthManageUserMobile() {
+ return healthManageUserMobile;
+ }
+
+ public void setHealthManageUserMobile(Object healthManageUserMobile) {
+ this.healthManageUserMobile = healthManageUserMobile;
+ }
+
+ public Object getHealthManageUserAddress() {
+ return healthManageUserAddress;
+ }
+
+ public void setHealthManageUserAddress(Object healthManageUserAddress) {
+ this.healthManageUserAddress = healthManageUserAddress;
+ }
+
+ public Object getMedialManageUserName() {
+ return medialManageUserName;
+ }
+
+ public void setMedialManageUserName(Object medialManageUserName) {
+ this.medialManageUserName = medialManageUserName;
+ }
+
+ public Object getMedialManageUserMobile() {
+ return medialManageUserMobile;
+ }
+
+ public void setMedialManageUserMobile(Object medialManageUserMobile) {
+ this.medialManageUserMobile = medialManageUserMobile;
+ }
+
+ public Object getMedialManageUserAddress() {
+ return medialManageUserAddress;
+ }
+
+ public void setMedialManageUserAddress(Object medialManageUserAddress) {
+ this.medialManageUserAddress = medialManageUserAddress;
+ }
+
+ public Object getMonitorManageUserName() {
+ return monitorManageUserName;
+ }
+
+ public void setMonitorManageUserName(Object monitorManageUserName) {
+ this.monitorManageUserName = monitorManageUserName;
+ }
+
+ public Object getMonitorManageUserMobile() {
+ return monitorManageUserMobile;
+ }
+
+ public void setMonitorManageUserMobile(Object monitorManageUserMobile) {
+ this.monitorManageUserMobile = monitorManageUserMobile;
+ }
+
+ public Object getMemo() {
+ return memo;
+ }
+
+ public void setMemo(Object memo) {
+ this.memo = memo;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatus_dictText() {
+ return status_dictText;
+ }
+
+ public void setStatus_dictText(String status_dictText) {
+ this.status_dictText = status_dictText;
+ }
+
+ public String getDelFlag() {
+ return delFlag;
+ }
+
+ public void setDelFlag(String delFlag) {
+ this.delFlag = delFlag;
+ }
+
+ public String getDelFlag_dictText() {
+ return delFlag_dictText;
+ }
+
+ public void setDelFlag_dictText(String delFlag_dictText) {
+ this.delFlag_dictText = delFlag_dictText;
+ }
+
+ public Object getQywxIdentifier() {
+ return qywxIdentifier;
+ }
+
+ public void setQywxIdentifier(Object qywxIdentifier) {
+ this.qywxIdentifier = qywxIdentifier;
+ }
+
+ public Object getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(Object createBy) {
+ this.createBy = createBy;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public Object getUpdateBy() {
+ return updateBy;
+ }
+
+ public void setUpdateBy(Object updateBy) {
+ this.updateBy = updateBy;
+ }
+
+ public Object getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Object updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Object getLng() {
+ return lng;
+ }
+
+ public void setLng(Object lng) {
+ this.lng = lng;
+ }
+
+ public Object getLat() {
+ return lat;
+ }
+
+ public void setLat(Object lat) {
+ this.lat = lat;
+ }
+
+ public Integer getTenantId() {
+ return tenantId;
+ }
+
+ public void setTenantId(Integer tenantId) {
+ this.tenantId = tenantId;
+ }
+
+ public Integer getIzLeaf() {
+ return izLeaf;
+ }
+
+ public void setIzLeaf(Integer izLeaf) {
+ this.izLeaf = izLeaf;
+ }
+
+ public Object getManager() {
+ return manager;
+ }
+
+ public void setManager(Object manager) {
+ this.manager = manager;
+ }
+
+ public Object getDirectorUserIds() {
+ return directorUserIds;
+ }
+
+ public void setDirectorUserIds(Object directorUserIds) {
+ this.directorUserIds = directorUserIds;
+ }
+
+ public Object getOldDirectorUserIds() {
+ return oldDirectorUserIds;
+ }
+
+ public void setOldDirectorUserIds(Object oldDirectorUserIds) {
+ this.oldDirectorUserIds = oldDirectorUserIds;
+ }
+ }
+
+ public static class ThreeDepartDTO {
+ private String id;
+ private String parentId;
+ private String departName;
+ private Object departNameEn;
+ private Object departNameAbbr;
+ private Object departOrder;
+ private Object description;
+ private String orgCategory;
+ private String orgType;
+ private String orgCode;
+ private String orgClass;
+ private String orgClass_dictText;
+ private Object mobile;
+ private Object fax;
+ private Object address;
+ private Object healthManageUserName;
+ private Object healthManageUserMobile;
+ private Object healthManageUserAddress;
+ private Object medialManageUserName;
+ private Object medialManageUserMobile;
+ private Object medialManageUserAddress;
+ private Object monitorManageUserName;
+ private Object monitorManageUserMobile;
+ private Object memo;
+ private String status;
+ private String status_dictText;
+ private String delFlag;
+ private String delFlag_dictText;
+ private Object qywxIdentifier;
+ private Object createBy;
+ private String createTime;
+ private Object updateBy;
+ private Object updateTime;
+ private Object lng;
+ private Object lat;
+ private Integer tenantId;
+ private Integer izLeaf;
+ private Object manager;
+ private Object directorUserIds;
+ private Object oldDirectorUserIds;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(String parentId) {
+ this.parentId = parentId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public Object getDepartNameEn() {
+ return departNameEn;
+ }
+
+ public void setDepartNameEn(Object departNameEn) {
+ this.departNameEn = departNameEn;
+ }
+
+ public Object getDepartNameAbbr() {
+ return departNameAbbr;
+ }
+
+ public void setDepartNameAbbr(Object departNameAbbr) {
+ this.departNameAbbr = departNameAbbr;
+ }
+
+ public Object getDepartOrder() {
+ return departOrder;
+ }
+
+ public void setDepartOrder(Object departOrder) {
+ this.departOrder = departOrder;
+ }
+
+ public Object getDescription() {
+ return description;
+ }
+
+ public void setDescription(Object description) {
+ this.description = description;
+ }
+
+ public String getOrgCategory() {
+ return orgCategory;
+ }
+
+ public void setOrgCategory(String orgCategory) {
+ this.orgCategory = orgCategory;
+ }
+
+ public String getOrgType() {
+ return orgType;
+ }
+
+ public void setOrgType(String orgType) {
+ this.orgType = orgType;
+ }
+
+ public String getOrgCode() {
+ return orgCode;
+ }
+
+ public void setOrgCode(String orgCode) {
+ this.orgCode = orgCode;
+ }
+
+ public String getOrgClass() {
+ return orgClass;
+ }
+
+ public void setOrgClass(String orgClass) {
+ this.orgClass = orgClass;
+ }
+
+ public String getOrgClass_dictText() {
+ return orgClass_dictText;
+ }
+
+ public void setOrgClass_dictText(String orgClass_dictText) {
+ this.orgClass_dictText = orgClass_dictText;
+ }
+
+ public Object getMobile() {
+ return mobile;
+ }
+
+ public void setMobile(Object mobile) {
+ this.mobile = mobile;
+ }
+
+ public Object getFax() {
+ return fax;
+ }
+
+ public void setFax(Object fax) {
+ this.fax = fax;
+ }
+
+ public Object getAddress() {
+ return address;
+ }
+
+ public void setAddress(Object address) {
+ this.address = address;
+ }
+
+ public Object getHealthManageUserName() {
+ return healthManageUserName;
+ }
+
+ public void setHealthManageUserName(Object healthManageUserName) {
+ this.healthManageUserName = healthManageUserName;
+ }
+
+ public Object getHealthManageUserMobile() {
+ return healthManageUserMobile;
+ }
+
+ public void setHealthManageUserMobile(Object healthManageUserMobile) {
+ this.healthManageUserMobile = healthManageUserMobile;
+ }
+
+ public Object getHealthManageUserAddress() {
+ return healthManageUserAddress;
+ }
+
+ public void setHealthManageUserAddress(Object healthManageUserAddress) {
+ this.healthManageUserAddress = healthManageUserAddress;
+ }
+
+ public Object getMedialManageUserName() {
+ return medialManageUserName;
+ }
+
+ public void setMedialManageUserName(Object medialManageUserName) {
+ this.medialManageUserName = medialManageUserName;
+ }
+
+ public Object getMedialManageUserMobile() {
+ return medialManageUserMobile;
+ }
+
+ public void setMedialManageUserMobile(Object medialManageUserMobile) {
+ this.medialManageUserMobile = medialManageUserMobile;
+ }
+
+ public Object getMedialManageUserAddress() {
+ return medialManageUserAddress;
+ }
+
+ public void setMedialManageUserAddress(Object medialManageUserAddress) {
+ this.medialManageUserAddress = medialManageUserAddress;
+ }
+
+ public Object getMonitorManageUserName() {
+ return monitorManageUserName;
+ }
+
+ public void setMonitorManageUserName(Object monitorManageUserName) {
+ this.monitorManageUserName = monitorManageUserName;
+ }
+
+ public Object getMonitorManageUserMobile() {
+ return monitorManageUserMobile;
+ }
+
+ public void setMonitorManageUserMobile(Object monitorManageUserMobile) {
+ this.monitorManageUserMobile = monitorManageUserMobile;
+ }
+
+ public Object getMemo() {
+ return memo;
+ }
+
+ public void setMemo(Object memo) {
+ this.memo = memo;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatus_dictText() {
+ return status_dictText;
+ }
+
+ public void setStatus_dictText(String status_dictText) {
+ this.status_dictText = status_dictText;
+ }
+
+ public String getDelFlag() {
+ return delFlag;
+ }
+
+ public void setDelFlag(String delFlag) {
+ this.delFlag = delFlag;
+ }
+
+ public String getDelFlag_dictText() {
+ return delFlag_dictText;
+ }
+
+ public void setDelFlag_dictText(String delFlag_dictText) {
+ this.delFlag_dictText = delFlag_dictText;
+ }
+
+ public Object getQywxIdentifier() {
+ return qywxIdentifier;
+ }
+
+ public void setQywxIdentifier(Object qywxIdentifier) {
+ this.qywxIdentifier = qywxIdentifier;
+ }
+
+ public Object getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(Object createBy) {
+ this.createBy = createBy;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public Object getUpdateBy() {
+ return updateBy;
+ }
+
+ public void setUpdateBy(Object updateBy) {
+ this.updateBy = updateBy;
+ }
+
+ public Object getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Object updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Object getLng() {
+ return lng;
+ }
+
+ public void setLng(Object lng) {
+ this.lng = lng;
+ }
+
+ public Object getLat() {
+ return lat;
+ }
+
+ public void setLat(Object lat) {
+ this.lat = lat;
+ }
+
+ public Integer getTenantId() {
+ return tenantId;
+ }
+
+ public void setTenantId(Integer tenantId) {
+ this.tenantId = tenantId;
+ }
+
+ public Integer getIzLeaf() {
+ return izLeaf;
+ }
+
+ public void setIzLeaf(Integer izLeaf) {
+ this.izLeaf = izLeaf;
+ }
+
+ public Object getManager() {
+ return manager;
+ }
+
+ public void setManager(Object manager) {
+ this.manager = manager;
+ }
+
+ public Object getDirectorUserIds() {
+ return directorUserIds;
+ }
+
+ public void setDirectorUserIds(Object directorUserIds) {
+ this.directorUserIds = directorUserIds;
+ }
+
+ public Object getOldDirectorUserIds() {
+ return oldDirectorUserIds;
+ }
+
+ public void setOldDirectorUserIds(Object oldDirectorUserIds) {
+ this.oldDirectorUserIds = oldDirectorUserIds;
+ }
+ }
+
+ public static class DepartDTO {
+ private String id;
+ private String parentId;
+ private String departName;
+ private Object departNameEn;
+ private Object departNameAbbr;
+ private Object departOrder;
+ private Object description;
+ private String orgCategory;
+ private String orgType;
+ private String orgCode;
+ private String orgClass;
+ private String orgClass_dictText;
+ private Object mobile;
+ private Object fax;
+ private Object address;
+ private Object healthManageUserName;
+ private Object healthManageUserMobile;
+ private Object healthManageUserAddress;
+ private Object medialManageUserName;
+ private Object medialManageUserMobile;
+ private Object medialManageUserAddress;
+ private Object monitorManageUserName;
+ private Object monitorManageUserMobile;
+ private Object memo;
+ private String status;
+ private String status_dictText;
+ private String delFlag;
+ private String delFlag_dictText;
+ private Object qywxIdentifier;
+ private Object createBy;
+ private String createTime;
+ private Object updateBy;
+ private Object updateTime;
+ private Object lng;
+ private Object lat;
+ private Integer tenantId;
+ private Integer izLeaf;
+ private Object manager;
+ private Object directorUserIds;
+ private Object oldDirectorUserIds;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(String parentId) {
+ this.parentId = parentId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public Object getDepartNameEn() {
+ return departNameEn;
+ }
+
+ public void setDepartNameEn(Object departNameEn) {
+ this.departNameEn = departNameEn;
+ }
+
+ public Object getDepartNameAbbr() {
+ return departNameAbbr;
+ }
+
+ public void setDepartNameAbbr(Object departNameAbbr) {
+ this.departNameAbbr = departNameAbbr;
+ }
+
+ public Object getDepartOrder() {
+ return departOrder;
+ }
+
+ public void setDepartOrder(Object departOrder) {
+ this.departOrder = departOrder;
+ }
+
+ public Object getDescription() {
+ return description;
+ }
+
+ public void setDescription(Object description) {
+ this.description = description;
+ }
+
+ public String getOrgCategory() {
+ return orgCategory;
+ }
+
+ public void setOrgCategory(String orgCategory) {
+ this.orgCategory = orgCategory;
+ }
+
+ public String getOrgType() {
+ return orgType;
+ }
+
+ public void setOrgType(String orgType) {
+ this.orgType = orgType;
+ }
+
+ public String getOrgCode() {
+ return orgCode;
+ }
+
+ public void setOrgCode(String orgCode) {
+ this.orgCode = orgCode;
+ }
+
+ public String getOrgClass() {
+ return orgClass;
+ }
+
+ public void setOrgClass(String orgClass) {
+ this.orgClass = orgClass;
+ }
+
+ public String getOrgClass_dictText() {
+ return orgClass_dictText;
+ }
+
+ public void setOrgClass_dictText(String orgClass_dictText) {
+ this.orgClass_dictText = orgClass_dictText;
+ }
+
+ public Object getMobile() {
+ return mobile;
+ }
+
+ public void setMobile(Object mobile) {
+ this.mobile = mobile;
+ }
+
+ public Object getFax() {
+ return fax;
+ }
+
+ public void setFax(Object fax) {
+ this.fax = fax;
+ }
+
+ public Object getAddress() {
+ return address;
+ }
+
+ public void setAddress(Object address) {
+ this.address = address;
+ }
+
+ public Object getHealthManageUserName() {
+ return healthManageUserName;
+ }
+
+ public void setHealthManageUserName(Object healthManageUserName) {
+ this.healthManageUserName = healthManageUserName;
+ }
+
+ public Object getHealthManageUserMobile() {
+ return healthManageUserMobile;
+ }
+
+ public void setHealthManageUserMobile(Object healthManageUserMobile) {
+ this.healthManageUserMobile = healthManageUserMobile;
+ }
+
+ public Object getHealthManageUserAddress() {
+ return healthManageUserAddress;
+ }
+
+ public void setHealthManageUserAddress(Object healthManageUserAddress) {
+ this.healthManageUserAddress = healthManageUserAddress;
+ }
+
+ public Object getMedialManageUserName() {
+ return medialManageUserName;
+ }
+
+ public void setMedialManageUserName(Object medialManageUserName) {
+ this.medialManageUserName = medialManageUserName;
+ }
+
+ public Object getMedialManageUserMobile() {
+ return medialManageUserMobile;
+ }
+
+ public void setMedialManageUserMobile(Object medialManageUserMobile) {
+ this.medialManageUserMobile = medialManageUserMobile;
+ }
+
+ public Object getMedialManageUserAddress() {
+ return medialManageUserAddress;
+ }
+
+ public void setMedialManageUserAddress(Object medialManageUserAddress) {
+ this.medialManageUserAddress = medialManageUserAddress;
+ }
+
+ public Object getMonitorManageUserName() {
+ return monitorManageUserName;
+ }
+
+ public void setMonitorManageUserName(Object monitorManageUserName) {
+ this.monitorManageUserName = monitorManageUserName;
+ }
+
+ public Object getMonitorManageUserMobile() {
+ return monitorManageUserMobile;
+ }
+
+ public void setMonitorManageUserMobile(Object monitorManageUserMobile) {
+ this.monitorManageUserMobile = monitorManageUserMobile;
+ }
+
+ public Object getMemo() {
+ return memo;
+ }
+
+ public void setMemo(Object memo) {
+ this.memo = memo;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatus_dictText() {
+ return status_dictText;
+ }
+
+ public void setStatus_dictText(String status_dictText) {
+ this.status_dictText = status_dictText;
+ }
+
+ public String getDelFlag() {
+ return delFlag;
+ }
+
+ public void setDelFlag(String delFlag) {
+ this.delFlag = delFlag;
+ }
+
+ public String getDelFlag_dictText() {
+ return delFlag_dictText;
+ }
+
+ public void setDelFlag_dictText(String delFlag_dictText) {
+ this.delFlag_dictText = delFlag_dictText;
+ }
+
+ public Object getQywxIdentifier() {
+ return qywxIdentifier;
+ }
+
+ public void setQywxIdentifier(Object qywxIdentifier) {
+ this.qywxIdentifier = qywxIdentifier;
+ }
+
+ public Object getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(Object createBy) {
+ this.createBy = createBy;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public Object getUpdateBy() {
+ return updateBy;
+ }
+
+ public void setUpdateBy(Object updateBy) {
+ this.updateBy = updateBy;
+ }
+
+ public Object getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Object updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Object getLng() {
+ return lng;
+ }
+
+ public void setLng(Object lng) {
+ this.lng = lng;
+ }
+
+ public Object getLat() {
+ return lat;
+ }
+
+ public void setLat(Object lat) {
+ this.lat = lat;
+ }
+
+ public Integer getTenantId() {
+ return tenantId;
+ }
+
+ public void setTenantId(Integer tenantId) {
+ this.tenantId = tenantId;
+ }
+
+ public Integer getIzLeaf() {
+ return izLeaf;
+ }
+
+ public void setIzLeaf(Integer izLeaf) {
+ this.izLeaf = izLeaf;
+ }
+
+ public Object getManager() {
+ return manager;
+ }
+
+ public void setManager(Object manager) {
+ this.manager = manager;
+ }
+
+ public Object getDirectorUserIds() {
+ return directorUserIds;
+ }
+
+ public void setDirectorUserIds(Object directorUserIds) {
+ this.directorUserIds = directorUserIds;
+ }
+
+ public Object getOldDirectorUserIds() {
+ return oldDirectorUserIds;
+ }
+
+ public void setOldDirectorUserIds(Object oldDirectorUserIds) {
+ this.oldDirectorUserIds = oldDirectorUserIds;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/xjjk/healthyclients/data/api/OtherApi.kt b/app/src/main/java/com/xjjk/healthyclients/data/api/OtherApi.kt
new file mode 100644
index 0000000..c228c01
--- /dev/null
+++ b/app/src/main/java/com/xjjk/healthyclients/data/api/OtherApi.kt
@@ -0,0 +1,47 @@
+package com.xjjk.healthyclients.data.api
+
+import com.xjjk.healthyclients.bean.UserListBean
+import com.xjjk.healthyclients.data.bean.ApiResponse
+import okhttp3.RequestBody
+import retrofit2.http.Body
+import retrofit2.http.FieldMap
+import retrofit2.http.FormUrlEncoded
+import retrofit2.http.GET
+import retrofit2.http.POST
+import retrofit2.http.QueryMap
+
+/**
+ * @author nanfeifei
+ * @time 2023/5/24 15:08
+ * @description 工作台接口定义
+ */
+interface OtherApi {
+ /**
+ * 获取模拟用户列表
+ */
+ @GET("/health-system/sys/user/listAll")
+ suspend fun listAll(@QueryMap params: MutableMap): ApiResponse
+ /**
+ * 模拟用户信息
+ */
+ @FormUrlEncoded
+ @POST("/health-system/test/fake")
+ suspend fun fake(@FieldMap params: MutableMap): ApiResponse
+ /**
+ * 获取模拟用户信息
+ */
+ @POST("/health-system/test/fakeUser")
+ suspend fun fakeUser(@Body requestBody: RequestBody): ApiResponse
+ /**
+ * 重置模拟
+ */
+ @POST("/health-system/test/restore")
+ suspend fun restore(@Body requestBody: RequestBody): ApiResponse
+
+ /**
+ * 校验token是否过期
+ */
+ @GET("/health-consultation/api/consult/msgRecord/selectTokenExpire")
+ suspend fun selectTokenExpire(@QueryMap params: MutableMap): ApiResponse
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/xjjk/healthyclients/data/repository/OtherRepository.kt b/app/src/main/java/com/xjjk/healthyclients/data/repository/OtherRepository.kt
new file mode 100644
index 0000000..a4f72ef
--- /dev/null
+++ b/app/src/main/java/com/xjjk/healthyclients/data/repository/OtherRepository.kt
@@ -0,0 +1,60 @@
+package com.xjjk.healthyclients.data.repository
+
+import com.xjjk.healthyclients.base.repository.BaseRepository
+import com.xjjk.healthyclients.bean.UserListBean
+import com.xjjk.healthyclients.data.api.OtherApi
+import com.xjjk.healthyclients.data.bean.ApiResponse
+import com.xjjk.healthyclients.retrofit.RetrofitManager
+import com.xjjk.healthyclients.retrofit.RetrofitManager.toRequestBody
+import com.xjjk.healthyclients.superfuntion.toJson
+
+
+object OtherRepository : BaseRepository() {
+ private val service by lazy { RetrofitManager.getService(OtherApi::class.java) }
+ suspend fun getList(
+ username: String
+ ): ApiResponse {
+ val params = mutableMapOf()
+ params["personType"] = 1
+ params["username"] = username
+ params["pageNo"] = 1
+ params["pageSize"] = 100
+ return apiCall {
+ service.listAll(params)
+ }
+ }
+
+ suspend fun simulateUser(
+ userId: String
+ ): ApiResponse {
+ val params = mutableMapOf()
+ params["userId"] = userId
+ return apiCall { service.fake(params) }
+ }
+
+ suspend fun fakeUser(
+
+ ): ApiResponse {
+ val params = mutableMapOf()
+// params["X-Access-Token"] = DataStoreManager.getToken()
+ return apiCall { service.fakeUser(params.toJson().toRequestBody()) }
+ }
+ suspend fun restore(
+ ): ApiResponse {
+ val params = mutableMapOf()
+// params["userId"] = userId
+ return apiCall { service.restore(params.toJson().toRequestBody()) }
+ }
+
+ /**
+ * 校验token有效性
+ */
+ suspend fun selectTokenExpire(token:String): ApiResponse {
+ return apiCall {
+ val map = mutableMapOf()
+ map.put("token",token)
+ service.selectTokenExpire(map)
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/xjjk/healthyclients/fragment/UserInfoFragment.kt b/app/src/main/java/com/xjjk/healthyclients/fragment/UserInfoFragment.kt
index 3e65af3..966a7d2 100644
--- a/app/src/main/java/com/xjjk/healthyclients/fragment/UserInfoFragment.kt
+++ b/app/src/main/java/com/xjjk/healthyclients/fragment/UserInfoFragment.kt
@@ -18,6 +18,7 @@ import com.xjjk.healthyclients.superfuntion.loadCircle
import com.xjjk.healthyclients.superfuntion.startConsultantManagerActivity
import com.xjjk.healthyclients.superfuntion.startEmergencySeekDoctorActivity
import com.xjjk.healthyclients.superfuntion.startLoginActivity
+import com.xjjk.healthyclients.superfuntion.startSimulateUserActivity
import com.xjjk.healthyclients.superfuntion.startUserInfoSettingActivity
import com.xjjk.healthyclients.superfuntion.startUserMyGuidanceActivity
import com.xjjk.healthyclients.superfuntion.startUserSettingActivity
@@ -72,7 +73,7 @@ class UserInfoFragment :
if (mHits[0] >= (SystemClock.uptimeMillis() - time)) {
//数组重新初始化
mHits = LongArray(mCount)
-// startSimulateUserActivity(requireContext())
+ startSimulateUserActivity(requireContext())
}
}
diff --git a/app/src/main/java/com/xjjk/healthyclients/superfuntion/StartActivityManager.kt b/app/src/main/java/com/xjjk/healthyclients/superfuntion/StartActivityManager.kt
index e6705bc..c48a62e 100644
--- a/app/src/main/java/com/xjjk/healthyclients/superfuntion/StartActivityManager.kt
+++ b/app/src/main/java/com/xjjk/healthyclients/superfuntion/StartActivityManager.kt
@@ -12,6 +12,7 @@ import com.xjjk.healthyclients.ui.activity.EmergencyContactActivity
import com.xjjk.healthyclients.ui.activity.FullScreenImageActivity
import com.xjjk.healthyclients.ui.activity.LoginActivity
import com.xjjk.healthyclients.ui.activity.RetrievePassWordActivity
+import com.xjjk.healthyclients.ui.activity.SimulateUserActivity
import com.xjjk.healthyclients.ui.activity.UserInfoSettingActivity
import com.xjjk.healthyclients.ui.activity.UserSettingActivity
import com.xjjk.healthyclients.ui.activity.UserSoSContactsActivity
@@ -25,7 +26,6 @@ import com.xjjk.healthyclients.ui.activity.guidance.BaseHealthyInfoAddActivity
import com.xjjk.healthyclients.ui.activity.guidance.ConsultArchivesDetailActivity
import com.xjjk.healthyclients.ui.activity.guidance.ConsultantManagerActivity
import com.xjjk.healthyclients.ui.activity.guidance.DoctorAllAppraiseActivity
-import com.xjjk.healthyclients.ui.activity.guidance.DoctorHomepageActivity
import com.xjjk.healthyclients.ui.activity.guidance.EditConsultantActivity
import com.xjjk.healthyclients.ui.activity.guidance.GeneralPracticeGuidanceActivity
import com.xjjk.healthyclients.ui.activity.guidance.GuidanceNoticeActivity
@@ -1373,9 +1373,9 @@ fun Context.startAllDoctorActivity(id:String) {
///**
// * 模拟用户
// */
-//fun startSimulateUserActivity(context: Context){
-// startActivity(context, targetClass = SimulateUserActivity::class.java)
-//}
+fun startSimulateUserActivity(context: Context){
+ startActivity(context, targetClass = SimulateUserActivity::class.java)
+}
//
///**
// * 自由训练记录列表
diff --git a/app/src/main/java/com/xjjk/healthyclients/ui/activity/LoginActivity.kt b/app/src/main/java/com/xjjk/healthyclients/ui/activity/LoginActivity.kt
index b7de2c1..56d4bd0 100644
--- a/app/src/main/java/com/xjjk/healthyclients/ui/activity/LoginActivity.kt
+++ b/app/src/main/java/com/xjjk/healthyclients/ui/activity/LoginActivity.kt
@@ -169,7 +169,7 @@ class LoginActivity : BaseVMBActivity(R
mHits = LongArray(mCount)
isAdminEnable=true
mBinding.loginEtUserName.setText("admin")
- mBinding.loginEtUserPassword.setInputContext("&ZzW$3**@VLA")
+ mBinding.loginEtUserPassword.setInputContext("#fCjW%x2dv@a")
showToast("已开启专业模式")
mCount = 5
diff --git a/app/src/main/java/com/xjjk/healthyclients/ui/activity/SimulateUserActivity.kt b/app/src/main/java/com/xjjk/healthyclients/ui/activity/SimulateUserActivity.kt
new file mode 100644
index 0000000..be13991
--- /dev/null
+++ b/app/src/main/java/com/xjjk/healthyclients/ui/activity/SimulateUserActivity.kt
@@ -0,0 +1,145 @@
+package com.xjjk.healthyclients.ui.activity
+
+import android.os.Bundle
+import android.view.View
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.chad.library.adapter.base.listener.OnItemClickListener
+import com.google.gson.Gson
+import com.sw.healthyclients.data.local.DataStoreManager
+import com.xjjk.healthyclients.R
+import com.xjjk.healthyclients.adapter.UserListAdapter
+import com.xjjk.healthyclients.base.BaseVMBActivity
+import com.xjjk.healthyclients.bean.UserListBean
+import com.xjjk.healthyclients.databinding.ActivitySumilateBinding
+import com.xjjk.healthyclients.event.UserInfoEvent
+import com.xjjk.healthyclients.superfuntion.getEmptyView
+import com.xjjk.healthyclients.superfuntion.orEmptyDefault
+import com.xjjk.healthyclients.ui.viewmodel.SimulateUserViewModel
+import com.xjjk.healthyclients.utils.CommonUtils
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.launch
+import org.greenrobot.eventbus.EventBus
+
+/**
+ * @author nanfeifei
+ * @time 2023/7/17 16:20
+ * @description
+ */
+class SimulateUserActivity: BaseVMBActivity(R.layout.activity_sumilate),
+ SwipeRefreshLayout.OnRefreshListener, OnItemClickListener {
+ private val mAdapter: UserListAdapter = UserListAdapter()
+ var userName=""
+ override fun initView(savedInstanceState: Bundle?) {
+ mBinding.apply {
+ val linearLayoutManager = LinearLayoutManager(this@SimulateUserActivity
+ )
+ rvList.layoutManager = linearLayoutManager
+ csvSearch.initView("请输入模拟用户账号")
+ csvSearch.setOnCustomClickListener {
+ userName= it
+ onRefresh()
+ }
+
+ btnReset.setOnClickListener {
+ var bean2= DataStoreManager.getUserInfo2()
+ CommonUtils.loginSaveData(bean2)
+ mViewModel.restore()
+ }
+ }
+ }
+
+ override fun initData() {
+ mViewModel.fakeUser(){}
+ }
+ override fun createObserve() {
+ super.createObserve()
+ mBinding.apply {
+ lifecycleScope.launch {
+ repeatOnLifecycle(Lifecycle.State.CREATED) {
+ mViewModel.userList.collectLatest { list ->
+ list?.let {
+ mAdapter.setNewInstance(list.records)
+ mAdapter.notifyDataSetChanged()
+ if (rvList.adapter == null) {
+ mAdapter.setEmptyView(rvList.getEmptyView())
+ mAdapter.setOnItemClickListener(this@SimulateUserActivity)
+// initLoadMore()
+ rvList.adapter = mAdapter
+ }
+ }
+ }
+ }
+ }
+
+ lifecycleScope.launch {
+ repeatOnLifecycle(Lifecycle.State.CREATED) {
+ mViewModel.isSimuLateState.collectLatest { state ->
+ if (state){
+ mViewModel.fakeUser(){bean->
+ DataStoreManager.saveUserInfo2(Gson().toJson(DataStoreManager.getUserInfo()))
+ var bean2= DataStoreManager.getUserInfo()
+ bean2.id=bean.id
+ bean2.username=bean.username
+ bean2.orgCode=bean.orgCode
+ bean2.birthday=bean.birthday
+ bean2.phone=bean.phone
+ bean2.avatar=bean.avatar
+ bean2.idCard=bean.idCard
+ bean2.workNo=bean.workNo
+ bean2.realname=bean.realname
+ bean2.sex=bean.sex
+ CommonUtils.loginSaveData(bean2)
+ EventBus.getDefault().post(UserInfoEvent())
+ finish()
+ }
+ }
+ }
+ }
+ }
+ lifecycleScope.launch {
+ repeatOnLifecycle(Lifecycle.State.CREATED) {
+ mViewModel.isResetState.collectLatest { state ->
+ if (state){
+ mBinding.tvUserName.text="当前模拟的用户:--"
+ EventBus.getDefault().post(UserInfoEvent())
+ }
+ }
+ }
+ }
+ lifecycleScope.launch {
+ repeatOnLifecycle(Lifecycle.State.CREATED) {
+ mViewModel.userBean.collectLatest { bean ->
+ if (bean!=null){
+// mBinding.llUser.visibility=View.VISIBLE
+ mBinding.tvUserName.text="当前模拟的用户:"+bean.realname.orEmptyDefault()
+ }else{
+// mBinding.llUser.visibility=View.GONE
+ mBinding.tvUserName.text="当前模拟的用户:--"
+ }
+ }
+ }
+ }
+ }
+ }
+ override fun bindEvent() {
+
+ }
+
+ override fun processClick(v: View?) {
+
+ }
+
+ override fun onRefresh() {
+ mViewModel.getMessageList(userName)
+ }
+
+ override fun onItemClick(adapter: BaseQuickAdapter<*, *>, view: View, position: Int) {
+ var bean=mAdapter?.getItem(position) as UserListBean.RecordsDTO
+ mViewModel.simulateUser(bean.id)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/xjjk/healthyclients/ui/viewmodel/SimulateUserViewModel.kt b/app/src/main/java/com/xjjk/healthyclients/ui/viewmodel/SimulateUserViewModel.kt
new file mode 100644
index 0000000..da2ced5
--- /dev/null
+++ b/app/src/main/java/com/xjjk/healthyclients/ui/viewmodel/SimulateUserViewModel.kt
@@ -0,0 +1,101 @@
+package com.xjjk.healthyclients.ui.viewmodel
+
+import com.sw.healthyclients.data.local.DataStoreManager
+import com.xjjk.healthyclients.base.viewmodel.BaseViewModel
+import com.xjjk.healthyclients.bean.UserListBean
+import com.xjjk.healthyclients.data.repository.OtherRepository
+import com.xjjk.healthyclients.superfuntion.handleRequest
+import com.xjjk.healthyclients.superfuntion.launch
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.MutableStateFlow
+
+/**
+ * @author nanfeifei
+ * @time 2023/7/17 16:19
+ * @description
+ */
+class SimulateUserViewModel: BaseViewModel() {
+ var userList = MutableSharedFlow()
+ var userBean = MutableSharedFlow()
+ var pageIndex = MutableStateFlow(1)
+ var isRefreshing = MutableStateFlow(false)
+ var isSimuLateState = MutableSharedFlow()
+ var isResetState = MutableStateFlow(false)
+ var isLoadMoreEnd = MutableSharedFlow()
+ var tokenOverdue = MutableSharedFlow()
+ private val pageSize = 20
+ override fun init() {
+ getMessageList("")
+ }
+ fun getMessageList(username: String){
+ launch(tryBlock = {
+ handleRequest(OtherRepository.getList(username), successBlock = {
+ if(it.result == null){
+
+ }else{
+ userList.emit(it.result!!)
+ }
+ })
+ }, finallyBlock = {
+ isRefreshing.emit(false)
+ })
+ }
+
+ fun simulateUser(userid: String){
+ launch(tryBlock = {
+ handleRequest(OtherRepository.simulateUser(userid), successBlock = {
+ if (it.result == true){
+ isSimuLateState.emit(true)
+ }else{
+ isSimuLateState.emit(false)
+ }
+ })
+ }, finallyBlock = {
+ isRefreshing.emit(false)
+ })
+ }
+ fun fakeUser(method:(bean: UserListBean.RecordsDTO)->Unit){
+ launch(tryBlock = {
+ handleRequest(OtherRepository.fakeUser(), successBlock = {
+ if (it.result !=null){
+ method(it.result!!)
+ userBean.emit(it.result!!)
+ }else{
+ userBean.emit(UserListBean.RecordsDTO())
+ }
+ })
+ }, finallyBlock = {
+ isRefreshing.emit(false)
+ })
+ }
+ fun restore(){
+ launch(tryBlock = {
+ handleRequest(OtherRepository.restore(), successBlock = {
+ if (it.result == true){
+ isResetState.emit(true)
+ }else{
+ isResetState.emit(false)
+ }
+ })
+ }, finallyBlock = {
+ isRefreshing.emit(false)
+ })
+ }
+
+ /**
+ * token有效性
+ */
+ fun selectTokenExpire() {
+ launch(
+ {
+ handleRequest(
+ OtherRepository.selectTokenExpire(DataStoreManager.getToken()),
+ successBlock = {
+ it.result?.let { result ->
+ tokenOverdue.emit(result)
+ }
+ })
+ }
+ )
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/xjjk/healthyclients/view/CustomSearchView.kt b/app/src/main/java/com/xjjk/healthyclients/view/CustomSearchView.kt
new file mode 100644
index 0000000..8b2a428
--- /dev/null
+++ b/app/src/main/java/com/xjjk/healthyclients/view/CustomSearchView.kt
@@ -0,0 +1,97 @@
+package com.xjjk.healthyclients.view
+
+import android.content.Context
+import android.text.Editable
+import android.text.TextUtils
+import android.text.TextWatcher
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.View
+import android.view.inputmethod.EditorInfo
+import android.widget.EditText
+import android.widget.RelativeLayout
+import androidx.databinding.DataBindingUtil
+import com.sw.healthyclients.utils.KeyboardUtil.hideSoftInput
+import com.xjjk.healthyclients.R
+import com.xjjk.healthyclients.databinding.CustomSearchViewBinding
+
+class CustomSearchView : RelativeLayout {
+
+ var mContext:Context?=null
+ lateinit var mBinding: CustomSearchViewBinding
+ constructor(context: Context?,attrs : AttributeSet?): super(context, attrs,0){
+ mContext=context
+ if(isInEditMode){
+ LayoutInflater.from(context).inflate(R.layout.custom_search_view, this, true)
+ }else{
+ mBinding = DataBindingUtil.inflate(
+ LayoutInflater.from(context),
+ R.layout.custom_search_view, this,true)
+ }
+
+ }
+ fun initView(hint:String){
+ mBinding.customSearchEt.hint="$hint"
+ }
+ fun initEtContext(value:String?){
+ mBinding.customSearchEt.setText(value)
+ }
+
+ fun setPerformClick(){
+ mBinding.customSearchTv.performClick()
+ }
+
+ fun setOnCustomClickListener(method: (searchContent: String) -> Unit): String {
+ mBinding.customSearchTv.setOnClickListener {
+ hideSoftInput(context, mBinding.customSearchEt)
+ var value = mBinding.customSearchEt.text.trim().toString()
+ method(value)
+ }
+ //输入内容为空时回调
+ mBinding.customSearchEt.addTextChangedListener(object : TextWatcher {
+ override fun beforeTextChanged(
+ s: CharSequence?,
+ start: Int,
+ count: Int,
+ after: Int
+ ) {
+ }
+
+ override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
+ if (TextUtils.isEmpty(s)) {
+// method("")
+ mBinding.customSearchTv.performClick()
+ }
+ }
+
+ override fun afterTextChanged(s: Editable?) {
+
+ }
+
+ })
+ mBinding.customSearchEt.setOnEditorActionListener { v, actionId, event ->
+ if (actionId == EditorInfo.IME_ACTION_SEARCH) {
+ //点击搜索的时候隐藏软键盘
+ hideSoftInput(context, v as EditText)
+ var value = mBinding.customSearchEt.text.trim().toString()
+ method(value)
+ }
+ false
+ }
+ return mBinding.customSearchEt.text.trim().toString()
+ }
+
+ fun setFocusListener(method: (hasFocus:Boolean) -> Unit){
+ mBinding.customSearchEt.setOnFocusChangeListener(object: OnFocusChangeListener{
+ override fun onFocusChange(v: View?, hasFocus: Boolean) {
+ method(hasFocus)
+ }
+ })
+ }
+
+ fun getInoputText():String{
+ return mBinding.customSearchEt.text.toString().trim()
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_sumilate.xml b/app/src/main/res/layout/activity_sumilate.xml
new file mode 100644
index 0000000..dbf9e12
--- /dev/null
+++ b/app/src/main/res/layout/activity_sumilate.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/custom_search_view.xml b/app/src/main/res/layout/custom_search_view.xml
new file mode 100644
index 0000000..c055dd9
--- /dev/null
+++ b/app/src/main/res/layout/custom_search_view.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_user_list.xml b/app/src/main/res/layout/item_user_list.xml
new file mode 100644
index 0000000..4a3719a
--- /dev/null
+++ b/app/src/main/res/layout/item_user_list.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file