package com.younike.system.service;

import com.younike.system.domain.GoodsComment;
import com.younike.system.domain.vo.GoodsCommentVo;
import com.younike.system.param.CommentQueryParam;
import com.younike.system.param.GoodsCommentParam;

import java.util.List;

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

    /**
     * 评论列表
     * @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 commontIds 需要删除的商品评价主键集合
     * @return 结果
     */
    int deleteGoodsCommentByCommontIds(Long[] commontIds);

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

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


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

    /**
     * 删除商品评价
     * @param commontId
     * @return
     */
    int commentRemove(Long commontId);

    List<GoodsCommentVo> getCommentVolist(Long goodsId);

    List<GoodsCommentVo> getCommentlistByServerId(GoodsComment goodsComment);

    /**
     * 会员订单评价
     *
     * @param goodsCommentParam
     * @return
     */
    int saveMemberGoodsComment(GoodsCommentParam goodsCommentParam);

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

