package com.xinelu.manage.mapper.nursestationpersonrevenue;

import com.xinelu.manage.domain.nursestationpersonrevenue.NurseStationPersonRevenue;
import com.xinelu.manage.vo.nursestationpersonrevenue.NurseStationPersonRevenueVO;
import com.xinelu.manage.vo.nursestationpersonrevenue.PersonRevenueCountVO;
import com.xinelu.manage.vo.nursestationpersonrevenue.RevenueTimeDTO;

import java.util.List;


/**
 * 护理员订单佣金收益信息Mapper接口
 *
 * @author xinyilu
 * @date 2023-03-29
 */
public interface NurseStationPersonRevenueMapper {
    /**
     * 查询护理员订单佣金收益信息
     *
     * @param id 护理员订单佣金收益信息主键
     * @return 护理员订单佣金收益信息
     */
    NurseStationPersonRevenue selectNurseStationPersonRevenueById(Long id);

    /**
     * 查询护理员订单佣金收益信息列表
     *
     * @param nurseStationPersonRevenue 护理员订单佣金收益信息
     * @return 护理员订单佣金收益信息集合
     */
    List<NurseStationPersonRevenue> selectNurseStationPersonRevenueList(NurseStationPersonRevenue nurseStationPersonRevenue);

    /**
     * 新增护理员订单佣金收益信息
     *
     * @param nurseStationPersonRevenue 护理员订单佣金收益信息
     * @return 结果
     */
    int insertNurseStationPersonRevenue(NurseStationPersonRevenue nurseStationPersonRevenue);

    /**
     * 修改护理员订单佣金收益信息
     *
     * @param nurseStationPersonRevenue 护理员订单佣金收益信息
     * @return 结果
     */
    int updateNurseStationPersonRevenue(NurseStationPersonRevenue nurseStationPersonRevenue);

    /**
     * 删除护理员订单佣金收益信息
     *
     * @param id 护理员订单佣金收益信息主键
     * @return 结果
     */
    int deleteNurseStationPersonRevenueById(Long id);

    /**
     * 批量删除护理员订单佣金收益信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteNurseStationPersonRevenueByIds(Long[] ids);

    /**
     * 护理员收益统计
     *
     * @param revenueTime 时间
     * @return NurseStationPersonRevenueVO
     */
    List<PersonRevenueCountVO> selectCount(RevenueTimeDTO revenueTime);

    /**
     * 护理员收益统计
     *
     * @param revenueTime 用户信息及时间
     * @return NurseStationPersonRevenueVO
     */
    PersonRevenueCountVO selectRevenueAmountById(RevenueTimeDTO revenueTime);

    /**
     * 查询收益明细
     *
     * @param revenueTime 护理员信息
     * @return NurseStationPersonRevenueVO
     */
    List<NurseStationPersonRevenueVO> selectRevenueDetails(RevenueTimeDTO revenueTime);
}