package com.application.zhangshi_app_android.data;
|
|
import androidx.annotation.NonNull;
|
|
import com.android.app_base.base.model.BaseModel;
|
import com.android.app_base.http.ResultData;
|
import com.application.zhangshi_app_android.bean.CaptchaImageBean;
|
import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
|
import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
|
import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean;
|
import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean;
|
import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
|
import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean;
|
import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean;
|
import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean;
|
import com.application.zhangshi_app_android.bean.LoginRequestBean;
|
import com.application.zhangshi_app_android.bean.LoginResponseBean;
|
import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
|
import com.application.zhangshi_app_android.data.source.HttpDataSource;
|
import com.application.zhangshi_app_android.data.source.LocalDataSource;
|
import com.application.zhangshi_app_android.data.source.http.HttpDataSourceImpl;
|
import com.application.zhangshi_app_android.data.source.local.LocalDataSourceImpl;
|
|
import java.io.File;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.function.DoubleUnaryOperator;
|
|
import io.reactivex.Completable;
|
import io.reactivex.Observable;
|
import io.reactivex.Observer;
|
import okhttp3.MultipartBody;
|
|
/**
|
* @author Ljj
|
* @date 2023.03.01. 20:58
|
* @desc 数据仓库,包含网络数据和本地数据
|
*/
|
public class DataRepository extends BaseModel implements HttpDataSource, LocalDataSource {
|
|
private volatile static DataRepository INSTANCE = null;
|
private final HttpDataSource mHttpDataSource;
|
private final LocalDataSource mLocalDataSource;
|
|
private DataRepository(@NonNull HttpDataSource httpDataSource,
|
@NonNull LocalDataSource localDataSource) {
|
this.mHttpDataSource = httpDataSource;
|
this.mLocalDataSource = localDataSource;
|
}
|
|
public static DataRepository getInstance() {
|
if (INSTANCE == null) {
|
synchronized (DataRepository.class) {
|
if (INSTANCE == null) {
|
INSTANCE = new DataRepository(HttpDataSourceImpl.getInstance(), LocalDataSourceImpl.getInstance());
|
}
|
}
|
}
|
return INSTANCE;
|
}
|
|
|
@Override
|
public void onCleared() {
|
HttpDataSourceImpl.destroyInstance();
|
LocalDataSourceImpl.destroyInstance();
|
INSTANCE = null;
|
}
|
|
/**
|
* @see HttpDataSourceImpl
|
*/
|
/**
|
* 获取验证码图片
|
*/
|
public Observable<ResultData<CaptchaImageBean>> getCaptchaImage(){
|
return mHttpDataSource.getCaptchaImage();
|
}
|
|
/**
|
* 登录
|
*/
|
public Observable<ResultData<LoginResponseBean>> login(LoginRequestBean loginRequestBean){
|
return mHttpDataSource.login(loginRequestBean);
|
}
|
/**
|
* 注册
|
*/
|
public Observable<ResultData<String>> register(LoginRequestBean loginRequestBean){
|
return mHttpDataSource.register(loginRequestBean);
|
}
|
/**
|
* 获取家大事记
|
*/
|
@Override
|
public Observable<ResultData<FamilyMemorabiliaResponseBean>> getFamilyMemorabilia(Map<String,Object> paramsMap) {
|
return mHttpDataSource.getFamilyMemorabilia(paramsMap);
|
}
|
/**
|
* 增加家大事记
|
*/
|
@Override
|
public Observable<ResultData<String>> addFamilyMemorabilia(FamilyMemorabiliaBean familyMemorabiliaBean) {
|
return mHttpDataSource.addFamilyMemorabilia(familyMemorabiliaBean);
|
}
|
/**
|
* 删除家大事记
|
*/
|
@Override
|
public Observable<ResultData<String>> deleteFamilyMemorabilia(String ids) {
|
return mHttpDataSource.deleteFamilyMemorabilia(ids);
|
}
|
/**
|
* 删除家大事记
|
*/
|
@Override
|
public Observable<ResultData<String>> updateFamilyMemorabilia(FamilyMemorabiliaBean familyMemorabiliaBean) {
|
return mHttpDataSource.updateFamilyMemorabilia(familyMemorabiliaBean);
|
}
|
|
/**
|
* 上传文件
|
*/
|
public Observable<ResultData<UploadFileResponseBean>> uploadFile(MultipartBody.Part file) {
|
return mHttpDataSource.uploadFile(file);
|
}
|
|
/**
|
* 获取家庭资产
|
*/
|
public Observable<ResultData<FamilyAssetsResponseBean>> getFamilyAssets(Map<String,Object> paramsMap) {
|
return mHttpDataSource.getFamilyAssets(paramsMap);
|
}
|
|
/**
|
* 获取家庭设备
|
*/
|
public Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap) {
|
return mHttpDataSource.getHomeDevices(paramsMap);
|
}
|
|
/**
|
* 获取家庭荣誉
|
*/
|
public Observable<ResultData<HonorCollectionResponseBean>> getHonorCollections(Map<String, Object> map) {
|
return mHttpDataSource.getHonorCollections(map);
|
}
|
|
/**
|
* 获取小医生
|
*/
|
public Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(Map<String, Object> map) {
|
return mHttpDataSource.getLittleDoctors(map);
|
}
|
|
/**
|
* 获取收支台账
|
*/
|
public Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(Map<String, Object> map) {
|
return mHttpDataSource.getIncomeAndExpenses(map);
|
}
|
|
|
/**
|
* @see LocalDataSourceImpl
|
*/
|
}
|