电商商城之商品评价

本文详细介绍了一种基于MyBatis的电商商品评价查询及分页处理方案,包括设计商品评价表、mapper映射文件、service层接口定义、具体实现与controller层调用流程,为电商系统提供高效的商品评价展示功能。

第一步:设计商品评价表

第二步: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);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值