package com.younike.system.mapper;

import com.younike.system.domain.GoodsComment;
import com.younike.system.domain.vo.GoodsCommentVo;
import com.younike.system.param.CommentQueryParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品评价Mapper接口
 *
 * @author elev
 * @date 2022-01-05
 */
public interface GoodsCommentMapper {

    /**
     * 评价列表
     * @param param
     * @return
     */
    List<GoodsCommentVo> commentList(CommentQueryParam param);
    /**
     * 查询商品评价
     *
     * @param commontId 商品评价主键
     * @return 商品评价
     */
    GoodsComment selectGoodsCommentByCommontId(Long commontId);

    /**
     * 查询商品评价列表
     *
     * @param goodsComment 商品评价
     * @return 商品评价集合
     */
    List<GoodsComment> selectGoodsCommentList(GoodsComment goodsComment);

    /**
     * 新增商品评价
     *
     * @param goodsComment 商品评价
     * @return 结果
     */
    int insertGoodsComment(GoodsComment goodsComment);

    /**
     * 修改商品评价
     *
     * @param goodsComment 商品评价
     * @return 结果
     */
    int updateGoodsComment(GoodsComment goodsComment);

    /**
     * 删除商品评价
     *
     * @param commontId 商品评价主键
     * @return 结果
     */
    int deleteGoodsCommentByCommontId(Long commontId);

    /**
     * 批量删除商品评价
     *
     * @param commontIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteGoodsCommentByCommontIds(Long[] commontIds);

    /**
     * 查询我的商品评价列表
     * @param memberId
     * @return
     */
    List<GoodsCommentVo> getCommentlist(Long memberId);

    /**
     * 删除商品追评价
     * @param goodsComment
     * @return
     */
    int traceRemove(GoodsComment goodsComment);

    /**
     * 根据商品id查询评价
     * @param goodsId
     * @return
     */
    List<GoodsCommentVo> getCommentVolist(@Param("goodsId")Long goodsId);

    List<GoodsCommentVo> getCommentlistByServerId(GoodsComment goodsComment);

    /**
     * 查询订单评价详情
     *
     * @param commontId
     * @return
     */
    GoodsCommentVo getMemberGoodsCommentDetail(@Param("commontId")Long commontId);
}

