jack
2024-04-18 5a8a43d5edb7af016b76246d9e9f661f4363342e
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
package com.nq.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nq.dao.StockMapper;
import com.nq.dao.StockSettingMapper;
import com.nq.pojo.Stock;
import com.nq.pojo.StockRealTimeBean;
import com.nq.pojo.StockSetting;
import com.nq.service.IPriceServices;
import com.nq.utils.redis.RedisKeyUtil;
import com.nq.utils.timeutil.TimeUtil;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.math.BigDecimal;
 
 
@Service
public class PriceServicesImpl  implements IPriceServices {
 
 
 
    @Resource
    StockSettingMapper stockSettingMapper;
 
 
    @Resource
    StockMapper stockMapper;
 
    @Override
    public BigDecimal getNowPrice(String stockCode) {
        Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code",stockCode));
        StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code",stockCode));
        if(stockSetting != null){
            if(TimeUtil.isTradingHour(stockSetting.getStartTime(),stockSetting.getEndTime())){
                if(stockSetting.getType().equals("0")){
                    return  new BigDecimal(stockSetting.getPrice());
                }else{
                    StockRealTimeBean stockRealTimeBean =  RedisKeyUtil.getCacheRealTimeStock(stock);
                  return   new BigDecimal(stockRealTimeBean.getLast()).multiply(new BigDecimal(stockSetting.getPrice()));
                }
            }
        }
 
        StockRealTimeBean stockRealTimeBean =  RedisKeyUtil.getCacheRealTimeStock(stock);
        return  new BigDecimal(stockRealTimeBean.getLast());
    }
}