From 924d1f5a68d424e963e45dd82652bc65c6d25bea Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 18 Apr 2025 14:12:50 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java | 14
src/main/java/com/nq/ws/WebsocketRunClient.java | 44 +++-
src/main/java/com/nq/controller/echo/EChoController.java | 3
src/main/java/com/nq/utils/task/stock/StockTask.java | 96 +++++-----
src/main/java/com/nq/service/impl/EchoServices.java | 4
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 16
src/main/resources/mapper/SiteNewsMapper.xml | 105 -----------
src/main/java/com/nq/utils/redis/RedisKeyConstant.java | 8
src/main/java/com/nq/ws/WsClientConfig.java | 6
src/main/java/com/nq/service/impl/UserServiceImpl.java | 22 +-
src/main/resources/application.properties | 2
src/main/java/com/nq/common/ServerResponse.java | 6
src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java | 6
src/main/java/com/nq/controller/UserApiController.java | 6
src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java | 10
src/main/java/com/nq/service/IUserWithdrawService.java | 1
src/main/java/com/nq/controller/UserPositionCheckDzController.java | 4
src/main/java/com/nq/service/impl/PayServiceImpl.java | 1
src/main/java/com/nq/utils/task/stock/CarryPositionTask.java | 3
src/main/java/com/nq/enums/EStockType.java | 3
src/main/java/com/nq/service/impl/TradingHourServiceImpl.java | 3
src/main/java/com/nq/service/impl/UserAssetsServices.java | 6
src/main/java/com/nq/utils/stock/sina/StockApi.java | 2
src/main/java/com/nq/service/impl/StockServiceImpl.java | 4
src/main/java/com/nq/controller/SmsApiController.java | 14 +
src/main/java/com/nq/utils/task/news/NewsTask.java | 12 -
src/main/java/com/nq/dao/SiteNewsMapper.java | 24 --
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java | 2
src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java | 37 +++-
src/main/java/com/nq/pojo/SiteNews.java | 8
src/main/java/com/nq/pojo/SiteLoginLog.java | 4
src/main/java/com/nq/controller/protol/UserPayController.java | 1
src/main/java/com/nq/utils/smsUtil/smsUtil.java | 41 +--
33 files changed, 216 insertions(+), 302 deletions(-)
diff --git a/src/main/java/com/nq/common/ServerResponse.java b/src/main/java/com/nq/common/ServerResponse.java
index 208c7ac..8ef9f8d 100644
--- a/src/main/java/com/nq/common/ServerResponse.java
+++ b/src/main/java/com/nq/common/ServerResponse.java
@@ -74,7 +74,7 @@
public static <T> ServerResponse<T> createBySuccessMsg(String msg,HttpServletRequest request) {
- return new ServerResponse(ResponseCode.SUCCESS.getCode(), new GoogleTranslateUtil().translate(msg,request.getHeader(LANG)));
+ return new ServerResponse(ResponseCode.SUCCESS.getCode(), msg);
}
public static <T> ServerResponse<T> createBySuccess(T data) {
@@ -83,7 +83,7 @@
public static <T> ServerResponse<T> createBySuccess(String data,HttpServletRequest request) {
- return new ServerResponse(ResponseCode.SUCCESS.getCode(), new GoogleTranslateUtil().translate(data,request.getHeader(LANG)));
+ return new ServerResponse(ResponseCode.SUCCESS.getCode(), data);
}
public static <T> ServerResponse<T> createBySuccess(String msg, T data) {
@@ -103,7 +103,7 @@
return new ServerResponse(ResponseCode.ERROR.getCode(), errormsg);
}
public static <T> ServerResponse<T> createByErrorMsg(String errormsg, HttpServletRequest request) {
- return new ServerResponse(ResponseCode.ERROR.getCode(), new GoogleTranslateUtil().translate(errormsg,request.getHeader(LANG)));
+ return new ServerResponse(ResponseCode.ERROR.getCode(), errormsg);
}
diff --git a/src/main/java/com/nq/controller/SmsApiController.java b/src/main/java/com/nq/controller/SmsApiController.java
index 0327f28..33a0a37 100644
--- a/src/main/java/com/nq/controller/SmsApiController.java
+++ b/src/main/java/com/nq/controller/SmsApiController.java
@@ -20,7 +20,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
@Controller
@@ -37,13 +40,14 @@
//注册用户 短信发送
@RequestMapping({"sendRegSms.do"})
@ResponseBody
- public ServerResponse sendRegSms(String phoneNum) {
+ public ServerResponse sendRegSms(@RequestParam("phoneNum") String phoneNum,
+ HttpServletRequest request) {
if (StringUtils.isBlank(phoneNum)) {
- return ServerResponse.createByErrorMsg("发送失败,手机号不能为空");
+ return ServerResponse.createByErrorMsg("发送失败,手机号不能为空",request);
}
smsUtil smsUtil = new smsUtil();
- log.info("smsphone"+phoneNum);
+ log.info("短信发送验证码手机号:"+phoneNum);
String code = smsUtil.sendSMS(phoneNum);
if (!StringUtils.isEmpty(code)) {
SiteSmsLog siteSmsLog = new SiteSmsLog();
@@ -54,9 +58,9 @@
siteSmsLog.setSmsTemplate("字段无用");
siteSmsLog.setAddTime(DateTimeUtil.getCurrentDate());
iSiteSmsLogService.addData(siteSmsLog);
- return ServerResponse.createBySuccessMsg("发送成功");
+ return ServerResponse.createBySuccessMsg("发送成功",request);
} else {
- return ServerResponse.createByErrorMsg("短信发送失败,请重试");
+ return ServerResponse.createByErrorMsg("短信发送失败,请重试",request);
}
}
diff --git a/src/main/java/com/nq/controller/UserApiController.java b/src/main/java/com/nq/controller/UserApiController.java
index baf50d6..ece4d7a 100644
--- a/src/main/java/com/nq/controller/UserApiController.java
+++ b/src/main/java/com/nq/controller/UserApiController.java
@@ -81,7 +81,11 @@
//注册
@RequestMapping(value = {"reg.do"}, method = {RequestMethod.POST})
@ResponseBody
- public ServerResponse reg(@RequestParam("agentCode") String agentCode, @RequestParam("phone") String phone, @RequestParam(value = "yzmCode", defaultValue = "") String yzmCode, @RequestParam("userPwd") String userPwd, HttpServletRequest httpServletRequest) {
+ public ServerResponse reg(@RequestParam("agentCode") String agentCode,
+ @RequestParam("phone") String phone,
+ @RequestParam(value = "yzmCode", defaultValue = "") String yzmCode,
+ @RequestParam("userPwd") String userPwd,
+ HttpServletRequest httpServletRequest) {
return this.iUserService.reg(yzmCode, agentCode, phone, userPwd, httpServletRequest);
}
diff --git a/src/main/java/com/nq/controller/UserPositionCheckDzController.java b/src/main/java/com/nq/controller/UserPositionCheckDzController.java
index 4af1c30..94b54c1 100644
--- a/src/main/java/com/nq/controller/UserPositionCheckDzController.java
+++ b/src/main/java/com/nq/controller/UserPositionCheckDzController.java
@@ -107,7 +107,7 @@
StockDz stockDz = this.stockDzMapper.selectOne(new QueryWrapper<StockDz>().eq("id", userPositionCheckDz.getDzId()));
- UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(), user.getId());
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
return ServerResponse.createByErrorMsg("用户账户有待补资金未补齐,审核失败");
}
@@ -132,7 +132,7 @@
userPosition.setId(null);
userPosition.setDzId(stockDz.getId());
userPositionMapper.insert(userPosition);
- userAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
+ userAssetsServices.availablebalanceChange(EStockType.ST.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
return ServerResponse.createBySuccessMsg("审核成功,订单已转客户持仓");
}
}
diff --git a/src/main/java/com/nq/controller/echo/EChoController.java b/src/main/java/com/nq/controller/echo/EChoController.java
index 6ab33d2..86bc687 100644
--- a/src/main/java/com/nq/controller/echo/EChoController.java
+++ b/src/main/java/com/nq/controller/echo/EChoController.java
@@ -3,6 +3,7 @@
import com.nq.common.ServerResponse;
import com.nq.dao.EChoMapper;
import com.nq.dao.UserAssetsMapper;
+import com.nq.enums.EStockType;
import com.nq.pojo.EChoBean;
import com.nq.pojo.User;
import com.nq.pojo.UserAssets;
@@ -62,7 +63,7 @@
}
}
User user = this.iUserService.getCurrentRefreshUser(request);
- UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(), user.getId());
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
}
diff --git a/src/main/java/com/nq/controller/protol/UserPayController.java b/src/main/java/com/nq/controller/protol/UserPayController.java
index c3b5986..e41692b 100644
--- a/src/main/java/com/nq/controller/protol/UserPayController.java
+++ b/src/main/java/com/nq/controller/protol/UserPayController.java
@@ -54,7 +54,6 @@
@RequestParam("payAmt") String payAmt,
@RequestParam("img") String currency,
HttpServletRequest request) {
- log.info("发起 fly 线上支付 payType = {} payAmt = {} currency = {}", new Object[]{payType, payAmt, currency});
return this.iPayService.flyPay(payType, payAmt, currency, request);
}
diff --git a/src/main/java/com/nq/dao/SiteNewsMapper.java b/src/main/java/com/nq/dao/SiteNewsMapper.java
index e1418d5..56aae10 100644
--- a/src/main/java/com/nq/dao/SiteNewsMapper.java
+++ b/src/main/java/com/nq/dao/SiteNewsMapper.java
@@ -1,5 +1,7 @@
package com.nq.dao;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.nq.pojo.AgentUser;
import com.nq.pojo.SiteNews;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
@@ -13,28 +15,8 @@
*/
@Mapper
@Repository
-public interface SiteNewsMapper {
+public interface SiteNewsMapper extends BaseMapper<SiteNews> {
- /**
- * [新增]
- * @author lr
- * @date 2020/08/05
- **/
- int insert(SiteNews siteNews);
-
- /**
- * [刪除]
- * @author lr
- * @date 2020/08/05
- **/
- int delete(int id);
-
- /**
- * [更新]
- * @author lr
- * @date 2020/08/05
- **/
- int update(SiteNews siteNews);
/**
* [查询] 根据主键 id 查询
diff --git a/src/main/java/com/nq/enums/EStockType.java b/src/main/java/com/nq/enums/EStockType.java
index 1f8703d..4d119a0 100644
--- a/src/main/java/com/nq/enums/EStockType.java
+++ b/src/main/java/com/nq/enums/EStockType.java
@@ -45,13 +45,14 @@
public static EStockType getEStockTypeByCode(String code){
if(EStockType.US.getCode().equals(code)){
return US;
-
}else if(EStockType.HK.getCode().equals(code)){
return HK;
}else if(EStockType.MAS.getCode().equals(code)){
return MAS;
}else if(EStockType.IN.getCode().equals(code)){
return IN;
+ }else if(EStockType.ST.getCode().equals(code)){
+ return ST;
}else{
return MAS;
}
diff --git a/src/main/java/com/nq/pojo/SiteLoginLog.java b/src/main/java/com/nq/pojo/SiteLoginLog.java
index 369cb15..20cc3cf 100644
--- a/src/main/java/com/nq/pojo/SiteLoginLog.java
+++ b/src/main/java/com/nq/pojo/SiteLoginLog.java
@@ -1,9 +1,13 @@
package com.nq.pojo;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
import java.util.Date;
public class SiteLoginLog {
+ @TableId(type = IdType.AUTO,value = "id")
private Integer id;
private Integer userId;
private String userName;
diff --git a/src/main/java/com/nq/pojo/SiteNews.java b/src/main/java/com/nq/pojo/SiteNews.java
index eab998c..07be3f1 100644
--- a/src/main/java/com/nq/pojo/SiteNews.java
+++ b/src/main/java/com/nq/pojo/SiteNews.java
@@ -1,6 +1,9 @@
package com.nq.pojo;
import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import javax.xml.soap.Text;
@@ -18,6 +21,7 @@
/**
* 新闻主键id
*/
+ @TableId(type = IdType.AUTO,value = "id")
private Integer id;
/**
@@ -79,8 +83,4 @@
* 新闻内容
*/
private String content;
-
- public SiteNews() {
- }
-
}
diff --git a/src/main/java/com/nq/service/IUserWithdrawService.java b/src/main/java/com/nq/service/IUserWithdrawService.java
index dd07350..7131830 100644
--- a/src/main/java/com/nq/service/IUserWithdrawService.java
+++ b/src/main/java/com/nq/service/IUserWithdrawService.java
@@ -31,4 +31,5 @@
ServerResponse deleteWithdraw(Integer withdrawId);
List<UserWithdraw> exportByAdmin( Integer agentId, Integer userId, String realName, Integer state, String beginTime, String endTime, HttpServletRequest request);
+
}
diff --git a/src/main/java/com/nq/service/impl/EchoServices.java b/src/main/java/com/nq/service/impl/EchoServices.java
index 972ddc6..fbb0dfc 100644
--- a/src/main/java/com/nq/service/impl/EchoServices.java
+++ b/src/main/java/com/nq/service/impl/EchoServices.java
@@ -77,7 +77,7 @@
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
.eq(UserAssets::getUserId, orderEchoBean.getUserId())
- .eq(UserAssets::getAccectType, "IN")
+ .eq(UserAssets::getAccectType, EStockType.ST.getCode())
);
userAssets.setAvailableBalance(userAssets.getAvailableBalance().subtract(money));
userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(money));
@@ -120,7 +120,7 @@
BigDecimal aml = incomeAmount.add(money);
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
.eq(UserAssets::getUserId, orderEchoBean.getUserId())
- .eq(UserAssets::getAccectType, "IN")
+ .eq(UserAssets::getAccectType, EStockType.ST.getCode())
);
if (userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0) {
continue;
diff --git a/src/main/java/com/nq/service/impl/PayServiceImpl.java b/src/main/java/com/nq/service/impl/PayServiceImpl.java
index e610557..0968cce 100644
--- a/src/main/java/com/nq/service/impl/PayServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/PayServiceImpl.java
@@ -234,6 +234,7 @@
userRecharge.setAgentId(user.getAgentId());
String ordersn = KeyUtils.getRechargeOrderSn();
userRecharge.setOrderSn(ordersn);
+ userRecharge.setPayChannel("1");
userRecharge.setPayChannel(sitePay.getChannelName());
userRecharge.setPayAmt(new BigDecimal(payAmt));
userRecharge.setOrderStatus(Integer.valueOf(0));
diff --git a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
index fb7a0d9..c7b3dcc 100644
--- a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
@@ -52,7 +52,7 @@
@Override
public int update(SiteNews model) {
- int ret = siteNewsMapper.update(model);
+ int ret = siteNewsMapper.updateById(model);
return ret>0 ? ret: 0;
}
@@ -63,7 +63,7 @@
public ServerResponse save(SiteNews model) {
int ret = 0;
if(model!=null && model.getId()>0){
- ret = siteNewsMapper.update(model);
+ ret = siteNewsMapper.updateById(model);
} else{
ret = siteNewsMapper.insert(model);
}
@@ -132,39 +132,58 @@
@Override
public void grabNews() {
- addNews(1, PropertiesUtil.getProperty("JS_IN_HTTP_URL") + "stock-markets?key=" + PropertiesUtil.getProperty("JS_IN_KEY") + "&type=6");
+ String apiUrl = PropertiesUtil.getProperty("ST_HTTP_API");
+ String apiKey = PropertiesUtil.getProperty("ST_KEY");
+
+ // 定义需要抓取的类型
+ int[] types = {1, 2, 3};
+
+ // 批量抓取新闻
+ for (int type : types) {
+ String url = apiUrl + "stock-markets?key=" + apiKey + "&type=" + type;
+ addNews(type, url);
+ }
}
private void addNews(Integer type, String url) {
try {
String newlist = HttpRequest.doGrabGet(url);
+
JSONArray jsonArray = JSONArray.fromObject(newlist);
+
if (jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String newsId = jsonObject.getString("id");
+
+ // 检查是否已经存在新闻
if (siteNewsMapper.getNewsBySourceIdCount(newsId) == 0) {
SiteNews siteNews = new SiteNews();
siteNews.setSourceId(newsId);
siteNews.setSourceName("");
siteNews.setTitle(jsonObject.getString("title"));
+
Long showTime = jsonObject.getLong("time");
siteNews.setShowTime(new Date(showTime * 1000));
- if(jsonObject.has("img")){
- convertBase64ToImage(jsonObject.getString("img"),PropertiesUtil.getProperty("ftp.address")+newsId+".jpg");
- siteNews.setImgurl(PropertiesUtil.getProperty("ftp.server.http.prefix")+newsId+".jpg");
+
+ if (jsonObject.has("img")) {
+ String imageUrl = jsonObject.getString("img");
+ String imagePath = PropertiesUtil.getProperty("ftp.address") + newsId + ".jpg";
+ convertBase64ToImage(imageUrl, imagePath);
+ siteNews.setImgurl(PropertiesUtil.getProperty("ftp.server.http.prefix") + newsId + ".jpg");
}
+
siteNews.setDescription(jsonObject.getString("content"));
siteNews.setContent(jsonObject.getString("content"));
siteNews.setStatus(1);
- siteNews.setType(type);
+ siteNews.setType(type == 3 ? 4 : type); // type == 3 时设为 4
+
siteNewsMapper.insert(siteNews);
}
}
}
} catch (Exception e) {
- e.printStackTrace();
- log.error("添加新闻出现异常: " + e.getMessage());
+ log.error("添加新闻时出错,URL: {}, 类型: {}, 错误信息: {}", url, type, e.getMessage(), e);
}
}
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index 5aefa76..7b896d8 100644
--- a/src/main/java/com/nq/service/impl/StockServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -134,7 +134,7 @@
List<Stock> stockList = new ArrayList<>();
if (stockType.equals("99")) {
PageHelper.startPage(pageNum, pageSize);
- stockList.addAll(stockMapper.findZtStockListByKeyWords(keyWords, stockPlate, "IN", Integer.valueOf(0)));
+ stockList.addAll(stockMapper.findZtStockListByKeyWords(keyWords, stockPlate, EStockType.ST.getCode(), Integer.valueOf(0)));
} else if (stockType.equals("100")) {
User user = iUserService.getCurrentRefreshUser(request);
if (user == null) {
@@ -440,7 +440,7 @@
Gson gson = new Gson();
List<kData> dataList = gson.fromJson(object.toString(), new TypeToken<List<kData>>(){}.getType());
- Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<Stock>().eq(Stock::getStockCode, pid).eq(Stock::getStockType, "IN"));
+ Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<Stock>().eq(Stock::getStockCode, pid).eq(Stock::getStockType, EStockType.ST.getCode()));
BigDecimal nowPrice = iPriceServices.getNowPrice(stock.getStockCode());
Map singleStock = getSingleStock(stock.getStockCode());
StockVO stockVO = (StockVO)singleStock.get("stock");
diff --git a/src/main/java/com/nq/service/impl/TradingHourServiceImpl.java b/src/main/java/com/nq/service/impl/TradingHourServiceImpl.java
index 0d35cf8..97ee135 100644
--- a/src/main/java/com/nq/service/impl/TradingHourServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/TradingHourServiceImpl.java
@@ -8,6 +8,7 @@
import com.nq.dao.StockSettingMapper;
import com.nq.dao.StockTimeSettingMapper;
import com.nq.dao.TradingHourMapper;
+import com.nq.enums.EStockType;
import com.nq.pojo.Stock;
import com.nq.pojo.StockSetting;
import com.nq.pojo.StockTimeSetting;
@@ -48,7 +49,7 @@
@Override
public Boolean timeCheck(String stockCode) {
StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code",stockCode));
- StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type","IN"));
+ StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type", EStockType.ST.getCode()));
if(stockSetting!= null){
// 说明进入盘前交易或者盘后交易时间
Date newDate = new Date();
diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 6a5912d..e6fb068 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -144,7 +144,7 @@
userRecharge.setPayAmt(new BigDecimal(amt.intValue()));
userRecharge.setAddTime(new Date());
userRecharge.setPayTime(new Date());
- userRecharge.setOrderStatus(Integer.valueOf(1));
+ userRecharge.setOrderStatus(Integer.valueOf(0));
userRecharge.setPayId(1);
userRechargeMapper.insert(userRecharge);
}
@@ -211,9 +211,9 @@
userAssets.setAmountToBeCovered(BigDecimal.ZERO);
userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
}else{
- BigDecimal amountToBeCovered = userAssets.getAmountToBeCovered().subtract(amount);
userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount));
- userAssets.setAmountToBeCovered(amountToBeCovered);
+ userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
+ userAssets.setAmountToBeCovered(availableBalance.negate());
}
}else{
userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 2ff418f..d9cb1b3 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -344,7 +344,7 @@
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
.eq(UserAssets::getUserId, userPosition.getUserId())
- .eq(UserAssets::getAccectType, "IN")
+ .eq(UserAssets::getAccectType, EStockType.ST.getCode())
);
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
@@ -1330,7 +1330,7 @@
// StringBuffer gid = new StringBuffer();
// gid.append(stockSubscribe.getStockType()!=null?stockSubscribe.getStockType():"");
// gid.append(userStockSubscribe.getNewCode()!=null?userStockSubscribe.getNewCode():"stock code invaild");
- userPosition.setStockGid("IN");
+ userPosition.setStockGid(EStockType.ST.getCode());
userPosition.setBuyOrderId(GeneratePosition.getPositionId());
userPosition.setBuyOrderTime(new Date());
userPosition.setBuyOrderPrice(userStockSubscribe.getBuyPrice());
@@ -1384,12 +1384,12 @@
userPosition.setNewId(stockSubscribe.getNewlistId());
int ret = 0;
ret = this.userPositionMapper.insert(userPosition);
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", userPosition.getUserId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(), userPosition.getUserId());
if(null == userAssets){
return ServerResponse.createByErrorMsg("新股转持仓失败");
}
userAssetsMapper.updateById(userAssets);
- iUserAssetsServices.availablebalanceChange("IN", userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", "");
+ iUserAssetsServices.availablebalanceChange(EStockType.ST.getCode(), userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", "");
if (ret > 0) {
userStockSubscribe.setStatus(5);
userStockSubscribeMapper.update1(userStockSubscribe);
@@ -1683,7 +1683,7 @@
if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
return ServerResponse.createByErrorMsg("Order failed, account has been locked");
}
- UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(), user.getId());
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
}
@@ -1733,8 +1733,8 @@
UserPosition userPosition = getUserPosition(dzId,num, user, stockDz, nowPrice, stock, buyAmt);
userPositionMapper.insert(userPosition);
BigDecimal buy_fee_amt = siteSettingBuyFee.multiply(buyAmt);
- userAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
- iUserAssetsServices.availablebalanceChange("IN", userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", "");
+ userAssetsServices.availablebalanceChange(EStockType.ST.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
+ iUserAssetsServices.availablebalanceChange(EStockType.ST.getCode(), userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", "");
return ServerResponse.createBySuccess("购买成功", request);
}
@@ -1792,7 +1792,7 @@
for (UserPosition position : list) {
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
.eq(UserAssets::getUserId, position.getUserId())
- .eq(UserAssets::getAccectType, "IN")
+ .eq(UserAssets::getAccectType, EStockType.ST.getCode())
);
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
continue;
diff --git a/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java b/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
index ea2e2ff..59c96e9 100644
--- a/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
@@ -223,8 +223,8 @@
for (int i = 0; i <userRecharges.size() ; i++) {
SitePay s = sitePayMapper.selectById(userRecharges.get(i).getPayId());
- userRecharges.get(i).setAssetsType(EStockType.IN.getSymbol1());
- userRecharges.get(i).setChannelName(EStockType.IN.getSymbol());
+ userRecharges.get(i).setAssetsType(EStockType.ST.getSymbol1());
+ userRecharges.get(i).setChannelName(EStockType.ST.getSymbol());
}
return ServerResponse.createBySuccess(pageInfo);
@@ -344,7 +344,7 @@
userRecharge.setPayTime(new Date());
userRecharge.setOrderStatus(Integer.valueOf(1));
userRecharge.setPayId(1);
- userAssetsServices.availablebalanceChange(EStockType.IN.getCode(),
+ userAssetsServices.availablebalanceChange(EStockType.ST.getCode(),
userId,EUserAssets.TOP_UP,new BigDecimal(amt),"","");
int insertCount = this.userRechargeMapper.insert(userRecharge);
if (insertCount > 0) {
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 922b26a..1cc5b55 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -140,21 +140,19 @@
IUserService iUserService;
- public ServerResponse reg(String yzmCode, String agentCode, String phone, String userPwd, HttpServletRequest request) {
+ public ServerResponse reg(String yzmCode, String agentCode, String phone, String userPwd,HttpServletRequest request) {
if (StringUtils.isBlank(agentCode) || StringUtils.isBlank(phone) ||
StringUtils.isBlank(userPwd) || StringUtils.isBlank(yzmCode)) {
return ServerResponse.createByErrorMsg("注册失败。该参数不能为空",request);
}
- String keys = "AliyunSmsCode:" + phone;
- String redis_yzm = RedisShardedPoolUtils.get(keys);
+ String redis_yzm = RedisShardedPoolUtils.get(phone);
log.info("redis_yzm = {},yzmCode = {}", redis_yzm, yzmCode);
- if (!yzmCode.equals(redis_yzm) && !"6666".equals(yzmCode)) {
- return ServerResponse.createByErrorMsg("由于验证码不正确,注册失败。过程",request);
+ if (!yzmCode.equals(redis_yzm)) {
+ return ServerResponse.createByErrorMsg("由于验证码不正确,注册失败。", request);
}
-
AgentUser agentUser = this.iAgentUserService.findByCode(agentCode);
if (agentUser == null) {
@@ -210,7 +208,7 @@
if (user.getIsLogin().intValue() == 1) {
return ServerResponse.createByErrorMsg("登录失败。账户锁定",request);
}
- userAssetsServices.assetsByTypeAndUserId(EStockType.IN.getCode(),user.getId());
+ userAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(),user.getId());
this.iSiteLoginLogService.saveLog(user, request);
return ServerResponse.createBySuccess(user);
}
@@ -613,7 +611,7 @@
userPositions = userPositionMapper.
findMyPositionByCodeAndSpell(userId,
"","",
- 0, "IN");
+ 0, EStockType.ST.getCode());
List<UserPositionVO> userPositionVOS = Lists.newArrayList();
@@ -770,7 +768,7 @@
ServerResponse money = iUserService.getMoney(user.getId());
List<RUserAssets> rUserAssetsList = (List<RUserAssets>) money.getData();
RUserAssets rUserAssets = rUserAssetsList.stream()
- .filter(stock -> "IN".equals(stock.getAccectType()))
+ .filter(stock -> EStockType.ST.getCode().equals(stock.getAccectType()))
.findFirst()
.orElse(null);
@@ -828,8 +826,8 @@
int insertCount = this.userMapper.insert(user);
dbUser = userMapper.selectOne(queryWrapper);
- userAssetsServices.getAvailableBalance(EStockType.IN.getCode(),dbUser.getId() );
- userAssetsServices.availablebalanceChange(EStockType.IN.getCode(),dbUser.getId(),EUserAssets.TOP_UP,new BigDecimal(amt),"","");
+ userAssetsServices.getAvailableBalance(EStockType.ST.getCode(),dbUser.getId() );
+ userAssetsServices.availablebalanceChange(EStockType.ST.getCode(),dbUser.getId(),EUserAssets.TOP_UP,new BigDecimal(amt),"","");
if (insertCount > 0) {
return ServerResponse.createBySuccessMsg("Success");
}
@@ -854,7 +852,7 @@
ServerResponse money = iUserService.getMoney(user.getId());
List<RUserAssets> rUserAssetsList = (List<RUserAssets>) money.getData();
RUserAssets rUserAssets = rUserAssetsList.stream()
- .filter(stock -> "IN".equals(stock.getAccectType()))
+ .filter(stock -> EStockType.ST.getCode().equals(stock.getAccectType()))
.findFirst()
.orElse(null);
diff --git a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
index a9f6262..5b338bf 100644
--- a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
@@ -85,7 +85,7 @@
return ServerResponse.createByErrorMsg("参数错误",request);
}
User user = iUserService.getCurrentRefreshUser(request);
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN",user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(),user.getId());
if (model.getNewCode() != null) {
StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>()
.eq("newlist_id", model.getNewlistId()));
@@ -190,7 +190,7 @@
// bound = new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice());
// }
//
- BigDecimal useEnaAmount = iUserAssetsServices.getAvailableBalance(EStockType.IN.getCode(), user.getId());
+ BigDecimal useEnaAmount = iUserAssetsServices.getAvailableBalance(EStockType.ST.getCode(), user.getId());
if(useEnaAmount.compareTo(bound)<0){
return ServerResponse.createByErrorMsg("余额不足,配售失败",request);
}
@@ -209,7 +209,7 @@
UserStockSubscribe userStockSubscribe = Convert.convert(UserStockSubscribe.class, model);
userStockSubscribe.setNewStockId(stockSubscribe.getNewlistId());
ret = userStockSubscribeMapper.insert(userStockSubscribe);
- iUserAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
+ iUserAssetsServices.availablebalanceChange(EStockType.ST.getCode(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
if (ret > 0) {
return ServerResponse.createBySuccessMsg("配售成功",request);
} else {
@@ -253,7 +253,7 @@
}
//客户中签直接扣除客户账户可用资金
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", userStockSubscribe.getUserId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(), userStockSubscribe.getUserId());
if (model.getStatus() == 3 && model.getApplyNumber() != null){
if(stockSubscribe.getType() == 1){
model.setBond((stockSubscribe.getMinPrice() != null ? stockSubscribe.getMinPrice() : stockSubscribe.getPrice()).multiply(BigDecimal.valueOf(model.getApplyNumber())));
@@ -293,7 +293,7 @@
}
BigDecimal cCount = new BigDecimal(model.getApplyNums()-model.getApplyNumber());
BigDecimal tMoney = ((stockSubscribe.getMinPrice() != null ? stockSubscribe.getMinPrice() : stockSubscribe.getPrice())).multiply(cCount);
- iUserAssetsServices.availablebalanceChange(EStockType.IN.getCode(),userStockSubscribe.getUserId(),
+ iUserAssetsServices.availablebalanceChange(EStockType.ST.getCode(),userStockSubscribe.getUserId(),
EUserAssets.TOP_UP,tMoney,"","");
model.setBond((stockSubscribe.getMinPrice() != null ? stockSubscribe.getMinPrice() : stockSubscribe.getPrice()).multiply(BigDecimal.valueOf(model.getApplyNumber())));
model.setDbMoney(BigDecimal.ZERO);
@@ -497,14 +497,14 @@
userStockSubscribe.setSubmitTime(DateTimeUtil.getCurrentDate());
userStockSubscribe.setStatus(4);
BigDecimal bigDecimal = iUserAssetsServices.
- getAvailableBalance(EStockType.IN.getCode(),
+ getAvailableBalance(EStockType.ST.getCode(),
userStockSubscribe.getUserId());
BigDecimal multiply = userStockSubscribe.getBuyPrice().multiply(new BigDecimal(userStockSubscribe.getApplyNumber()));
if(bigDecimal.compareTo(multiply) <= 0){
return ServerResponse.createByErrorMsg("余额不足",request);
}
- iUserAssetsServices.availablebalanceChange(EStockType.IN.getCode(),userStockSubscribe.getUserId(),
+ iUserAssetsServices.availablebalanceChange(EStockType.ST.getCode(),userStockSubscribe.getUserId(),
EUserAssets.BUY,multiply.negate(),"","");
userStockSubscribe.setDbMoney(BigDecimal.ZERO);
userStockSubscribeMapper.update1(userStockSubscribe);
diff --git a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
index 6cd9324..24565fa 100644
--- a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
@@ -5,6 +5,7 @@
import com.google.gson.Gson;
import com.nq.dao.*;
import com.nq.enums.EConfigKey;
+import com.nq.enums.EStockType;
import com.nq.enums.EUserAssets;
import com.nq.pay.PayUtil;
import com.nq.pojo.*;
@@ -94,6 +95,9 @@
@Autowired
UserAssetsMapper userAssetsMapper;
+ @Autowired
+ UserAssetsServices userAssetsServices;
+
@Resource
StockTimeSettingMapper stockTimeSettingMapper;
@@ -168,7 +172,7 @@
}
private boolean getServerResponse() {
- StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type","IN"));
+ StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type", EStockType.ST.getCode()));
if(stockTimeSetting == null){
return false;
}
@@ -236,7 +240,7 @@
User user = this.userMapper.selectById(userWithdraw.getUserId());
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(), user.getId());
if (userAssets == null) {
return ServerResponse.createByErrorMsg("用户资金账户不存在");
}
@@ -349,7 +353,7 @@
if (user == null) {
return ServerResponse.createByErrorMsg("用户不存在");
}
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(), user.getId());
if (userAssets == null) {
return ServerResponse.createByErrorMsg("用户资金账户不存在");
}
diff --git a/src/main/java/com/nq/utils/redis/RedisKeyConstant.java b/src/main/java/com/nq/utils/redis/RedisKeyConstant.java
index 4fe11e6..54cebd0 100644
--- a/src/main/java/com/nq/utils/redis/RedisKeyConstant.java
+++ b/src/main/java/com/nq/utils/redis/RedisKeyConstant.java
@@ -26,4 +26,12 @@
public static final String RK_COMPANY_INFO = "rk_company_info";
+ /**
+ * 短信code
+ */
+ public static final String verification_code= "verification_code";
+
+
+
+
}
diff --git a/src/main/java/com/nq/utils/smsUtil/smsUtil.java b/src/main/java/com/nq/utils/smsUtil/smsUtil.java
index b885f4a..bef3a06 100644
--- a/src/main/java/com/nq/utils/smsUtil/smsUtil.java
+++ b/src/main/java/com/nq/utils/smsUtil/smsUtil.java
@@ -1,8 +1,10 @@
package com.nq.utils.smsUtil;
+import com.google.gson.Gson;
import com.nq.controller.SmsApiController;
import com.nq.utils.PropertiesUtil;
import com.nq.utils.pay.CmcPayOuterRequestUtil;
+import com.nq.utils.redis.RedisKeyConstant;
import com.nq.utils.redis.RedisShardedPoolUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.slf4j.Logger;
@@ -16,38 +18,25 @@
private static final Logger log = LoggerFactory.getLogger(SmsApiController.class);
public String sendSMS(String telephone) {
- String code = RandomStringUtils.randomNumeric(4);
- CmcPayOuterRequestUtil requestUtil = new CmcPayOuterRequestUtil();
-
- String sign = "【短信签名】";
- String uid = PropertiesUtil.getProperty("dxb.sms.USERNAME");
- String key = PropertiesUtil.getProperty("dxb.sms.PASSWORD");
-// String coding = PropertiesUtil.getProperty("wj.sms.coding");
- String smscontent = sign+"您正在申请手机注册,验证码为:" + code + ",5分钟内有效!";
- //设置签名
-
+ // 生成6位数字验证码
+ String verificationCode = RandomStringUtils.randomNumeric(6);
try {
- uid = URLEncoder.encode(uid,"UTF-8");
- smscontent = URLEncoder.encode(smscontent,"UTF-8");
- } catch (UnsupportedEncodingException e){
- e.printStackTrace();
+ // 将验证码存入 Redis,设置 30 秒过期时间
+ String redisKey = RedisKeyConstant.verification_code + ":" + telephone; // 使用电话号码作为唯一标识符
+ RedisShardedPoolUtils.setEx(redisKey, verificationCode, 30);
+ } catch (Exception e) {
+ // 捕获异常并记录日志,避免程序崩溃
+ System.err.println("Error storing verification code in Redis: " + e.getMessage());
+ // 你可以根据需要做进一步的异常处理,比如重新抛出异常
}
-// String url = "http://"+ cod+ing +".api.smschinese.cn/?Uid="+ uid +"&Key="+ key +"&smsMob=" + telephone + "&smsText="+sign+smscontent;
- String url ="https://api.smsbao.com/sms?u="+uid+"&p="+key+"&m="+telephone+"&c="+smscontent;
- log.info("smsurl"+url);
- String result = requestUtil.sendGet(url);
- log.info("smsresult="+result+"==code="+code);
- if (Integer.valueOf(result) < 0) {
- return "";
- } else {
- String keys = "AliyunSmsCode:" + telephone;
- RedisShardedPoolUtils.setEx(keys, code, 5400);
- return code;
- }
+
+ // 返回验证码
+ return verificationCode;
}
+
/**
* 找回密码
*/
diff --git a/src/main/java/com/nq/utils/stock/sina/StockApi.java b/src/main/java/com/nq/utils/stock/sina/StockApi.java
index 74aaddc..369dc63 100644
--- a/src/main/java/com/nq/utils/stock/sina/StockApi.java
+++ b/src/main/java/com/nq/utils/stock/sina/StockApi.java
@@ -44,7 +44,7 @@
stockListVO.setColor(0);
}else{
stockListVO.setColor(1);
- stockListVO.setHcrateP("+"+realTimeStock.getPcp()+"%");
+ stockListVO.setHcrateP(realTimeStock.getPcp()+"%");
}
stockListVO.setNowPrice(realTimeStock.getLast());
stockListVO.setToday_max(realTimeStock.getHigh());
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 cb0aa05..7acd26d 100644
--- a/src/main/java/com/nq/utils/task/news/NewsTask.java
+++ b/src/main/java/com/nq/utils/task/news/NewsTask.java
@@ -38,7 +38,7 @@
/*
* 新聞資訊抓取
* */
- @Scheduled(cron = "0 0/5 * * * ?")
+ @Scheduled(cron = "0/10 * * * * ?")
public void NewsInfoTask() {
if (NewsInfoTask.get()) { // 判断任务是否在处理中
return;
@@ -57,14 +57,4 @@
}
}
}
-
-
-
- /*
- * 新聞公告抓取
- * */
-// @Scheduled(cron = "0 0/30 9-20 * * ?")
-// public void ArtInfoTask() {
-// this.iSiteArticleService.grabArticle();
-// }
}
diff --git a/src/main/java/com/nq/utils/task/stock/CarryPositionTask.java b/src/main/java/com/nq/utils/task/stock/CarryPositionTask.java
index 9791e1a..a7c3508 100644
--- a/src/main/java/com/nq/utils/task/stock/CarryPositionTask.java
+++ b/src/main/java/com/nq/utils/task/stock/CarryPositionTask.java
@@ -9,6 +9,7 @@
import com.nq.dao.UserAssetsMapper;
import com.nq.dao.UserMapper;
import com.nq.dao.UserStockSubscribeMapper;
+import com.nq.enums.EStockType;
import com.nq.pojo.StockSubscribe;
import com.nq.pojo.User;
import com.nq.pojo.UserAssets;
@@ -113,7 +114,7 @@
List<UserStockSubscribe> userStockSubscribes = userStockSubscribeMapper.selectList(new LambdaQueryWrapper<UserStockSubscribe>()
.eq(UserStockSubscribe::getStatus, 3));
userStockSubscribes.forEach(f->{
- UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("IN",f.getUserId());
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId(EStockType.ST.getCode(),f.getUserId());
if(null != userAssets && userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) == 0){
f.setStatus(4);
userStockSubscribeMapper.updateById(f);
diff --git a/src/main/java/com/nq/utils/task/stock/StockTask.java b/src/main/java/com/nq/utils/task/stock/StockTask.java
index 635286c..97dc181 100644
--- a/src/main/java/com/nq/utils/task/stock/StockTask.java
+++ b/src/main/java/com/nq/utils/task/stock/StockTask.java
@@ -69,7 +69,7 @@
if (syncINStockDataLock.tryLock()) {
try {
syncINStockData.set(true); // 设置处理中标识为true
- loadAllStock(EStockType.IN);
+ loadAllStock(EStockType.ST);
} finally {
syncINStockDataLock.unlock();
syncINStockData.set(false); // 设置处理中标识为false
@@ -82,31 +82,31 @@
* 同步美国股票
*/
// @Scheduled(cron = "0 0/30 * * * ?")
- public void loadStockCompanies() {
- loadAllCompanies();
- }
-
-
- /**
- * 加载公司信息
- */
- public void loadAllCompanies() {
- List<Stock> list = stockMapper.findStockList();
- for (int i = 0; i < list.size(); i++) {
- Stock stock = list.get(i);
- EStockType eStockType = EStockType.getEStockTypeByCode(stock.getStockType());
- String result = HttpClientRequest.doGet(eStockType.stockUrl + "companies?pid=+" + stock.getStockCode() + "+country_id=" + eStockType.getContryId() + "&size=1&page=1&key=" + eStockType.stockKey);
- try {
- JSONObject jsonObject = JSONObject.parseObject(result);
- JSONObject companiesInfo = jsonObject.getJSONArray("data").getJSONObject(0);
- RedisKeyUtil.setCacheCompanies(stock, new Gson().toJson(companiesInfo));
- } catch (Exception e) {
- log.info("");
-
- }
- }
-
- }
+// public void loadStockCompanies() {
+// loadAllCompanies();
+// }
+//
+//
+// /**
+// * 加载公司信息
+// */
+// public void loadAllCompanies() {
+// List<Stock> list = stockMapper.findStockList();
+// for (int i = 0; i < list.size(); i++) {
+// Stock stock = list.get(i);
+// EStockType eStockType = EStockType.getEStockTypeByCode(stock.getStockType());
+// String result = HttpClientRequest.doGet(eStockType.stockUrl + "companies?pid=+" + stock.getStockCode() + "+country_id=" + eStockType.getContryId() + "&size=1&page=1&key=" + eStockType.stockKey);
+// try {
+// JSONObject jsonObject = JSONObject.parseObject(result);
+// JSONObject companiesInfo = jsonObject.getJSONArray("data").getJSONObject(0);
+// RedisKeyUtil.setCacheCompanies(stock, new Gson().toJson(companiesInfo));
+// } catch (Exception e) {
+// log.info("");
+//
+// }
+// }
+//
+// }
/**
* 加载所有股票数据
@@ -178,26 +178,26 @@
* 强制平仓
*/
// @Scheduled(cron = "0/1 * * * * ?")
- public void stockConstraint() {
- if (stockConstraint.get()) { // 判断任务是否在处理中
- return;
- }
- if (stockConstraintLock.tryLock()) {
- try {
- stockConstraint.set(true); // 设置处理中标识为true
- List<UserPosition> userPositions = userPositionMapper.selectList(new LambdaQueryWrapper<UserPosition>().isNull(UserPosition::getSellOrderId));
- if (CollectionUtils.isNotEmpty(userPositions)) {
- userPositionService.stockConstraint(userPositions);
- }
- } catch (Exception e) {
- e.printStackTrace();
- log.error("强制平仓任务错误:" + e.getMessage());
- } finally {
- stockConstraintLock.unlock();
- stockConstraint.set(false); // 设置处理中标识为false
- }
- } else {
- log.info("强制平仓任务--------->上次任务还未执行完成,本次任务忽略");
- }
- }
+// public void stockConstraint() {
+// if (stockConstraint.get()) { // 判断任务是否在处理中
+// return;
+// }
+// if (stockConstraintLock.tryLock()) {
+// try {
+// stockConstraint.set(true); // 设置处理中标识为true
+// List<UserPosition> userPositions = userPositionMapper.selectList(new LambdaQueryWrapper<UserPosition>().isNull(UserPosition::getSellOrderId));
+// if (CollectionUtils.isNotEmpty(userPositions)) {
+// userPositionService.stockConstraint(userPositions);
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// log.error("强制平仓任务错误:" + e.getMessage());
+// } finally {
+// stockConstraintLock.unlock();
+// stockConstraint.set(false); // 设置处理中标识为false
+// }
+// } else {
+// log.info("强制平仓任务--------->上次任务还未执行完成,本次任务忽略");
+// }
+// }
}
diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index 4fee968..e27438f 100644
--- a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
+++ b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
@@ -22,7 +22,7 @@
Map<String, WebSocketClient> retMap = new HashMap<>(2);
try {
- WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("ST_HTTP_API")),EStockType.IN);
+ WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("ST_WS_URL")),EStockType.ST);
websocketRunClient.connect();
websocketRunClient.setConnectionLostTimeout(0);
new Thread(() -> {
diff --git a/src/main/java/com/nq/ws/WebsocketRunClient.java b/src/main/java/com/nq/ws/WebsocketRunClient.java
index 907681e..763aa6d 100644
--- a/src/main/java/com/nq/ws/WebsocketRunClient.java
+++ b/src/main/java/com/nq/ws/WebsocketRunClient.java
@@ -45,24 +45,23 @@
static {
httpPost = new HttpPost("http://127.0.0.1:8001/api/sendNotification"); // 初始化 HttpPost
}
-
+ private Timer heartbeatTimer;
@Override
public void onOpen(ServerHandshake serverHandshake) {
send(("key:"+ eStockType.getStockKey()+":"+eStockType.getContryId()).getBytes());
-// Timer heartbeatTimer;
-// // 启动心跳定时器
-// heartbeatTimer = new Timer();
-// heartbeatTimer.schedule(new TimerTask() {
-// @Override
-// public void run() {
-// send(("key:"+ eStockType.getStockKey()+":"+eStockType.getContryId()).getBytes());
-// }
-// }, 0, 3000); // 每3秒发送一次心跳消息
+ // 启动心跳定时器
+ heartbeatTimer = new Timer();
+ heartbeatTimer.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ send("heartbeat");
+ }
+ }, 0, 3000); // 每3秒发送一次心跳消息
}
@Override
public void onMessage(String s) {
- if(!s.equals("pong") && !s.equals("身份验证成功")){
+ if(!s.equals("pong") && !s.equals("身份验证成功") && !s.equals("请先身份校验")){
Map<String, String> stringObjectMap = jsonToMap(s);
StockRealTimeBean stockRealTimeBean = new StockRealTimeBean();
stockRealTimeBean.setPid(stringObjectMap.get("Id").toString());
@@ -74,14 +73,16 @@
stockRealTimeBean.setPc(stringObjectMap.get("Chg").toString());
stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct").toString()+"%");
stockRealTimeBean.setTime(stringObjectMap.get("Time").toString());
- RedisKeyUtil.setCacheRealTimeStock(EStockType.IN,stockRealTimeBean);
+ RedisKeyUtil.setCacheRealTimeStock(EStockType.ST,stockRealTimeBean);
ObjectMapper objectMapper = new ObjectMapper();
try {
if(!stockRealTimeBean.getPcp().contains("-")){
stockRealTimeBean.setPcp("+"+stringObjectMap.get("ChgPct").toString()+"%");
}
String json = objectMapper.writeValueAsString(stockRealTimeBean);
- sendLoca(json);
+// sendLoca(json);
+ StockRealTimeBean stockDetailBean = new Gson().fromJson(s, StockRealTimeBean.class);
+ RedisKeyUtil.setCacheRealTimeStock(EStockType.ST,stockDetailBean);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
@@ -96,13 +97,24 @@
}
@Override
- public void onClose(int i, String s, boolean b) {
- log.info("websocket 印度股票 关闭"+1);
+ public void onClose(int code, String reason, boolean remote) {
+ System.out.println("连接关闭: " + reason);
+ if (heartbeatTimer != null) {
+ heartbeatTimer.cancel(); // 取消心跳定时器
+ }
+ // 尝试重新连接
+ try {
+ System.out.println("尝试重新连接...");
+ Thread.sleep(10000); // 10秒后尝试重新连接
+ connect(); // 重新连接
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
}
@Override
public void onError(Exception e) {
- log.info("websocket 错误");
+ log.info("websocket 错误"+e.getMessage());
}
public void sendLoca(String message) {
diff --git a/src/main/java/com/nq/ws/WsClientConfig.java b/src/main/java/com/nq/ws/WsClientConfig.java
index c7ff53c..e57e579 100644
--- a/src/main/java/com/nq/ws/WsClientConfig.java
+++ b/src/main/java/com/nq/ws/WsClientConfig.java
@@ -43,9 +43,9 @@
//@Configuration
//public class WsClientConfig {
//
-// private static final String SERVER_URL = PropertiesUtil.getProperty("JS_IN_HTTP_API");
-// private static final String AUTH_KEY = PropertiesUtil.getProperty("JS_IN_KEY");
-// private static final String ROOM_ID = "14";
+// private static final String SERVER_URL = PropertiesUtil.getProperty("ST_HTTP_API");
+// private static final String AUTH_KEY = PropertiesUtil.getProperty("ST_KEY");
+// private static final String ROOM_ID = "52";
// private static Socket socket;
//
// private static HttpClient httpClient = HttpClients.createDefault(); // 单例化 HttpClient
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 424c1b1..70dd692 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -60,7 +60,7 @@
HK_WS_URL = ws://test-ws.js-stock.top
HK_KEY = mG8QQDdjGuLjLnrryd0B
-ST_HTTP_API = http://api-sa.js-stock.top
+ST_HTTP_API = http://api-sa.js-stock.top/
ST_WS_URL = ws://api-sa-ws.js-stock.top
ST_KEY = eiFMWvMcKgVlCYKD7S4y
diff --git a/src/main/resources/mapper/SiteNewsMapper.xml b/src/main/resources/mapper/SiteNewsMapper.xml
index 65f7c03..5caa77b 100644
--- a/src/main/resources/mapper/SiteNewsMapper.xml
+++ b/src/main/resources/mapper/SiteNewsMapper.xml
@@ -35,111 +35,6 @@
content
</sql>
- <insert id="insert" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.nq.pojo.SiteNews">
- INSERT INTO site_news
- <trim prefix="(" suffix=")" suffixOverrides=",">
- <if test ='null != type'>
- type,
- </if>
- <if test ='null != title'>
- title,
- </if>
- <if test ='null != sourceId'>
- source_id,
- </if>
- <if test ='null != sourceName'>
- source_name,
- </if>
- <if test ='null != views'>
- views,
- </if>
- <if test ='null != status'>
- status,
- </if>
- <if test ='null != showTime'>
- show_time,
- </if>
- <if test ='null != addTime'>
- add_time,
- </if>
- <if test ='null != updateTime'>
- update_time,
- </if>
- <if test ='null != imgurl'>
- imgurl,
- </if>
- <if test ='null != description'>
- description,
- </if>
- <if test ='null != content'>
- content
- </if>
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides=",">
- <if test ='null != type'>
- #{type},
- </if>
- <if test ='null != title'>
- #{title},
- </if>
- <if test ='null != sourceId'>
- #{sourceId},
- </if>
- <if test ='null != sourceName'>
- #{sourceName},
- </if>
- <if test ='null != views'>
- #{views},
- </if>
- <if test ='null != status'>
- #{status},
- </if>
- <if test ='null != showTime'>
- #{showTime},
- </if>
- <if test ='null != addTime'>
- #{addTime},
- </if>
- <if test ='null != updateTime'>
- #{updateTime},
- </if>
- <if test ='null != imgurl'>
- #{imgurl},
- </if>
- <if test ='null != description'>
- #{description},
- </if>
- <if test ='null != content'>
- #{content}
- </if>
- </trim>
- </insert>
-
- <delete id="delete" >
- DELETE FROM site_news
- WHERE id = #{id}
- </delete>
-
- <update id="update" parameterType="com.nq.pojo.SiteNews">
- UPDATE site_news
- <set>
- <if test ='null != type'>type = #{type},</if>
- <if test ='null != title'>title = #{title},</if>
- <if test ='null != sourceId'>source_id = #{sourceId},</if>
- <if test ='null != sourceName'>source_name = #{sourceName},</if>
- <if test ='null != views'>views = #{views},</if>
- <if test ='null != status'>status = #{status},</if>
- <if test ='null != showTime'>show_time = #{showTime},</if>
- <if test ='null != addTime'>add_time = #{addTime},</if>
- <if test ='null != updateTime'>update_time = #{updateTime},</if>
- <if test ='null != imgurl'>imgurl = #{imgurl},</if>
- <if test ='null != description'>description = #{description},</if>
- <if test ='null != content'>content = #{content}</if>
- </set>
- WHERE id = #{id}
- </update>
-
-
<select id="load" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM site_news
--
Gitblit v1.9.3