From e35eea21fab61274dd34ead96c6274c2cfa31d69 Mon Sep 17 00:00:00 2001
From: jack <zengjieli93@163.com>
Date: Mon, 18 Mar 2024 00:04:08 +0800
Subject: [PATCH] 1 去掉多余代码 2 图片转base64
---
/dev/null | 232 ----------------------------------------------
src/main/resources/application.properties | 2
src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java | 21 ++++
src/main/java/com/nq/utils/Md5Util.java | 14 ++
src/main/java/com/nq/ws/USWebsocketRunClient.java | 1
src/main/java/com/nq/utils/task/news/NewsTask.java | 2
6 files changed, 36 insertions(+), 236 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
index 2cbef4a..cad7d0e 100644
--- a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
@@ -17,6 +17,10 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Base64;
import java.util.Date;
import java.util.List;
@@ -163,7 +167,8 @@
Long showTime = jsonObject.getLong("time");
siteNews.setShowTime(new Date(showTime));
if(jsonObject.has("img")){
- siteNews.setImgurl(jsonObject.getString("img"));
+ String imgBase = convertBase64ToImage(jsonObject.getString("img"),"/www/wwwroot/dabao/"+newsId+".jpg");
+ siteNews.setImgurl("https://img.jumptalk.net/"+newsId+".jpg");
}
siteNews.setDescription(jsonObject.getString("content"));
siteNews.setContent(jsonObject.getString("content"));
@@ -179,4 +184,18 @@
return k;
}
+ public static String convertBase64ToImage(String base64Str, String path) {
+ byte[] imageBytes = Base64.getDecoder().decode(base64Str);
+ try {
+ File file = new File(path);
+ FileOutputStream fos = new FileOutputStream(file);
+ fos.write(imageBytes);
+ fos.flush();
+ fos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return path;
+ }
+
}
diff --git a/src/main/java/com/nq/utils/Md5Util.java b/src/main/java/com/nq/utils/Md5Util.java
index d947535..f7ecd03 100644
--- a/src/main/java/com/nq/utils/Md5Util.java
+++ b/src/main/java/com/nq/utils/Md5Util.java
@@ -1,8 +1,22 @@
package com.nq.utils;
+import cn.hutool.core.text.StrBuilder;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.security.MessageDigest;
+import java.util.Base64;
public class Md5Util {
+
+
+
+
+
private static char sHexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
public static String getMD5(String source) {
diff --git a/src/main/java/com/nq/utils/task/futures/ForceSellFuturesTask.java b/src/main/java/com/nq/utils/task/futures/ForceSellFuturesTask.java
deleted file mode 100644
index 024462d..0000000
--- a/src/main/java/com/nq/utils/task/futures/ForceSellFuturesTask.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.nq.utils.task.futures;
-
-
-import com.nq.service.IUserService;
-import com.nq.utils.DateTimeUtil;
-import com.nq.utils.stock.BuyAndSellUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-
-@Component
-public class ForceSellFuturesTask {
- private static final Logger log = LoggerFactory.getLogger(ForceSellFuturesTask.class);
- @Autowired
- IUserService iUserService;
-
- /*指數強制平倉,每分鐘執行一次*/
-@Scheduled(cron = "0 */1 * * * ?")
- public void banlanceUserFuturesPositionTaskV1() {
- dotask();
- }
-
- public void dotask() {
- this.iUserService.ForceSellFuturesTask();
- }
-
- /*指數強平提醒推送消息,每分鐘檢測一次*/
-@Scheduled(cron = "0 */1 * * * ?")
- public void banlanceUserFuturesPositioMessage() {
- this.iUserService.ForceSellFuturesMessageTask();
- }
-
- /*期貨走勢圖定時任務*/
- @Scheduled(cron = "0 0/1 0-23 * * MON-FRI")
- public void qh1() throws Exception {
- boolean am = false;
- boolean pm = false;
- try {
- am = BuyAndSellUtils.isTransTime("0:01", "12:59");
- pm = BuyAndSellUtils.isTransTime("12:59", "23:59");
- } catch (Exception e) {
- log.error("= {}", e);
- }
- log.info("qh1-am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
- if (am || pm) {
- log.info("====={} =====", DateTimeUtil.dateToStr(new Date()));
- this.iUserService.qh1();
- log.info("====={} =====", DateTimeUtil.dateToStr(new Date()));
- }
- }
-}
diff --git a/src/main/java/com/nq/utils/task/index/ForceSellIndexTask.java b/src/main/java/com/nq/utils/task/index/ForceSellIndexTask.java
deleted file mode 100644
index 5f1e98a..0000000
--- a/src/main/java/com/nq/utils/task/index/ForceSellIndexTask.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package com.nq.utils.task.index;
-
-import com.nq.service.IStockIndexService;
-import com.nq.service.IUserService;
-import com.nq.utils.DateTimeUtil;
-import com.nq.utils.stock.BuyAndSellUtils;
-import java.util.Date;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-
-@Component
-public class ForceSellIndexTask {
- private static final Logger log = LoggerFactory.getLogger(ForceSellIndexTask.class);
-
-
- @Autowired
- IUserService iUserService;
- @Autowired
- IStockIndexService iStockIndexService;
-
-
- private static final String am_begin = "9:30";
-
- private static final String am_end = "11:30";
-
- private static final String pm_begin = "13:00";
-
- private static final String pm_end = "15:00";
-
-
-@Scheduled(cron = "0 0/3 9-15 ? * MON-FRI")
- public void banlanceUserIndexPositionTaskV1() {
- boolean am = false;
- boolean pm = false;
- try {
- am = BuyAndSellUtils.isTransTime("9:30", "11:30");
- pm = BuyAndSellUtils.isTransTime("13:00", "15:00");
- } catch (Exception e) {
- log.error("執行定時任務(指數)出錯,e = {}", e);
- }
-
- log.info("當前 am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
- if (am || pm) {
- log.info("=====掃描用戶(指數)持倉執行,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
- dotask();
- log.info("=====掃描用戶(指數)持倉結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
- } else {
- log.info("當前時間不為周一至周五,或者不在交易時間內,不執行(強平指數)定時任務");
- }
- }
-
-
- public void dotask() {
- this.iUserService.ForceSellIndexTask();
- }
-
- /*指數強平提醒推送消息,每分鐘檢測一次*/
-@Scheduled(cron = "0 0/3 9-15 ? * MON-FRI")
- public void banlanceUserIndexPositionMessage() {
- boolean am = false;
- boolean pm = false;
- try {
- am = BuyAndSellUtils.isTransTime("9:30", "11:30");
- pm = BuyAndSellUtils.isTransTime("13:00", "15:00");
- } catch (Exception e) {
- log.error("執行定時任務(指數)出錯,e = {}", e);
- }
-
- log.info("當前 am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
- if (am || pm) {
- log.info("=====掃描用戶(指數)持倉執行,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
- this.iUserService.ForceSellIndexsMessageTask();
- log.info("=====掃描用戶(指數)持倉結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
- } else {
- log.info("當前時間不為周一至周五,或者不在交易時間內,不執行(強平指數)定時任務");
- }
- }
-
- /*指數分時圖k線定時任務*/
-@Scheduled(cron = "0 0/1 9-15 * * ?")
- public void zs1() {
- boolean am = false;
- boolean pm = false;
- try {
- am = BuyAndSellUtils.isTransTime("9:29", "11:31");
- pm = BuyAndSellUtils.isTransTime("12:59", "15:00");
- } catch (Exception e) {
- log.error("= {}", e);
- }
- log.info("zs1-am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
- if (am || pm) {
- log.info("====={} =====", DateTimeUtil.dateToStr(new Date()));
- this.iUserService.zs1();
- log.info("====={} =====", DateTimeUtil.dateToStr(new Date()));
- }
- }
- //美股和港股指数 每天0点5分执行
- @Scheduled(cron = "0 5 0 ? * MON-FRI")
-
- public void otherIndexTask() {
- log.info("====={美港指数同步开始} =====", DateTimeUtil.dateToStr(new Date()));
- this.iStockIndexService.otherIndexTask();
- log.info("====={美港指数同步结束} =====", DateTimeUtil.dateToStr(new Date()));
- }
-
-
-}
-
diff --git a/src/main/java/com/nq/utils/task/news/NewsTask.java b/src/main/java/com/nq/utils/task/news/NewsTask.java
index 387825e..10a75bf 100644
--- a/src/main/java/com/nq/utils/task/news/NewsTask.java
+++ b/src/main/java/com/nq/utils/task/news/NewsTask.java
@@ -23,7 +23,7 @@
/*
* 新聞資訊抓取
* */
- @Scheduled(cron = "0 0 0/1 * * ?")
+ @Scheduled(cron = "0 0/5 * * * ?")
public void NewsInfoTask() {
this.iSiteNewsService.grabNews();
diff --git a/src/main/java/com/nq/utils/task/stock/NewStockTask.java b/src/main/java/com/nq/utils/task/stock/NewStockTask.java
deleted file mode 100644
index d4749f7..0000000
--- a/src/main/java/com/nq/utils/task/stock/NewStockTask.java
+++ /dev/null
@@ -1,214 +0,0 @@
-package com.nq.utils.task.stock;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.nq.common.ServerResponse;
-import com.nq.dao.StockSubscribeMapper;
-import com.nq.dao.UserMapper;
-import com.nq.dao.UserPositionMapper;
-import com.nq.pojo.Stock;
-import com.nq.pojo.StockSubscribe;
-import com.nq.service.ISiteSettingService;
-import com.nq.service.IStockService;
-import com.nq.service.IStockSubscribeService;
-import com.nq.service.IUserStockSubscribeService;
-import com.nq.utils.DateTimeUtil;
-import com.nq.utils.HttpRequest;
-import com.nq.utils.PropertiesUtil;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * 新股申购接口抓取任务
- */
-
-@Component
-public class NewStockTask {
-
- private static final Logger log = LoggerFactory.getLogger(NewStockTask.class);
-
- @Autowired
- private IStockService iStockService;
-
-
-
-
- @Resource
- private StockSubscribeMapper stockSubscribeMapper;
- /**
- * 每天工作日 下午4点执行一次
- */
- @Scheduled(cron = "0 0 16 * * MON-FRI")
- public void getNewStockTask() {
- log.info("----------每天工作日下午4点抓取新股日历数据开始--------------");
- Integer count = 0;
- try {
- String url = PropertiesUtil.getProperty("dfcf.new.stock.url");
- String s = HttpRequest.doGet(url, null);
- JSONObject jsonObject = JSON.parseObject(s);
- JSONObject result = jsonObject.getJSONObject("result");
- JSONArray data = result.getJSONArray("data");
- for (int i = 0; i < data.size(); i++) {
- JSONObject o = data.getJSONObject(i);
- //先判断当前新股是否插入
- StockSubscribe newStock = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>().eq("code", o.getString("SECURITY_CODE")));
- StockSubscribe StockSubscribe = new StockSubscribe();
- StockSubscribe.setCode(o.getString("SECURITY_CODE"));
- StockSubscribe.setSubscribeTime(o.getDate("APPLY_DATE"));
- StockSubscribe.setListDate(o.getDate("LISTING_DATE") == null ? null : o.getDate("LISTING_DATE"));
- StockSubscribe.setSubscriptionTime(o.getDate("BALLOT_NUM_DATE") == null ? null : o.getDate("BALLOT_NUM_DATE"));
- StockSubscribe.setName(o.getString("SECURITY_NAME"));
- StockSubscribe.setPe(o.getString("AFTER_ISSUE_PE") == null ? null : o.getString("AFTER_ISSUE_PE"));
- StockSubscribe.setPrice(o.getBigDecimal("ISSUE_PRICE"));
-// StockSubscribe.setOrderNumber(o.getLong("ISSUE_NUM"));
- StockSubscribe.setZt(1);
- StockSubscribe.setStockType(setType(o.getString("SECURITY_CODE")));
-
- if (null == newStock) {
- stockSubscribeMapper.insert(StockSubscribe);
- count++;
- } else {
- StockSubscribe.setNewlistId(newStock.getNewlistId());
- stockSubscribeMapper.updateById(StockSubscribe);
- }
- }
- log.info("----------每天工作日下午4点抓取新股日历数据结束 新增新股数量:{}--------------", count);
- } catch (Exception e) {
- log.error("抓取新股日历数据", e);
- }
-
- }
-
- /**
- * 类型
- */
- private String setType(String code){
- String type = "";
- if(code.startsWith("00")){
- type = "sz";
- }else if(code.startsWith("60")){
- type = "sh";
- }else if(code.startsWith("30")){
- type = "sz";
- }else if(code.startsWith("68")){
- type = "sh";
- }else {
- type = "bj";
- }
- return type;
- }
-
- /**
- * 每天工作日 上午8点20执行一次 保存新股票
- */
- @Scheduled(cron = "0 20 8 * * MON-FRI")
- public void saveNewStockTask() {
- String nowDate = DateTimeUtil.stampToDate(String.valueOf(System.currentTimeMillis()));
- List<StockSubscribe> newShowStockList = stockSubscribeMapper.selectList(new QueryWrapper<StockSubscribe>().le("list_date",nowDate));
- log.info("----------每天工作日上午8点20抓取新股日历数据结束 新增新股数量:{}--------------", newShowStockList.size());
- if (!CollectionUtils.isEmpty(newShowStockList)) {
- for (StockSubscribe StockSubscribe : newShowStockList) {
- String codes = StockSubscribe.getCode();
- String plateType = "sh";
- if (codes.startsWith("00") || codes.startsWith("30")) {
- plateType = "sz";
- } else if (codes.startsWith("8") || codes.startsWith("4")) {
- plateType = "bj";
- }
- Stock stock = this.iStockService.findStockByCode(StockSubscribe.getCode()).getData();
- if (stock == null) {
- ServerResponse response = this.iStockService.addStock(StockSubscribe.getName(), StockSubscribe.getCode()
- , plateType, "cc", 0, 0);
-// log.info("新增新股:{},返回结果:{}", StockSubscribe.getName(), response.getMsg());
- }
-
- }
- }
-
- }
-
-
-
-// /**
-// * 每天工作日 上午8点40执行一次 申购新股派发操作
-// */
-// @Scheduled(cron = "0 40 8 * * MON-FRI")
-// public void newStockDistributeTask() {
-// List<StockSubscribe> newShowStockList = iStockService.getNewShowStockList();
-// if (!CollectionUtils.isEmpty(newShowStockList)) {
-// SiteSetting siteSetting = this.iSiteSettingService.getSiteSetting();
-// for (StockSubscribe StockSubscribe : newShowStockList) {
-// Stock stock = iStockService.findStockByCode(StockSubscribe.getCode()).getData();
-// if (!ObjectUtils.isEmpty(stock)) {
-// //若提前添加过,则派发股票
-// List<Lists> lists = iListsService.getNewStockByCodeAndZts(StockSubscribe.getCode(), Short.valueOf("4"));
-// if (!CollectionUtils.isEmpty(lists)) {
-// for(Lists l:lists){
-// User user = userMapper.findByPhone(l.getPhone());
-// //第二步骤加入用户持仓
-// UserPosition userPosition = new UserPosition();
-// userPosition.setPositionType(user.getAccountType());
-// userPosition.setPositionSn(KeyUtils.getUniqueKey());
-// userPosition.setUserId(user.getId());
-// userPosition.setNickName(user.getRealName());
-// userPosition.setAgentId(user.getAgentId());
-// userPosition.setStockCode(stock.getStockCode());
-// userPosition.setStockName(stock.getStockName());
-// userPosition.setStockGid(stock.getStockGid());
-// userPosition.setStockSpell(stock.getStockSpell());
-// userPosition.setBuyOrderId(GeneratePosition.getPositionId());
-// userPosition.setBuyOrderTime(new Date());
-// userPosition.setBuyOrderPrice(new BigDecimal(StockSubscribe.getPrice()));
-// userPosition.setOrderDirection("买涨");
-// userPosition.setStockPlate(stock.getStockPlate());
-// userPosition.setOrderNum(Integer.parseInt(l.getWinums()));
-// //锁定股票
-//// userPosition.setIsLock(1);
-//// userPosition.setLockMsg("新股暂未上市,不可出售!");
-// userPosition.setOrderLever(1);
-// userPosition.setOrderTotalPrice(new BigDecimal(l.getBzj()));
-// userPosition.setOrderStayFee(BigDecimal.ZERO);
-// BigDecimal buy_amt=userPosition.getOrderTotalPrice();
-//
-// BigDecimal buy_fee_amt = buy_amt.multiply(siteSetting.getBuyFee()).setScale(2, 4);
-// log.info("用户购买手续费(配资后总资金 * 百分比) = {}", buy_fee_amt);
-// userPosition.setOrderFee(buy_fee_amt);
-//
-// BigDecimal buy_yhs_amt = buy_amt.multiply(siteSetting.getDutyFee()).setScale(2, 4);
-// log.info("用户购买印花税(配资后总资金 * 百分比) = {}", buy_yhs_amt);
-// userPosition.setOrderSpread(buy_yhs_amt);
-//
-// //点差费
-// userPosition.setSpreadRatePrice(BigDecimal.ZERO);
-// //设置收益
-// userPosition.setProfitAndLose(BigDecimal.ZERO);
-// //设置总收益包含手续费印花税
-// BigDecimal all_profit_and_lose = userPosition.getProfitAndLose().subtract(buy_fee_amt).subtract(buy_yhs_amt);
-// userPosition.setAllProfitAndLose(all_profit_and_lose);
-// userPosition.setOrderStayDays(Integer.valueOf(0));
-// this.userPositionMapper.insertSelective(userPosition);
-//
-// //加上总资产
-// user.setEnableAmt(user.getUserAmt().add(userPosition.getOrderTotalPrice()));
-// this.userMapper.updateByPrimaryKeySelective(user);
-// //保存申购状态为派发状态
-// l.setZts(Short.valueOf("5"));
-// this.iListsService.save(l);
-// }
-// }
-// }
-// }
-// }
-//
-// }
-}
diff --git a/src/main/java/com/nq/utils/task/stock/RealTimeTask.java b/src/main/java/com/nq/utils/task/stock/RealTimeTask.java
deleted file mode 100644
index 9f9e7ad..0000000
--- a/src/main/java/com/nq/utils/task/stock/RealTimeTask.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.nq.utils.task.stock;
-
-import com.nq.service.RealTimeService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-@Component
-public class RealTimeTask {
- @Autowired
- RealTimeService realTimeService;
-
- private static final Logger log = LoggerFactory.getLogger(RealTimeTask.class);
-
- /*每天9點定時刪除股票k線數據*/
-@Scheduled(cron = "0 00 9 * * MON-FRI")
- public void deleteStockCode() {
- log.info("每天9點定時刪除股票k線數據");
- this.realTimeService.deleteRealTime();
- }
-
- /*每天0點定時刪除期貨k線數據*/
-@Scheduled(cron = "0 00 0 * * MON-FRI")
- public void deleteStockFuturesCode() {
- log.info("每天0點定時刪除期貨k線數據");
- this.realTimeService.deleteFuturesRealTime();
- }
-}
diff --git a/src/main/java/com/nq/utils/task/stock/SaveDayMarketsTask.java b/src/main/java/com/nq/utils/task/stock/SaveDayMarketsTask.java
deleted file mode 100644
index 69a1dc6..0000000
--- a/src/main/java/com/nq/utils/task/stock/SaveDayMarketsTask.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.nq.utils.task.stock;
-
-
-import com.nq.service.IStockMarketsDayService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-
-@Component
-
-public class SaveDayMarketsTask {
- private static final Logger log = LoggerFactory.getLogger(SaveDayMarketsTask.class);
-
- @Autowired
- IStockMarketsDayService iStockMarketsDayService;
-
- /*每天16點股票數據定時存入數據庫(股票走勢圖數據存儲)*/
-@Scheduled(cron = "0 0 16 ? * MON-FRI")
- public void banlanceUserPositionTaskV1() {
- dotask();
- }
-
- public void dotask() {
- this.iStockMarketsDayService.saveStockMarketDay();
- }
-
- /*每天1點同步節假日開關*/
-//@Scheduled(cron = "0 0 1 * * ?")
- public void holidayTask() {
- this.iStockMarketsDayService.saveHoliday();
- }
-
-
-}
diff --git a/src/main/java/com/nq/utils/task/stock/StockListTask.java b/src/main/java/com/nq/utils/task/stock/StockListTask.java
deleted file mode 100644
index 2c01eb0..0000000
--- a/src/main/java/com/nq/utils/task/stock/StockListTask.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package com.nq.utils.task.stock;
-
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.JSONArray;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.nq.dao.StockMapper;
-import com.nq.pojo.Stock;
-import com.nq.utils.HttpClientRequest;
-import com.nq.utils.stock.pinyin.GetPyByChinese;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.ApplicationArguments;
-import org.springframework.boot.ApplicationRunner;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import javax.xml.ws.Action;
-import java.io.UnsupportedEncodingException;
-import java.lang.reflect.Array;
-import java.util.Date;
-
-/**
- * @ClassName : StockListTask //类名 启动后执行run
- * @Description : //描述
- * @Author : tf //作者
- * @Date: 2022/10/27 16:14
- */
-@Component
-@Slf4j
-public class StockListTask implements ApplicationRunner {
- @Autowired
- StockMapper stockMapper;
- @Autowired
- StockOthersTask stockOthersTask;
-
-// @Override
- public void run3(ApplicationArguments args) throws Exception {
- String[] keys = {"hs", "sz", "us", "hk", "bj"};
-
-// for (String key : keys) {
-
- try {
- int num = 0;
-// Thread.sleep(1000L);
- for (int y = 1; y < 50; y++) {
- Thread.sleep(1000L);
- //总数量
-
- String hs = HttpClientRequest.doGet("http://192.168.10.5/sz_list/?page=" + y);
- log.info("hs" + hs + "第" + y + "页,长度" + hs.length());
- if (hs.length() == 2) {
- log.info("數據為空");
- break;
- }
- //Sting 转josnarry
- JSONArray hsArray = JSONObject.parseArray(hs);
- num = num + hsArray.size();
- log.info("当前页数量" + hsArray.size());
- for (int i = 0; i < hsArray.size(); i++) {
- JSONObject hsjson = JSONObject.parseObject(hsArray.get(i).toString());
- Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", hsjson.getString("stock_code")));
- if (stock == null) {
- stock = new Stock();
- stock.setStockCode(hsjson.getString("stock_code"));
- stock.setStockName(hsjson.getString("stock_name"));
- stock.setStockType(hsjson.getString("stock_type"));
- stock.setStockGid(hsjson.getString("stock_gid"));
- stock.setStockSpell(hsjson.getString("stock_spell"));
- stock.setIsLock(0);
- stock.setIsShow(0);
- stock.setAddTime(new Date());
- stockMapper.insert(stock);
- }else {
- stock.setStockCode(hsjson.getString("stock_code"));
- stock.setStockName(hsjson.getString("stock_name"));
- stock.setStockType(hsjson.getString("stock_type"));
- stock.setStockGid(hsjson.getString("stock_gid"));
- stock.setStockSpell(hsjson.getString("stock_spell"));
- stock.setIsLock(0);
- stock.setIsShow(0);
- stock.setAddTime(new Date());
- stockMapper.updateById(stock);
- }
- }
- }
- log.info("数据量" + num);
- }catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- /**
- * @Description: 股票数据
- * @Param:
- * @return:
- * @Author: tf
- * @Date: 2022/11/2
- */
-// @Override
- public void run2(ApplicationArguments args) throws Exception {
- int num = 0;
-// String[] keys = {"cyb", "kcb"};
-// for (String key : keys) {
- for (int j = 1; j < 34; j++) {
-
-// String bj = HttpClientRequest.doGet("https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page="+j+"&num=80&sort=symbol&asc=1&node=hs_bjs&symbol=&_s_r_a=page");
- String sz = null;
- try {
- sz = HttpClientRequest.doGet("https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHKStockData?page=" + j + "&num=80&sort=symbol&asc=1&node=qbgg_hk&_s_r_a=init");
-
- } catch (Exception e) {
- log.error("请求失败" + e);
- Thread.sleep(30000L);
- sz = HttpClientRequest.doGet("https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=" + j + "&num=80&sort=symbol&asc=1&node=qbgg_hk&_s_r_a=init");
- }
- if (sz == null) {
- log.info("获取完毕,总条数" + num);
- return;
- }
- JSONArray bjArray = JSONObject.parseArray(sz);
- num = num + bjArray.size();
-// log.info("当前页数量" + bjArray.size());
- for (Object o : bjArray) {
- JSONObject hsjson = JSONObject.parseObject(o.toString());
-// log.info("第" + i+"条数据:"+hsjson);
- if (hsjson == null) {
- continue;
- }
- Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", hsjson.getString("code")));
- if (stock == null) {
- stock = new Stock();
- String type = hsjson.getString("symbol").substring(0, 2);
- String spell = GetPyByChinese.converterToFirstSpell(hsjson.getString("name"));
- stock.setStockCode(hsjson.getString("symbol"));
- stock.setStockName(hsjson.getString("name"));
- stock.setStockType("hk");
- stock.setStockGid("hk"+hsjson.getString("symbol"));
- stock.setStockSpell(spell);
- stock.setIsLock(0);
- stock.setIsShow(0);
- stock.setAddTime(new Date());
- stockMapper.insert1(stock);
- }
-// else {
-// if (key.equals("cyb")) {
-// stock.setStockPlate("创业");
-// stockMapper.updateById(stock);
-// }else {
-// stock.setStockPlate("科创");
-// stockMapper.updateById(stock);
-// }
- }
- }
- log.info("数据量" + num);
- }
-
-
- public void run(ApplicationArguments args) throws Exception {
-
-// stockOthersTask.HkStockTask();
-// stockOthersTask.UsStockTask();
-// stockOthersTask.HkIndexTask();
-//
-// log.info("=======================数据加载完毕============================");
- }
-
-
- }
-
-
-
diff --git a/src/main/java/com/nq/utils/task/stock/StockOthersTask.java b/src/main/java/com/nq/utils/task/stock/StockOthersTask.java
deleted file mode 100644
index 9ff1e6c..0000000
--- a/src/main/java/com/nq/utils/task/stock/StockOthersTask.java
+++ /dev/null
@@ -1,232 +0,0 @@
-package com.nq.utils.task.stock;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.nq.dao.StockMapper;
-import com.nq.pojo.Stock;
-import com.nq.service.IStockService;
-import com.nq.utils.HttpClientRequest;
-import com.nq.utils.PropertiesUtil;
-import com.nq.utils.redis.RedisShardedPoolUtils;
-import com.nq.utils.stock.BuyAndSellUtils;
-import com.nq.utils.stock.pinyin.GetPyByChinese;
-import lombok.extern.slf4j.Slf4j;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Date;
-
-import static com.nq.utils.DateTimeUtil.*;
-
-
-@Component
-public class StockOthersTask {
- @Autowired
- IStockService stockService;
- @Autowired
- StockMapper stockMapper;
- private static final Logger log = LoggerFactory.getLogger(StockOthersTask.class);
-
-/* //9点到15点每隔10s执行一次
-// @Scheduled(cron = "0 0/1 9-15 * * MON-FRI")
- //redis存股票信息
- @Scheduled(cron = "0/30 0/1 9-16 * * MON-FRI")
- public void HkStockTask() throws UnsupportedEncodingException {
-
- //当前毫秒时间戳
- long now = System.currentTimeMillis();
- ArrayList diff = null;
-
- String url = PropertiesUtil.getProperty("hk.stock.url") + now;
- String result = null;
- try {
- result = HttpClientRequest.doGet(url);
- } catch (Exception e) {
- log.error("获取港股信息失败,重新获取", e);
- result = HttpClientRequest.doGet(url);
- }
- if (result == null) {
- log.error("获取港股信息失败");
- return;
- }
- JSONObject json = JSONObject.parseObject(result);
- //取出data里的diff数组
- diff = (ArrayList) json.getJSONObject("data").get("diff");
-
-
- for (Object o : diff) {
- //取第一条数据存入redisDB1
- JSONObject data = (JSONObject) o;
- String stockCode = data.getString("f12");
- //存入redis
- RedisShardedPoolUtils.set("hk" + stockCode, String.valueOf(data), 1);
- }
- log.info("港股信息存入redis成功");
-
- }*/
-
- /**
- * 美股存redis 22:00-05:00
-
-// @Scheduled(cron = "0/20 0/1 22-23 * * ?")
- @Scheduled(cron = "0/25 0/1 * * * ?")
-
-
- public void UsStockTask() {
- boolean am = false;
- boolean pm = false;
- try {
- am = BuyAndSellUtils.isTransTime("21:00", "0:00");
- pm = BuyAndSellUtils.isTransTime("0:00", "5:00");
- } catch (Exception e) {
- log.error("= {}", e);
- }
-// log.info("美股UsStock-am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
- if (am || pm) {
- //当前毫秒时间戳
- this.usStockTask2();
- }
- } */
-
- /**
- * 美股信息启动加载
- *
-
- public void usStockTask2(){
- long now = System.currentTimeMillis();
- ArrayList diff = null;
- String result = null;
- String url = PropertiesUtil.getProperty("us.stock.url") + now;
- try {
- result = HttpClientRequest.doGet(url);
- } catch (Exception e) {
- log.error("获取美股信息失败,尝试重新获取", e);
- result = HttpClientRequest.doGet(url);
- }
- if (result == null) {
- log.error("获取美股信息失败");
- return;
- }
- //取第一个(后到最后的数据
- String da = null;
- try {
- da = result.substring(result.indexOf("(") + 1, result.indexOf(");"));
- } catch (Exception e) {
- log.error("此次美股信息获取失败", e);
- return;
- }
- JSONObject json = JSONObject.parseObject(da);
- //取出data里的diff数组
- diff = (ArrayList) json.getJSONObject("data").get("diff");
-
- for (Object o : diff) {
- //取第一条数据存入redisDB1
- JSONObject data = (JSONObject) o;
- String stockCode = data.getString("f12");
- //存入redis
-
- RedisShardedPoolUtils.set("us" + stockCode, String.valueOf(data), 2);
- }
- log.info("美股信息存入redis成功");
- }
- */
- /**
- * 美股港股指数
-
- @Scheduled(cron = "0/30 0/1 * * * ?")
- public void HkIndexTask() throws UnsupportedEncodingException {
- boolean am = false;
- boolean pm = false;
- try {
- am = BuyAndSellUtils.isTransTime("9:00", "0:00");
- pm = BuyAndSellUtils.isTransTime("0:00", "5:00");
- } catch (Exception e) {
- log.error("= {}", e);
- }
-// log.info("HkIndex-am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
- if (am || pm) {
- String[] keys = {"hk", "us"};
- //当前毫秒时间戳
- long now = System.currentTimeMillis();
- for (String key : keys) {
- String url = null;
- if ("hk".equals(key)) {
- url = PropertiesUtil.getProperty("hk.index.url") + now;
- } else {
- url = PropertiesUtil.getProperty("us.index.url") + now;
- }
-
- String result = null;
- try {
- result = HttpClientRequest.doGet(url);
- } catch (Exception e) {
- log.error("获取指数信息失败,尝试重新获取", e);
- result = HttpClientRequest.doGet(url);
- }
-
- JSONObject json = JSONObject.parseObject(result);
-
- //取出data里的diff数组
- ArrayList diff = null;
- try {
- diff = (ArrayList) json.getJSONObject("data").get("diff");
- } catch (Exception e) {
- log.error("获取指数信息失败", e);
- return;
- }
-
- for (int i = 0; i < diff.size(); i++) {
- JSONObject data = (JSONObject) diff.get(i);
- String stockCode = data.getString("f12");
- //存入redis
- RedisShardedPoolUtils.set(key + stockCode, String.valueOf(data), 3);
- }
- }
-
- log.info("美股港股指数信息存入redis成功");
- }
- }
- */
- /**
- * @Description: 股票数据启动后初始化
- * @param
- * @throws Exception
-
- @PostConstruct
- public void init() {
- try {
- this.HkStockTask();
- } catch (UnsupportedEncodingException e) {
- log.error("初始化港股数据加载失败"+e);
- }
- this.usStockTask2();
- try {
- this.HkIndexTask();
- } catch (UnsupportedEncodingException e) {
- log.error("初始化美港指数数据加载失败"+e);
- }
- log.info("=======================数据加载完毕============================");
- }
- */
- @Test
- public void test() throws UnsupportedEncodingException {
- //当前系统分钟时间戳
-
- String date = getCurrentTimeMiaoZero();
- //?cat_time=1669089660&stock_gid=sz000001&price=10
- log.info("date = {}", date);
- String result = HttpClientRequest.doGet("http://116.124.132.181/stock/base/cx_gp?cat_time="+date+"&stock_gid=sz000001&price=10");
- log.info("result = {}", result);
-// net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(result);
-// String nowPrice = jsonObject.getJSONObject("data").getString("new_price");
- System.out.println(result);
- }
- }
diff --git a/src/main/java/com/nq/ws/USWebsocketRunClient.java b/src/main/java/com/nq/ws/USWebsocketRunClient.java
index 1224207..0ef31a1 100644
--- a/src/main/java/com/nq/ws/USWebsocketRunClient.java
+++ b/src/main/java/com/nq/ws/USWebsocketRunClient.java
@@ -27,7 +27,6 @@
@Override
public void onMessage(String s) {
try {
- log.info("美股实时数据 {}",s);
StockRealTimeBean stockDetailBean = new Gson().fromJson(s, StockRealTimeBean.class);
RedisKeyUtil.setCacheRealTimeStock(EStockType.US,stockDetailBean);
}catch (Exception e){
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index fa185fb..e7fd2f1 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -31,7 +31,7 @@
#cookie config start
user.cookie.name=USERTOKEN
-agent.cookie.name=AGENTTOKEN
+agent.cookie.name=agenttoken
admin.cookie.name=admintoken
agent.key.prefix=Mi
--
Gitblit v1.9.3