调整一下抓取股票的时间
This commit is contained in:
@@ -35,6 +35,11 @@ public class StockListVO {
|
|||||||
/*是否添加自选:1、添加自选,0、未添加自选*/
|
/*是否添加自选:1、添加自选,0、未添加自选*/
|
||||||
private String isOption;
|
private String isOption;
|
||||||
|
|
||||||
|
private String pricechange;
|
||||||
|
|
||||||
|
|
||||||
|
private String symbol;
|
||||||
|
|
||||||
public void setCode(String code) {
|
public void setCode(String code) {
|
||||||
this.code = code;
|
this.code = code;
|
||||||
}
|
}
|
||||||
@@ -255,4 +260,20 @@ public class StockListVO {
|
|||||||
public void setIsOption(String isOption) {
|
public void setIsOption(String isOption) {
|
||||||
this.isOption = isOption;
|
this.isOption = isOption;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPricechange() {
|
||||||
|
return pricechange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPricechange(String pricechange) {
|
||||||
|
this.pricechange = pricechange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSymbol() {
|
||||||
|
return symbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSymbol(String symbol) {
|
||||||
|
this.symbol = symbol;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class MoneyScraper {
|
|||||||
private MoneyStockRepository moneyStockRepository;
|
private MoneyStockRepository moneyStockRepository;
|
||||||
|
|
||||||
@GetMapping("testScraperGetMoneyControlStock")
|
@GetMapping("testScraperGetMoneyControlStock")
|
||||||
@Scheduled(cron = "0 0 2 */1 * ?")
|
//@Scheduled(cron = "0 0 2 */1 * ?")
|
||||||
public void schedule(){
|
public void schedule(){
|
||||||
List<String> letters = new ArrayList<>();
|
List<String> letters = new ArrayList<>();
|
||||||
for (char c = 'A'; c <= 'Z'; c++) {
|
for (char c = 'A'; c <= 'Z'; c++) {
|
||||||
|
|||||||
88
src/main/java/cn/stock/market/web/MoneyProxyApiControl.java
Normal file
88
src/main/java/cn/stock/market/web/MoneyProxyApiControl.java
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
package cn.stock.market.web;
|
||||||
|
|
||||||
|
import cn.stock.market.dto.model.StockListVO;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author gs
|
||||||
|
* @date 2024/2/15 下午9:18
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
public class MoneyProxyApiControl {
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(value = "/api/proxy/queryStockMoneyProxy",method = RequestMethod.GET)
|
||||||
|
public StockListVO queryStockByMoneyIdAndExchangeType(String scId,String exchangeType){
|
||||||
|
return stockByMoneyIdAndExchangeTypeFromHttp(scId,exchangeType);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static StockListVO stockByMoneyIdAndExchangeTypeFromHttp(String scId, String exchangeType) {
|
||||||
|
try {
|
||||||
|
String url = "https://priceapi.moneycontrol.com/pricefeed/"+exchangeType+"/equitycash/" + scId ;
|
||||||
|
URL obj = new URL(url);
|
||||||
|
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||||
|
con.setRequestMethod("GET");
|
||||||
|
|
||||||
|
int responseCode = con.getResponseCode();
|
||||||
|
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||||
|
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
|
||||||
|
String inputLine;
|
||||||
|
StringBuilder response = new StringBuilder();
|
||||||
|
while ((inputLine = in.readLine()) != null) {
|
||||||
|
response.append(inputLine);
|
||||||
|
}
|
||||||
|
in.close();
|
||||||
|
// 解析JSON数据
|
||||||
|
JSONObject jsonObject = null;
|
||||||
|
try {
|
||||||
|
jsonObject = JSONObject.parseObject(response.toString());
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
log.info("stockByCodeAndExchangeType:获取 sc_id:{}, exchangeType: {} 的实时价格的结果:{} ",scId,exchangeType,jsonObject.toJSONString());
|
||||||
|
StockListVO stockListVO = mapJsonToMoneyStockListVO(jsonObject);
|
||||||
|
stockListVO.setStock_type(exchangeType);
|
||||||
|
return stockListVO;
|
||||||
|
} else {
|
||||||
|
log.error("HTTP request failed with response code: " + responseCode);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("stockByMoneyIdAndExchangeTypeFromHttp",e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static StockListVO mapJsonToMoneyStockListVO(JSONObject jsonObject) {
|
||||||
|
StockListVO stockListVO = new StockListVO();
|
||||||
|
if (jsonObject != null) {
|
||||||
|
JSONObject data = jsonObject.getJSONObject("data");
|
||||||
|
if(data!=null&&!data.isEmpty()){
|
||||||
|
stockListVO.setName(data.getString("company"));
|
||||||
|
stockListVO.setCode(data.getString("code"));
|
||||||
|
stockListVO.setSpell(data.getString("company"));
|
||||||
|
stockListVO.setGid(data.getString("symbol"));
|
||||||
|
stockListVO.setNowPrice(data.getString("pricecurrent"));
|
||||||
|
stockListVO.setOpen_px(data.getString("OPN"));
|
||||||
|
stockListVO.setPreclose_px(data.getString("priceprevclose"));
|
||||||
|
stockListVO.setHcrate(new BigDecimal(data.getString("pricepercentchange")));
|
||||||
|
stockListVO.setSymbol(data.getString("symbol"));
|
||||||
|
stockListVO.setPricechange(data.getString("pricechange"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return stockListVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user