package com.nq.service.impl;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.gson.Gson;
|
import com.nq.common.ServerResponse;
|
|
import com.nq.dao.StockMapper;
|
|
import com.nq.dao.StockOptionMapper;
|
|
import com.nq.pojo.*;
|
|
import com.nq.service.IStockOptionService;
|
|
import com.nq.service.IUserService;
|
|
import com.nq.utils.redis.RedisShardedPoolUtils;
|
import com.nq.utils.stock.sina.SinaStockApi;
|
|
import com.nq.vo.stock.StockListVO;
|
import com.nq.vo.stock.StockOptionListVO;
|
|
import com.nq.vo.stock.StockVO;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
|
@Service("iStockOptionService")
|
|
public class StockOptionServiceImpl implements IStockOptionService {
|
|
private static final Logger log = LoggerFactory.getLogger(StockOptionServiceImpl.class);
|
|
@Autowired
|
StockOptionMapper stockOptionMapper;
|
|
@Autowired
|
IUserService iUserService;
|
|
@Autowired
|
StockMapper stockMapper;
|
|
public ServerResponse<PageInfo> findMyStockOptions(String keyWords, HttpServletRequest request, int pageNum, int pageSize) {
|
|
PageHelper.startPage(pageNum, pageSize);
|
User user = this.iUserService.getCurrentUser(request);
|
|
if (user == null ){
|
return ServerResponse.createBySuccessMsg("請先登錄");
|
}
|
List<StockOption> stockOptions = this.stockOptionMapper.findMyOptionByKeywords(user.getId(), keyWords);
|
|
List<StockOptionListVO> stockOptionListVOS = Lists.newArrayList();
|
for (StockOption option : stockOptions) {
|
StockOptionListVO stockOptionListVO = assembleStockOptionListVO(option);
|
stockOptionListVO.setIsOption("1");
|
stockOptionListVOS.add(stockOptionListVO);
|
}
|
PageInfo pageInfo = new PageInfo(stockOptions);
|
|
pageInfo.setList(stockOptionListVOS);
|
|
return ServerResponse.createBySuccess(pageInfo);
|
|
}
|
|
public ServerResponse isOption(Integer uid, String code) {
|
|
StockOption stockOption = this.stockOptionMapper.isOption(uid, code);
|
|
if (stockOption == null) {
|
|
return ServerResponse.createBySuccessMsg("未添加");
|
|
}
|
|
return ServerResponse.createByErrorMsg("已添加");
|
|
}
|
|
public String isMyOption(Integer uid, String code) {
|
StockOption stockOption = this.stockOptionMapper.isOption(uid, code);
|
if (stockOption == null) {
|
return "0";
|
}
|
return "1";
|
|
}
|
|
private StockOptionListVO assembleStockOptionListVO(StockOption option) {
|
|
StockOptionListVO stockOptionListVO = new StockOptionListVO();
|
|
stockOptionListVO.setId(option.getId().intValue());
|
|
stockOptionListVO.setStockName(option.getStockName());
|
|
stockOptionListVO.setStockCode(option.getStockCode());
|
|
stockOptionListVO.setStockGid(option.getStockGid());
|
|
StockListVO stockVO = null;
|
Stock stock = stockMapper.findStockByCode(option.getStockCode());
|
stockVO = getStockRealTime(stock);
|
|
stockOptionListVO.setNowPrice(stockVO.getNowPrice());
|
|
stockOptionListVO.setHcrate(stockVO.getHcrate().toString());
|
|
stockOptionListVO.setPreclose_px(stockVO.getPreclose_px());
|
|
stockOptionListVO.setOpen_px(stockVO.getOpen_px());
|
|
stockOptionListVO.setType(stockVO.getType());
|
|
Stock stock1 = this.stockMapper.selectByPrimaryKey(option.getStockId());
|
|
stockOptionListVO.setStock_plate(stock1.getStockPlate()==null?"":stock.getStockPlate());
|
|
stockOptionListVO.setStock_type(stock1.getStockType());
|
|
|
return stockOptionListVO;
|
|
}
|
|
public static StockListVO getStockRealTime(Stock stock) {
|
|
if (stock == null) {
|
return null;
|
}
|
StockListVO stockListVO = new StockListVO();
|
try {
|
StockRealTimeBean realTimeStock = new Gson().fromJson(RedisShardedPoolUtils.get("instockDetail:"+ stock.getStockCode()), StockRealTimeBean.class);
|
stockListVO.setHcrate(new BigDecimal(realTimeStock.getPcp().replace("%", "")));
|
stockListVO.setNowPrice(realTimeStock.getLast());
|
stockListVO.setToday_max(realTimeStock.getHigh());
|
stockListVO.setToday_min(realTimeStock.getLow());
|
stockListVO.setOpen_px(realTimeStock.getBid());
|
stockListVO.setPreclose_px(realTimeStock.getPc());
|
stockListVO.setBusiness_amount(realTimeStock.getAsk());
|
stockListVO.setBusiness_balance("");
|
stockListVO.setName(stock.getStockName());
|
stockListVO.setCode(stock.getStockCode());
|
stockListVO.setSpell(stock.getStockSpell());
|
stockListVO.setGid(stock.getStockGid().toUpperCase());
|
stockListVO.setStock_plate(stock.getStockPlate());
|
stockListVO.setStock_type(stock.getStockType());
|
} catch (Exception e) {
|
e.printStackTrace();
|
|
return null;
|
}
|
|
|
return stockListVO;
|
}
|
|
}
|