package com.ruoyi.promo.mapper;
import com.ruoyi.domain.entity.TtCommissionRecord;
import com.ruoyi.domain.entity.TtUserBlendErcash;
import com.ruoyi.domain.entity.sys.TtUser;
import com.ruoyi.promo.domain.dto.AnchorDayTurnoverDTO;
import com.ruoyi.promo.domain.dto.TotalUserExpenditureDTO;
import com.ruoyi.promo.domain.param.GetPlayersTurnoverParam;
import com.ruoyi.promo.domain.vo.AnchorDayTurnoverVO;
import com.ruoyi.promo.domain.vo.DayInviteVO;
import com.ruoyi.promo.domain.vo.DayTurnoverVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 推广流水Mapper
*/
@Mapper
public interface PromoTurnoverMapper {
@Select("select SUM(amount) from tt_user_blend_ercash where user_id = #{userId} and source = #{source}")
BigDecimal queryTotalRewardBySource(@Param("userId")Integer userId, @Param("source")Integer source);
@Select(
"")
List queryPlayerErcash(@Param("userId") Integer userId,
@Param("beginTime") String beginTime, @Param("endTime") String endTime);
@Select("select SUM(amount) from tt_user_blend_ercash where user_id = #{userId} and DATE(create_time) = #{date} and amount < 0")
BigDecimal queryDailySum(@Param("userId")Integer userId, @Param("date")String date);
/**
* 获取直属主播数量
*/
int getAnchorCount(Integer userId);
/**
* 获取玩家流水
*/
BigDecimal getPlayersTurnover(GetPlayersTurnoverParam param);
/**
* 获取名下主播近10天日流水
*/
List getLast10DaysTurnover(@Param("userIds") List userIds,
@Param("sourceCodes") List sourceCodes);
/**
* 获取名下主播近10天日邀请
*/
List getLast10DaysInvite(Integer userId);
/**
* 查询名下主播每日流水
*/
List getAnchorDayTurnover(AnchorDayTurnoverDTO anchorDayTurnoverDTO);
@Select("SELECT * FROM tt_user WHERE parent_id = #{parentId}")
List findByParentId(@Param("parentId") int parentId);
@Select("SELECT * FROM tt_user WHERE user_id = #{userId}")
TtUser findById(@Param("userId") int id);
/**
* 获取消费记录
*/
List getPurchaseByUserId(Integer userId);
@Select("select sum(total) from tt_user_blend_ercash where user_id = #{userId} and type=1 and source = 1 and create_time >= #{startDate} and create_time < #{endDate}")
BigDecimal getDailyTotalRecharge(@Param("userId") Integer userId,
@Param("startDate") Date startDate,
@Param("endDate") Date endDate);
/**
* 获取佣金比例
*/
BigDecimal getCommissionRateByUserId(Integer userId);
/**
* 修改佣金比例
*/
int updateCommissionRate(@Param("userId") Integer userId, @Param("commissionRate") BigDecimal commissionRate);
/**
* 获取佣金列表
*/
List getCommissionList(Integer userId);
/**
* 获取上个月用户消费额
*/
List getLastMonthTotalUserExpenditure();
}