|
|
@@ -10,6 +10,7 @@ import com.uas.platform.b2c.common.account.model.User;
|
|
|
import com.uas.platform.b2c.common.account.service.EnterpriseService;
|
|
|
import com.uas.platform.b2c.common.search.dao.SearchHistoryDao;
|
|
|
import com.uas.platform.b2c.common.search.model.SearchHistory;
|
|
|
+import com.uas.platform.b2c.common.search.service.SearcherService;
|
|
|
import com.uas.platform.b2c.core.config.SysConf;
|
|
|
import com.uas.platform.b2c.core.constant.Type;
|
|
|
import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
@@ -18,6 +19,7 @@ import com.uas.platform.b2c.core.utils.UuidUtils;
|
|
|
import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
|
|
|
import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
|
|
|
import com.uas.platform.b2c.prod.product.component.modal.Component;
|
|
|
+import com.uas.platform.b2c.prod.product.component.modal.ComponentGoods;
|
|
|
import com.uas.platform.b2c.prod.store.dao.QualificationDao;
|
|
|
import com.uas.platform.b2c.prod.store.dao.StoreApplyDao;
|
|
|
import com.uas.platform.b2c.prod.store.dao.StoreBrandInfoDao;
|
|
|
@@ -36,6 +38,8 @@ import com.uas.platform.b2c.trade.support.ResultMap;
|
|
|
import com.uas.platform.core.exception.IllegalOperatorException;
|
|
|
import com.uas.platform.core.exception.IllegalStatusException;
|
|
|
import com.uas.platform.core.model.PageInfo;
|
|
|
+import com.uas.platform.core.model.PageParams;
|
|
|
+import com.uas.platform.core.persistence.criteria.LogicalExpression;
|
|
|
import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
|
import com.uas.platform.core.persistence.criteria.SimpleExpression;
|
|
|
import java.util.ArrayList;
|
|
|
@@ -66,6 +70,7 @@ import org.springframework.mobile.device.DeviceResolver;
|
|
|
import org.springframework.mobile.device.LiteDeviceResolver;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.ui.ModelMap;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
/**
|
|
|
@@ -102,8 +107,10 @@ public class StoreInServiceImpl implements StoreInService {
|
|
|
|
|
|
private final DeviceResolver deviceResolver = new LiteDeviceResolver();
|
|
|
|
|
|
+ private final SearcherService searcherService;
|
|
|
+
|
|
|
@Autowired
|
|
|
- public StoreInServiceImpl(StoreInDao storeDao, QualificationDao qualificationDao, GoodsDao goodsDao, ComponentDao componentDao, PurchaseDao purchaseDao, StoreBrandInfoDao brandInfoDao, StoreAdsService adsService, SysConf sysConf, EnterpriseService enterpriseService, SearchHistoryDao searchHistoryDao) {
|
|
|
+ public StoreInServiceImpl(StoreInDao storeDao, QualificationDao qualificationDao, GoodsDao goodsDao, ComponentDao componentDao, PurchaseDao purchaseDao, StoreBrandInfoDao brandInfoDao, StoreAdsService adsService, SysConf sysConf, EnterpriseService enterpriseService, SearchHistoryDao searchHistoryDao, SearcherService searcherService) {
|
|
|
this.storeDao = storeDao;
|
|
|
this.qualificationDao = qualificationDao;
|
|
|
this.goodsDao = goodsDao;
|
|
|
@@ -114,6 +121,7 @@ public class StoreInServiceImpl implements StoreInService {
|
|
|
this.sysConf = sysConf;
|
|
|
this.enterpriseService = enterpriseService;
|
|
|
this.searchHistoryDao = searchHistoryDao;
|
|
|
+ this.searcherService = searcherService;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -695,4 +703,43 @@ public class StoreInServiceImpl implements StoreInService {
|
|
|
}
|
|
|
return map;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<StoreIn> findBySimilarName(PageParams params, String keyword, HttpServletRequest request) {
|
|
|
+ Page<StoreIn> storeInPage = null;
|
|
|
+ if (!StringUtils.isEmpty(keyword)) {
|
|
|
+ final PageInfo pageInfo = new PageInfo(params);
|
|
|
+ PageParams pageParams = new PageParams();
|
|
|
+ pageParams.setCount(20);
|
|
|
+ pageParams.setPage(1);
|
|
|
+
|
|
|
+ ModelMap map = searcherService.searchComponentGoods(keyword, pageParams, request);
|
|
|
+ List<ComponentGoods> components = (List<ComponentGoods>) map.get("components");
|
|
|
+ Set<String> storeIds = new HashSet<>();
|
|
|
+
|
|
|
+ for (ComponentGoods componentGood : components) {
|
|
|
+ if (componentGood.getStoreId() != null) {
|
|
|
+ storeIds.add(componentGood.getStoreId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ SimpleExpression keywordSimpleExpression = PredicateUtils.like("storeName", keyword, true);
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(storeIds)) {
|
|
|
+ LogicalExpression storIdList = PredicateUtils.in("id", storeIds, true);
|
|
|
+ pageInfo.expression(PredicateUtils.or(keywordSimpleExpression, storIdList));
|
|
|
+ } else {
|
|
|
+ pageInfo.expression(keywordSimpleExpression);
|
|
|
+ }
|
|
|
+
|
|
|
+ storeInPage = storeDao.findAll(new Specification<StoreIn>() {
|
|
|
+ @Override
|
|
|
+ public Predicate toPredicate(Root<StoreIn> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
|
|
|
+ criteriaQuery.where(pageInfo.getPredicates(root, criteriaQuery, criteriaBuilder));
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }, pageInfo);
|
|
|
+ }
|
|
|
+ return storeInPage;
|
|
|
+ }
|
|
|
}
|