第一步:设计商品评价表

第二步:mapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.leosanqing.mapper.CategoryMapper" >
<resultMap id="BaseResultMap" type="com.ljl.pojo.Category" >
<select id="queryItemComments" resultType="com.ljl.pojo.vo.ItemCommentVO" parameterType="Map">
select
ic.comment_level as commentLevel,
ic.content as content,
ic.spec_name as specName,
ic.created_time as createdTime
u.face as userFace,
u.nickname as nickname
from
items_comments ic
left join
users u
on ic.user_id=u.id
where
ic.item_id=#{paramsMap.itemId}
<if test="paramsMap.level!=null and paramsMap.level!=''">
and ic.comment_level=#{paramsMap.level}
</if>
</select>
</mapper>
第三步:service层
/**
* 根据商品id和评价等级查询商品的评价(分页)
* @param itemId
* @param level
* @return
*/
public PagedGridResult queryPagedComments(String itemId, Integer level, Integer page, Integer pagesize);
第四步:service实现层
@Transactional(propagation = Propagation.SUPPORTS)
@Override
public PagedGridResult queryPagedComments(String itemId, Integer level,Integer page,Integer pagesize) {
Map<String,Object> map =new HashMap<>();
map.put("itemId",itemId);
map.put("level",level);
//mybatis-pagehelper
/**
* page:第几页
* pageSize:每页显示条数
*/
PageHelper.startPage(page,pagesize);
List<ItemCommentVO> list=itemsMapperCustom.queryItemComments(map);
for(ItemCommentVO vo:list){
vo.setNickname(DesensitizationUtil.commonDisplay(vo.getNickname()));
}
//查出来的数据进行处理
return setterPagedGrid(list,page);
}
private PagedGridResult setterPagedGrid(List<?> list,Integer page){
PageInfo<?> pageList =new PageInfo<>(list);
PagedGridResult grid=new PagedGridResult();
grid.setPage(page);//当前页
grid.setRows(list);//每行显示内容
grid.setTotal(pageList.getPages());//总页数
grid.setRecords(pageList.getTotal());//总记录数
return grid;
}
第五步:controller层
@ApiOperation(value = "查询商品评价",notes="查询商品评价",httpMethod="GET")
@GetMapping("/comments")
public JSONResult comments(
@ApiParam(name="itemId",value="商品id",required=true)
@RequestParam String itemId,
@ApiParam(name="level",value="评价等级",required=false)
@RequestParam Integer level,
@ApiParam(name="page",value="查询下一页的第几页",required=false)
@RequestParam Integer page,
@ApiParam(name="pageSize",value="分页的每一页显示的条数",required=false)
@RequestParam Integer pageSize){
if(StringUtils.isBlank(itemId)){
return JSONResult.errorMsg(null);
}
if(page==null){
page=1;
}
if(pageSize==null){
pageSize=COMMENT_PAGE_SIZE;
}
PagedGridResult grid = itemService.queryPagedComments(itemId,level,page,pageSize);
return JSONResult.ok(grid);
}
本文详细介绍了一种基于MyBatis的电商商品评价查询及分页处理方案,包括设计商品评价表、mapper映射文件、service层接口定义、具体实现与controller层调用流程,为电商系统提供高效的商品评价展示功能。
898

被折叠的 条评论
为什么被折叠?



