黑马程序员技术交流社区
标题: 【郑州校区】Java之品优购课程讲义_day11(6) [打印本页]
作者: 谷粒姐姐 时间: 2018-9-26 10:14
标题: 【郑州校区】Java之品优购课程讲义_day11(6)
本帖最后由 谷粒姐姐 于 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, "删除失败");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |