admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2Mapper.java
@@ -1,8 +1,267 @@
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> {
   HongBaoV2 selectByPrimaryKeyForUpdate(Long id);
   /**
    * 获取子红包列表
    *
    * @param id
    * @return
    */
   List<HongBaoV2> listChildrenById(Long id);
   /**
    * 获取子红包列表
    * @param idList
    * @return
    */
   List<HongBaoV2> listChildrenByIds(@Param("idList") List<Long> idList);
   /**
    * 获取奖金列表(1.4.9之前)
    *
    * @param uid
    * @param start
    * @param count
    * @return
    */
   List<HongBaoDTO> 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<HongBaoV2> listCanBalanceHongBaoByType(@Param("type") int type, @Param("count") int count);
   /**
    * 获取能够结算的红包的用户列表
    *
    * @param count
    * @return
    */
   List<Long> listUidCanBanlanceByTypeAndMaxTime(@Param("typeList") List<Integer> typeList,
         @Param("maxTime") Date maxTime, @Param("start") long start, @Param("count") int count);
   long countUidCanBanlanceByTypeAndMaxTime(@Param("typeList") List<Integer> typeList,
         @Param("maxTime") Date maxTime);
   /**
    * 根据用户ID,类型获取能够结算的红包
    *
    * @param type
    * @param uid
    * @param count
    * @return
    */
   List<HongBaoV2> listCanBalanceHongBaoByTypeAndUid(@Param("types") List<Integer> type, @Param("uid") Long uid,
         @Param("orderType") Integer orderType, @Param("maxDate") Date maxPreGetTime, @Param("start") long start,
         @Param("count") int count);
   /**
    * 计算可以结算红包的数量
    *
    * @param type
    * @param uid
    * @return
    */
   long countCanBalanceHongBaoByTypeAndUid(@Param("types") List<Integer> type, @Param("uid") Long uid,
         @Param("orderType") Integer orderType, @Param("maxDate") Date maxPreGetTime);
   /**
    * 根据用户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, @Param("orderType") int orderType);
   /**
    * 根据用户ID,订单状态和结算时间统计分享赚的订单数量
    *
    * @param uid
    * @param minDate
    * @param maxDate
    * @return
    */
   Long countShareOrderCountByUidAndSettleTime(@Param("uid") Long uid, @Param("state") int state,
         @Param("minDate") Date minDate, @Param("maxDate") Date maxDate, @Param("orderType") Integer orderType);
   /**
    * 通过用户ID和状态查询数量
    *
    * @param uid
    * @param state
    * @return
    */
   Long countByUidAndState(@Param("uid") Long uid, @Param("state") int state);
   /**
    * 通过用户ID与状态计算资金
    *
    * @param uid
    * @param stateList
    * @return
    */
   BigDecimal computeMoneyByUidAndState(@Param("uid") Long uid, @Param("stateList") List<Integer> stateList);
   /**
    * 最近30天内产生过分享订单的用户
    *
    * @return
    */
   List<Long> getUidByNear30DayShareSucceed();
   /**
    * 根据父用户ID,状态,类型查询
    *
    * @param uid
    * @param typeList
    * @param stateList
    * @return
    */
   List<HongBaoV2> listByParentUidAndTypeAndState(@Param("uid") Long uid, @Param("typeList") List<Integer> typeList,
         @Param("stateList") List<Integer> stateList, @Param("start") long start, @Param("count") int count);
   /**
    * 根据父用户ID,状态,类型查询数量
    *
    * @param uid
    * @param typeList
    * @param stateList
    * @return
    */
   long countByParentUidAndTypeAndState(@Param("uid") Long uid, @Param("typeList") List<Integer> typeList,
         @Param("stateList") List<Integer> stateList);
   /**
    * 根据订单来源类型与交易ID列表查询订单信息
    *
    * @param sourceType
    * @param tradeId
    * @return
    */
   List<HongBaoV2> listBySourceTypeAndTradeIdListAndUid(@Param("sourceType") int sourceType, @Param("uid") long uid,
         @Param("tradeIdList") List<String> tradeIdList);
   /**
    * 根据状态,类型,用户ID检索
    * @param stateList
    * @param typeList
    * @param uid
    * @return
    */
   List<HongBaoV2> listByStateAndTypeAndUid(@Param("stateList") List<Integer> stateList,
         @Param("typeList") List<Integer> typeList, @Param("uid") Long uid, @Param("start") long start,
         @Param("count") int count);
   /**
    * 根据ID批量查询
    * @param idList
    * @return
    */
   List<HongBaoV2> listByIds(@Param("idList") List<Long> idList);
   /**
    * 根据订单交易id查询红包
    * @param idList
    * @return
    */
   List<HongBaoDTO> listByOrderTradeId(@Param("tradeId") String tradeId);
   /**
    * 查询直接上级当时获得红包等级
    * @param pid
    * @return
    */
   Integer getDirectBossUrankByPid(@Param("pid")Long pid);
}