mirror of
https://gitee.com/yudaocode/yudao-boot-mini.git
synced 2026-10-06 14:13:14 +08:00
Merge pull request #1226 from dadiyang/fix/product-spu-app-page-sort-nullsafe
[BUG] 商品:C 端商品列表只传 sortField 不传 sortAsc 恒 500——Boolean 对 null 拆箱
This commit is contained in:
+5
-3
@@ -76,14 +76,16 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
|
||||
query.eq(ProductSpuDO::getStatus, ProductSpuStatusEnum.ENABLE.getStatus());
|
||||
|
||||
// 排序逻辑
|
||||
// 排序方式(sortAsc)可能缺省或显式传 null(合法但参数不完整的组合),缺省按升序处理,避免拆箱 null 崩 500
|
||||
Boolean sortAsc = pageReqVO.getSortAsc() != null ? pageReqVO.getSortAsc() : Boolean.TRUE;
|
||||
if (Objects.equals(pageReqVO.getSortField(), AppProductSpuPageReqVO.SORT_FIELD_SALES_COUNT)) {
|
||||
query.last(String.format(" ORDER BY (sales_count + virtual_sales_count) %s, sort DESC, id DESC",
|
||||
pageReqVO.getSortAsc() ? "ASC" : "DESC"));
|
||||
sortAsc ? "ASC" : "DESC"));
|
||||
} else if (Objects.equals(pageReqVO.getSortField(), AppProductSpuPageReqVO.SORT_FIELD_PRICE)) {
|
||||
query.orderBy(true, pageReqVO.getSortAsc(), ProductSpuDO::getPrice)
|
||||
query.orderBy(true, sortAsc, ProductSpuDO::getPrice)
|
||||
.orderByDesc(ProductSpuDO::getSort).orderByDesc(ProductSpuDO::getId);
|
||||
} else if (Objects.equals(pageReqVO.getSortField(), AppProductSpuPageReqVO.SORT_FIELD_CREATE_TIME)) {
|
||||
query.orderBy(true, pageReqVO.getSortAsc(), ProductSpuDO::getCreateTime)
|
||||
query.orderBy(true, sortAsc, ProductSpuDO::getCreateTime)
|
||||
.orderByDesc(ProductSpuDO::getSort).orderByDesc(ProductSpuDO::getId);
|
||||
} else {
|
||||
query.orderByDesc(ProductSpuDO::getSort).orderByDesc(ProductSpuDO::getId);
|
||||
|
||||
Reference in New Issue
Block a user