1
0

feat: 股票增加上市日期

This commit is contained in:
2025-09-06 21:01:41 +08:00
parent fccf059416
commit 440d67c5e7
7 changed files with 34 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ import com.lanyuanxiaoyao.leopard.server.entity.Stock;
import com.lanyuanxiaoyao.leopard.server.service.StockService;
import com.lanyuanxiaoyao.service.template.controller.GlobalResponse;
import com.lanyuanxiaoyao.service.template.controller.SimpleControllerSupport;
import java.time.LocalDate;
import java.util.function.Function;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -36,7 +37,8 @@ public class StockController extends SimpleControllerSupport<Stock, Void, StockC
stock.getName(),
stock.getFullname(),
stock.getMarket(),
stock.getIndustry()
stock.getIndustry(),
stock.getListedDate()
);
}
@@ -56,7 +58,8 @@ public class StockController extends SimpleControllerSupport<Stock, Void, StockC
String name,
String fullname,
Stock.Market market,
String industry
String industry,
LocalDate listedDate
) {
}
}

View File

@@ -11,6 +11,7 @@ import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import java.time.LocalDate;
import java.util.Set;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -55,6 +56,8 @@ public class Stock extends SimpleEntity {
private Market market;
@Comment("行业")
private String industry;
@Comment("上市日期")
private LocalDate listedDate;
@OneToMany(mappedBy = "stock", cascade = CascadeType.REMOVE)
@ToString.Exclude

View File

@@ -45,8 +45,8 @@ public class TuShareService {
public TuShareResponse stockList() {
var response = HttpUtil.post(API_URL, buildRequest(
"stock_basic",
Map.of("list_status", "L"),
List.of("ts_code", "name", "fullname", "exchange", "industry")
Map.of("list_status", "L", "market", "主板", "exchange", "SSE,SZSE"),
List.of("ts_code", "name", "fullname", "exchange", "industry", "list_date")
));
var tuShareResponse = mapper.readValue(response, TuShareResponse.class);
if (tuShareResponse.code != 0) {

View File

@@ -7,6 +7,7 @@ import com.lanyuanxiaoyao.leopard.server.service.TuShareService;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
import jakarta.transaction.Transactional;
import java.time.LocalDate;
import java.util.HashSet;
import java.util.stream.Collectors;
@@ -35,12 +36,14 @@ public class UpdateStockNode extends NodeComponent {
var fullname = item.get(2);
var market = EnumUtil.fromString(Stock.Market.class, item.get(3));
var industry = item.get(4);
var listedDate = LocalDate.parse(item.get(5), TuShareService.TRADE_FORMAT);
if (stocksMap.containsKey(code)) {
var stock = stocksMap.get(code);
stock.setName(name);
stock.setFullname(fullname);
stock.setMarket(market);
stock.setIndustry(industry);
stock.setListedDate(listedDate);
} else {
var stock = new Stock();
stock.setCode(code);
@@ -48,6 +51,7 @@ public class UpdateStockNode extends NodeComponent {
stock.setFullname(fullname);
stock.setMarket(market);
stock.setIndustry(industry);
stock.setListedDate(listedDate);
stocks.add(stock);
}
targetCodes.add(code);

View File

@@ -9,14 +9,18 @@ Content-Type: application/json
"api_name": "stock_basic",
"token": "{{api_key}}",
"params": {
"list_status": "D,P,L"
"list_status": "L",
"market": "主板",
"exchange": "SSE,SZSE"
},
"fields": [
"ts_code",
"name",
"fullname",
"exchange",
"industry"
"industry",
"market",
"list_date"
]
}