package com.yami.shop.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.bean.app.dto.ProdCommDataDto;
import com.yami.shop.bean.app.dto.ProdCommDto;
import com.yami.shop.bean.app.param.ProdCommParam;
import com.yami.shop.bean.model.Order;
import com.yami.shop.bean.model.ProdComm;
import com.yami.shop.bean.po.CommPo;
import com.yami.shop.common.util.PageParam;

import java.util.Map;


/**
 * 商品评论
 *
 * @author xwc
 * @date 2019-04-19 10:43:57
 */
public interface ProdCommService extends IService<ProdComm> {
    ProdCommDataDto getProdCommDataByProdId(Long prodId);

    IPage<ProdCommDto> getProdCommDtoPageByUserId(Page page,String userId);

    IPage<ProdCommDto> getProdCommDtoPageByProdId(Page page, Long prodId, Integer evaluate);

    IPage<ProdComm> getProdCommPage(Page page,ProdComm prodComm,Long shopId);

    void comm(Order order, ProdCommParam prodCommParam);

    IPage<ProdComm> commList(PageParam<ProdComm> page,Long prodId,Long shopId,Integer commStatus,Long channelId);

    Map<String, Object> commentCount(Long prodId, Long shopId,Long channelId);

    IPage<ProdComm> myCommList(PageParam<ProdComm> page, String userId);

    IPage<ProdComm> backendCommList(PageParam<ProdComm> page, CommPo po);

    void backendCommAudit(Long prodCommId, Integer status);

    void reply(Long prodCommId, String replyContent);

}
