From b6c17624a50c6fe44049e63a1854822838a1675a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 04 Nov 2025 17:16:20 +0800
Subject: [PATCH] 1
---
src/main/resources/application.properties | 2
src/main/java/com/nq/ws/WebsocketRunClient.java | 2 +
src/main/java/com/nq/controller/protol/UserController.java | 17 ++++++++
src/main/java/com/nq/pojo/StockRealTimeBean.java | 1
src/main/java/com/nq/service/impl/PriceServicesImpl.java | 36 +++++++++---------
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 4 +
src/main/java/com/nq/service/UserPendingorderService.java | 2 +
src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java | 35 +++++++++++++++++
8 files changed, 78 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/nq/controller/protol/UserController.java b/src/main/java/com/nq/controller/protol/UserController.java
index 4bd5c42..f91a9a4 100644
--- a/src/main/java/com/nq/controller/protol/UserController.java
+++ b/src/main/java/com/nq/controller/protol/UserController.java
@@ -213,6 +213,23 @@
}
return serverResponse;
}
+
+ //挂单操作-撤销
+ @RequestMapping({"revocationOrder.do"})
+ @ResponseBody
+ public ServerResponse revocationOrder(HttpServletRequest request,@RequestParam("id") Integer id) {
+ ServerResponse serverResponse = null;
+ try {
+ serverResponse = this.userPendingorderService.cancelPendingOrder(request,id);
+ } catch (Exception e) {
+ log.error("挂单操作-撤销 = {}", e);
+ }
+ return serverResponse;
+ }
+
+
+
+
//挂单操作-删除
@RequestMapping({"delOrder.do"})
@ResponseBody
diff --git a/src/main/java/com/nq/pojo/StockRealTimeBean.java b/src/main/java/com/nq/pojo/StockRealTimeBean.java
index b35dd77..a9ab912 100644
--- a/src/main/java/com/nq/pojo/StockRealTimeBean.java
+++ b/src/main/java/com/nq/pojo/StockRealTimeBean.java
@@ -25,5 +25,6 @@
private String turnover_numeric;
private String time;
private String timestamp;
+ private String Open;
}
diff --git a/src/main/java/com/nq/service/UserPendingorderService.java b/src/main/java/com/nq/service/UserPendingorderService.java
index aa95da8..a55db1b 100644
--- a/src/main/java/com/nq/service/UserPendingorderService.java
+++ b/src/main/java/com/nq/service/UserPendingorderService.java
@@ -33,4 +33,6 @@
ServerResponse addOrderByAdmin(String phone, String buyNum,String code, String buyType, String lever, String targetPrice, HttpServletRequest request);
ServerResponse delOrderByAdmin(Integer id);
+
+ ServerResponse cancelPendingOrder(HttpServletRequest request, Integer id);
}
diff --git a/src/main/java/com/nq/service/impl/PriceServicesImpl.java b/src/main/java/com/nq/service/impl/PriceServicesImpl.java
index 1875994..5e44668 100644
--- a/src/main/java/com/nq/service/impl/PriceServicesImpl.java
+++ b/src/main/java/com/nq/service/impl/PriceServicesImpl.java
@@ -63,24 +63,24 @@
if(null == stock){
return BigDecimal.ZERO;
}
- StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code",stockCode));
- if(stockSetting != null){
- Date newDate = new Date();
- DateTime startTime = DateUtil.parseDateTime(stockSetting.getStartTime());
- DateTime endTime = DateUtil.parseDateTime(stockSetting.getEndTime());
- if(newDate.after(startTime) && newDate.before(endTime)){
-// if(TimeUtil.isTradingHour(stockSetting.getStartTime(),stockSetting.getEndTime())){
- if(stockSetting.getType().equals("0")){
- return new BigDecimal(stockSetting.getPrice());
- }else{
- String s = doPost(stock.getStockCode());
- if(null != s){
- Map<String, Object> stringObjectMap = jsonToMap(s);
- return new BigDecimal(stringObjectMap.get("Last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
- }
- }
- }
- }
+// StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code",stockCode));
+// if(stockSetting != null){
+// Date newDate = new Date();
+// DateTime startTime = DateUtil.parseDateTime(stockSetting.getStartTime());
+// DateTime endTime = DateUtil.parseDateTime(stockSetting.getEndTime());
+// if(newDate.after(startTime) && newDate.before(endTime)){
+//// if(TimeUtil.isTradingHour(stockSetting.getStartTime(),stockSetting.getEndTime())){
+// if(stockSetting.getType().equals("0")){
+// return new BigDecimal(stockSetting.getPrice());
+// }else{
+// String s = doPost(stock.getStockCode());
+// if(null != s){
+// Map<String, Object> stringObjectMap = jsonToMap(s);
+// return new BigDecimal(stringObjectMap.get("Last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
+// }
+// }
+// }
+// }
String s = doPost(stock.getStockCode());
if(null != s) {
diff --git a/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java b/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
index c26b761..d186c53 100644
--- a/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
@@ -5,6 +5,7 @@
import java.util.Date;
import java.util.List;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -143,7 +144,7 @@
if (nowPrice == null) {
nowPrice = String.valueOf(0);
}
- userPendingorderVO.setNowPrice(new BigDecimal(nowPrice));
+ userPendingorderVO.setNowPrice(userPendingorder.getTargetPrice());
// userPendingorderVO.setStockName(stock.getStockName());
userPendingorderVO.setStockName(stock.getStockSpell());
userPendingorderVO.setStockId(stock.getStockCode());
@@ -350,6 +351,38 @@
log.info("===========删除挂单任务结束==========");
}
+ public ServerResponse cancelPendingOrder(HttpServletRequest request, Integer id){
+ log.info("===========撤销挂单==========");
+ UserPendingorder userPendingorder = this.userPendingorderMapper.selectById(id);
+ if(ObjectUtil.isEmpty(userPendingorder)){
+ return ServerResponse.createByErrorMsg("订单不存在!",request);
+ }else if(userPendingorder.getStatus() == 2){
+ return ServerResponse.createByErrorMsg("订单已撤销,请勿重复操作!",request);
+ }
+ //修改状态
+ userPendingorder.setStatus(2);
+ userPendingorderMapper.updateById(userPendingorder);
+ //退款
+ QueryWrapper<UserAssets> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("accect_type","US");
+ queryWrapper.eq("user_id",userPendingorder.getUserId());
+ UserAssets userAssets = userAssetsMapper.selectOne(queryWrapper);
+ String before = userAssets.getAvailableBalance().toString();
+ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(userPendingorder.getBuyAmt()));
+ userAssetsMapper.updateById(userAssets);
+ MoneyLog moneyLog = new MoneyLog();
+ moneyLog.setDescs(EUserAssets.BUY_REFUND.getDesc());
+ moneyLog.setBeFore(before);
+ moneyLog.setAfter(userAssets.getAvailableBalance().toString());
+ moneyLog.setAmount(userAssets.getAvailableBalance().toString());
+ moneyLog.setAccectType("US");
+ moneyLog.setType(EUserAssets.BUY_REFUND.getCode());
+ moneyLog.setUserId(userPendingorder.getUserId()+"");
+ moneyLog.setSymbol(EStockType.getEStockTypeByCode("US").getSymbol());
+ moneyLog.setCreateTime(new Date());
+ moneyLogMapper.insert(moneyLog);
+ return ServerResponse.createBySuccess("撤销成功!",request);
+ }
@Override
public ServerResponse orderListByAdmin(int pageNum, int pageSize, String keywords, String status, HttpServletRequest request) {
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index cd9d0dc..2a4aab1 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -222,8 +222,10 @@
userPendingorder.setTargetPrice(preMarketPrice);
userPendingorder.setAddTime(new Date());
userPendingorder.setStatus(0);
- userPendingorder.setBuyAmt(preMarketPrice.multiply(new BigDecimal(buyNum)).setScale(2, RoundingMode.HALF_UP));
+ userPendingorder.setBuyAmt(preMarketPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever)));
int ret = userPendingorderMapper.insert(userPendingorder);
+ buyAmt = userPendingorder.getBuyAmt();
+ orderFree = siteSettingBuyFee.multiply(buyAmt);
}else {
userPosition.setPositionType(user.getAccountType());
userPosition.setPositionSn(KeyUtils.getUniqueKey());
diff --git a/src/main/java/com/nq/ws/WebsocketRunClient.java b/src/main/java/com/nq/ws/WebsocketRunClient.java
index e5c7ba8..10b0e44 100644
--- a/src/main/java/com/nq/ws/WebsocketRunClient.java
+++ b/src/main/java/com/nq/ws/WebsocketRunClient.java
@@ -71,6 +71,8 @@
stockRealTimeBean.setPc(stringObjectMap.get("Chg"));
stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct") + "%");
stockRealTimeBean.setTime(stringObjectMap.get("Time"));
+ stockRealTimeBean.setOpen(stringObjectMap.get("Open"));
+ stockRealTimeBean.setPrevClose(stringObjectMap.get("PrevClose"));
RedisKeyUtil.setCacheRealTimeStock(EStockType.US, stockRealTimeBean);
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index a3e4ad3..5e1f791 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -17,7 +17,7 @@
ftp.user=ftp_stock
ftp.pass=123456
ftp.address =/www/wwwroot/ftp_stock/
-ftp.server.http.prefix=https://img.yanshiz.com/
+ftp.server.http.prefix=https://img.isusstcok.com/
redis1.ip=localhost
#redis1.port=6380
--
Gitblit v1.9.3