package com.yonge.cooleshow.biz.dal.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
import com.yonge.cooleshow.biz.dal.wrapper.PaymentDivMemberRecordWrapper;
import com.yonge.cooleshow.biz.dal.entity.PaymentDivMemberRecord;
import com.yonge.cooleshow.biz.dal.wrapper.TenantPersonStatWrapper;
import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;

import java.math.BigDecimal;
import java.util.List;

/**
 * 分账子账户记录表
 * 2023-07-28 15:45:03
 */
public interface PaymentDivMemberRecordService extends IService<PaymentDivMemberRecord>  {

	/**
     * 查询详情
     * @param id 详情ID
     * @return PaymentDivMemberRecord
     */
	PaymentDivMemberRecord detail(Long id);

    /**
     * 分页查询
     * @param page IPage<PaymentDivMemberRecord>
     * @param query PaymentDivMemberRecordWrapper.PaymentDivMemberRecordQuery
     * @return IPage<PaymentDivMemberRecord>
     */
    IPage<PaymentDivMemberRecord> selectPage(IPage<PaymentDivMemberRecord> page, PaymentDivMemberRecordWrapper.PaymentDivMemberRecordQuery query);
	
    /**
     * 添加
     * @param paymentDivMemberRecord PaymentDivMemberRecordWrapper.PaymentDivMemberRecord
     * @return Boolean
     */
     Boolean add(PaymentDivMemberRecordWrapper.PaymentDivMemberRecord paymentDivMemberRecord);   

    /**
     * 更新
     * @param paymentDivMemberRecord PaymentDivMemberRecordWrapper.PaymentDivMemberRecord
     * @return Boolean
     */
     Boolean update(PaymentDivMemberRecordWrapper.PaymentDivMemberRecord paymentDivMemberRecord);

     //小程序首页收入明细
    IPage<PaymentDivMemberRecordWrapper.IndexIncomeQueryDto> queryIncome(IPage<PaymentDivMemberRecordWrapper.IndexIncomeQueryDto> page,
                                                                         PaymentDivMemberRecordWrapper.IndexIncomeQuery query);

    //小程序首页订单详情
    PaymentDivMemberRecordWrapper.OrderDetailDto getIncomeOrderDetail(String orderNo,Long tenantId);

    //首页收入汇总
    PaymentDivMemberRecordWrapper.IndexIncomeSummaryDto incomeSummary(PaymentDivMemberRecordWrapper.IndexIncomeQuery query);

    /**
     * 专辑分账
     *
     * @param userPaymentOrder 订单
     */
    void tenantAlbum(UserOrderDetailVo userPaymentOrder);

    /**
     * 曲目分账
     *
     */
    void musicSheet(UserOrderDetailVo userOrderDetailVo);

    /**
     * 趣纠课
     */
    void practiceCourse(UserOrderDetailVo userOrderDetailVo);

    /**
     * 直播课
     */
    void liveCourse(UserOrderDetailVo userOrderDetailVo);

    /**
     * 视频课
     *
     */
    void videoCourse(UserOrderDetailVo userOrderDetailVo);

    /**
     * vip
     *
     */
    void vip(UserOrderDetailVo userOrderDetailVo);

    /**
     * 活动
     */
    void activity(UserOrderDetailVo userOrderDetailVo);

    /**
     * 畅学卡
     *
     */
    void discount(UserOrderDetailVo userOrderDetailVo);
    /**
     * 根据订单查询分账记录
     *
     * @param orderNo 订单编号
     * @return
     */
    List<PaymentDivMemberRecord> getByOrderNo(String orderNo);

    /**
     * 琴房课
     *
     */
    void pianoRoom(UserOrderDetailVo userOrderDetailVo);
}