不炒股,只打新捡点小钱
package com.github.niefy.modules.job.run;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author :网寻星公众号
* @date :Created in 2023/9/11 17:59
* @description:监听转债打新
* @modified By:
* @version: 1.0$
*/
@Slf4j
public class BondSubscriptionTask {
public static String getBondSubscriptionTask() {
StringBuilder sb = new StringBuilder();
String url = "https://fintechappdr.cgws.com/biz/customer-helper/app/a/ipo/calendar/bond/recentSubscribe";
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
if (responseCode == 200) {
JSONObject jsonObject = JSONUtil.parseObj(response.toString());
jsonObject = JSONUtil.parseObj(jsonObject.get("data"));
List<Map> mapList = Convert.toList(Map.class,jsonObject.get("items"));
// 获取今天的日期
LocalDate today = LocalDate.now();
// 过滤出今天的数据
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
List<Map> filteredList = mapList.stream()
.filter(data -> LocalDate.parse((String) data.get("s_ipo_subdate"), formatter).equals(today))
.collect(Collectors.toList());
filteredList.stream().forEach(x->{
sb.append("\n转债名称:" + x.get("lnk_stkname").toString() + "(" + x.get("lnk_stkcode").toString() + ")");
sb.append("\n申购日期:" + x.get("s_ipo_subdate").toString());
sb.append("\n发行量:" + x.get("cb_list_issuesize").toString());
BigDecimal roundedResult = NumberUtil.round(Double.valueOf(x.get("cb_clause_iniconvprice").toString()) / Double.valueOf(x.get("currentPrice").toString()), 4);
BigDecimal subtractedResult = roundedResult.subtract(BigDecimal.ONE);
BigDecimal multipliedResult = NumberUtil.round(subtractedResult.multiply(new BigDecimal("100")), 2);
sb.append("\n溢价率:" + multipliedResult + " %");
sb.append("\n正股名称:" + x.get("stkname").toString() + "(" + x.get("stkcode").toString() + ")");
sb.append("\n中签资金冻结日期:" + x.get("s_fellow_unfrozedate").toString());
sb.append("\n公司概念:" + x.get("briefing").toString());
sb.append("\n");
});
log.info(sb.toString());
} else {
System.out.println("请求失败,响应码:" + responseCode);
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
getBondSubscriptionTask();
}
}