52 lines
1.8 KiB
Java
52 lines
1.8 KiB
Java
package com.upchina.common.service;
|
|
|
|
import com.upchina.advisor.query.ListAdvisorAppQuery;
|
|
import com.upchina.advisor.service.AdvisorInfoService;
|
|
import com.upchina.advisor.vo.AdvisorInfoAppVO;
|
|
import com.upchina.common.constant.ProductType;
|
|
import com.upchina.common.query.SearchUnionQuery;
|
|
import com.upchina.common.vo.FrontUserVO;
|
|
import com.upchina.common.vo.SearchResultVO;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.Collections;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
|
|
import static com.upchina.common.query.SearchUnionQuery.SearchBaseQuery;
|
|
|
|
@Service
|
|
public class SearchService {
|
|
|
|
@Resource
|
|
private AdvisorInfoService advisorInfoService;
|
|
|
|
public Map<String, List<SearchResultVO>> searchUnion(SearchUnionQuery query, FrontUserVO userVO) {
|
|
List<SearchBaseQuery> list = query.getSearchList();
|
|
if (list.isEmpty()) {
|
|
return Collections.emptyMap();
|
|
}
|
|
Map<String, List<SearchResultVO>> map = new HashMap<>(list.size());
|
|
list.forEach(baseQuery -> {
|
|
Integer productType = baseQuery.getProductType();
|
|
List<SearchResultVO> resultList;
|
|
if (ProductType.ADVISOR_INFO.value.equals(productType)) {
|
|
resultList = this.searchAdvisor(query.toListAdvisorInfoAppQuery(baseQuery), userVO);
|
|
} else {
|
|
return;
|
|
}
|
|
map.put(productType.toString(), resultList);
|
|
});
|
|
return map;
|
|
}
|
|
|
|
public List<SearchResultVO> searchAdvisor(ListAdvisorAppQuery query, FrontUserVO userVO) {
|
|
List<AdvisorInfoAppVO> list = advisorInfoService.listForApp(query, userVO).getList();
|
|
return list.stream().map(SearchResultVO::new).collect(Collectors.toList());
|
|
}
|
|
|
|
}
|