本帖最后由 谷粒姐姐 于 2018-9-26 10:21 编辑
.更新索引库 7.1 需求分析在进行商品审核后更新到 solr 索引库,在商品删除后删除 solr 索引库中相应的记录. 7.2 查询审核商品(SKU)列表 7.2.1 服务接口层 修改 pinyougou-sellergoods-interface 的 GoodsService.java,新增方法 [AppleScript] 纯文本查看 复制代码 /**
*根据商品 ID 和状态查询 Item 表信息
*@param goodsId
*@param status
*@return
*/
public List<TbItem> findItemListByGoodsIdandStatus(Long[] goodsIds, String status ); 7.1.1 服务实现层 修改 pinyougou-sellergoods-service 工程 GoodsServiceImpl.java [AppleScript] 纯文本查看 复制代码 @Override
public List<TbItem> findItemListByGoodsIdandStatus(Long[] goodsIds, String status) { TbItemExample example=new TbItemExample(); com.pinyougou.pojo.TbItemExample.Criteria criteria = example.createCriteria(); criteria.andGoodsIdIn(Arrays.asList(goodsIds)); criteria.andStatusEqualTo(status);
return itemMapper.selectByExample(example); 7.1 更新到索引库 7.1.1 服务接口层 修改 pinyougou-search-interface 的 ItemSearchService.java [AppleScript] 纯文本查看 复制代码 /**
*导入数据
*@param list
*/
public void importList(List list); 7.1.1 服务实现层 修改 pinyougou-search-service 的 ItemSearchServiceImpl.java [AppleScript] 纯文本查看 复制代码 @Override
public void importList(List list) { solrTemplate.saveBeans(list); solrTemplate.commit();
} 7.1.1 控制层 (1)pinyougou-manager-web 工程引入依赖 pinyougou-search-interface (2)修改 pinyougou-manager-web 工程的 GoodsController.java [AppleScript] 纯文本查看 复制代码 @Reference
private ItemSearchService itemSearchService; @RequestMapping("/updateStatus")
public Result updateStatus(Long[] ids,String status){
try {
goodsService.updateStatus(ids, status);
//按照 SPU ID 查询 SKU 列表(状态为 1)
if(status.equals("1")){//审核通过
List<TbItem> itemList = goodsService.findItemListByGoodsIdandStatus(ids, status);
//调用搜索接口实现数据批量导入
if(itemList.size()>0){ itemSearchService.importList(itemList);
}else{
System.out.println("没有明细数据");
} [AppleScript] 纯文本查看 复制代码 }
return new Result(true, "修改状态成功");
} catch (Exception e) { e.printStackTrace();
return new Result(false, "修改状态失败");
}
} 7.1 商品删除同步索引数据 7.1.1 服务接口层 修改 pinyougou-search-interface 的 ItemSearchService.java [AppleScript] 纯文本查看 复制代码 /**
*删除数据
*@param ids
*/
public void deleteByGoodsIds(List goodsIdList); 7.1.1 服务实现层 [AppleScript] 纯文本查看 复制代码 @Override
public void deleteByGoodsIds(List goodsIdList) {
System.out.println("删除商品 ID"+goodsIdList); Query query=new SimpleQuery();
Criteria criteria=new Criteria("item_goodsid").in(goodsIdList);
query.addCriteria(criteria); solrTemplate.delete(query); solrTemplate.commit();
} 7.1.1 控制层 修改 pinyougou-manager-web 的 GoodsController.java [AppleScript] 纯文本查看 复制代码 /**
*批量删除
*@param ids
*@return
*/ @RequestMapping("/delete")
public Result delete(Long [] ids){
try {
goodsService.delete(ids); itemSearchService.deleteByGoodsIds(Arrays.asList(ids));
return new Result(true, "删除成功");
} catch (Exception e) { e.printStackTrace();
return new Result(false, "删除失败");
}
}
|