修改任务组分页逻辑

pull/631/head
DaveBoy1994 5 years ago
parent d92f1bba94
commit e770818cee
  1. 10
      Aria/src/main/java/com/arialyy/aria/core/download/DownloadReceiver.java
  2. 29
      PublicComponent/src/main/java/com/arialyy/aria/orm/DelegateFind.java

@ -417,15 +417,7 @@ public class DownloadReceiver extends AbsReceiver {
* @return 如果没有任务组列表则返回null
*/
public List<DownloadGroupEntity> getGroupTaskList() {
List<DGEntityWrapper> wrappers = DbEntity.findRelationData(DGEntityWrapper.class);
if (wrappers == null || wrappers.isEmpty()) {
return null;
}
List<DownloadGroupEntity> entities = new ArrayList<>();
for (DGEntityWrapper wrapper : wrappers) {
entities.add(wrapper.groupEntity);
}
return entities;
return getGroupTaskList(1,10);
}
/**

@ -215,12 +215,15 @@ class DelegateFind extends AbsDelegate {
} else {
sql = sb.toString();
}
boolean paged=false;
if (page != -1 && num != -1) {
sql = sql.concat(String.format(" LIMIT %s,%s", (page - 1) * num, num));
paged=true;
sql = sql.concat(String.format(" Group by %s LIMIT %s,%s", pTableName.concat(".").concat(m.parentColumn()), (page - 1) * num, num));
}
Cursor cursor = db.rawQuery(sql, null);
List<T> data =
newInstanceEntity(wrapperClazz, parentClazz, childClazz, cursor, pColumn, cColumn);
newInstanceEntity(wrapperClazz, parentClazz, childClazz, cursor, pColumn, cColumn,paged, db,m.entityColumn(),m.parentColumn());
closeCursor(cursor);
return data;
} catch (ClassNotFoundException e) {
@ -243,7 +246,7 @@ class DelegateFind extends AbsDelegate {
Class<T> wrapperClazz, Class<P> parentClazz,
Class<C> childClazz,
Cursor cursor,
List<Field> pColumn, List<Field> cColumn) {
List<Field> pColumn, List<Field> cColumn,boolean paged,SQLiteDatabase db,String entityColumn,String parentColumn) {
List<T> wrappers = new ArrayList<>();
SparseArray<List<DbEntity>> childs = new SparseArray<>(); // 所有子表数据
SparseArray<DbEntity> parents = new SparseArray<>(); // 所有父表数据
@ -255,8 +258,13 @@ class DelegateFind extends AbsDelegate {
childs.put(pRowId, new ArrayList<DbEntity>());
parents.put(pRowId, createParent(pRowId, parentClazz, pColumn, cursor));
}
if(paged){
childs.get(pRowId).addAll(createChildren(db,childClazz,pColumn,entityColumn,parentColumn,parents.get(pRowId)));
}
else {
childs.get(pRowId).add(createChild(childClazz, cColumn, cursor));
}
}
List<Field> wFields = SqlUtil.getAllNotIgnoreField(wrapperClazz);
if (wFields == null || wFields.isEmpty()) {
@ -285,7 +293,22 @@ class DelegateFind extends AbsDelegate {
return wrappers;
}
/**
* 创建子对象集合
*/
private <T extends DbEntity> List<T> createChildren(SQLiteDatabase db,Class<T> childClazz, List<Field> pColumn,
String entityColumn,String parentColumn,DbEntity parents)
throws IllegalAccessException {
for (Field field : pColumn) {
field.setAccessible(true);
if(field.getName().equals(parentColumn)){
Object o = field.get(parents);
return findData(db,childClazz,entityColumn+"='"+o+"'");
}
}
return new ArrayList<T>();
}
/**
* 创建子对象
*/

Loading…
Cancel
Save