52 lines
1.8 KiB
Java
Raw Normal View History

2025-01-27 21:47:33 +08:00
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());
}
}