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.ContactsDetailBean; import com.application.zhangshi_app_android.bean.ContactsResponseBean; import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean; import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean; 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.util.List; import java.util.Map; import io.reactivex.Observable; 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> getCaptchaImage(){ return mHttpDataSource.getCaptchaImage(); } /** * 登录 */ public Observable> login(LoginRequestBean loginRequestBean){ return mHttpDataSource.login(loginRequestBean); } /** * 注册 */ public Observable> register(LoginRequestBean loginRequestBean){ return mHttpDataSource.register(loginRequestBean); } /** * 获取家大事记 */ @Override public Observable> getFamilyMemorabilia(Map paramsMap) { return mHttpDataSource.getFamilyMemorabilia(paramsMap); } /** * 增加家大事记 */ @Override public Observable> addFamilyMemorabilia(FamilyMemorabiliaBean familyMemorabiliaBean) { return mHttpDataSource.addFamilyMemorabilia(familyMemorabiliaBean); } /** * 删除家大事记 */ @Override public Observable> deleteFamilyMemorabilia(String ids) { return mHttpDataSource.deleteFamilyMemorabilia(ids); } /** * 删除家大事记 */ @Override public Observable> updateFamilyMemorabilia(FamilyMemorabiliaBean familyMemorabiliaBean) { return mHttpDataSource.updateFamilyMemorabilia(familyMemorabiliaBean); } /** * 上传文件 */ public Observable> uploadFile(MultipartBody.Part file) { return mHttpDataSource.uploadFile(file); } /** * 获取家庭资产 */ public Observable> getFamilyAssets(Map paramsMap) { return mHttpDataSource.getFamilyAssets(paramsMap); } /** * 获取家庭设备 */ public Observable> getHomeDevices(Map paramsMap) { return mHttpDataSource.getHomeDevices(paramsMap); } /** * 获取成长经历 */ public Observable>> getGrowthExperience() { return mHttpDataSource.getGrowthExperience(); } /** * 获取成长经历个人信息 */ public Observable> getGrowthExperienceInformation() { return mHttpDataSource.getGrowthExperienceInformation(); } /** * 获取成长经历关系情况 */ public Observable>> getGrowthExperienceRelationship() { return mHttpDataSource.getGrowthExperienceRelationship(); } /** * 获取成长经历持有出入境证件情况 */ public Observable>> getGrowthExperienceHolderCondition() { return mHttpDataSource.getGrowthExperienceHolderCondition(); } /** * 获取成长经历出国境情况 */ public Observable>> getGrowthExperienceAbroadCondition() { return mHttpDataSource.getGrowthExperienceAbroadCondition(); } /** * 获取自传 */ @Override public Observable>> getGrowthExperienceAutobiography() { return mHttpDataSource.getGrowthExperienceAutobiography(); } /** * 获取通讯录 */ public Observable> getContacts(Map paramsMap) { return mHttpDataSource.getContacts(paramsMap); } /** * 获取家庭荣誉 */ public Observable> getHonorCollections(Map map) { return mHttpDataSource.getHonorCollections(map); } /** * 获取小医生 */ public Observable> getLittleDoctors(Map map) { return mHttpDataSource.getLittleDoctors(map); } /** * 获取收支台账 */ public Observable> getIncomeAndExpenses(Map map) { return mHttpDataSource.getIncomeAndExpenses(map); } /** * @see LocalDataSourceImpl */ }