A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 谷粒姐姐 于 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,  "删除失败");

}


}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马