调整一下抓取股票的时间

This commit is contained in:
gs
2024-02-15 23:02:45 +08:00
parent d15535bf9b
commit 3e0d209b34
3 changed files with 110 additions and 1 deletions

View File

@@ -35,6 +35,11 @@ public class StockListVO {
/*是否添加自选1、添加自选0、未添加自选*/
private String isOption;
private String pricechange;
private String symbol;
public void setCode(String code) {
this.code = code;
}
@@ -255,4 +260,20 @@ public class StockListVO {
public void setIsOption(String 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;
}
}

View File

@@ -50,7 +50,7 @@ public class MoneyScraper {
private MoneyStockRepository moneyStockRepository;
@GetMapping("testScraperGetMoneyControlStock")
@Scheduled(cron = "0 0 2 */1 * ?")
//@Scheduled(cron = "0 0 2 */1 * ?")
public void schedule(){
List<String> letters = new ArrayList<>();
for (char c = 'A'; c <= 'Z'; c++) {

View 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;
}
}