admin
2020-05-19 744594ef1a2f530fc3e86ea9dc48b62247f79420
fanli/src/main/java/com/yeshi/fanli/service/inter/order/OrderHongBaoMoneyComputeService.java
@@ -2,7 +2,11 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.dto.order.UserTeamLevel;
import com.yeshi.fanli.dto.order.UserTeamRate;
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.entity.order.CommonOrder;
@@ -12,6 +16,10 @@
 *
 */
public interface OrderHongBaoMoneyComputeService {
   public ConfigParamsDTO getShowComputeRate(String platform, String version, UserLevelEnum userLevel);
   public ConfigParamsDTO getShowComputeRate(String platform, String version);
   /**
    * 获取基础的返利金额
@@ -60,6 +68,18 @@
   public BigDecimal computeShareMoney(CommonOrder order, UserLevelEnum userLevel);
   /**
    * 获取返利比例
    * @Title: getFanliRate
    * @Description:
    * @param userLevel
    * @param date
    * @return
    * BigDecimal 返回类型
    * @throws
    */
   public BigDecimal getFanliRate(UserLevelEnum userLevel, Date date);
   /**
    * 计算直接粉丝邀请奖金
    * @Title: computeFirstInviteMoney
    * @Description: 
@@ -68,7 +88,8 @@
    * BigDecimal 返回类型
    * @throws
    */
   public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer);
   public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer,
         List<UserTeamLevel> bossLevelList);
   /**
    * 计算间接粉丝邀请奖金
@@ -79,61 +100,65 @@
    * BigDecimal 返回类型
    * @throws
    */
   public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer);
   public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer,
         List<UserTeamLevel> bossLevelList);
   /**
    * 计算直接粉丝团队补贴
    * @Title: computeFirstTeamSubsidy
    * 获取团队奖金
    * @Title: getTeamReward
    * @Description: 
    * @param order
    * @param buyerUserLevel
    * @param userLevel
    * @param buyerLevel
    * @param money
    * @param levelList
    * @param deep 1-直接奖金  2-间接奖金
    * @return 
    * BigDecimal 返回类型
    * @throws
    */
   public BigDecimal computeFirstTeamSubsidy(BigDecimal fanLiMoney, Date placeOrderTime, UserLevelEnum buyerUserLevel,
         UserLevelEnum userLevel);
   public UserTeamRate getTeamRewardRate(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList, Date date,
         int deep);
   /**
    * 计算间接粉丝团队补贴
    * @Title: computeSecondTeamSubsidy
    * 获取二级外的团队奖金
    * @Title: getTeamRewardMoreThan2Level
    * @Description: 
    * @param order
    * @param buyerUserLevel
    * @param userLevel
    * @param buyerLevel
    * @param money
    * @param bossLevelList
    * @param deep
    * @return 
    * BigDecimal 返回类型
    * UserTeamMoney 返回类型
    * @throws
    */
   public BigDecimal computeSecondTeamSubsidy(BigDecimal fanLiMoney, Date placeOrderTime, UserLevelEnum buyerUserLevel,
         UserLevelEnum userLevel);
   public List<UserTeamRate> getTeamRewardMoreThan2LevelRates(UserLevelEnum buyerLevel,
         List<UserTeamLevel> bossLevelList, Date date);
   /**
    * 计算一级团队奖励
    * @Title: computeFirstTeamReward
    * 获取分红
    * @Title: getTeamDividents
    * @Description: 
    * @param firstTeamSubsidy -购买者上一级团队补贴
    * @param secondTeamSubsidy-购买者上两级团队补贴
    * @param userLevel  当前用户的等级
    * @param buyerLevel
    * @param money
    * @param bossLevelList
    * @return 
    * BigDecimal 返回类型
    * List<UserTeamMoney> 返回类型
    * @throws
    */
   public BigDecimal computeFirstTeamReward(BigDecimal firstTeamSubsidy, Date placeOrderTime, UserLevelEnum userLevel);
   public List<UserTeamRate> getTeamDividentsRates(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList,
         Date date);
   /**
    * 计算二级团队奖励
    * @Title: computeSecondTeamReward
    * 获取资深导师 补贴
    * @Title: getTearcherSubsidy
    * @Description: 
    * @param secondTeamSubsidy 购买者上两级团队补贴
    * @param userLevel 当前用户的等级
    * @param buyerLevel
    * @param money
    * @param bossLevelList
    * @return 
    * BigDecimal 返回类型
    * UserTeamMoney 返回类型
    * @throws
    */
   public BigDecimal computeSecondTeamReward(BigDecimal secondTeamSubsidy, Date placeOrderTime,
         UserLevelEnum userLevel);
   public UserTeamRate getTearcherSubsidy(UserLevelEnum buyerLevel, BigDecimal rate, List<UserTeamLevel> bossLevelList,
         Date date);
}