diff --git a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallGoodsService.java b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallGoodsService.java index d1a74cec..8e563c2a 100644 --- a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallGoodsService.java +++ b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallGoodsService.java @@ -64,29 +64,31 @@ public class LitemallGoodsService { public List querySelective(Integer catId, Integer brandId, String keyword, Boolean isHot, Boolean isNew, Integer offset, Integer limit, String sort, String order) { LitemallGoodsExample example = new LitemallGoodsExample(); - LitemallGoodsExample.Criteria criteria = example.createCriteria(); + LitemallGoodsExample.Criteria criteria1 = example.or(); + LitemallGoodsExample.Criteria criteria2 = example.or(); if(!StringUtils.isEmpty(catId) && catId != 0){ - criteria.andCategoryIdEqualTo(catId); + criteria1.andCategoryIdEqualTo(catId); + criteria2.andCategoryIdEqualTo(catId); } if(!StringUtils.isEmpty(brandId)){ - criteria.andBrandIdEqualTo(brandId); + criteria1.andBrandIdEqualTo(brandId); + criteria2.andBrandIdEqualTo(brandId); } if(!StringUtils.isEmpty(isNew)){ - criteria.andIsNewEqualTo(isNew); + criteria1.andIsNewEqualTo(isNew); + criteria2.andIsNewEqualTo(isNew); } if(!StringUtils.isEmpty(isHot)){ - criteria.andIsHotEqualTo(isHot); + criteria1.andIsHotEqualTo(isHot); + criteria2.andIsHotEqualTo(isHot); } if(!StringUtils.isEmpty(keyword)){ - criteria.andKeywordsLike("%" + keyword + "%"); - - LitemallGoodsExample.Criteria criteria2 = example.createCriteria(); + criteria1.andKeywordsLike("%" + keyword + "%"); criteria2.andNameLike("%" + keyword + "%"); - criteria2.andDeletedEqualTo(false); - example.or(criteria2); } - criteria.andDeletedEqualTo(false); + criteria1.andDeletedEqualTo(false); + criteria2.andDeletedEqualTo(false); if (!StringUtils.isEmpty(sort) && !StringUtils.isEmpty(order)) { example.setOrderByClause(sort + " " + order); @@ -102,24 +104,29 @@ public class LitemallGoodsService { public int countSelective(Integer catId, Integer brandId, String keyword, Boolean isHot, Boolean isNew, Integer offset, Integer limit, String sort, String order) { LitemallGoodsExample example = new LitemallGoodsExample(); - LitemallGoodsExample.Criteria criteria = example.createCriteria(); + LitemallGoodsExample.Criteria criteria1 = example.or(); + LitemallGoodsExample.Criteria criteria2 = example.or(); - if(catId != null){ - criteria.andCategoryIdEqualTo(catId); + if(!StringUtils.isEmpty(catId) && catId != 0){ + criteria1.andCategoryIdEqualTo(catId); + criteria2.andCategoryIdEqualTo(catId); } - if(brandId != null){ - criteria.andBrandIdEqualTo(brandId); + if(!StringUtils.isEmpty(brandId)){ + criteria1.andBrandIdEqualTo(brandId); + criteria2.andBrandIdEqualTo(brandId); } - if(isNew != null){ - criteria.andIsNewEqualTo(isNew); + if(!StringUtils.isEmpty(isNew)){ + criteria1.andIsNewEqualTo(isNew); + criteria2.andIsNewEqualTo(isNew); } - if(isHot != null){ - criteria.andIsHotEqualTo(isHot); + if(!StringUtils.isEmpty(isHot)){ + criteria1.andIsHotEqualTo(isHot); + criteria2.andIsHotEqualTo(isHot); } - if(keyword != null){ - criteria.andKeywordsLike("%" + keyword + "%"); + if(!StringUtils.isEmpty(keyword)){ + criteria1.andKeywordsLike("%" + keyword + "%"); + criteria2.andNameLike("%" + keyword + "%"); } - criteria.andDeletedEqualTo(false); return (int)goodsMapper.countByExample(example); } @@ -194,21 +201,25 @@ public class LitemallGoodsService { public List getCatIds(Integer brandId, String keyword, Boolean isHot, Boolean isNew) { LitemallGoodsExample example = new LitemallGoodsExample(); - LitemallGoodsExample.Criteria criteria = example.createCriteria(); + LitemallGoodsExample.Criteria criteria1 = example.or(); + LitemallGoodsExample.Criteria criteria2 = example.or(); - if(brandId != null){ - criteria.andBrandIdEqualTo(brandId); + if(!StringUtils.isEmpty(brandId)){ + criteria1.andBrandIdEqualTo(brandId); + criteria2.andBrandIdEqualTo(brandId); } - if(isNew != null){ - criteria.andIsNewEqualTo(isNew); + if(!StringUtils.isEmpty(isNew)){ + criteria1.andIsNewEqualTo(isNew); + criteria2.andIsNewEqualTo(isNew); } - if(isHot != null){ - criteria.andIsHotEqualTo(isHot); + if(!StringUtils.isEmpty(isHot)){ + criteria1.andIsHotEqualTo(isHot); + criteria2.andIsHotEqualTo(isHot); } - if(keyword != null){ - criteria.andKeywordsLike("%" + keyword + "%"); + if(!StringUtils.isEmpty(keyword)){ + criteria1.andKeywordsLike("%" + keyword + "%"); + criteria2.andNameLike("%" + keyword + "%"); } - criteria.andDeletedEqualTo(false); List goodsList = goodsMapper.selectByExampleSelective(example, Column.categoryId); List cats = new ArrayList(); diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxGoodsController.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxGoodsController.java index ee07c904..19c83216 100644 --- a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxGoodsController.java +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxGoodsController.java @@ -259,6 +259,9 @@ public class WxGoodsController { if (goodsCatIds.size() != 0) { categoryList = categoryService.queryL2ByIds(goodsCatIds); } + else { + categoryList = new ArrayList<>(0); + } Map data = new HashMap<>(); data.put("goodsList", goodsList); diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxSearchController.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxSearchController.java index 71abef8b..0b8ee4e9 100644 --- a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxSearchController.java +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxSearchController.java @@ -11,6 +11,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotEmpty; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -56,8 +57,11 @@ public class WxSearchController { //取出用户历史关键字 historyList = searchHistoryService.queryByUid(userId); } + else { + historyList = new ArrayList<>(0); + } - Map data = new HashMap(); + Map data = new HashMap(); data.put("defaultKeyword", defaultKeyword); data.put("historyKeywordList", historyList); data.put("hotKeywordList", hotKeywordList); diff --git a/litemall-wx/pages/search/search.wxml b/litemall-wx/pages/search/search.wxml index f5a48067..818296d5 100644 --- a/litemall-wx/pages/search/search.wxml +++ b/litemall-wx/pages/search/search.wxml @@ -39,7 +39,7 @@ 价格 - + 分类