Java之品優購課程講義_day11(6)
阿新 • • 發佈:2018-12-11
.更新索引庫 7.1 需求分析 在進行商品稽核後更新到 solr 索引庫,在商品刪除後刪除 solr 索引庫中相應的記錄. 7.2 查詢稽核商品(SKU)列表 7.2.1 服務介面層 修改 pinyougou-sellergoods-interface 的 GoodsService.java,新增方法
/** *根據商品 ID 和狀態查詢 Item 表資訊 *@param goodsId *@param status *@return */ public List<TbItem> findItemListByGoodsIdandStatus(Long[] goodsIds, String status );
7.1.1 服務實現層 修改 pinyougou-sellergoods-service 工程 GoodsServiceImpl.java
@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
/**
*匯入資料
*@param list
*/
public void importList(List list);
7.1.1 服務實現層 修改 pinyougou-search-service 的 ItemSearchServiceImpl.java
@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
@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("沒有明細資料");
}
}
return new Result(true, "修改狀態成功");
} catch (Exception e) { e.printStackTrace();
return new Result(false, "修改狀態失敗");
}
}
7.1 商品刪除同步索引資料 7.1.1 服務介面層
修改 pinyougou-search-interface 的 ItemSearchService.java
/**
*刪除資料
*@param ids
*/
public void deleteByGoodsIds(List goodsIdList);
7.1.1 服務實現層
@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
/**
*批量刪除
*@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, "刪除失敗");
}
}