//package com.iotechn.unimall.admin.api.search; // //import com.iotechn.unimall.biz.service.product.ProductBizService; //import com.iotechn.unimall.core.exception.AdminServiceException; //import com.iotechn.unimall.core.exception.ExceptionDefinition; //import com.iotechn.unimall.core.exception.ServiceException; //import com.iotechn.unimall.data.domain.SpuDO; //import com.iotechn.unimall.data.model.Page; //import com.iotechn.unimall.data.model.SearchEngineInitModel; //import com.iotechn.unimall.data.search.SearchEngine; //import com.iotechn.unimall.data.search.exception.SearchEngineException; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.stereotype.Service; // //import java.util.Arrays; // ///** // * Description: // * User: rize // * Date: 2020/8/15 // * Time: 11:22 // */ //@Service("adminSearchService") //public class AdminSearchServiceImpl implements AdminSearchService { // // @Autowired(required = false) // private SearchEngine searchEngine; // // @Autowired // private ProductBizService productBizService; // // @Override // public String init(Long adminId) throws ServiceException { // this.checkSearchEngineExist(); // if (searchEngine.initAble()) { // throw new AdminServiceException(ExceptionDefinition.SEARCH_ENGINE_NOT_SUPPORT_AUTO_INIT); // } // if (searchEngine.isInit()) { // throw new AdminServiceException(ExceptionDefinition.SEARCH_ENGINE_HAS_INITED); // } // // 传入业务层需要初始化的表 // SearchEngineInitModel initModel = new SearchEngineInitModel(); // // 目前只需要传入SPU即可 // initModel.setTables(Arrays.asList(SpuDO.class)); // try { // searchEngine.init(initModel); // } catch (SearchEngineException e) { // throw new AdminServiceException(ExceptionDefinition.buildVariableException(ExceptionDefinition.SEARCH_ENGINE_INNER_EXCEPTION, e.getMessage())); // } // return "ok"; // } // // @Override // public String rebuild(Long adminId) throws ServiceException { // this.checkSearchEngineExist(); // // 1. 目前只需要重建SPU即可 // Page page; // int pageSize = 100; // int pageNo = 1; // try { // do { // page = productBizService.getProductPageFromDB(pageNo, pageSize, null, "id", false, null); // searchEngine.dataTransmissionList(page.getItems()); // pageNo++; // } while (page.hasNext()); // } catch (SearchEngineException e) { // throw new AdminServiceException(ExceptionDefinition.buildVariableException(ExceptionDefinition.SEARCH_ENGINE_INNER_EXCEPTION, e.getMessage())); // } // return "ok"; // } // // @Override // public String reloadProperties(Long adminId) throws ServiceException { // this.checkSearchEngineExist(); // searchEngine.reloadProperties(); // return "ok"; // } // // private void checkSearchEngineExist() throws ServiceException { // if (searchEngine == null) { // throw new AdminServiceException(ExceptionDefinition.SEARCH_ENGINE_NOT_SET); // } // } // //}