1. 程式人生 > >Java之品優購課程講義_day11(6)

Java之品優購課程講義_day11(6)

.更新索引庫 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,  "刪除失敗");

}

}