This commit is contained in:
mmm8955405 2024-03-16 04:13:12 +08:00
parent 365eb2476c
commit 170264a09f
4 changed files with 166 additions and 348 deletions

View File

@ -152,11 +152,22 @@ public class GetFutDailyController {
@GetMapping("/getDateNow") @GetMapping("/getDateNow")
public Object getDateNow() { public Object getDateNow() {
LocalDate d = LocalDate.now(); // LocalDate d = LocalDate.now();
// var from = select(ContractInfoMapper.selectList)
// .from(ContractInfoDynamicSqlSupport.contractInfo)
// .where(ContractInfoDynamicSqlSupport.contractInfo.delist_date, isGreaterThan(d))
// //.and(ContractInfoDynamicSqlSupport.ts_code, )
// .build()
// .render(RenderingStrategies.MYBATIS3);
var from = select(ContractInfoMapper.selectList) var from = select(ContractInfoMapper.selectList)
.from(select(ContractInfoMapper.selectList)
.from(ContractInfoDynamicSqlSupport.contractInfo) .from(ContractInfoDynamicSqlSupport.contractInfo)
.where(ContractInfoDynamicSqlSupport.contractInfo.delist_date, isGreaterThan(d)) .orderBy(ContractInfoDynamicSqlSupport.delist_date.descending())
//.and(ContractInfoDynamicSqlSupport.ts_code, ) .limit(20000),
"t1"
)
.groupBy(ContractInfoDynamicSqlSupport.fut_code)
.build() .build()
.render(RenderingStrategies.MYBATIS3); .render(RenderingStrategies.MYBATIS3);
@ -453,15 +464,31 @@ public class GetFutDailyController {
} }
// @GetMapping("/test") @GetMapping("/test")
// public Object test() throws Exception{ public Object test() throws Exception{
// LocalDate d = LocalDate.now();
// var from = select(ContractInfoMapper.selectList)
// .from(ContractInfoDynamicSqlSupport.contractInfo)
// .where(ContractInfoDynamicSqlSupport.contractInfo.delist_date, isGreaterThan(d))
// //.and(ContractInfoDynamicSqlSupport.ts_code, )
// .build()
// .render(RenderingStrategies.MYBATIS3);
// //
// //
//
// List<ContractInfo> contractInfos = contractInfoMapper.selectMany(from);
//
// contractInfos.forEach(i->{
//
// if(i.getTs_code().equals("HC2405.SHF")) {
//
// try {
// HashMap<Object,Object> h = new HashMap<Object,Object>(); // HashMap<Object,Object> h = new HashMap<Object,Object>();
// h.put("api_name", "fut_daily"); // h.put("api_name", "fut_daily");
// h.put("token", TushareConfig.TOKEN); // h.put("token", TushareConfig.TOKEN);
// HashMap<Object,Object> params = new HashMap<Object,Object>(); // HashMap<Object,Object> params = new HashMap<Object,Object>();
// params.put("ts_code", "HC2405.SHF"); // params.put("ts_code", i.getTs_code());
// params.put("limit", 10000); // params.put("limit", 10000);
// h.put("params", params); // h.put("params", params);
// logger.debug("tushare:" + objectMapper.writeValueAsString(h)); // logger.debug("tushare:" + objectMapper.writeValueAsString(h));
@ -507,17 +534,42 @@ public class GetFutDailyController {
// } // }
// } // }
// if(!list.isEmpty()) { // if(!list.isEmpty()) {
// dailyService.getCurr("HC2405.SHF", list); // dailyService.getCurr(i.getTs_code(), list);
// }
//
// //Thread.sleep(200);
// } catch (Exception e) {
// e.printStackTrace();
// }
//
// } // }
// //
// //
// //
// //
// //
// });
// //
// //
// return R.SUCCESS("getDate is ok"); // return R.SUCCESS("getDate is ok");
// }
var from = select(ContractInfoMapper.selectList)
.from(select(ContractInfoMapper.selectList)
.from(ContractInfoDynamicSqlSupport.contractInfo)
.orderBy(ContractInfoDynamicSqlSupport.delist_date.descending())
.limit(20000),
"t1"
)
.groupBy(ContractInfoDynamicSqlSupport.fut_code)
.build()
.render(RenderingStrategies.MYBATIS3);
List<ContractInfo> contractInfos = contractInfoMapper.selectMany(from);
System.out.println(contractInfos.size());
return R.SUCCESS(contractInfos);
}
// //
// //
// public static void main(String[] args) throws Exception { // public static void main(String[] args) throws Exception {

View File

@ -1,137 +1,27 @@
//package jj.tech.finance.biz.webadmin.task; package jj.tech.finance.biz.webadmin.task;
//
//import static org.mybatis.dynamic.sql.SqlBuilder.*; import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.scheduling.annotation.Scheduled;
//import java.io.InputStream; import org.springframework.stereotype.Component;
//import java.util.ArrayList;
//import java.util.Arrays; import jj.tech.finance.biz.webadmin.controller.GetFutDailyController;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map; @Component
//import java.util.stream.Collectors; public class ContractInfoTime {
// @Autowired GetFutDailyController getFutDailyController;
//import org.apache.http.client.fluent.Request;
//import org.apache.http.entity.ContentType; /**
//import org.mybatis.dynamic.sql.render.RenderingStrategies; * 同步tushare的合约信息
//import org.slf4j.Logger; */
//import org.slf4j.LoggerFactory; // @Scheduled(cron = "0 0 0/4 * * ?") //4小时一次
//import org.springframework.beans.factory.annotation.Autowired; // @Scheduled(cron = "0/50 * * * * ?") //50秒一次
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//import org.springframework.web.service.annotation.GetExchange;
//
//import com.fasterxml.jackson.databind.JsonNode;
//import com.fasterxml.jackson.databind.ObjectMapper;
//
//import jj.tech.finance.config.enums.Exchange;
//import jj.tech.finance.repository.mybatis.dao.ContractInfoMapper;
//import jj.tech.finance.repository.mybatis.dao.support.ContractInfoDynamicSqlSupport;
//import jj.tech.finance.repository.mybatis.entity.ContractInfo;
//import jj.tech.finance.utils.tushare.TushareConfig;
//
//
//@Component
//public class ContractInfoTime {
// private static Logger logger = LoggerFactory.getLogger(ContractInfoTime.class);
//
// @Autowired ObjectMapper objectMapper;
// @Autowired ContractInfoMapper contractInfoMapper;
//
// /**
// * 同步tushare的合约信息
// */
//// @Scheduled(cron = "0 0 0/4 * * ?") //4小时一次
//// @Scheduled(cron = "0/50 * * * * ?") //50秒一次
// @Scheduled(cron = "0 0 8-17/4 * * ?") //8点到15点之间4小时一次 // @Scheduled(cron = "0 0 8-17/4 * * ?") //8点到15点之间4小时一次
// public void checkUser() throws Exception {
// @Scheduled(cron = "0 0 01 * * ?") //每天早上1点
// List<Exchange> exchanges = Arrays.asList(Exchange.values()); public void init() throws Exception {
// getFutDailyController.init();
// exchanges.forEach(i->{ }
// HashMap<Object,Object> h = new HashMap<Object,Object>();
// h.put("api_name", "fut_basic");
// h.put("token", TushareConfig.TOKEN); }
// HashMap<Object,Object> params = new HashMap<Object,Object>();
// params.put("exchange", i);
// h.put("params", params);
// try {
// this.getExchangeDate(i, h);
// } catch (Exception e) {
// e.printStackTrace();
// }
//
// });
//
// }
//
// public void getExchangeDate(Exchange exchange, HashMap<Object,Object> parm) throws Exception{
// logger.debug("tushare:" + objectMapper.writeValueAsString(parm));
//
// InputStream stean =
// Request.Post(TushareConfig.URL)
// .connectTimeout(3000)
// .socketTimeout(3000)
// .bodyString(objectMapper.writeValueAsString(parm), ContentType.APPLICATION_JSON)
// .execute()
// .returnContent()
// .asStream();
//// .asString(StandardCharsets.UTF_8);
//
// JsonNode root = objectMapper.readTree(stean);
// JsonNode items = root.get("data").get("items");
//
//
// ArrayList<ContractInfo> list = new ArrayList<ContractInfo>();
// for(JsonNode jsonNode : items) {
// ContractInfo bean = new ContractInfo();
// bean.setTs_code(jsonNode.get(0).asText());
// bean.setSymbol(jsonNode.get(1).asText());
// bean.setExchange(jsonNode.get(2).asText());
// bean.setName(jsonNode.get(3).asText());
// bean.setFut_code(jsonNode.get(4).asText());
// bean.setMultiplier(jsonNode.get(5).asDouble());
//
// bean.setTrade_unit(jsonNode.get(6).asText());
// bean.setPer_unit(jsonNode.get(7).asDouble());
// bean.setQuote_unit(jsonNode.get(8).asText());
// bean.setQuote_unit_desc(jsonNode.get(9).asText());
// bean.setD_mode_desc(jsonNode.get(10).asText());
//
// bean.setList_date(jsonNode.get(11).asText());
// bean.setDelist_date(jsonNode.get(12).asText());
// bean.setD_month(jsonNode.get(13).asText());
// bean.setLast_ddate(jsonNode.get(14).asText());
// list.add(bean);
// }
//
//
// var from = select(ContractInfoMapper.selectList)
// .from(ContractInfoDynamicSqlSupport.contractInfo)
// .where(ContractInfoDynamicSqlSupport.exchange, isEqualTo(exchange.toString()))
// .limit(8888)
// .build()
// .render(RenderingStrategies.MYBATIS3);
//
// List<ContractInfo> contractInfos = contractInfoMapper.selectMany(from);
// Map<String, Object> local =
// contractInfos.stream().collect(
// Collectors.toMap(ContractInfo::getTs_code, i->i)
// );
// //System.out.println(local);
//
//
// List<ContractInfo> bath = new ArrayList<ContractInfo>();
// list.forEach(i->{
// if(local.get(i.getTs_code()) == null) {
// bath.add(i);
// }
// });
// if(!bath.isEmpty()) {
// contractInfoMapper.insertMultiple(bath);
// }
//
//
// }
//
//
//}

View File

@ -1,149 +1,25 @@
//package jj.tech.finance.biz.webadmin.task; package jj.tech.finance.biz.webadmin.task;
//
//import static org.mybatis.dynamic.sql.SqlBuilder.*; import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.scheduling.annotation.Scheduled;
//import java.io.IOException; import org.springframework.stereotype.Component;
//import java.io.InputStream;
//import java.util.ArrayList; import jj.tech.finance.biz.webadmin.controller.GetFutDailyController;
//import java.util.Arrays;
//import java.util.HashMap; @Component
//import java.util.List; public class FutDailyTime {
//import java.util.Map; @Autowired GetFutDailyController getFutDailyController;
//import java.util.stream.Collectors;
// //@Scheduled(cron = "0 0/5 * * * ?") //5分钟
//import org.apache.http.client.ClientProtocolException; @Scheduled(cron = "0 0 02 * * ?") //每天早上2点
//import org.apache.http.client.fluent.Request; public void getDateNow() throws Exception {
//import org.apache.http.entity.ContentType; getFutDailyController.getDateNow();
//import org.mybatis.dynamic.sql.SqlBuilder; }
//import org.mybatis.dynamic.sql.render.RenderingStrategies;
//import org.slf4j.Logger; @Scheduled(cron = "0 0 03 * * ?") //每天早上3点
//import org.slf4j.LoggerFactory; public void checkUser() throws Exception {
//import org.springframework.beans.factory.annotation.Autowired; getFutDailyController.getDate();
//import org.springframework.scheduling.annotation.Scheduled; }
//import org.springframework.stereotype.Component;
//
//import com.fasterxml.jackson.core.JsonProcessingException; }
//import com.fasterxml.jackson.databind.JsonNode;
//import com.fasterxml.jackson.databind.ObjectMapper;
//
//import jj.tech.finance.config.enums.Exchange;
//import jj.tech.finance.repository.mybatis.dao.ContractInfoMapper;
//import jj.tech.finance.repository.mybatis.dao.FutDailyMapper;
//import jj.tech.finance.repository.mybatis.dao.support.ContractInfoDynamicSqlSupport;
//import jj.tech.finance.repository.mybatis.dao.support.FutDailyDynamicSqlSupport;
//import jj.tech.finance.repository.mybatis.entity.ContractInfo;
//import jj.tech.finance.utils.tushare.TushareConfig;
//
//@Component
//public class FutDailyTime {
// private static Logger logger = LoggerFactory.getLogger(FutDailyTime.class);
//
// @Autowired ObjectMapper objectMapper;
// @Autowired ContractInfoMapper contractInfoMapper;
// @Autowired FutDailyMapper futDailyMapper;
//
// //@Scheduled(cron = "0 0/5 * * * ?") //5分钟
// @Scheduled(cron = "0/50 * * * * ?")
// public void checkUser() throws Exception {
//
// List<Exchange> exchanges = Arrays.asList(Exchange.values());
//
// exchanges.forEach(i->{
// HashMap<Object,Object> h = new HashMap<Object,Object>();
// h.put("api_name", "fut_daily");
// h.put("token", TushareConfig.TOKEN);
// HashMap<Object,Object> params = new HashMap<Object,Object>();
// params.put("ts_code", "RU2310.SHF");
// h.put("params", params);
// try {
// this.getExchangeDate(i, h);
// } catch (Exception e) {
// e.printStackTrace();
// }
//
// });
//
// }
//
// public void getExchangeDate(Exchange exchange, HashMap<Object,Object> parm) throws Exception{
// logger.debug("tushare:" + objectMapper.writeValueAsString(parm));
//
//
//
//
//
//
//
//
//
// var ts_codes = select(FutDailyDynamicSqlSupport.ts_code)
// .from(FutDailyDynamicSqlSupport.futDaily)
// .groupBy(FutDailyDynamicSqlSupport.futDaily.ts_code);
//
// var from = select(ContractInfoMapper.selectList)
// .from(ContractInfoDynamicSqlSupport.contractInfo)
// .where(ContractInfoDynamicSqlSupport.contractInfo.ts_code, isNotIn(ts_codes))
// .groupBy(ContractInfoDynamicSqlSupport.contractInfo.ts_code)
// .build()
// .render(RenderingStrategies.MYBATIS3);
//
// List<ContractInfo> contractInfos = contractInfoMapper.selectMany(from);
//
// contractInfos.forEach(i->{
// try {
// HashMap<Object,Object> h = new HashMap<Object,Object>();
// h.put("api_name", "fut_daily");
// h.put("token", TushareConfig.TOKEN);
// HashMap<Object,Object> params = new HashMap<Object,Object>();
// params.put("ts_code", i.getTs_code());
// h.put("params", params);
// logger.debug("tushare:" + objectMapper.writeValueAsString(h));
//
// InputStream stean =
// Request.Post(TushareConfig.URL)
// .connectTimeout(3000)
// .socketTimeout(3000)
// .bodyString(objectMapper.writeValueAsString(h), ContentType.APPLICATION_JSON)
// .execute()
// .returnContent()
// .asStream();
// JsonNode root = objectMapper.readTree(stean);
// JsonNode items = root.get("data").get("items");
//
// ArrayList<ContractInfo> list = new ArrayList<ContractInfo>();
// for(JsonNode jsonNode : items) {
// ContractInfo bean = new ContractInfo();
// bean.setTs_code(jsonNode.get(0).asText());
// bean.setSymbol(jsonNode.get(1).asText());
// bean.setExchange(jsonNode.get(2).asText());
// bean.setName(jsonNode.get(3).asText());
// bean.setFut_code(jsonNode.get(4).asText());
// bean.setMultiplier(jsonNode.get(5).asDouble());
//
// bean.setTrade_unit(jsonNode.get(6).asText());
// bean.setPer_unit(jsonNode.get(7).asDouble());
// bean.setQuote_unit(jsonNode.get(8).asText());
// bean.setQuote_unit_desc(jsonNode.get(9).asText());
// bean.setD_mode_desc(jsonNode.get(10).asText());
//
// bean.setList_date(jsonNode.get(11).asText());
// bean.setDelist_date(jsonNode.get(12).asText());
// bean.setD_month(jsonNode.get(13).asText());
// bean.setLast_ddate(jsonNode.get(14).asText());
// list.add(bean);
// }
//
// Thread.sleep(300);
// } catch (Exception e) {
// e.printStackTrace();
// }
//
//
//
//
// });
//
//
// }
//
//}

View File

@ -60,7 +60,7 @@ spring:
logging: logging:
level: level:
root: info root: error
# org.jooq: debug # org.jooq: debug
# org.springframework.amqp: debug # org.springframework.amqp: debug
# org.mybatis: debug # org.mybatis: debug