package com.sinata.rest.modular.mall.service.impl;
|
|
import com.sinata.common.enums.EnumMemberGrade;
|
import com.sinata.rest.modular.mall.model.MallGoodsSet;
|
import com.sinata.rest.modular.mall.dao.MallGoodsSetMapper;
|
import com.sinata.rest.modular.mall.service.IMallGoodsSetService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
|
/**
|
* <p>
|
* 商品系数设置 服务实现类
|
* </p>
|
*
|
* @author goku
|
* @since 2023-05-06
|
*/
|
@Service
|
public class MallGoodsSetServiceImpl extends ServiceImpl<MallGoodsSetMapper, MallGoodsSet> implements IMallGoodsSetService {
|
|
@Override
|
public MallGoodsSet getGoodsSetPerformance(Integer goodsId, BigDecimal amount) {
|
// 获取商品佣金系数设置
|
MallGoodsSet goodsSet = this.getById(goodsId);
|
if (goodsSet != null) {
|
// 购买业绩系数
|
BigDecimal buyCoef = amount.multiply(goodsSet.getBuyCoef());
|
|
// 计算佣金:业绩=营销额(支付金额)* 业绩系数(商品系数)
|
|
// 黄金营销员业绩系数
|
BigDecimal v3BuyCoef = amount.multiply(goodsSet.getV3BuyCoef());
|
// BigDecimal v3BrokerageCoef = v3BuyCoef.multiply(goodsSet.getV3BrokerageCoef()).divide(hundred, 2, BigDecimal.ROUND_HALF_UP);
|
|
// 城市合伙人业绩系数
|
BigDecimal v4BuyCoef = amount.multiply(goodsSet.getV4BuyCoef());
|
// BigDecimal v4BrokerageCoef = v4BuyCoef.multiply(goodsSet.getV4BrokerageCoef()).divide(hundred, 2, BigDecimal.ROUND_HALF_UP);
|
|
// 市场总监业绩系数
|
BigDecimal v5BuyCoef = amount.multiply(goodsSet.getV5BuyCoef());
|
// BigDecimal v5BrokerageCoef = v5BuyCoef.multiply(goodsSet.getV5BrokerageCoef()).divide(hundred, 2, BigDecimal.ROUND_HALF_UP);
|
|
// 封装计算结果
|
goodsSet = MallGoodsSet.builder()
|
.id(goodsId)
|
.buyCoef(buyCoef)
|
.v3BuyCoef(v3BuyCoef)
|
.v4BuyCoef(v4BuyCoef)
|
.v5BuyCoef(v5BuyCoef)
|
.build();
|
}
|
|
return goodsSet;
|
}
|
|
@Override
|
public BigDecimal getPerformanceByGrade(Integer memberGradeId, MallGoodsSet goodsSet) {
|
if (memberGradeId == EnumMemberGrade.G_5.index) {
|
return goodsSet.getV5BuyCoef();
|
} else if (memberGradeId == EnumMemberGrade.G_4.index) {
|
return goodsSet.getV4BuyCoef();
|
} else {
|
return goodsSet.getV3BuyCoef();
|
}
|
}
|
}
|