package com.yeshi.fanli.dao.mybatis; import java.math.BigDecimal; import java.util.Date; import java.util.List; import org.apache.ibatis.annotations.Param; import com.yeshi.fanli.dao.BaseMapper; import com.yeshi.fanli.dto.HongBaoDTO; import com.yeshi.fanli.entity.bus.user.HongBaoV2; public interface HongBaoV2Mapper extends BaseMapper { HongBaoV2 selectByPrimaryKeyForUpdate(Long id); /** * 获取子红包列表 * * @param id * @return */ List listChildrenById(Long id); /** * 获取奖金列表(1.4.9之前) * * @param uid * @param start * @param count * @return */ List listJiangJinByUid(@Param("uid") Long uid, @Param("start") long start, @Param("count") int count); /** * 获取奖金数量(1.4.9之前) * * @param uid * @return */ Long countJiangJinByUid(Long uid); /** * 获取总的提成金额 * * @param uid * @return */ BigDecimal getTotalTiChengMoney(Long uid); /** * 获取总的提成笔数 * * @param uid * @return */ int getTotalTiChengCount(Long uid); /** * 获取还未到账的提成金额 * * @param uid * @return */ BigDecimal getUnGetTiChengMoney(Long uid); /** * 获取总共返利金额 * * @param uid * @return */ BigDecimal getTotalFanLiMoney(Long uid); /** * 获取还未到账的金额 * * @param uid * @return */ BigDecimal getUnRecievedFanLiMoney(Long uid); /** * 根据创建时间与用户ID获取未到账的金额 * * @param uid * @param minDate * @param maxDate * @return */ BigDecimal getUnRecievedMoneyWithCreateTime(@Param("uid") Long uid, @Param("minDate") Date minDate, @Param("maxDate") Date maxDate); /** * 根据预计领取时间与用户ID获取未到账的金额 * * @param uid * @param minDate * @param maxDate * @return */ BigDecimal getUnRecievedMoneyWithPreGetTime(@Param("uid") Long uid, @Param("minDate") Date minDate, @Param("maxDate") Date maxDate); /** * 根据红包类型获取结算列表 * * @param type * @param count * @return */ List listCanBalanceHongBaoByType(@Param("type") int type, @Param("count") int count); /** * 获取能够结算的分享赚和邀请赚的用户列表 * * @param count * @return */ List listUidCanBanlanceShareAndInvite(int count); /** * 根据用户ID,类型获取能够结算的红包 * * @param type * @param uid * @param count * @return */ List listCanBalanceHongBaoByTypeAndUid(@Param("types") List type, @Param("uid") Long uid, @Param("count") int count); /** * 根据用户ID,订单状态和结算时间统计邀请赚的订单数量 * * @param uid * @param minDate * @param maxDate * @return */ Long countInviteOrderCountByUidAndSettleTime(@Param("uid") Long uid, @Param("state") int state, @Param("minDate") Date minDate, @Param("maxDate") Date maxDate); /** * 通过用户ID和状态查询数量 * * @param uid * @param state * @return */ Long countByUidAndState(@Param("uid") Long uid, @Param("state") int state); }