package com.application.zhangshi_app_android.ui.function; import static com.android.app_base.base.BaseConfig.CODE_SUCCESS; import android.app.Application; import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.StateViewEnum; import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.http.ResultData; import com.android.app_base.utils.RxUtils; import com.android.app_base.utils.Utils; import com.application.zhangshi_app_android.bean.PageResponseBean; import com.application.zhangshi_app_android.bean.PrivacyBean; import com.application.zhangshi_app_android.bean.PrivacyRequestBean; import com.application.zhangshi_app_android.bean.PropertyBean; import com.application.zhangshi_app_android.bean.PropertyRequestBean; import com.application.zhangshi_app_android.data.DataRepository; import java.util.ArrayList; import java.util.Date; import java.util.List; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import io.reactivex.functions.Action; /** * @author Ljj * @date 2023.04.21. 19:10 * @desc 个人财产 ViewModel */ public class PropertyActivityViewModel extends BaseViewModel { private MutableLiveData> dataListLiveData; private MutableLiveData> moreListLiveData;//加载更多数据 private MutableLiveData requestBeanLiveData;//请求参数 public PropertyActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } /** * 获取数据 */ public void getProperty() { if (getRequestBeanLiveData().getValue() == null){ getRequestBeanLiveData().setValue(new PropertyRequestBean()); } getRequestBeanLiveData().getValue().setPageNum(1); model.getProperty(getRequestBeanLiveData().getValue().toMap()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ changeStateView(StateViewEnum.DATA_NULL); }else { changeStateView(StateViewEnum.HIDE); dataListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } /** * 加载更多 */ public void getMoreProperty(){ if (getRequestBeanLiveData().getValue() == null){ getRequestBeanLiveData().setValue(new PropertyRequestBean()); } getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1); model.getProperty(getRequestBeanLiveData().getValue().toMap()) .compose(RxUtils.schedulersTransformer()) .doFinally(new Action() { @Override public void run() throws Exception { changeStateView(StateViewEnum.DATA_FINISH); } }) .subscribe(new Observer>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ messageLiveData.postValue("没有更多数据了"); }else { changeStateView(StateViewEnum.HIDE); moreListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } public MutableLiveData> getDataListLiveData() { if (dataListLiveData == null){ dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public MutableLiveData getRequestBeanLiveData() { if (requestBeanLiveData == null){ requestBeanLiveData = new MutableLiveData<>(); } if (requestBeanLiveData.getValue() == null){ requestBeanLiveData.setValue(new PropertyRequestBean()); } return requestBeanLiveData; } public void setRequestBeanLiveData(MutableLiveData requestBeanLiveData) { this.requestBeanLiveData = requestBeanLiveData; } public MutableLiveData> getMoreListLiveData() { if (moreListLiveData == null){ moreListLiveData = new MutableLiveData<>(); } return moreListLiveData; } public void setMoreListLiveData(MutableLiveData> moreListLiveData) { this.moreListLiveData = moreListLiveData; } /** * 排序 * @param type 0 从新到旧 1 从旧到新 */ public void sortDataList(int type){ List list = dataListLiveData.getValue(); if (list == null || list.isEmpty()){ return; } if (type == 0) { // 从新到旧,null排最后 list.sort((o1, o2) -> { String happenTime1 = o1.getHappenTime(); String happenTime2 = o2.getHappenTime(); if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) { return 0; } else if (TextUtils.isEmpty(happenTime1)) { return 1; } else if (TextUtils.isEmpty(happenTime2)) { return -1; } else { Date date1 = Utils.parseDate(happenTime1); Date date2 = Utils.parseDate(happenTime2); if (date1 != null && date2 != null) { return date2.compareTo(date1); } return 0; } }); } else if (type == 1) { // 从旧到新,null排最前 list.sort((o1, o2) -> { String happenTime1 = o1.getHappenTime(); String happenTime2 = o2.getHappenTime(); if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) { return 0; } else if (TextUtils.isEmpty(happenTime1)) { return -1; } else if (TextUtils.isEmpty(happenTime2)) { return 1; } else { Date date1 = Utils.parseDate(happenTime1); Date date2 = Utils.parseDate(happenTime2); if (date1 != null && date2 != null) { return date1.compareTo(date2); } return 0; } }); } dataListLiveData.setValue(list); } }