737 lines
40 KiB
Java
737 lines
40 KiB
Java
package com.ubt.jimu.transport3;
|
||
|
||
import android.content.Context;
|
||
import android.graphics.Bitmap;
|
||
import android.text.TextUtils;
|
||
import android.util.Log;
|
||
import com.ijm.dataencryption.de.DataDecryptTool;
|
||
import com.ubt.jimu.JimuApplication;
|
||
import com.ubt.jimu.base.cache.Cache;
|
||
import com.ubt.jimu.base.db.diy.DiyDBModel;
|
||
import com.ubt.jimu.base.entities.User;
|
||
import com.ubt.jimu.base.http.ApiObserver;
|
||
import com.ubt.jimu.base.http.ApiResponse;
|
||
import com.ubt.jimu.diy.DiyRobotDbHandler;
|
||
import com.ubt.jimu.gen.DiyDBModelDao;
|
||
import com.ubt.jimu.transport.model.TransportFile;
|
||
import com.ubt.jimu.transport3.api.DiyTransportServiceProxy;
|
||
import com.ubt.jimu.transport3.bean.PageResultBean;
|
||
import com.ubt.jimu.transport3.bean.request.UploadModelActionBean;
|
||
import com.ubt.jimu.transport3.bean.request.UploadModelFileBean;
|
||
import com.ubt.jimu.transport3.bean.response.DiyModelBean;
|
||
import com.ubt.jimu.transport3.bean.response.SaveOrUpdateModelBean;
|
||
import com.ubt.jimu.transport3.bean.response.TransportFileBean;
|
||
import com.ubt.jimu.transport3.dao.DiyDBModelDBHandler;
|
||
import com.ubt.jimu.transport3.dao.DiyModelActionDBHandler;
|
||
import com.ubt.jimu.transport3.dao.TransportFileDbHandler2;
|
||
import com.ubt.jimu.transport3.model.DiyModelAction;
|
||
import com.ubt.jimu.unity.ModelType;
|
||
import com.ubt.jimu.upload.DataUploadProxy;
|
||
import com.ubt.jimu.upload.IUploadCallback;
|
||
import com.ubt.jimu.upload.SimpleUploadCallback;
|
||
import com.ubt.jimu.upload.UploadFilePathUtils;
|
||
import com.ubt.jimu.upload.UploadRequest;
|
||
import com.ubt.jimu.upload.UploadResponse;
|
||
import com.ubt.jimu.utils.LogUtils;
|
||
import com.ubt.jimu.utils.SystemUtils;
|
||
import com.ubt.jimu.utils.videoUtil.VideoUtils;
|
||
import com.ubtech.utils.XLog;
|
||
import io.reactivex.Observable;
|
||
import io.reactivex.ObservableEmitter;
|
||
import io.reactivex.ObservableOnSubscribe;
|
||
import io.reactivex.Observer;
|
||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||
import io.reactivex.disposables.Disposable;
|
||
import io.reactivex.functions.BiFunction;
|
||
import io.reactivex.functions.Consumer;
|
||
import io.reactivex.functions.Function;
|
||
import io.reactivex.schedulers.Schedulers;
|
||
import java.io.ByteArrayOutputStream;
|
||
import java.io.File;
|
||
import java.util.ArrayList;
|
||
import java.util.HashMap;
|
||
import java.util.Iterator;
|
||
import java.util.List;
|
||
import org.greenrobot.greendao.query.QueryBuilder;
|
||
import org.greenrobot.greendao.query.WhereCondition;
|
||
|
||
/* loaded from: classes2.dex */
|
||
public class DiyTransportServiceImpl {
|
||
private static final String TAG = "DiyTransportServiceImpl";
|
||
private static DiyTransportServiceImpl impl;
|
||
private DiyTransportServiceProxy proxy = new DiyTransportServiceProxy();
|
||
private TransportFileDbHandler2 transportFileDbHandler = TransportFileDbHandler2.getInstance();
|
||
private DiyDBModelDBHandler diyDBModelDBHandler = DiyDBModelDBHandler.getInstance();
|
||
private DiyModelActionDBHandler diyModelActionDBHandler = DiyModelActionDBHandler.getInstance();
|
||
private Context context = JimuApplication.l().getApplicationContext();
|
||
private TransportLogic transportLogic = new TransportLogic();
|
||
|
||
public interface UploadStateListener {
|
||
void onUploadComplete();
|
||
|
||
void onUploadFailure();
|
||
|
||
void onUploadSucceed();
|
||
}
|
||
|
||
private DiyTransportServiceImpl() {
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
public List<TransportFile> checkAndDownloadModelFile(DiyDBModel diyDBModel, List<TransportFile> list) {
|
||
ArrayList arrayList = new ArrayList();
|
||
if (list != null && list.size() != 0) {
|
||
List<TransportFile> modelFiles = this.transportFileDbHandler.getModelFiles(diyDBModel.getModelCreatedId(), diyDBModel.getCustomModelId());
|
||
if (modelFiles.size() == 0) {
|
||
Iterator<TransportFile> it = list.iterator();
|
||
while (it.hasNext()) {
|
||
arrayList.add(it.next());
|
||
}
|
||
return arrayList;
|
||
}
|
||
ArrayList arrayList2 = new ArrayList();
|
||
HashMap hashMap = new HashMap();
|
||
for (TransportFile transportFile : modelFiles) {
|
||
hashMap.put(transportFile.getFileType() + transportFile.getFileName(), transportFile);
|
||
}
|
||
for (TransportFile transportFile2 : list) {
|
||
TransportFile transportFile3 = (TransportFile) hashMap.get(transportFile2.getFileType() + transportFile2.getFileName());
|
||
if (transportFile3 == null) {
|
||
arrayList.add(transportFile2);
|
||
} else if (transportFile2.getLastUploadTime() > transportFile3.getLastUploadTime()) {
|
||
transportFile3.setLastUploadTime(transportFile2.getLastUploadTime());
|
||
transportFile3.setFileVersion(transportFile2.getFileVersion());
|
||
transportFile3.setFileUrl(transportFile2.getFileUrl());
|
||
transportFile3.setFileName(transportFile2.getFileName());
|
||
arrayList.add(transportFile3);
|
||
LogUtils.c(transportFile2.getFileName() + " 需要更新:" + transportFile2.getLastUploadTime() + " 本地时间:" + transportFile3.getLastUploadTime());
|
||
} else {
|
||
LogUtils.c(transportFile2.getFileName() + "不需要更新:" + TransportFileDbHandler2.getAbsoluteModelFilePath(transportFile3) + "服务器时间时间:" + transportFile2.getLastUploadTime() + " 本地时间:" + transportFile3.getLastUploadTime());
|
||
if (!new File(TransportFileDbHandler2.getAbsoluteModelFilePath(transportFile3)).exists()) {
|
||
LogUtils.c(transportFile2.getFileName() + " 由于本地文件不存在,也要更新");
|
||
arrayList.add(transportFile3);
|
||
}
|
||
}
|
||
}
|
||
arrayList2.size();
|
||
}
|
||
return arrayList;
|
||
}
|
||
|
||
public static synchronized DiyTransportServiceImpl getInstance() {
|
||
DiyTransportServiceImpl diyTransportServiceImpl;
|
||
synchronized (DiyTransportServiceImpl.class) {
|
||
if (impl == null) {
|
||
impl = new DiyTransportServiceImpl();
|
||
}
|
||
diyTransportServiceImpl = impl;
|
||
}
|
||
return diyTransportServiceImpl;
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
public void saveOrUpdateModelUbtServer(final DiyDBModel diyDBModel, final TransportFile transportFile, final UploadStateListener uploadStateListener) {
|
||
this.proxy.saveOrUpdateModel(diyDBModel, Cache.getInstance().getUserToken()).subscribeOn(Schedulers.b()).observeOn(Schedulers.b()).subscribe(new Consumer<ApiResponse<SaveOrUpdateModelBean>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.11
|
||
@Override // io.reactivex.functions.Consumer
|
||
public void accept(ApiResponse<SaveOrUpdateModelBean> apiResponse) throws Exception {
|
||
if (apiResponse == null || !apiResponse.isStatus() || apiResponse.getModels() == null) {
|
||
LogUtils.c("模型数据上传到公司服务器失败");
|
||
return;
|
||
}
|
||
SaveOrUpdateModelBean models = apiResponse.getModels();
|
||
diyDBModel.setIsModify(false);
|
||
diyDBModel.setModelId(Integer.valueOf(models.getModelId()));
|
||
diyDBModel.setModifyTime(models.getLastUploadTime());
|
||
diyDBModel.setLastUploadTime(models.getLastUploadTime());
|
||
diyDBModel.setModelName(models.getModelName());
|
||
if (!TextUtils.isEmpty(diyDBModel.getDescription())) {
|
||
diyDBModel.setDescription(models.getDescription());
|
||
}
|
||
if (!TextUtils.isEmpty(models.getCompressImagePath())) {
|
||
diyDBModel.setCompressImagePath(models.getCompressImagePath());
|
||
}
|
||
DiyTransportServiceImpl.this.diyDBModelDBHandler.update(diyDBModel);
|
||
if (transportFile.getModelId() == 0) {
|
||
transportFile.setModelId(models.getModelId());
|
||
transportFile.setIsModify(false);
|
||
DiyTransportServiceImpl.this.transportFileDbHandler.update(transportFile);
|
||
}
|
||
LogUtils.c("创建模型成功");
|
||
ArrayList arrayList = new ArrayList();
|
||
arrayList.add(transportFile);
|
||
UploadModelFileBean uploadModelFileBean = new UploadModelFileBean(Cache.getInstance().getUserId(), Cache.getInstance().getUserToken(), (int) transportFile.getModelId(), transportFile.getCustomModelId());
|
||
if (transportFile.getId() == 0) {
|
||
uploadModelFileBean.setAddFiles(arrayList);
|
||
} else {
|
||
uploadModelFileBean.setUpdateFiles(arrayList);
|
||
}
|
||
DiyTransportServiceImpl.this.uploadModelFiles(uploadModelFileBean, transportFile, null, uploadStateListener);
|
||
}
|
||
});
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
public void uploadActions(UploadModelActionBean uploadModelActionBean, final DiyModelAction diyModelAction) {
|
||
this.proxy.uploadActions(uploadModelActionBean).observeOn(Schedulers.c()).subscribeOn(Schedulers.c()).subscribe(new Observer<ApiResponse<Object>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.14
|
||
@Override // io.reactivex.Observer
|
||
public void onComplete() {
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onError(Throwable th) {
|
||
th.printStackTrace();
|
||
diyModelAction.setUploading(0);
|
||
DiyTransportServiceImpl.this.diyModelActionDBHandler.update(diyModelAction);
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onSubscribe(Disposable disposable) {
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onNext(ApiResponse<Object> apiResponse) {
|
||
if (apiResponse.isStatus()) {
|
||
diyModelAction.setUploading(0);
|
||
diyModelAction.setModify(false);
|
||
diyModelAction.setUploaded(true);
|
||
diyModelAction.setServerId(1L);
|
||
LogUtils.c("上传到公司服务器成功时间为:" + diyModelAction.getLastUploadTime());
|
||
DiyTransportServiceImpl.this.diyModelActionDBHandler.insertOrUpdateActionDB(diyModelAction);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
public void deleteAction(final DiyModelAction diyModelAction) {
|
||
if (diyModelAction == null) {
|
||
return;
|
||
}
|
||
UploadModelActionBean.UploadModelAction fromDiyModelAction = UploadModelActionBean.fromDiyModelAction(diyModelAction);
|
||
UploadModelActionBean uploadModelActionBean = new UploadModelActionBean(Cache.getInstance().getUserToken(), diyModelAction.getModelId(), diyModelAction.getCustomModelId());
|
||
ArrayList arrayList = new ArrayList();
|
||
arrayList.add(fromDiyModelAction);
|
||
uploadModelActionBean.setDeleteActions(arrayList);
|
||
this.proxy.uploadActions(uploadModelActionBean).subscribeOn(Schedulers.b()).subscribe(new Observer<ApiResponse<Object>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.15
|
||
@Override // io.reactivex.Observer
|
||
public void onComplete() {
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onError(Throwable th) {
|
||
th.printStackTrace();
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onSubscribe(Disposable disposable) {
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onNext(ApiResponse<Object> apiResponse) {
|
||
if (apiResponse == null || !apiResponse.isStatus()) {
|
||
return;
|
||
}
|
||
DiyModelActionDBHandler.getInstance().delete(diyModelAction);
|
||
}
|
||
});
|
||
}
|
||
|
||
public void deleteModel(String str, List<DiyDBModel> list, Observer<ApiResponse<Object>> observer) {
|
||
if (list == null || list.size() == 0) {
|
||
return;
|
||
}
|
||
ArrayList arrayList = new ArrayList();
|
||
for (DiyDBModel diyDBModel : list) {
|
||
HashMap hashMap = new HashMap();
|
||
hashMap.put("modelId", diyDBModel.getModelId());
|
||
hashMap.put("lastUploadTime", Long.valueOf(diyDBModel.getLastUploadTime() == 0 ? diyDBModel.getModifyTime() : diyDBModel.getLastUploadTime()));
|
||
arrayList.add(hashMap);
|
||
}
|
||
this.proxy.deleteModels(str, Cache.getInstance().getUserToken(), arrayList).observeOn(Schedulers.b()).subscribeOn(Schedulers.b()).subscribe(observer);
|
||
}
|
||
|
||
public void deleteModelFile(final TransportFile transportFile) {
|
||
if (transportFile == null) {
|
||
return;
|
||
}
|
||
if (transportFile.getId() < 1) {
|
||
this.transportFileDbHandler.delete(transportFile);
|
||
return;
|
||
}
|
||
ArrayList arrayList = new ArrayList();
|
||
arrayList.add(transportFile);
|
||
UploadModelFileBean uploadModelFileBean = new UploadModelFileBean(transportFile.getUserId(), Cache.getInstance().getUserToken(), (int) transportFile.getModelId(), transportFile.getCustomModelId());
|
||
uploadModelFileBean.setDeleteFiles(arrayList);
|
||
this.proxy.uploadModelFiles(uploadModelFileBean).subscribeOn(Schedulers.b()).subscribe(new Observer<ApiResponse<Object>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.8
|
||
@Override // io.reactivex.Observer
|
||
public void onComplete() {
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onError(Throwable th) {
|
||
th.printStackTrace();
|
||
Log.e(DiyTransportServiceImpl.TAG, th.getMessage());
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onSubscribe(Disposable disposable) {
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onNext(ApiResponse<Object> apiResponse) {
|
||
if (apiResponse.isStatus()) {
|
||
DiyTransportServiceImpl.this.transportFileDbHandler.delete(transportFile);
|
||
} else {
|
||
Log.e(DiyTransportServiceImpl.TAG, "调用接口删除文件失败!");
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
public void getModelActions(String str, Integer num, final ApiObserver<List<DiyModelAction>> apiObserver) {
|
||
if ("local".equals(str)) {
|
||
apiObserver.onError(new Exception("本地账号"));
|
||
} else if (num == null || num.intValue() == 0) {
|
||
apiObserver.onError(new Exception("模型未同步"));
|
||
} else {
|
||
this.proxy.actions(num.intValue(), Cache.getInstance().getUserToken()).subscribeOn(Schedulers.b()).observeOn(AndroidSchedulers.a()).subscribe(new Observer<ApiResponse<List<DiyModelAction>>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.12
|
||
@Override // io.reactivex.Observer
|
||
public void onComplete() {
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onError(Throwable th) {
|
||
ApiObserver apiObserver2 = apiObserver;
|
||
if (apiObserver2 != null) {
|
||
apiObserver2.onError(th);
|
||
}
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onSubscribe(Disposable disposable) {
|
||
ApiObserver apiObserver2 = apiObserver;
|
||
if (apiObserver2 != null) {
|
||
apiObserver2.onSubscribe(disposable);
|
||
}
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onNext(ApiResponse<List<DiyModelAction>> apiResponse) {
|
||
if (apiResponse == null || !apiResponse.isStatus()) {
|
||
apiObserver.onError(new Throwable("listApiResponse is null"));
|
||
return;
|
||
}
|
||
List<DiyModelAction> models = apiResponse.getModels();
|
||
if (models == null || models.size() == 0) {
|
||
return;
|
||
}
|
||
ArrayList arrayList = new ArrayList();
|
||
ArrayList arrayList2 = new ArrayList();
|
||
for (DiyModelAction diyModelAction : models) {
|
||
if (diyModelAction != null) {
|
||
diyModelAction.setServerId(1L);
|
||
diyModelAction.setUserId(Cache.getInstance().getUserId());
|
||
if (diyModelAction.getIsDeleted() != 1) {
|
||
DiyModelAction selectUnique = DiyTransportServiceImpl.this.diyModelActionDBHandler.selectUnique(diyModelAction);
|
||
if (selectUnique == null || selectUnique.getLastUploadTime() < diyModelAction.getLastUploadTime()) {
|
||
arrayList.add(diyModelAction);
|
||
}
|
||
} else if (DiyTransportServiceImpl.this.diyModelActionDBHandler.deleteModelAction(diyModelAction)) {
|
||
arrayList2.add(diyModelAction);
|
||
}
|
||
}
|
||
}
|
||
ApiObserver apiObserver2 = apiObserver;
|
||
if (apiObserver2 != null) {
|
||
apiObserver2.onNext(arrayList);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
public void getModelFiles(final DiyDBModel diyDBModel, ApiObserver<List<TransportFile>> apiObserver) {
|
||
LogUtils.c("token:" + Cache.getInstance().getUserToken());
|
||
this.proxy.getModelFiles(diyDBModel.getModelCreatedId(), diyDBModel.getModelId().intValue(), Cache.getInstance().getUserToken()).subscribeOn(Schedulers.b()).map(new Function<ApiResponse<List<TransportFileBean>>, List<TransportFile>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.4
|
||
@Override // io.reactivex.functions.Function
|
||
public List<TransportFile> apply(ApiResponse<List<TransportFileBean>> apiResponse) {
|
||
ArrayList arrayList = new ArrayList();
|
||
if (apiResponse == null || !apiResponse.isStatus()) {
|
||
return null;
|
||
}
|
||
List<TransportFileBean> models = apiResponse.getModels();
|
||
if (models == null || models.size() == 0) {
|
||
return arrayList;
|
||
}
|
||
Iterator<TransportFileBean> it = models.iterator();
|
||
while (it.hasNext()) {
|
||
arrayList.add(TransportFileBean.toTransportFile(diyDBModel.getModelCreatedId(), it.next()));
|
||
}
|
||
return DiyTransportServiceImpl.this.checkAndDownloadModelFile(diyDBModel, arrayList);
|
||
}
|
||
}).subscribeOn(Schedulers.b()).observeOn(AndroidSchedulers.a()).subscribe(apiObserver);
|
||
}
|
||
|
||
public void getModels(final String str, ApiObserver<List<DiyDBModel>> apiObserver) {
|
||
final User user = Cache.getInstance().getUser();
|
||
Observable create = Observable.create(new ObservableOnSubscribe<List<DiyDBModel>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.1
|
||
@Override // io.reactivex.ObservableOnSubscribe
|
||
public void subscribe(ObservableEmitter<List<DiyDBModel>> observableEmitter) {
|
||
String str2 = str;
|
||
if (user == null || "local".equals(str2)) {
|
||
str2 = "local";
|
||
}
|
||
QueryBuilder<DiyDBModel> queryBuilder = DiyTransportServiceImpl.this.diyDBModelDBHandler.getQueryBuilder();
|
||
queryBuilder.a(DiyDBModelDao.Properties.ModelCreatedId.a((Object) str2), new WhereCondition[0]);
|
||
queryBuilder.b(DiyDBModelDao.Properties.CustomModelCreatetime);
|
||
observableEmitter.onNext(DiyTransportServiceImpl.this.diyDBModelDBHandler.query(queryBuilder));
|
||
observableEmitter.onComplete();
|
||
}
|
||
});
|
||
if (user == null || "local".equals(str)) {
|
||
create.subscribeOn(Schedulers.b()).observeOn(AndroidSchedulers.a()).subscribe(apiObserver);
|
||
} else {
|
||
Observable.zip(create, this.proxy.getModels(str, Cache.getInstance().getUserToken()).map(new Function<ApiResponse<PageResultBean<DiyModelBean>>, List<DiyDBModel>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.2
|
||
@Override // io.reactivex.functions.Function
|
||
public List<DiyDBModel> apply(ApiResponse<PageResultBean<DiyModelBean>> apiResponse) {
|
||
ArrayList arrayList = new ArrayList();
|
||
if (apiResponse != null && apiResponse.isStatus() && apiResponse.getModels() != null && apiResponse.getModels().getData() != null) {
|
||
Iterator<DiyModelBean> it = apiResponse.getModels().getData().iterator();
|
||
while (it.hasNext()) {
|
||
arrayList.add(DiyModelBean.toDiyModel(it.next()));
|
||
}
|
||
}
|
||
return arrayList;
|
||
}
|
||
}), new BiFunction<List<DiyDBModel>, List<DiyDBModel>, List<DiyDBModel>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.3
|
||
@Override // io.reactivex.functions.BiFunction
|
||
public List<DiyDBModel> apply(List<DiyDBModel> list, List<DiyDBModel> list2) {
|
||
return DiyTransportServiceImpl.this.transportLogic.pullServerModels(str, list, list2);
|
||
}
|
||
}).subscribeOn(Schedulers.b()).observeOn(AndroidSchedulers.a()).subscribe(apiObserver);
|
||
}
|
||
}
|
||
|
||
public void saveOrUpdateModel(final DiyDBModel diyDBModel, final TransportFile transportFile, final UploadStateListener uploadStateListener) {
|
||
String logPath = DiyRobotDbHandler.getLogPath(ModelType.PLAYER_DATA, diyDBModel.getCustomModelId());
|
||
if (!TextUtils.isEmpty(logPath) && new File(logPath).exists()) {
|
||
UploadRequest uploadRequest = new UploadRequest();
|
||
uploadRequest.b(logPath);
|
||
uploadRequest.a(UploadFilePathUtils.a(logPath));
|
||
DataUploadProxy.c().a(uploadRequest, new SimpleUploadCallback() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.10
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadFaulted(UploadRequest uploadRequest2, Exception exc) {
|
||
LogUtils.c("log上传失败");
|
||
}
|
||
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadSucceed(UploadResponse uploadResponse) {
|
||
LogUtils.c("log上传成功:" + uploadResponse.c());
|
||
transportFile.setFileUrl(uploadResponse.c());
|
||
transportFile.setUploaded(true);
|
||
DiyTransportServiceImpl.this.transportFileDbHandler.update(transportFile);
|
||
if (transportFile.getFileType() == "bg") {
|
||
diyDBModel.setCompressImagePath(uploadResponse.c());
|
||
}
|
||
DiyTransportServiceImpl.this.saveOrUpdateModelUbtServer(diyDBModel, transportFile, uploadStateListener);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
public void syncOfficialModelFileToService(UploadModelFileBean uploadModelFileBean, final TransportFile transportFile) {
|
||
if (uploadModelFileBean == null) {
|
||
return;
|
||
}
|
||
this.proxy.uploadModelFiles(uploadModelFileBean).observeOn(Schedulers.c()).subscribeOn(Schedulers.c()).subscribe(new Consumer<ApiResponse<Object>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.17
|
||
@Override // io.reactivex.functions.Consumer
|
||
public void accept(ApiResponse<Object> apiResponse) throws Exception {
|
||
XLog.a("sync", "upload file success! path: %s, url:%s", transportFile.getFullPath(), transportFile.getFileUrl());
|
||
if (apiResponse.isStatus()) {
|
||
transportFile.setIsModify(false);
|
||
transportFile.setUploaded(true);
|
||
transportFile.setId(1L);
|
||
TransportFileDbHandler2.getInstance().update(transportFile);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
public void updateModel(final DiyDBModel diyDBModel, Observer<ApiResponse<SaveOrUpdateModelBean>> observer) {
|
||
this.proxy.saveOrUpdateModel(diyDBModel, Cache.getInstance().getUserToken()).subscribeOn(Schedulers.b()).map(new Function<ApiResponse<SaveOrUpdateModelBean>, ApiResponse<SaveOrUpdateModelBean>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.9
|
||
@Override // io.reactivex.functions.Function
|
||
public ApiResponse<SaveOrUpdateModelBean> apply(ApiResponse<SaveOrUpdateModelBean> apiResponse) {
|
||
if (apiResponse != null && apiResponse.isStatus()) {
|
||
diyDBModel.setIsModify(false);
|
||
DiyTransportServiceImpl.this.diyDBModelDBHandler.insertOrUpdate(diyDBModel);
|
||
}
|
||
return apiResponse;
|
||
}
|
||
}).subscribeOn(Schedulers.b()).observeOn(Schedulers.b()).subscribe(observer);
|
||
}
|
||
|
||
public void uploadAction(final DiyModelAction diyModelAction, TransportFile transportFile) {
|
||
if (diyModelAction.getUploading() == 1) {
|
||
return;
|
||
}
|
||
diyModelAction.setUploading(1);
|
||
this.diyModelActionDBHandler.update(diyModelAction);
|
||
String absoluteModelFilePath = TransportFileDbHandler2.getAbsoluteModelFilePath(transportFile);
|
||
if (!TextUtils.isEmpty(absoluteModelFilePath) && new File(absoluteModelFilePath).exists()) {
|
||
UploadRequest uploadRequest = new UploadRequest();
|
||
uploadRequest.b(absoluteModelFilePath);
|
||
uploadRequest.a(UploadFilePathUtils.a(absoluteModelFilePath));
|
||
DataUploadProxy.c().a(uploadRequest, new SimpleUploadCallback() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.13
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadFaulted(UploadRequest uploadRequest2, Exception exc) {
|
||
diyModelAction.setUploading(0);
|
||
DiyTransportServiceImpl.this.diyModelActionDBHandler.update(diyModelAction);
|
||
LogUtils.c("上传动作失败");
|
||
}
|
||
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadSucceed(UploadResponse uploadResponse) {
|
||
LogUtils.c("上传动作成功:" + uploadResponse.c());
|
||
diyModelAction.setFileUrl(uploadResponse.c());
|
||
UploadModelActionBean uploadModelActionBean = new UploadModelActionBean(Cache.getInstance().getUserToken(), diyModelAction.getModelId(), diyModelAction.getCustomModelId());
|
||
ArrayList arrayList = new ArrayList();
|
||
arrayList.add(UploadModelActionBean.fromDiyModelAction(diyModelAction));
|
||
if (diyModelAction.getServerId() <= 0) {
|
||
uploadModelActionBean.setAddActions(arrayList);
|
||
} else {
|
||
uploadModelActionBean.setUpdateActions(arrayList);
|
||
}
|
||
DiyTransportServiceImpl.this.uploadActions(uploadModelActionBean, diyModelAction);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
public void uploadFile(TransportFile transportFile, final IUploadCallback iUploadCallback) {
|
||
if (iUploadCallback == null) {
|
||
return;
|
||
}
|
||
String absoluteModelFilePath = TransportFileDbHandler2.getAbsoluteModelFilePath(transportFile);
|
||
LogUtils.c("filePath:" + absoluteModelFilePath);
|
||
if (TextUtils.isEmpty(absoluteModelFilePath)) {
|
||
return;
|
||
}
|
||
if (!new File(absoluteModelFilePath).exists()) {
|
||
LogUtils.c("Diy file not exists");
|
||
return;
|
||
}
|
||
UploadRequest uploadRequest = new UploadRequest();
|
||
uploadRequest.a(UploadFilePathUtils.a(absoluteModelFilePath));
|
||
uploadRequest.b(absoluteModelFilePath);
|
||
DataUploadProxy.c().a(uploadRequest, new SimpleUploadCallback() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.16
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadFaulted(UploadRequest uploadRequest2, Exception exc) {
|
||
iUploadCallback.uploadFaulted(uploadRequest2, exc);
|
||
}
|
||
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadSucceed(UploadResponse uploadResponse) {
|
||
iUploadCallback.uploadSucceed(uploadResponse);
|
||
}
|
||
});
|
||
}
|
||
|
||
public void uploadModelFile(final DiyDBModel diyDBModel, final TransportFile transportFile, final UploadStateListener uploadStateListener) {
|
||
if (diyDBModel == null || diyDBModel.getModelId() == null || diyDBModel.getModelId().intValue() == 0) {
|
||
return;
|
||
}
|
||
String absoluteModelFilePath = TransportFileDbHandler2.getAbsoluteModelFilePath(transportFile);
|
||
if (!TextUtils.isEmpty(absoluteModelFilePath) && new File(absoluteModelFilePath).exists()) {
|
||
final UploadRequest uploadRequest = new UploadRequest();
|
||
uploadRequest.b(absoluteModelFilePath);
|
||
uploadRequest.a(UploadFilePathUtils.a(absoluteModelFilePath));
|
||
DataUploadProxy.c().a(uploadRequest, new SimpleUploadCallback() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.5
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadFaulted(UploadRequest uploadRequest2, Exception exc) {
|
||
UploadStateListener uploadStateListener2 = uploadStateListener;
|
||
if (uploadStateListener2 != null) {
|
||
uploadStateListener2.onUploadFailure();
|
||
}
|
||
LogUtils.c("上传文件失败");
|
||
}
|
||
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadSucceed(UploadResponse uploadResponse) {
|
||
LogUtils.c("上传文件成功:" + uploadResponse.c());
|
||
transportFile.setFileUrl(uploadResponse.c());
|
||
transportFile.setUploaded(true);
|
||
if (transportFile.getModelId() <= 0) {
|
||
transportFile.setModelId(diyDBModel.getModelId().intValue());
|
||
}
|
||
DiyTransportServiceImpl.this.transportFileDbHandler.update(transportFile);
|
||
ArrayList arrayList = new ArrayList();
|
||
arrayList.add(transportFile);
|
||
UploadModelFileBean uploadModelFileBean = new UploadModelFileBean(diyDBModel.getModelCreatedId(), Cache.getInstance().getUserToken(), diyDBModel.getModelId().intValue(), diyDBModel.getCustomModelId());
|
||
if (transportFile.getId() >= 1) {
|
||
uploadModelFileBean.setUpdateFiles(arrayList);
|
||
} else {
|
||
uploadModelFileBean.setAddFiles(arrayList);
|
||
}
|
||
if (!TransportFile.TYPE_DIY_SHOW.equals(transportFile.getFileType())) {
|
||
DiyTransportServiceImpl.this.uploadModelFiles(uploadModelFileBean, transportFile, null, uploadStateListener);
|
||
return;
|
||
}
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.append("七牛视频上传成功 新增:");
|
||
sb.append(uploadModelFileBean.getAddFiles() == null ? 0 : uploadModelFileBean.getAddFiles().size());
|
||
LogUtils.c(sb.toString());
|
||
StringBuilder sb2 = new StringBuilder();
|
||
sb2.append("七牛视频上传成功 更新:");
|
||
sb2.append(uploadModelFileBean.getUpdateFiles() != null ? uploadModelFileBean.getUpdateFiles().size() : 0);
|
||
LogUtils.c(sb2.toString());
|
||
DiyTransportServiceImpl.this.uploadVideoCover(uploadModelFileBean, uploadRequest, transportFile, uploadStateListener);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
public void uploadModelFiles(UploadModelFileBean uploadModelFileBean, final TransportFile transportFile, final TransportFile transportFile2, final UploadStateListener uploadStateListener) {
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.append("七牛视频上传成功 新增4:");
|
||
sb.append(uploadModelFileBean.getAddFiles() == null ? 0 : uploadModelFileBean.getAddFiles().size());
|
||
LogUtils.c(sb.toString());
|
||
this.proxy.uploadModelFiles(uploadModelFileBean).subscribe(new Observer<ApiResponse<Object>>() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.7
|
||
@Override // io.reactivex.Observer
|
||
public void onComplete() {
|
||
UploadStateListener uploadStateListener2 = uploadStateListener;
|
||
if (uploadStateListener2 != null) {
|
||
uploadStateListener2.onUploadComplete();
|
||
}
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onError(Throwable th) {
|
||
UploadStateListener uploadStateListener2 = uploadStateListener;
|
||
if (uploadStateListener2 != null) {
|
||
uploadStateListener2.onUploadFailure();
|
||
}
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onSubscribe(Disposable disposable) {
|
||
}
|
||
|
||
@Override // io.reactivex.Observer
|
||
public void onNext(ApiResponse<Object> apiResponse) {
|
||
if (apiResponse.isStatus()) {
|
||
TransportFile transportFile3 = transportFile2;
|
||
if (transportFile3 != null) {
|
||
transportFile3.setId(1L);
|
||
transportFile2.setIsModify(false);
|
||
DiyTransportServiceImpl.this.transportFileDbHandler.update(transportFile2);
|
||
}
|
||
TransportFile transportFile4 = transportFile;
|
||
if (transportFile4 != null) {
|
||
transportFile4.setId(1L);
|
||
transportFile.setIsModify(false);
|
||
DiyTransportServiceImpl.this.transportFileDbHandler.update(transportFile);
|
||
}
|
||
UploadStateListener uploadStateListener2 = uploadStateListener;
|
||
if (uploadStateListener2 != null) {
|
||
uploadStateListener2.onUploadSucceed();
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
public void uploadVideoCover(final UploadModelFileBean uploadModelFileBean, UploadRequest uploadRequest, final TransportFile transportFile, final UploadStateListener uploadStateListener) {
|
||
if (transportFile == null || uploadRequest == null) {
|
||
return;
|
||
}
|
||
String b = uploadRequest.b();
|
||
if (TextUtils.isEmpty(b)) {
|
||
uploadModelFiles(uploadModelFileBean, transportFile, null, uploadStateListener);
|
||
return;
|
||
}
|
||
Bitmap a = VideoUtils.a(b, DataDecryptTool.DECRYPT_SP_FILE, 608, 2);
|
||
if (a == null) {
|
||
return;
|
||
}
|
||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||
a.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
|
||
byte[] byteArray = byteArrayOutputStream.toByteArray();
|
||
if (byteArray.length == 0) {
|
||
return;
|
||
}
|
||
final String name = new File(b).getName();
|
||
if (TextUtils.isEmpty(name)) {
|
||
return;
|
||
}
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.append("七牛视频上传成功 新增2:");
|
||
sb.append(uploadModelFileBean.getAddFiles() == null ? 0 : uploadModelFileBean.getAddFiles().size());
|
||
LogUtils.c(sb.toString());
|
||
StringBuilder sb2 = new StringBuilder();
|
||
sb2.append("七牛视频上传成功 更新2:");
|
||
sb2.append(uploadModelFileBean.getUpdateFiles() != null ? uploadModelFileBean.getUpdateFiles().size() : 0);
|
||
LogUtils.c(sb2.toString());
|
||
DataUploadProxy.c().a(byteArray, UploadFilePathUtils.a(b).replace(".mp4", ".jpg"), new SimpleUploadCallback() { // from class: com.ubt.jimu.transport3.DiyTransportServiceImpl.6
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadFaulted(UploadRequest uploadRequest2, Exception exc) {
|
||
LogUtils.c("上传封面失败");
|
||
UploadStateListener uploadStateListener2 = uploadStateListener;
|
||
if (uploadStateListener2 != null) {
|
||
uploadStateListener2.onUploadFailure();
|
||
}
|
||
}
|
||
|
||
@Override // com.ubt.jimu.upload.IUploadCallback
|
||
public void uploadSucceed(UploadResponse uploadResponse) {
|
||
TransportFile transportFile2 = new TransportFile();
|
||
transportFile2.setIsModify(true);
|
||
transportFile2.setCreateTime(transportFile.getCreateTime() == 0 ? SystemUtils.a() : transportFile.getCreateTime());
|
||
transportFile2.setLastUploadTime(SystemUtils.a());
|
||
transportFile2.setModifyTime(SystemUtils.a());
|
||
transportFile2.setCustomModelId(transportFile.getCustomModelId());
|
||
transportFile2.setUploaded(true);
|
||
transportFile2.setModelId(transportFile.getModelId());
|
||
transportFile2.setModelType(transportFile.getModelType());
|
||
transportFile2.setFileUrl(uploadResponse.c());
|
||
transportFile2.setUserId(transportFile.getUserId());
|
||
transportFile2.setFilePath(transportFile.getFilePath());
|
||
transportFile2.setFileType(TransportFile.TYPE_AUDIO_SHOW);
|
||
transportFile2.setFileName(name.replace(".mp4", ".jpg"));
|
||
TransportFile selectUnique = TransportFileDbHandler2.getInstance().selectUnique(transportFile2);
|
||
ArrayList arrayList = new ArrayList();
|
||
if (selectUnique == null) {
|
||
TransportFileDbHandler2.getInstance().insert(transportFile2);
|
||
LogUtils.c("新增视频封面数据");
|
||
arrayList.add(transportFile2);
|
||
} else {
|
||
selectUnique.setUploaded(true);
|
||
selectUnique.setLastUploadTime(SystemUtils.a());
|
||
selectUnique.setModifyTime(SystemUtils.a());
|
||
selectUnique.setFileUrl(uploadResponse.c());
|
||
if (!TextUtils.isEmpty(name)) {
|
||
selectUnique.setFileName(name.replace(".mp4", ".jpg"));
|
||
}
|
||
LogUtils.c("更新视频封面数据");
|
||
TransportFileDbHandler2.getInstance().update(selectUnique);
|
||
arrayList.add(selectUnique);
|
||
transportFile2 = selectUnique;
|
||
}
|
||
if (transportFile2.getId() >= 1) {
|
||
uploadModelFileBean.setUpdateFiles(arrayList);
|
||
} else {
|
||
uploadModelFileBean.setAddFiles(arrayList);
|
||
}
|
||
StringBuilder sb3 = new StringBuilder();
|
||
sb3.append("七牛视频上传成功 新增3:");
|
||
sb3.append(uploadModelFileBean.getAddFiles() == null ? 0 : uploadModelFileBean.getAddFiles().size());
|
||
LogUtils.c(sb3.toString());
|
||
StringBuilder sb4 = new StringBuilder();
|
||
sb4.append("七牛视频上传成功 更新3:");
|
||
sb4.append(uploadModelFileBean.getUpdateFiles() != null ? uploadModelFileBean.getUpdateFiles().size() : 0);
|
||
LogUtils.c(sb4.toString());
|
||
DiyTransportServiceImpl.this.uploadModelFiles(uploadModelFileBean, transportFile, transportFile2, uploadStateListener);
|
||
LogUtils.c("所有封面上传成功:" + uploadResponse.c());
|
||
}
|
||
});
|
||
}
|
||
}
|