package com.yeshi.fanli.service.inter.order;
|
|
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;
|
|
/**
|
* 订单类红包计算服务
|
* @author Administrator
|
*
|
*/
|
public interface OrderHongBaoMoneyComputeService {
|
|
public ConfigParamsDTO getShowComputeRate(String platform, String version, UserLevelEnum userLevel);
|
|
public ConfigParamsDTO getShowComputeRate(String platform, String version);
|
|
/**
|
* 获取基础的返利金额
|
* @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);
|
|
/**
|
* 计算自购订单返利金额
|
* @Title: computeFanliMoney
|
* @Description:
|
* @param order
|
* @param userLevel
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public BigDecimal computeFanliMoney(CommonOrder order, UserLevelEnum userLevel);
|
|
/**
|
* 计算分享订单奖金金额
|
* @Title: computeShareMoney
|
* @Description:
|
* @param order
|
* @param userLevel
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
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:
|
* @param order
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer,
|
List<UserTeamLevel> bossLevelList);
|
|
/**
|
* 计算间接粉丝邀请奖金
|
* @Title: computeSecondInviteMoney
|
* @Description:
|
* @param order
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer,
|
List<UserTeamLevel> bossLevelList);
|
|
/**
|
* 获取团队奖金
|
* @Title: getTeamReward
|
* @Description:
|
* @param buyerLevel
|
* @param money
|
* @param levelList
|
* @param deep 1-直接奖金 2-间接奖金
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public UserTeamRate getTeamRewardRate(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList, Date date,
|
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, Date date);
|
|
/**
|
* 获取分红
|
* @Title: getTeamDividents
|
* @Description:
|
* @param buyerLevel
|
* @param money
|
* @param bossLevelList
|
* @return
|
* List<UserTeamMoney> 返回类型
|
* @throws
|
*/
|
public List<UserTeamRate> getTeamDividentsRates(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList,
|
Date date);
|
|
/**
|
* 获取资深导师 补贴
|
* @Title: getTearcherSubsidy
|
* @Description:
|
* @param buyerLevel
|
* @param money
|
* @param bossLevelList
|
* @return
|
* UserTeamMoney 返回类型
|
* @throws
|
*/
|
public UserTeamRate getTearcherSubsidy(UserLevelEnum buyerLevel, BigDecimal rate, List<UserTeamLevel> bossLevelList,
|
Date date);
|
|
}
|