yujian
2020-04-23 2bd2200f209ddb7bcc59b636d9de6f8b3f762958
fanli/src/main/java/com/yeshi/fanli/service/inter/order/OrderHongBaoMoneyComputeService.java
@@ -2,7 +2,10 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
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 +15,28 @@
 *
 */
public interface OrderHongBaoMoneyComputeService {
   /**
    * 获取基础的返利金额
    * @Title: computeBaseFanliMoney
    * @Description:
    * @param order
    * @return
    * BigDecimal 返回类型
    * @throws
    */
   public BigDecimal computeBaseFanliMoney(CommonOrder order);
   /**
    * 获取基础的分享金额
    * @Title: computeBaseShareMoney
    * @Description:
    * @param order
    * @return
    * BigDecimal 返回类型
    * @throws
    */
   public BigDecimal computeBaseShareMoney(CommonOrder order);
   /**
    * 计算自购订单返利金额
@@ -89,29 +114,72 @@
         UserLevelEnum userLevel);
   /**
    * 计算一级团队奖励
    * @Title: computeFirstTeamReward
    * @Description:
    * @param firstTeamSubsidy -购买者上一级团队补贴
    * @param secondTeamSubsidy-购买者上两级团队补贴
    * @param userLevel  当前用户的等级
    * @return
    * BigDecimal 返回类型
    * @throws
    * 计算团队补贴
    * @param date 下单时间
    * @param buyerUserLevel 下单时 下单人当时等级
    * @param userLevel 下单时 上级人对应等级
    * @param direct 是否直接邀请关系
    * @return
    */
   public BigDecimal computeFirstTeamReward(BigDecimal firstTeamSubsidy, Date placeOrderTime, UserLevelEnum userLevel);
   public BigDecimal getTeamSubsidyRate(Date date, UserLevelEnum buyerUserLevel, UserLevelEnum userLevel,
         boolean direct);
   /**
    * 计算二级团队奖励
    * @Title: computeSecondTeamReward
    * 获取团队奖金
    * @Title: getTeamReward
    * @Description: 
    * @param secondTeamSubsidy 购买者上两级团队补贴
    * @param userLevel 当前用户的等级
    * @param buyerLevel
    * @param money
    * @param levelList
    * @param deep 1-直接奖金  2-间接奖金
    * @return 
    * BigDecimal 返回类型
    * @throws
    */
   public BigDecimal computeSecondTeamReward(BigDecimal secondTeamSubsidy, Date placeOrderTime,
         UserLevelEnum userLevel);
   public UserTeamRate getTeamRewardRate(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList,
         int deep);
   /**
    * 获取二级外的团队奖金
    * @Title: getTeamRewardMoreThan2Level
    * @Description:
    * @param buyerLevel
    * @param money
    * @param bossLevelList
    * @param deep
    * @return
    * UserTeamMoney 返回类型
    * @throws
    */
   public List<UserTeamRate> getTeamRewardMoreThan2LevelRates(UserLevelEnum buyerLevel,
         List<UserTeamLevel> bossLevelList);
   /**
    * 获取分红
    * @Title: getTeamDividents
    * @Description:
    * @param buyerLevel
    * @param money
    * @param bossLevelList
    * @return
    * List<UserTeamMoney> 返回类型
    * @throws
    */
   public List<UserTeamRate> getTeamDividentsRates(UserLevelEnum buyerLevel,
         List<UserTeamLevel> bossLevelList);
   /**
    * 获取资深导师 补贴
    * @Title: getTearcherSubsidy
    * @Description:
    * @param buyerLevel
    * @param money
    * @param bossLevelList
    * @return
    * UserTeamMoney 返回类型
    * @throws
    */
   public UserTeamRate getTearcherSubsidy(UserLevelEnum buyerLevel, BigDecimal rate,
         List<UserTeamLevel> bossLevelList);
}