458 lines
19 KiB
Java
458 lines
19 KiB
Java
package com.ubt.jimu.blockly.dao;
|
|
|
|
import android.text.TextUtils;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.ubt.jimu.JimuApplication;
|
|
import com.ubt.jimu.base.cache.Cache;
|
|
import com.ubt.jimu.base.db.AbstractDaoHandler;
|
|
import com.ubt.jimu.base.db.DatabaseUtils;
|
|
import com.ubt.jimu.blockly.Utils;
|
|
import com.ubt.jimu.blockly.bean.BlocklyProject;
|
|
import com.ubt.jimu.diy.DiyRobotDbHandler;
|
|
import com.ubt.jimu.gen.BlocklyProjectDao;
|
|
import com.ubt.jimu.gen.TransportFileDao;
|
|
import com.ubt.jimu.transport.Transporter;
|
|
import com.ubt.jimu.transport.dao.TransportFileDbHandler;
|
|
import com.ubt.jimu.transport3.dao.TransportFileDbHandler2;
|
|
import com.ubt.jimu.unity.ModelType;
|
|
import com.ubt.jimu.utils.ExternalOverFroyoUtils;
|
|
import com.ubt.jimu.utils.JsonHelper;
|
|
import com.ubtech.utils.FileHelper;
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import org.greenrobot.greendao.AbstractDao;
|
|
import org.greenrobot.greendao.query.QueryBuilder;
|
|
import org.greenrobot.greendao.query.WhereCondition;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class BlocklyProjectDbHandler extends AbstractDaoHandler<BlocklyProject> {
|
|
private static BlocklyProjectDbHandler blocklyProjectDbHandler;
|
|
|
|
public BlocklyProjectDbHandler(BlocklyProjectDao blocklyProjectDao) {
|
|
super(blocklyProjectDao);
|
|
}
|
|
|
|
public static synchronized BlocklyProjectDbHandler getInstance() {
|
|
BlocklyProjectDbHandler blocklyProjectDbHandler2;
|
|
synchronized (BlocklyProjectDbHandler.class) {
|
|
if (blocklyProjectDbHandler == null) {
|
|
blocklyProjectDbHandler = new BlocklyProjectDbHandler(DatabaseUtils.getDaoSession(true).a());
|
|
}
|
|
blocklyProjectDbHandler2 = blocklyProjectDbHandler;
|
|
}
|
|
return blocklyProjectDbHandler2;
|
|
}
|
|
|
|
public static List<BlocklyProject> getProjects(String str, String str2, int i) {
|
|
ArrayList arrayList;
|
|
updateToVersion3(str, str2, i);
|
|
BlocklyProjectDbHandler blocklyProjectDbHandler2 = new BlocklyProjectDbHandler(DatabaseUtils.getDaoSession(true).a());
|
|
ArrayList arrayList2 = new ArrayList();
|
|
if (i == ModelType.DEFAULT.getType()) {
|
|
String str3 = ExternalOverFroyoUtils.a(JimuApplication.l(), ModelType.DEFAULT) + str2 + File.separator + str2 + Utils.BLOCKLY_ADD_PATH + File.separator + str2 + ".config";
|
|
if (new File(str3).exists() && (arrayList = (ArrayList) JsonHelper.a(FileHelper.b(str3, ""), new TypeToken<List<BlocklyProject>>() { // from class: com.ubt.jimu.blockly.dao.BlocklyProjectDbHandler.1
|
|
}.getType())) != null && arrayList.size() > 0) {
|
|
Iterator it = arrayList.iterator();
|
|
while (it.hasNext()) {
|
|
((BlocklyProject) it.next()).setBlocklyType("newBlockly");
|
|
}
|
|
arrayList2.addAll(arrayList);
|
|
}
|
|
}
|
|
List<BlocklyProject> blocklyProjects = blocklyProjectDbHandler2.getBlocklyProjects(str, String.valueOf(i), str2);
|
|
if (blocklyProjects != null && blocklyProjects.size() > 0) {
|
|
ArrayList arrayList3 = new ArrayList();
|
|
String str4 = DiyRobotDbHandler.getCustomModelPath() + str2 + File.separator + str2;
|
|
if (ModelType.DEFAULT.getType() == i) {
|
|
str4 = DiyRobotDbHandler.getDefaultModelPath() + str2 + File.separator + str2;
|
|
}
|
|
for (BlocklyProject blocklyProject : blocklyProjects) {
|
|
String str5 = str4 + File.separator + blocklyProject.getXmlId() + ".xml";
|
|
if ("newBlockly".equals(blocklyProject.getBlocklyType())) {
|
|
str5 = str4 + Utils.BLOCKLY_ADD_PATH + File.separator + blocklyProject.getXmlId() + ".xml";
|
|
}
|
|
if (!new File(str5).exists()) {
|
|
arrayList3.add(blocklyProject);
|
|
}
|
|
}
|
|
if (arrayList3.size() > 0) {
|
|
blocklyProjects.removeAll(arrayList3);
|
|
}
|
|
arrayList2.addAll(blocklyProjects);
|
|
}
|
|
return arrayList2;
|
|
}
|
|
|
|
private static void updateToVersion3(String str, String str2, int i) {
|
|
ArrayList arrayList;
|
|
String str3 = (ModelType.DEFAULT.getType() == i ? DiyRobotDbHandler.getDefaultModelPath(str) : DiyRobotDbHandler.getCustomModelPath(str)) + str2 + File.separator + str2 + File.separator + str2 + ".config";
|
|
File file = new File(str3);
|
|
if (!file.exists() || (arrayList = (ArrayList) JsonHelper.a(FileHelper.b(str3, ""), new TypeToken<List<BlocklyProject>>() { // from class: com.ubt.jimu.blockly.dao.BlocklyProjectDbHandler.2
|
|
}.getType())) == null || arrayList.size() == 0) {
|
|
return;
|
|
}
|
|
BlocklyProjectDbHandler blocklyProjectDbHandler2 = new BlocklyProjectDbHandler(DatabaseUtils.getDaoSession(true).a());
|
|
Iterator it = arrayList.iterator();
|
|
while (it.hasNext()) {
|
|
BlocklyProject blocklyProject = (BlocklyProject) it.next();
|
|
blocklyProject.setUserId(str);
|
|
blocklyProject.setCustomModelId(str2);
|
|
blocklyProject.setModelType(String.valueOf(i));
|
|
blocklyProject.setIsDeleted("0");
|
|
if (!"blockly".equals(blocklyProject.getBlocklyType()) && !"newBlockly".equals(blocklyProject.getBlocklyType())) {
|
|
blocklyProject.setBlocklyType("blockly");
|
|
}
|
|
}
|
|
blocklyProjectDbHandler2.insertOrUpdateInTx(arrayList);
|
|
Transporter.b().a(file);
|
|
file.delete();
|
|
}
|
|
|
|
public boolean deleteBlocklyProject(String str) {
|
|
if (TextUtils.isEmpty(str)) {
|
|
return false;
|
|
}
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.XmlId.a((Object) str));
|
|
BlocklyProject blocklyProject = (BlocklyProject) k.c();
|
|
if (blocklyProject == null) {
|
|
return false;
|
|
}
|
|
this.dao.b((AbstractDao<T, Long>) blocklyProject);
|
|
return true;
|
|
}
|
|
|
|
public void deleteModelBlocklyProjects(String str, int i, String str2) {
|
|
QueryBuilder<BlocklyProject> queryBuilder = getQueryBuilder();
|
|
queryBuilder.a(BlocklyProjectDao.Properties.UserId.a((Object) str), BlocklyProjectDao.Properties.ModelType.a(Integer.valueOf(i)), BlocklyProjectDao.Properties.CustomModelId.a((Object) str2));
|
|
List<BlocklyProject> query = query(queryBuilder);
|
|
if (query == null || query.size() == 0) {
|
|
return;
|
|
}
|
|
deleteInTx(query);
|
|
Iterator<BlocklyProject> it = query.iterator();
|
|
while (it.hasNext()) {
|
|
try {
|
|
File file = TransportFileDbHandler.getFile(TransportFileDbHandler2.newBlocklyProjectFile(it.next()));
|
|
if (file != null && file.exists()) {
|
|
file.delete();
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
public BlocklyProject getBlocklyByXml(String str) {
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.XmlId.a((Object) str));
|
|
return (BlocklyProject) k.c();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public List<BlocklyProject> getBlocklyProject(String str) {
|
|
List<BlocklyProject> list;
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) str), new WhereCondition[0]);
|
|
list = k.b();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
list = null;
|
|
}
|
|
return list == null ? new ArrayList() : list;
|
|
}
|
|
|
|
public List<BlocklyProject> getBlocklyProjects(String str, String str2, String str3) {
|
|
List<BlocklyProject> list;
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) str), BlocklyProjectDao.Properties.ModelType.a((Object) str2), BlocklyProjectDao.Properties.CustomModelId.a((Object) str3), BlocklyProjectDao.Properties.IsDeleted.d("1"));
|
|
k.b(BlocklyProjectDao.Properties.XmlId);
|
|
list = k.b();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
list = null;
|
|
}
|
|
return list == null ? new ArrayList() : list;
|
|
}
|
|
|
|
public String getDefaultXmlName(String str, String str2, String str3, String str4) {
|
|
List<BlocklyProject> blocklyProjects = getBlocklyProjects(str2, str3, str4);
|
|
if (blocklyProjects == null || blocklyProjects.size() == 0 || TextUtils.isEmpty(str)) {
|
|
return str + "1";
|
|
}
|
|
int[] iArr = new int[blocklyProjects.size()];
|
|
int i = 0;
|
|
for (BlocklyProject blocklyProject : blocklyProjects) {
|
|
if (blocklyProject.getXmlName().startsWith(str)) {
|
|
String substring = blocklyProject.getXmlName().substring(str.length(), blocklyProject.getXmlName().length());
|
|
if (TextUtils.isDigitsOnly(substring) && !TextUtils.isEmpty(substring)) {
|
|
iArr[i] = Integer.parseInt(substring);
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
return Utils.getDefaultName(iArr, i, str);
|
|
}
|
|
|
|
public List<BlocklyProject> getModifyBlocklyOfflineData() {
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.ModelId.b(0), BlocklyProjectDao.Properties.IsFirst.a((Object) 1), BlocklyProjectDao.Properties.IsModify.a((Object) 1), BlocklyProjectDao.Properties.IsUploadService.a((Object) 0));
|
|
return k.b();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public List<BlocklyProject> getQiNiuBlocklyProject() {
|
|
List<BlocklyProject> list;
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.ModelId.b(0), BlocklyProjectDao.Properties.IsDeleted.a((Object) 0), BlocklyProjectDao.Properties.IsFirst.a((Object) 0), BlocklyProjectDao.Properties.IsUploadService.a((Object) 0), BlocklyProjectDao.Properties.IsUploadQiNiu.a((Object) 0));
|
|
list = k.b();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
list = null;
|
|
}
|
|
if (list == null) {
|
|
return null;
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public List<BlocklyProject> getServiceBlocklyProject() {
|
|
List<BlocklyProject> list;
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.ModelId.b(0), BlocklyProjectDao.Properties.IsUploadQiNiu.a((Object) 1), BlocklyProjectDao.Properties.IsFirst.a((Object) 0), BlocklyProjectDao.Properties.IsUploadService.a((Object) 0));
|
|
list = k.b();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
list = null;
|
|
}
|
|
if (list == null) {
|
|
return null;
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public BlocklyProject getSyncBlocklyByXml(String str) {
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.XmlId.a((Object) str), BlocklyProjectDao.Properties.IsFirst.a((Object) 1));
|
|
return (BlocklyProject) k.c();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public boolean isFirs(String str, int i) {
|
|
BlocklyProject blocklyByXml;
|
|
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
|
return false;
|
|
}
|
|
blocklyByXml.setIsFirst(i);
|
|
update(blocklyByXml);
|
|
return true;
|
|
}
|
|
|
|
public boolean isFirstUpload(String str, boolean z) {
|
|
BlocklyProject blocklyProject;
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(TransportFileDao.Properties.UserId.a((Object) userId), TransportFileDao.Properties.FilePath.a((Object) str));
|
|
blocklyProject = (BlocklyProject) k.c();
|
|
} catch (Exception e) {
|
|
e.getMessage();
|
|
blocklyProject = null;
|
|
}
|
|
if (blocklyProject == null) {
|
|
return false;
|
|
}
|
|
if (z) {
|
|
blocklyProject.setId(1L);
|
|
} else {
|
|
blocklyProject.setId(0L);
|
|
}
|
|
update(blocklyProject);
|
|
return true;
|
|
}
|
|
|
|
public boolean isNameExist(BlocklyProject blocklyProject) {
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.XmlName.a((Object) blocklyProject.getXmlName()), BlocklyProjectDao.Properties.ModelType.a((Object) blocklyProject.getModelType()), BlocklyProjectDao.Properties.CustomModelId.a((Object) blocklyProject.getCustomModelId()), BlocklyProjectDao.Properties.IsDeleted.d("1"), BlocklyProjectDao.Properties.UserId.a((Object) blocklyProject.getUserId()));
|
|
List<BlocklyProject> b = k.b();
|
|
if (b == null || b.size() <= 0) {
|
|
return false;
|
|
}
|
|
for (BlocklyProject blocklyProject2 : b) {
|
|
if (!"1".equals(blocklyProject2.getIsDeleted()) && !blocklyProject2.getXmlId().equals(blocklyProject.getXmlId())) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public boolean setDeleteState(String str, boolean z) {
|
|
BlocklyProject blocklyByXml;
|
|
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
|
return false;
|
|
}
|
|
if (z) {
|
|
blocklyByXml.setIsDeleted("1");
|
|
} else {
|
|
blocklyByXml.setIsDeleted("0");
|
|
}
|
|
update(blocklyByXml);
|
|
return true;
|
|
}
|
|
|
|
public boolean setQiNiuUplaodState(String str, boolean z) {
|
|
BlocklyProject blocklyByXml;
|
|
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
|
return false;
|
|
}
|
|
blocklyByXml.setUploadQiNiu(z);
|
|
update(blocklyByXml);
|
|
return true;
|
|
}
|
|
|
|
public boolean setServiceUplaodState(String str, boolean z) {
|
|
BlocklyProject blocklyByXml;
|
|
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
|
return false;
|
|
}
|
|
blocklyByXml.setUploadService(z);
|
|
update(blocklyByXml);
|
|
return true;
|
|
}
|
|
|
|
public boolean setsetModifyState(String str, boolean z) {
|
|
BlocklyProject blocklyByXml;
|
|
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
|
return false;
|
|
}
|
|
blocklyByXml.setModify(z);
|
|
update(blocklyByXml);
|
|
return true;
|
|
}
|
|
|
|
public boolean updateBlocklyState(String str, boolean z) {
|
|
if (TextUtils.isEmpty(str)) {
|
|
return false;
|
|
}
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.XmlId.a((Object) str), BlocklyProjectDao.Properties.IsDeleted.d("1"));
|
|
BlocklyProject blocklyProject = (BlocklyProject) k.c();
|
|
if (blocklyProject == null) {
|
|
return false;
|
|
}
|
|
blocklyProject.setIsModify(z);
|
|
update(blocklyProject);
|
|
return true;
|
|
}
|
|
|
|
public boolean updateUbtSyncState(String str, boolean z) {
|
|
BlocklyProject blocklyProject;
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (TextUtils.isEmpty(userId)) {
|
|
userId = "local";
|
|
}
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(TransportFileDao.Properties.UserId.a((Object) userId), TransportFileDao.Properties.FilePath.a((Object) str));
|
|
blocklyProject = (BlocklyProject) k.c();
|
|
} catch (Exception e) {
|
|
e.getMessage();
|
|
blocklyProject = null;
|
|
}
|
|
if (blocklyProject == null) {
|
|
return false;
|
|
}
|
|
blocklyProject.setIsModify(z);
|
|
update(blocklyProject);
|
|
return true;
|
|
}
|
|
|
|
public void uploadUserIdAndModelId(String str, int i) {
|
|
String userId = Cache.getInstance().getUserId();
|
|
if (i <= 0) {
|
|
return;
|
|
}
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.CustomModelId.a((Object) str), BlocklyProjectDao.Properties.IsUploadQiNiu.a((Object) 0), BlocklyProjectDao.Properties.IsUploadService.a((Object) 0));
|
|
List<BlocklyProject> query = query(k);
|
|
if (query == null || query.size() == 0) {
|
|
return;
|
|
}
|
|
for (BlocklyProject blocklyProject : query) {
|
|
blocklyProject.setUserId(userId);
|
|
blocklyProject.setModelId(i);
|
|
insertOrUpdate(blocklyProject);
|
|
}
|
|
}
|
|
|
|
@Override // com.ubt.jimu.base.db.AbstractDaoHandler, com.ubt.jimu.base.db.IDaoHandler
|
|
public BlocklyProject selectUnique(BlocklyProject blocklyProject) {
|
|
return getBlocklyProject(blocklyProject.getUserId(), blocklyProject.getModelType(), blocklyProject.getCustomModelId(), blocklyProject.getXmlId());
|
|
}
|
|
|
|
public BlocklyProject getBlocklyProject(String str, String str2, String str3, String str4) {
|
|
try {
|
|
QueryBuilder k = this.dao.k();
|
|
k.a(BlocklyProjectDao.Properties.UserId.a((Object) str), BlocklyProjectDao.Properties.ModelType.a((Object) str2), BlocklyProjectDao.Properties.CustomModelId.a((Object) str3), BlocklyProjectDao.Properties.XmlId.a((Object) str4));
|
|
return (BlocklyProject) k.c();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
}
|