| | |
| | | import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | | import com.yeshi.fanli.util.user.UserLevelUtil;
|
| | |
|
| | | @Service
|
| | | public class OrderHongBaoMoneyComputeServiceImpl implements OrderHongBaoMoneyComputeService {
|
| | |
|
| | | static long newRuleTime = TimeUtil.convertToTimeTemp(Constant.NEW_ORDER_FANLI_RULE_TIME, "yyyy-MM-dd");
|
| | |
|
| | | @Resource
|
| | | private HongBaoManageService hongBaoManageService;
|
| | |
| | | private UserLevelEnum getCommonUserLevel(Date time, UserLevelEnum userLevel) {
|
| | | if (userLevel == null)
|
| | | return UserLevelEnum.daRen;
|
| | | if (time.getTime() < newRuleTime)
|
| | | if (time.getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME)
|
| | | return UserLevelUtil.getOldLevel(userLevel);
|
| | | else
|
| | | return userLevel;
|
| | |
| | | // 获取基础佣金
|
| | | private BigDecimal getBaseCommission(CommonOrder order) {
|
| | |
|
| | | if (order.getThirdCreateTime().getTime() >= newRuleTime) {
|
| | | if (order.getThirdCreateTime().getTime() >= Constant.NEW_ORDER_FANLI_RULE_TIME) {
|
| | | BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime());
|
| | | if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
|
| | | return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
|
| | |
| | | else
|
| | | return null;
|
| | | } else {
|
| | | BigDecimal rate = hongBaoManageService.getFanLiRate(order.getThirdCreateTime().getTime());
|
| | | BigDecimal rate = hongBaoManageService.getFanLiRate(UserLevelEnum.daRen,
|
| | | order.getThirdCreateTime().getTime());
|
| | | if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
|
| | | return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
|
| | | else if (order.getEstimate() != null)
|
| | |
| | | @Override
|
| | | public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer) {
|
| | | BigDecimal rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_6", order.getThirdCreateTime().getTime());
|
| | | if (buyer == UserLevelEnum.superVIP || buyer == UserLevelEnum.tearcher)
|
| | | rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_vip_6", order.getThirdCreateTime().getTime());
|
| | |
|
| | | if (rate.compareTo(new BigDecimal(0)) == 0)
|
| | | return null;
|
| | |
|
| | | if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
|
| | | return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
|
| | | new BigDecimal(100));
|