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> searchUnion(SearchUnionQuery query, FrontUserVO userVO) { List list = query.getSearchList(); if (list.isEmpty()) { return Collections.emptyMap(); } Map> map = new HashMap<>(list.size()); list.forEach(baseQuery -> { Integer productType = baseQuery.getProductType(); List 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 searchAdvisor(ListAdvisorAppQuery query, FrontUserVO userVO) { List list = advisorInfoService.listForApp(query, userVO).getList(); return list.stream().map(SearchResultVO::new).collect(Collectors.toList()); } }