优化书籍详情页;优化分组长SQL (#4596)

* 书籍详情页书名和分组信息过长时可滑动查看

* 书籍分组SQL优化
This commit is contained in:
niuhb
2025-02-01 22:06:22 +08:00
committed by GitHub
parent 7aae910ef5
commit 0e2ecfacc5
2 changed files with 51 additions and 37 deletions
@@ -26,26 +26,29 @@ interface BookGroupDao {
@get:Query( @get:Query(
""" """
with const as (SELECT sum(groupId) sumGroupId FROM book_groups where groupId > 0) with const as (SELECT sum(groupId) sumGroupId FROM book_groups where groupId > 0)
SELECT book_groups.* FROM book_groups, const SELECT book_groups.* FROM book_groups join const
where (groupId >= 0 and show > 0 and exists (select 1 from books where `group` & book_groups.groupId > 0)) where show > 0
or (groupId = -1 and show > 0) and (
or (groupId = -2 and show > 0 and exists (select 1 from books where type & ${BookType.local} > 0)) (groupId >= 0 and exists (select 1 from books where `group` & book_groups.groupId > 0))
or (groupId = -3 and show > 0 and exists (select 1 from books where type & ${BookType.audio} > 0)) or groupId = -1
or (groupId = -11 and show > 0 and exists (select 1 from books where type & ${BookType.updateError} > 0)) or (groupId = -2 and exists (select 1 from books where type & ${BookType.local} > 0))
or (groupId = -4 and show > 0 or (groupId = -3 and exists (select 1 from books where type & ${BookType.audio} > 0))
and exists ( or (groupId = -11 and exists (select 1 from books where type & ${BookType.updateError} > 0))
select 1 from books or (groupId = -4
where type & ${BookType.audio} = 0 and exists (
and type & ${BookType.local} = 0 select 1 from books
and const.sumGroupId & `group` = 0 where type & ${BookType.audio} = 0
and type & ${BookType.local} = 0
and const.sumGroupId & `group` = 0
)
) )
) or (groupId = -5
or (groupId = -5 and show > 0 and exists (
and exists ( select 1 from books
select 1 from books where type & ${BookType.audio} = 0
where type & ${BookType.audio} = 0 and type & ${BookType.local} > 0
and type & ${BookType.local} > 0 and const.sumGroupId & `group` = 0
and const.sumGroupId & `group` = 0 )
) )
) )
ORDER BY `order`""" ORDER BY `order`"""
+29 -18
View File
@@ -105,27 +105,38 @@
android:paddingRight="10dp" android:paddingRight="10dp"
android:paddingBottom="3dp"> android:paddingBottom="3dp">
<TextView <HorizontalScrollView
android:id="@+id/tv_name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginBottom="6dp" android:scrollbars="none">
android:gravity="center" <TextView
android:includeFontPadding="false" android:id="@+id/tv_name"
android:singleLine="true" android:layout_width="wrap_content"
android:text="@string/book_name" android:layout_height="wrap_content"
android:textColor="@color/primaryText" android:layout_marginBottom="6dp"
android:textSize="18sp" android:gravity="center"
tools:ignore="RtlHardcoded" /> android:layout_gravity="center"
android:includeFontPadding="false"
android:singleLine="true"
android:text="@string/book_name"
android:textColor="@color/primaryText"
android:textSize="18sp"
tools:ignore="RtlHardcoded" />
</HorizontalScrollView>
<io.legado.app.ui.widget.LabelsBar <HorizontalScrollView
android:id="@+id/lb_kind"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_gravity="center" android:scrollbars="none">
android:layout_marginBottom="6dp" <io.legado.app.ui.widget.LabelsBar
android:gravity="center" android:id="@+id/lb_kind"
android:visibility="gone" /> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layout_marginBottom="6dp"
android:visibility="gone" />
</HorizontalScrollView>
</LinearLayout> </LinearLayout>