admin
2019-06-25 a0a5b70e0d0df9357d09542f20dc6633a986f328
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.yeshi.fanli.service.impl.tlj;
 
import java.math.BigDecimal;
import java.util.Date;
 
import javax.annotation.Resource;
 
import org.springframework.stereotype.Service;
 
import com.yeshi.fanli.dao.tlj.GoodsTaoLiJinRateDao;
import com.yeshi.fanli.entity.bus.tlj.GoodsTaoLiJinRate;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.service.inter.tlj.GoodsTaoLiJinRateService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 
@Service
public class GoodsTaoLiJinRateServiceImpl implements GoodsTaoLiJinRateService{
 
    @Resource
    private GoodsTaoLiJinRateDao goodsTaoLiJinRateDao;
    
    @Resource
    private ConfigTaoLiJinService configTaoLiJinService;
 
    @Override
    public GoodsTaoLiJinRate getById(Long goodId) {
        return goodsTaoLiJinRateDao.get(goodId.toString());
    }
 
    
    @Override
    public BigDecimal getGoodsSpreadMoney(TaoBaoGoodsBrief goods){
        // 商品本身的总返利
        BigDecimal goodsHongBao = TaoBaoUtil.getGoodsHongBaoMoney(goods,new BigDecimal(100));
        
        // 随机比例  % {5、6、7、8}
        int randomRate = 5;
        GoodsTaoLiJinRate taoLiJinRate = getById(goods.getAuctionId());
        if (taoLiJinRate == null) {
            randomRate = 5 + (int) (Math.random() * 4);
            taoLiJinRate = new GoodsTaoLiJinRate();
            taoLiJinRate.setGoodId(goods.getAuctionId().toString());
            taoLiJinRate.setRate(randomRate);
            taoLiJinRate.setCreateTime(new Date());
            taoLiJinRate.setUpdateTime(new Date());
            goodsTaoLiJinRateDao.save(taoLiJinRate);    
            
        } else {
            randomRate = taoLiJinRate.getRate();
        }
        BigDecimal spreadMoney = MoneyBigDecimalUtil.mul(new BigDecimal(randomRate * 0.1), goodsHongBao);
        
        // 预警值
        String warningValue = configTaoLiJinService.getValueByKey("warning_value");
        // 计算公式:  淘礼金面额=(返利*利润预警值)*{0.5、0.6、0.7、0.8}≥1元
        spreadMoney = MoneyBigDecimalUtil.mul(new BigDecimal(Integer.parseInt(warningValue) * 0.01), spreadMoney);
        
        return  spreadMoney;
    }
    
    
}