package com.yeshi.fanli.service.inter.order;
|
|
import java.math.BigDecimal;
|
import java.util.Date;
|
|
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
|
import com.yeshi.fanli.entity.order.CommonOrder;
|
|
/**
|
* 订单类红包计算服务
|
* @author Administrator
|
*
|
*/
|
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);
|
|
/**
|
* 计算自购订单返利金额
|
* @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: computeFirstInviteMoney
|
* @Description:
|
* @param order
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer);
|
|
/**
|
* 计算间接粉丝邀请奖金
|
* @Title: computeSecondInviteMoney
|
* @Description:
|
* @param order
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer);
|
|
/**
|
* 计算直接粉丝团队补贴
|
* @Title: computeFirstTeamSubsidy
|
* @Description:
|
* @param order
|
* @param buyerUserLevel
|
* @param userLevel
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public BigDecimal computeFirstTeamSubsidy(BigDecimal fanLiMoney, Date placeOrderTime, UserLevelEnum buyerUserLevel,
|
UserLevelEnum userLevel);
|
|
/**
|
* 计算间接粉丝团队补贴
|
* @Title: computeSecondTeamSubsidy
|
* @Description:
|
* @param order
|
* @param buyerUserLevel
|
* @param userLevel
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
|
public BigDecimal computeSecondTeamSubsidy(BigDecimal fanLiMoney, Date placeOrderTime, UserLevelEnum buyerUserLevel,
|
UserLevelEnum userLevel);
|
|
/**
|
* 计算一级团队奖励
|
* @Title: computeFirstTeamReward
|
* @Description:
|
* @param firstTeamSubsidy -购买者上一级团队补贴
|
* @param secondTeamSubsidy-购买者上两级团队补贴
|
* @param userLevel 当前用户的等级
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public BigDecimal computeFirstTeamReward(BigDecimal firstTeamSubsidy, Date placeOrderTime, UserLevelEnum userLevel);
|
|
/**
|
* 计算二级团队奖励
|
* @Title: computeSecondTeamReward
|
* @Description:
|
* @param secondTeamSubsidy 购买者上两级团队补贴
|
* @param userLevel 当前用户的等级
|
* @return
|
* BigDecimal 返回类型
|
* @throws
|
*/
|
public BigDecimal computeSecondTeamReward(BigDecimal secondTeamSubsidy, Date placeOrderTime,
|
UserLevelEnum userLevel);
|
|
}
|