feat: 股票增加上市日期
This commit is contained in:
@@ -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
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
amisRender,
|
||||
commonInfo,
|
||||
crudCommonOptions,
|
||||
date,
|
||||
paginationTemplate,
|
||||
remoteMappings,
|
||||
remoteOptions,
|
||||
@@ -123,6 +124,12 @@ function StockList() {
|
||||
label: '行业',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
label: '上市日期',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
...date('listedDate'),
|
||||
},
|
||||
{
|
||||
type: 'operation',
|
||||
label: '操作',
|
||||
|
||||
@@ -254,6 +254,13 @@ export function time(field: string) {
|
||||
}
|
||||
}
|
||||
|
||||
export function date(field: string) {
|
||||
return {
|
||||
type: 'tpl',
|
||||
tpl: `\${IF(${field}, DATETOSTR(${field}, 'YYYY-MM-DD'), '/')}`,
|
||||
}
|
||||
}
|
||||
|
||||
export function pictureFromIds(field: string) {
|
||||
return `\${ARRAYMAP(${field},id => '${commonInfo.baseUrl}/upload/download/' + id)}`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user