package cn.newfeifan.mall.module.distri.service.consumptionchangelog;

import java.util.*;
import javax.validation.*;
import cn.newfeifan.mall.module.distri.controller.admin.consumptionchangelog.vo.*;
import cn.newfeifan.mall.module.distri.dal.dataobject.consumptionchangelog.ConsumptionChangeLogDO;
import cn.newfeifan.mall.framework.common.pojo.PageResult;

/**
 * 平台消费分变动记录 Service 接口
 *
 * @author 非繁人
 */
public interface ConsumptionChangeLogService {

    /**
     * 创建平台消费分变动记录
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createConsumptionChangeLog(@Valid ConsumptionChangeLogSaveReqVO createReqVO);

    /**
     * 更新平台消费分变动记录
     *
     * @param updateReqVO 更新信息
     */
    void updateConsumptionChangeLog(@Valid ConsumptionChangeLogSaveReqVO updateReqVO);

    /**
     * 删除平台消费分变动记录
     *
     * @param id 编号
     */
    void deleteConsumptionChangeLog(Long id);

    /**
     * 获得平台消费分变动记录
     *
     * @param id 编号
     * @return 平台消费分变动记录
     */
    ConsumptionChangeLogDO getConsumptionChangeLog(Long id);

    /**
     * 获得平台消费分变动记录分页
     *
     * @param pageReqVO 分页查询
     * @return 平台消费分变动记录分页
     */
    PageResult<ConsumptionChangeLogRespVO> getConsumptionChangeLogPage(ConsumptionChangeLogPageReqVO pageReqVO);

    /**
     * 根据状态获取消费分变动记录
     * @param type 状态
     * @return 变动记录
     */
    List<ConsumptionChangeLogDO> selectListByStatus(Integer type);
}