From 57c2b6875b5f026a1432f3209471d6b4503f43fc Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 29 Oct 2024 13:35:05 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java | 19 +-
src/main/resources/mapper/UserWithdrawMapper.xml | 2
src/main/java/com/nq/utils/task/stock/StockTask.java | 21 ++
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 10
src/main/java/com/nq/pojo/UserPendingorder.java | 2
src/main/java/com/nq/ws/USWebsocketRunClient.java | 108 +++++++++++++
src/main/java/com/nq/service/impl/UserServiceImpl.java | 22 +-
src/main/resources/application.properties | 6
src/main/java/com/nq/config/ScheduleConfig.java | 1
src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java | 14 +
src/main/java/com/nq/service/IUserAssetsServices.java | 2
src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java | 4
src/main/java/com/nq/service/impl/PriceServicesImpl.java | 28 ++-
src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java | 18 +
src/main/resources/mapper/UserRechargeMapper.xml | 24 +-
src/main/java/com/nq/utils/task/stock/CarryPositionTask.java | 18 +-
src/main/resources/mapper/StockMapper.xml | 7
src/main/java/com/nq/service/impl/UserAssetsServices.java | 6
src/main/java/com/nq/service/impl/StockServiceImpl.java | 36 +++
src/main/resources/mapper/UserPositionMapper.xml | 19 +-
src/main/java/com/nq/controller/protol/UserController.java | 4
src/main/java/com/nq/dao/StockMapper.java | 2
src/main/java/com/nq/service/UserPendingorderService.java | 2
src/main/java/com/nq/utils/task/news/NewsTask.java | 30 +++
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java | 22 ++
src/main/java/com/nq/controller/RechargeAddressController.java | 3
src/main/java/com/nq/controller/backend/AdminController.java | 5
src/main/java/com/nq/controller/PayApiController.java | 6
src/main/java/com/nq/controller/backend/AdminRechargeController.java | 15 +
src/main/java/com/nq/service/IUserRechargeService.java | 4
src/main/java/com/nq/dao/UserRechargeMapper.java | 2
31 files changed, 343 insertions(+), 119 deletions(-)
diff --git a/src/main/java/com/nq/config/ScheduleConfig.java b/src/main/java/com/nq/config/ScheduleConfig.java
index ad56ac1..b476818 100644
--- a/src/main/java/com/nq/config/ScheduleConfig.java
+++ b/src/main/java/com/nq/config/ScheduleConfig.java
@@ -15,7 +15,6 @@
// * @author leon
// * @createDate 2018年10月15日 下午4:02:38
// * @version v1.0
-// * @classRemarks TODO
// */
//@Configuration
//public class ScheduleConfig implements SchedulingConfigurer {
diff --git a/src/main/java/com/nq/controller/PayApiController.java b/src/main/java/com/nq/controller/PayApiController.java
index a1a947a..bd8bd1c 100644
--- a/src/main/java/com/nq/controller/PayApiController.java
+++ b/src/main/java/com/nq/controller/PayApiController.java
@@ -80,7 +80,6 @@
if ("1".equals((String) request.getParameter("status"))) {
// 这里编写用户业务逻辑代码,如存储订单状态,自动发货等
- //TODO
if (amount != null & !StringUtils.isEmpty(amount)) {
System.out.println("============更新用户金额===============");
Double aDouble = Double.valueOf(amount);
@@ -89,7 +88,7 @@
UserRecharge userRecharge = this.userRechargeMapper.findUserRechargeByOrderSn(orderno);
if(userRecharge == null){
System.out.println("============充值完成===============");
- iUserRechargeService.createOrder(Integer.valueOf(arr[0]), 1, aDouble.intValue(), orderno);
+// iUserRechargeService.createOrder(Integer.valueOf(arr[0]), 1, aDouble.intValue(), orderno);
jsonObj.put("reason", "success");
} else {
System.out.println("============充值失败,已回调成功无需重复回调===============");
@@ -127,7 +126,6 @@
//if ("200".equals((String) request.getParameter("status"))) {
// 这里编写用户业务逻辑代码,如存储订单状态,自动发货等
- //TODO
if (amount != null & !StringUtils.isEmpty(amount)) {
System.out.println("============更新用户金额===============");
Double aDouble = Double.valueOf(amount);
@@ -136,7 +134,7 @@
UserRecharge userRecharge = this.userRechargeMapper.findUserRechargeByOrderSn(orderno);
if(userRecharge == null){
System.out.println("============充值完成===============");
- iUserRechargeService.createOrder(Integer.valueOf(arr[0]), 1, aDouble.intValue(), orderno);
+// iUserRechargeService.createOrder(Integer.valueOf(arr[0]), 1, aDouble.intValue(), orderno);
} else {
System.out.println("============充值失败,已回调成功无需重复回调===============");
}
diff --git a/src/main/java/com/nq/controller/RechargeAddressController.java b/src/main/java/com/nq/controller/RechargeAddressController.java
index b8b8538..a1197a9 100644
--- a/src/main/java/com/nq/controller/RechargeAddressController.java
+++ b/src/main/java/com/nq/controller/RechargeAddressController.java
@@ -41,7 +41,8 @@
public ServerResponse createUSDTOrder(@RequestParam("userId") Integer userId,
@RequestParam("amt") Integer amt,
@RequestParam("img") String img,
+ @RequestParam("accectType") String accectType,
HttpServletRequest request) {
- return ServerResponse.createBySuccess(iUserRechargeService.createUSDTOrder(userId,amt,img,request));
+ return ServerResponse.createBySuccess(iUserRechargeService.createUSDTOrder(userId,amt,img,accectType,request));
}
}
diff --git a/src/main/java/com/nq/controller/backend/AdminController.java b/src/main/java/com/nq/controller/backend/AdminController.java
index fbfd3ba..1656996 100644
--- a/src/main/java/com/nq/controller/backend/AdminController.java
+++ b/src/main/java/com/nq/controller/backend/AdminController.java
@@ -373,10 +373,11 @@
public ServerResponse updateayChnnel(
@RequestParam("id") Integer id,
@RequestParam("amt") String amt,
- @RequestParam("type") String type
+ @RequestParam("type") String type,
+ @RequestParam("accectType") String accectType
){
- return iUserAssetsServices.updateUserAssets(id,amt,type);
+ return iUserAssetsServices.updateUserAssets(id,amt,type,accectType);
}
//查询首页充值,提现,注册统计
diff --git a/src/main/java/com/nq/controller/backend/AdminRechargeController.java b/src/main/java/com/nq/controller/backend/AdminRechargeController.java
index 9fd6e03..4b9ae18 100644
--- a/src/main/java/com/nq/controller/backend/AdminRechargeController.java
+++ b/src/main/java/com/nq/controller/backend/AdminRechargeController.java
@@ -91,12 +91,15 @@
return serverResponse;
}
- //创建资金管理 充值订单
- @RequestMapping({"createOrder.do"})
- @ResponseBody
- public ServerResponse createOrder(@RequestParam(value = "userId", required = false) Integer userId, @RequestParam(value = "state", required = false) Integer state, @RequestParam(value = "amt", required = false) Integer amt, @RequestParam(value = "payChannel", required = false) String payChannel) {
- return this.iUserRechargeService.createOrder(userId, state, amt, payChannel);
- }
+// //创建资金管理 充值订单
+// @RequestMapping({"createOrder.do"})
+// @ResponseBody
+// public ServerResponse createOrder(@RequestParam(value = "userId", required = false) Integer userId,
+// @RequestParam(value = "state", required = false) Integer state,
+// @RequestParam(value = "amt", required = false) Integer amt,
+// @RequestParam(value = "payChannel", required = false) String payChannel) {
+// return this.iUserRechargeService.createOrder(userId, state, amt, payChannel);
+// }
//删除资金管理 充值列表订单信息
@RequestMapping({"del.do"})
diff --git a/src/main/java/com/nq/controller/protol/UserController.java b/src/main/java/com/nq/controller/protol/UserController.java
index 6c4315c..81a0983 100644
--- a/src/main/java/com/nq/controller/protol/UserController.java
+++ b/src/main/java/com/nq/controller/protol/UserController.java
@@ -185,11 +185,11 @@
//挂单操作-列表
@RequestMapping({"orderList.do"})
@ResponseBody
- public ServerResponse orderList(HttpServletRequest request) {
+ public ServerResponse orderList(@RequestParam("stockType") String stockType,HttpServletRequest request) {
ServerResponse serverResponse = null;
try {
- serverResponse = this.userPendingorderService.orderList(request);
+ serverResponse = this.userPendingorderService.orderList(stockType,request);
} catch (Exception e) {
log.error("挂单操作-列表 = {}", e);
}
diff --git a/src/main/java/com/nq/dao/StockMapper.java b/src/main/java/com/nq/dao/StockMapper.java
index 7081167..4f775ea 100644
--- a/src/main/java/com/nq/dao/StockMapper.java
+++ b/src/main/java/com/nq/dao/StockMapper.java
@@ -56,5 +56,5 @@
List findStockByType(@Param("orderBy") String orderBy, @Param("stockType") String stockType,@Param("keyWords") String keyWords);
- List findStockTypeDz(@Param("orderBy") String orderBy, @Param("stockType") String stockType,@Param("keyWords") String keyWords);
+ List findStockTypeDz(@Param("orderBy") String orderBy, @Param("keyWords") String keyWords);
}
\ No newline at end of file
diff --git a/src/main/java/com/nq/dao/UserRechargeMapper.java b/src/main/java/com/nq/dao/UserRechargeMapper.java
index b341a5f..3dfe9ad 100644
--- a/src/main/java/com/nq/dao/UserRechargeMapper.java
+++ b/src/main/java/com/nq/dao/UserRechargeMapper.java
@@ -9,7 +9,7 @@
public interface UserRechargeMapper extends BaseMapper<UserRecharge> {
- int insert(UserRecharge paramUserRecharge);
+// int insert(UserRecharge paramUserRecharge);
int insertSelective(UserRecharge paramUserRecharge);
diff --git a/src/main/java/com/nq/pojo/UserPendingorder.java b/src/main/java/com/nq/pojo/UserPendingorder.java
index 0066796..681fe80 100644
--- a/src/main/java/com/nq/pojo/UserPendingorder.java
+++ b/src/main/java/com/nq/pojo/UserPendingorder.java
@@ -38,6 +38,8 @@
private Date addTime;
+
+ private String assetsType;
private Integer status;
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/nq/service/IUserAssetsServices.java b/src/main/java/com/nq/service/IUserAssetsServices.java
index ae7475a..e075b35 100644
--- a/src/main/java/com/nq/service/IUserAssetsServices.java
+++ b/src/main/java/com/nq/service/IUserAssetsServices.java
@@ -21,7 +21,7 @@
- ServerResponse updateUserAssets(Integer id, String amt,String type);
+ ServerResponse updateUserAssets(Integer id, String amt,String type,String accectType);
List<UserAssets> assetsByUserId(Integer userId);
diff --git a/src/main/java/com/nq/service/IUserRechargeService.java b/src/main/java/com/nq/service/IUserRechargeService.java
index 3532bc8..6fd65ad 100644
--- a/src/main/java/com/nq/service/IUserRechargeService.java
+++ b/src/main/java/com/nq/service/IUserRechargeService.java
@@ -30,7 +30,7 @@
ServerResponse updateState(Integer paramInteger1, Integer paramInteger2) throws Exception;
- ServerResponse createOrder(Integer paramInteger1, Integer paramInteger2, Integer paramInteger3, String paramString);
+ ServerResponse createOrder(Integer paramInteger1, Integer paramInteger2, Integer paramInteger3, String paramString,String accectType);
ServerResponse del(Integer paramInteger);
@@ -42,5 +42,5 @@
List<UserRecharge> exportByAdmin( Integer agentId, Integer userId, String realName, Integer state, String beginTime, String endTime, HttpServletRequest request);
- public ServerResponse createUSDTOrder(Integer userId,Integer amt,String currency,HttpServletRequest request);
+ public ServerResponse createUSDTOrder(Integer userId,Integer amt,String currency,String accectType,HttpServletRequest request);
}
diff --git a/src/main/java/com/nq/service/UserPendingorderService.java b/src/main/java/com/nq/service/UserPendingorderService.java
index 72511a3..31172ac 100644
--- a/src/main/java/com/nq/service/UserPendingorderService.java
+++ b/src/main/java/com/nq/service/UserPendingorderService.java
@@ -17,7 +17,7 @@
ServerResponse addOrder(String stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, BigDecimal targetPrice, HttpServletRequest request);
- ServerResponse orderList( HttpServletRequest request);
+ ServerResponse orderList(String stockType, HttpServletRequest request);
void orderTask();
diff --git a/src/main/java/com/nq/service/impl/PriceServicesImpl.java b/src/main/java/com/nq/service/impl/PriceServicesImpl.java
index 5226333..4a64986 100644
--- a/src/main/java/com/nq/service/impl/PriceServicesImpl.java
+++ b/src/main/java/com/nq/service/impl/PriceServicesImpl.java
@@ -57,19 +57,27 @@
if (stockSetting.getType().equals("0")) {
return new BigDecimal(stockSetting.getPrice());
} else {
- String s = doPost(stock.getStockCode());
+ String s = doPost(stock.getStockCode(),stock.getStockType());
if (null != s) {
Map<String, Object> stringObjectMap = jsonToMap(s);
- return new BigDecimal(stringObjectMap.get("last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
+ if(stock.getStockType().equals("US")){
+ return new BigDecimal(stringObjectMap.get("Last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
+ }else{
+ return new BigDecimal(stringObjectMap.get("last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
+ }
}
}
}
}
- String s = doPost(stock.getStockCode());
+ String s = doPost(stock.getStockCode(),stock.getStockType());
if (null != s) {
Map<String, Object> stringObjectMap = jsonToMap(s);
- return new BigDecimal(stringObjectMap.get("last").toString());
+ if(stock.getStockType().equals("US")){
+ return new BigDecimal(stringObjectMap.get("Last").toString());
+ }else{
+ return new BigDecimal(stringObjectMap.get("last").toString());
+ }
}
return BigDecimal.ZERO;
}
@@ -77,7 +85,7 @@
@Override
public Map<String, Object> getNewStock(String stockCode) {
Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", stockCode));
- String s = doPost(stock.getStockCode());
+ String s = doPost(stock.getStockCode(),stock.getStockType());
if (null != s) {
Map<String, Object> stringObjectMap = jsonToMap(s);
return stringObjectMap;
@@ -99,10 +107,14 @@
}
}
- public String doPost(String pid) {
-
+ public String doPost(String pid,String stockType) {
+ String url;
+ if(stockType.equals("JP")){
+ url = PropertiesUtil.getProperty("JP_HTTP_API") + "stock?version=v1&key=" + PropertiesUtil.getProperty("JP_KEY");
+ }else{
+ url = PropertiesUtil.getProperty("US_HTTP_API") + "stock?version=v1&key=" + PropertiesUtil.getProperty("US_KEY");
+ }
try {
- String url = PropertiesUtil.getProperty("JP_HTTP_API") + "stock?version=v1&key=" + PropertiesUtil.getProperty("JP_KEY");
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index d3a6f6a..e0c08f0 100644
--- a/src/main/java/com/nq/service/impl/StockServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -172,12 +172,13 @@
@Override
public ServerResponse getStockByType(int pageNum, int pageSize, String orderBy, String keyWords, String stockType, HttpServletRequest request) {
List<Stock> stockList = new ArrayList<>();
- if(stockType.equals(EStockType.JP.getCode())){
+ PageHelper.startPage(pageNum, pageSize);
+ if(!stockType.equals("DZ")){
PageHelper.startPage(pageNum, pageSize);
stockList.addAll(stockMapper.findStockByType(orderBy,stockType,keyWords));
}else{
PageHelper.startPage(pageNum, pageSize);
- stockList.addAll(stockMapper.findStockTypeDz(orderBy,EStockType.JP.getCode(), keyWords));
+ stockList.addAll(stockMapper.findStockTypeDz(orderBy, keyWords));
}
List<StockListVO> stockListVOS = Lists.newArrayList();
@@ -222,10 +223,17 @@
stockVO.setName(stock.getStockName());
stockVO.setSpell(stock.getStockSpell());
stockVO.setGid(stock.getStockGid().toUpperCase());
+
Map<String, Object> newStock = iPriceServices.getNewStock(stock.getStockCode());
- stockVO.setHcrate(newStock.get("pcp").toString().replaceAll("%", ""));
- stockVO.setToday_max(newStock.get("high").toString());
- stockVO.setToday_min(newStock.get("low").toString());
+ if(stock.getStockType().equals("US")){
+ stockVO.setHcrate(newStock.get("ChgPct").toString().replaceAll("%", ""));
+ stockVO.setToday_max(newStock.get("High").toString());
+ stockVO.setToday_min(newStock.get("Low").toString());
+ }else{
+ stockVO.setHcrate(newStock.get("pcp").toString().replaceAll("%", ""));
+ stockVO.setToday_max(newStock.get("high").toString());
+ stockVO.setToday_min(newStock.get("low").toString());
+ }
if(null != cacheBaseStock){
stockVO.setOpen_px(cacheBaseStock.getOpen());
stockVO.setPreclose_px(cacheBaseStock.getPrevClose());
@@ -492,8 +500,24 @@
lastData.setL(stockVO.getToday_min());
return gson.toJson(dataList);
+ }else{
+ Object object = HttpUtil.get(eStockType.stockUrl + "kline?pid=" + pid + "&interval=" + interval + "&key=" + eStockType.stockKey);
+ 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));
+ BigDecimal nowPrice = iPriceServices.getNowPrice(stock.getStockCode());
+ Map singleStock = getSingleStock(stock.getStockCode());
+ StockVO stockVO = (StockVO)singleStock.get("stock");
+ // 修改 List 中的最后一条数据
+ kData lastData = dataList.get(dataList.size() - 1);
+ lastData.setC(nowPrice.toString());
+ lastData.setO(stockVO.getOpen_px());
+ lastData.setH(stockVO.getToday_max());
+ lastData.setL(stockVO.getToday_min());
+ return gson.toJson(dataList);
}
- return HttpUtil.get(eStockType.stockUrl + "kline?pid=" + pid + "&interval=" + interval + "&key=" + eStockType.stockKey);
+// return HttpUtil.get(eStockType.stockUrl + "kline?pid=" + pid + "&interval=" + interval + "&key=" + eStockType.stockKey);
}
@Override
diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index bc730c5..a7f3319 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -62,8 +62,8 @@
}
@Override
- public ServerResponse updateUserAssets(Integer id, String amt,String type) {
- UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class).eq(UserAssets::getUserId,id));
+ public ServerResponse updateUserAssets(Integer id, String amt,String type,String accectType) {
+ UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class).eq(UserAssets::getUserId,id).eq(UserAssets::getAccectType,accectType));
// 0 入款 1是扣钱 2 是充值 3 是提币
BigDecimal bigAmt = new BigDecimal(amt);
if(type.equals("0") || type.equals("1")){
@@ -105,7 +105,7 @@
}
}else{
if(type.equals("2")){
- return userRechargeService.createOrder(id,1,bigAmt.intValue(),"1");
+ return userRechargeService.createOrder(id,1,bigAmt.intValue(),"1",accectType);
}else{
diff --git a/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java b/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
index 347b70d..452d5b9 100644
--- a/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
@@ -72,7 +72,7 @@
UserAssetsMapper userAssetsMapper;
@Override
- public ServerResponse addOrder(String stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, BigDecimal targetPrice, HttpServletRequest request) {
+ public ServerResponse addOrder(String stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, BigDecimal targetPrice,HttpServletRequest request) {
User user = this.iUserService.getCurrentRefreshUser(request);
if (user == null) {
@@ -87,17 +87,17 @@
return ServerResponse.createByErrorMsg("The pending order failed because the purchased quantity was greater than" + siteSetting
.getBuyMaxNum() + "stocks",request);
}
-
+ Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<>(Stock.class).eq(Stock::getStockCode, stockId));
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
.eq(UserAssets::getUserId, user.getId())
- .eq(UserAssets::getAccectType, "JP")
+ .eq(UserAssets::getAccectType, stock.getStockType())
);
BigDecimal amount = new BigDecimal(buyNum).multiply(targetPrice).setScale(5, RoundingMode.DOWN);
if (userAssets.getAvailableBalance().compareTo(amount) < 0) {
return ServerResponse.createByErrorMsg("订单失败,余额不足", request);
}
- if(buyNum<100){
+ if(buyNum<siteSetting.getBuyMinNum()){
return ServerResponse.createByErrorMsg("最低购买数量"+siteSetting.getBuyMinNum(), request);
}
@@ -118,6 +118,7 @@
userPendingorder.setTargetPrice(targetPrice);
userPendingorder.setAddTime(new Date());
userPendingorder.setStatus(0);
+ userPendingorder.setAssetsType(stock.getStockType());
int ret = userPendingorderMapper.insert(userPendingorder);
if (ret > 0) {
String lang = request.getHeader("lang");
@@ -133,7 +134,7 @@
}
@Override
- public ServerResponse orderList(HttpServletRequest request) {
+ public ServerResponse orderList(String stockType,HttpServletRequest request) {
String property = PropertiesUtil.getProperty("user.cookie.name");
String header = request.getHeader(property);
@@ -143,7 +144,10 @@
User user = (User) JsonUtil.string2Obj(userJson, User.class);
// log.info("user:{}",user);
if (user != null) {
- List<UserPendingorder> userPendingorders = userPendingorderMapper.selectList(new QueryWrapper<UserPendingorder>().eq("user_id", user.getId()).ne("status",1));
+ List<UserPendingorder> userPendingorders = userPendingorderMapper.selectList(new QueryWrapper<UserPendingorder>()
+ .eq("user_id", user.getId())
+ .eq("assets_type",stockType)
+ .ne("status",1));
List UserPendingorderList = new ArrayList();
@@ -330,7 +334,7 @@
if (delCount > 0) {
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
.eq(UserAssets::getUserId, user.getId())
- .eq(UserAssets::getAccectType, "JP")
+ .eq(UserAssets::getAccectType, userPendingorder.getAssetsType())
);
BigDecimal amount = new BigDecimal(userPendingorder.getBuyNum()).multiply(userPendingorder.getTargetPrice()).setScale(5, RoundingMode.DOWN);
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 a4af636..5baa652 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -1555,19 +1555,19 @@
if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
return ServerResponse.createByErrorMsg("Order failed, account has been locked");
}
- UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("JP", user.getId());
+ //价格处理
+ StockDz stockDz = this.stockDzMapper.selectOne(new QueryWrapper<StockDz>().eq("stock_code", stockCode));
+ Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", stockDz.getStockCode()));
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId());
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
}
- StockDz stockDz = this.stockDzMapper.selectOne(new QueryWrapper<StockDz>().eq("stock_code", stockCode));
if (!Objects.equals(stockDz.getPassword(), password)) {
return ServerResponse.createByErrorMsg("密码错误", request);
}
if (stockDz.getIsLock() != 0) {
return ServerResponse.createByErrorMsg("股票被锁定,不能购买", request);
}
- //价格处理
- Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", stockDz.getStockCode()));
if(stockDz.getStartTime().getTime() > new Date().getTime() || stockDz.getEndTime().getTime() < new Date().getTime()){
return ServerResponse.createByErrorMsg("不在内幕交易时间之内", request);
@@ -1619,7 +1619,7 @@
userPosition.setOrderSpread(BigDecimal.ZERO);
userPositionMapper.insert(userPosition);
- userAssetsServices.availablebalanceChange(EStockType.JP.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
+ userAssetsServices.availablebalanceChange(userAssets.getAccectType(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
return ServerResponse.createBySuccess("购买成功", request);
}
diff --git a/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java b/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
index 09ecbaf..2e5d314 100644
--- a/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
@@ -222,8 +222,8 @@
for (int i = 0; i <userRecharges.size() ; i++) {
SitePay s = sitePayMapper.selectById(userRecharges.get(i).getPayId());
- userRecharges.get(i).setAssetsType(EStockType.JP.getSymbol1());
- userRecharges.get(i).setChannelName(EStockType.JP.getSymbol());
+ userRecharges.get(i).setAssetsType(EStockType.getEStockTypeByCode(userRecharges.get(i).getAssetsType()).getSymbol1());
+ userRecharges.get(i).setChannelName(EStockType.getEStockTypeByCode(userRecharges.get(i).getAssetsType()).getSymbol());
}
return ServerResponse.createBySuccess(pageInfo);
@@ -306,7 +306,7 @@
return ServerResponse.createByErrorMsg("用户不存在");
}
// SitePay payChnnel = sitePayMapper.selectById(userRecharge.getPayId());
- userAssetsServices.availablebalanceChange(EStockType.JP.getCode(),user.getId(), EUserAssets.TOP_UP,userRecharge.getPayAmt(),"","");
+ userAssetsServices.availablebalanceChange(userRecharge.getAssetsType(),user.getId(), EUserAssets.TOP_UP,userRecharge.getPayAmt(),"","");
}
userRecharge.setOrderStatus(Integer.valueOf((state.intValue() == 1) ? 1 : 2));
userRecharge.setPayTime(new Date());
@@ -318,7 +318,7 @@
}
- public ServerResponse createOrder(Integer userId, Integer state, Integer amt, String payChannel) {
+ public ServerResponse createOrder(Integer userId, Integer state, Integer amt, String payChannel,String accectType) {
if (userId == null || state == null || amt == null) {
return ServerResponse.createByErrorMsg("参数不能为空");
}
@@ -342,7 +342,8 @@
userRecharge.setPayTime(new Date());
userRecharge.setOrderStatus(Integer.valueOf(1));
userRecharge.setPayId(1);
- userAssetsServices.availablebalanceChange(EStockType.JP.getCode(),
+ userRecharge.setAssetsType(accectType);
+ userAssetsServices.availablebalanceChange(userRecharge.getAssetsType(),
userId,EUserAssets.TOP_UP,new BigDecimal(amt),"","");
int insertCount = this.userRechargeMapper.insert(userRecharge);
if (insertCount > 0) {
@@ -352,7 +353,7 @@
}
@Override
- public ServerResponse createUSDTOrder(Integer userId, Integer amt,String currency, HttpServletRequest request) {
+ public ServerResponse createUSDTOrder(Integer userId, Integer amt,String currency,String accectType, HttpServletRequest request) {
if (userId == null || amt == null) {
return ServerResponse.createByErrorMsg("参数不能为空");
}
@@ -378,6 +379,7 @@
userRecharge.setPayId(1);
userRecharge.setRechargeType(1);
userRecharge.setImg(currency);
+ userRecharge.setAssetsType(accectType);
int insertCount = this.userRechargeMapper.insert(userRecharge);
if (insertCount > 0) {
return ServerResponse.createBySuccessMsg("提交成功",request);
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index d2364f6..0528ff2 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -202,6 +202,7 @@
return ServerResponse.createByErrorMsg("登录失败。账户锁定",request);
}
userAssetsServices.assetsByTypeAndUserId(EStockType.JP.getCode(),user.getId());
+ userAssetsServices.assetsByTypeAndUserId(EStockType.US.getCode(),user.getId());
this.iSiteLoginLogService.saveLog(user, request);
return ServerResponse.createBySuccess(user);
}
@@ -495,6 +496,13 @@
* 总手续费
* */
BigDecimal allHMoney = BigDecimal.ZERO;
+
+ /**
+ * 总手续费
+ * */
+ BigDecimal amountToBeCovered = BigDecimal.ZERO;
+
+
for (int i = 0; i <userAssetsList.size() ; i++) {
RUserAssets rUserAssets = new RUserAssets();
UserAssets userAssets = userAssetsList.get(i);
@@ -557,7 +565,7 @@
rUserAssets.setCumulativeProfitAndLossUSD(cumulativeProfitAndLossUSD.setScale(s,BigDecimal.ROUND_UP).toString());
rUserAssets.setHandlingChargeUSD(handlingChargeUSD.setScale(s,BigDecimal.ROUND_UP).toString());
rUserAssets.setProfitAndLossUSD(profitAndLossUSD.setScale(s,BigDecimal.ROUND_UP).toString());
- rUserAssets.setProfitAndLoss(getProfitAndLose(userId).toString());
+ rUserAssets.setProfitAndLoss(getProfitAndLose(userId,userAssets.getAccectType()).toString());
BigDecimal decimal = new BigDecimal(rUserAssets.getTotalMoney()).add(new BigDecimal(rUserAssets.getProfitAndLoss()));
rUserAssets.setTotalMoney(decimal.toString());
AllProfitAndLose = AllProfitAndLose.add(profitAndLossUSD);
@@ -566,10 +574,7 @@
AllHProfitAndLose = AllHProfitAndLose.add(handlingChargeUSD);
allFreeMoney = allFreeMoney.add(freezeMoneyUSD);
allHMoney = allHMoney.add(handlingChargeUSD);
-
-
-
-
+ amountToBeCovered = amountToBeCovered.add(new BigDecimal(rUserAssets.getAmountToBeCovered()));
rUserAssetsList.add(rUserAssets);
}
@@ -593,17 +598,18 @@
rUserAssets.setFreezeMoneyUSD(allFreeMoney.setScale(s,BigDecimal.ROUND_DOWN).toString());
rUserAssets.setSymbol("$");
rUserAssets.setSymbolCode("USD");
+ rUserAssets.setAmountToBeCovered(amountToBeCovered.setScale(s,BigDecimal.ROUND_DOWN).toString());
rUserAssetsList.add(rUserAssets);
return ServerResponse.createBySuccess(rUserAssetsList);
}
- public BigDecimal getProfitAndLose(Integer userId){
+ public BigDecimal getProfitAndLose(Integer userId,String accectType){
List<UserPosition> userPositions;
userPositions = userPositionMapper.
findMyPositionByCodeAndSpell(userId,
"","",
- 0, "JP");
+ 0, accectType);
List<UserPositionVO> userPositionVOS = Lists.newArrayList();
@@ -812,7 +818,7 @@
ServerResponse money = iUserService.getMoney(user.getId());
List<RUserAssets> rUserAssetsList = (List<RUserAssets>) money.getData();
RUserAssets rUserAssets = rUserAssetsList.stream()
- .filter(stock -> "JP".equals(stock.getAccectType()))
+ .filter(stock -> "ALL".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 91e7c44..0d7333b 100644
--- a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
@@ -1,14 +1,12 @@
package com.nq.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.nq.common.ServerResponse;
-import com.nq.dao.StockSubscribeMapper;
-import com.nq.dao.UserAssetsMapper;
-import com.nq.dao.UserMapper;
-import com.nq.dao.UserStockSubscribeMapper;
+import com.nq.dao.*;
import com.nq.enums.EStockType;
import com.nq.enums.EUserAssets;
import com.nq.pojo.*;
@@ -70,6 +68,9 @@
@Autowired
UserAssetsMapper userAssetsMapper;
+ @Autowired
+ StockMapper stockMapper;
+
/**
* 用户新股申购
* @param model
@@ -82,8 +83,9 @@
if (model == null) {
return ServerResponse.createByErrorMsg("参数错误",request);
}
+ Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<>(Stock.class).eq(Stock::getStockCode, model.getNewCode()));
User user = iUserService.getCurrentRefreshUser(request);
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("JP",user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(),user.getId());
if (model.getNewCode() != null) {
StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>()
.eq("code", model.getNewCode()).eq("type",model.getType()));
@@ -152,7 +154,7 @@
model.setType(stockSubscribe.getType());
model.setDbMoney(BigDecimal.ZERO);
ret = userStockSubscribeMapper.insert(model);
- iUserAssetsServices.availablebalanceChange(EStockType.JP.getCode(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
+ iUserAssetsServices.availablebalanceChange(stock.getStockType(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
if (ret > 0) {
return ServerResponse.createBySuccessMsg("配售成功",request);
} else {
@@ -191,12 +193,13 @@
if((model.getStatus() == 3 && model.getApplyNumber() == null) || (model.getStatus() == 3 && model.getApplyNumber() == 0) ){
return ServerResponse.createByErrorMsg("中签数量不能小于0");
}
+ Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<>(Stock.class).eq(Stock::getStockCode, stockSubscribe.getCode()));
if (model.getStatus() == 3 && model.getApplyNumber() != null){
if(stockSubscribe.getType() == 1){
model.setBond(stockSubscribe.getPrice().multiply(BigDecimal.valueOf(model.getApplyNumber())));
model.setDbMoney(model.getDbMoney());
//客户中签直接扣除客户账户可用资金
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("JP", userStockSubscribe.getUserId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), userStockSubscribe.getUserId());
if(null == userAssets){
return ServerResponse.createByErrorMsg("客户资金账户不存在");
}
@@ -217,7 +220,7 @@
}
BigDecimal cCount = new BigDecimal(model.getApplyNums()-model.getApplyNumber());
BigDecimal tMoney = stockSubscribe.getPrice().multiply(cCount);
- iUserAssetsServices.availablebalanceChange(EStockType.JP.getCode(),userStockSubscribe.getUserId(),
+ iUserAssetsServices.availablebalanceChange(stock.getStockType(),userStockSubscribe.getUserId(),
EUserAssets.TOP_UP,tMoney,"","");
model.setBond(stockSubscribe.getPrice().multiply(BigDecimal.valueOf(model.getApplyNumber())));
model.setDbMoney(BigDecimal.ZERO);
diff --git a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
index 51714c2..1383e9c 100644
--- a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
@@ -240,7 +240,7 @@
User user = this.userMapper.selectById(userWithdraw.getUserId());
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("JP", user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(userWithdraw.getAssetsType(), user.getId());
if (userAssets == null) {
return ServerResponse.createByErrorMsg("用户资金账户不存在");
}
@@ -353,7 +353,7 @@
if (user == null) {
return ServerResponse.createByErrorMsg("用户不存在");
}
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("JP", user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(userWithdraw.getAssetsType(), user.getId());
if (userAssets == null) {
return ServerResponse.createByErrorMsg("用户资金账户不存在");
}
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..87e9f78 100644
--- a/src/main/java/com/nq/utils/task/news/NewsTask.java
+++ b/src/main/java/com/nq/utils/task/news/NewsTask.java
@@ -35,6 +35,13 @@
private final Lock NewsInfoTaskLock = new ReentrantLock();
+
+ private final AtomicBoolean USNewsInfoTask = new AtomicBoolean(false);
+
+
+ private final Lock USNewsInfoTaskLock = new ReentrantLock();
+
+
/*
* 新聞資訊抓取
* */
@@ -58,6 +65,29 @@
}
}
+ /*
+ * 新聞資訊抓取
+ * */
+ @Scheduled(cron = "0 0/10 * * * ?")
+ public void USNewsInfoTask() {
+ if (USNewsInfoTask.get()) { // 判断任务是否在处理中
+ return;
+ }
+ if (USNewsInfoTaskLock.tryLock()) { // 加锁
+ try {
+ USNewsInfoTask.set(true); // 设置处理中标识为true
+ System.out.println("美国新闻定时任务---->开始");
+ iSiteNewsService.grabNews();
+ } catch (Exception e) {
+ System.err.println("美国新闻抓取出现异常: " + e.getMessage()); // 打印具体的异常信息
+ } finally {
+ USNewsInfoTaskLock.unlock(); // 释放锁
+ USNewsInfoTask.set(false); // 设置处理中标识为false
+ System.out.println("美国新闻定时任务---->结束");
+ }
+ }
+ }
+
/*
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 5599abd..f32e7c4 100644
--- a/src/main/java/com/nq/utils/task/stock/CarryPositionTask.java
+++ b/src/main/java/com/nq/utils/task/stock/CarryPositionTask.java
@@ -5,14 +5,8 @@
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.nq.common.ServerResponse;
-import com.nq.dao.StockSubscribeMapper;
-import com.nq.dao.UserAssetsMapper;
-import com.nq.dao.UserMapper;
-import com.nq.dao.UserStockSubscribeMapper;
-import com.nq.pojo.StockSubscribe;
-import com.nq.pojo.User;
-import com.nq.pojo.UserAssets;
-import com.nq.pojo.UserStockSubscribe;
+import com.nq.dao.*;
+import com.nq.pojo.*;
import com.nq.service.IUserAssetsServices;
import com.nq.service.IUserPositionService;
import lombok.extern.slf4j.Slf4j;
@@ -53,6 +47,9 @@
@Autowired
IUserAssetsServices userAssetsServices;
+ @Autowired
+ StockMapper stockMapper;
+
private final Lock ballotLock = new ReentrantLock();
private final Lock subscriptionLock = new ReentrantLock();
@@ -60,7 +57,7 @@
private final AtomicBoolean ballot = new AtomicBoolean(false);
- @Scheduled(cron = "0 0/10 * * * ?")
+ @Scheduled(cron = "0 0/1 * * * ?")
public void ballot() {
if (ballot.get()) { // 判断任务是否在处理中
return;
@@ -112,7 +109,8 @@
List<UserStockSubscribe> userStockSubscribes = userStockSubscribeMapper.selectList(new LambdaQueryWrapper<UserStockSubscribe>()
.eq(UserStockSubscribe::getStatus, 3));
userStockSubscribes.forEach(f->{
- UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("JP",f.getUserId());
+ Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<>(Stock.class).eq(Stock::getStockCode, f.getNewCode()));
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId(stock.getStockType(),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 90fba2e..4d9b175 100644
--- a/src/main/java/com/nq/utils/task/stock/StockTask.java
+++ b/src/main/java/com/nq/utils/task/stock/StockTask.java
@@ -58,10 +58,14 @@
private final Lock syncINStockDataLock = new ReentrantLock();
+ private final AtomicBoolean syncUSStockData = new AtomicBoolean(false);
+
+ private final Lock syncUSStockDataLock = new ReentrantLock();
+
/**
* 同步系统所需要的股票
*/
- @Scheduled(cron = "0 */1 * * * ?")
+ @Scheduled(cron = "0 0/1 * * * ?")
public void syncINStockData() {
if (syncINStockData.get()) { // 判断任务是否在处理中
return;
@@ -81,9 +85,20 @@
/**
* 同步美国股票
*/
-// @Scheduled(cron = "0 0/30 * * * ?")
+ @Scheduled(cron = "0 0/1 * * * ?")
public void loadStockCompanies() {
- loadAllCompanies();
+ if (syncUSStockData.get()) { // 判断任务是否在处理中
+ return;
+ }
+ if (syncUSStockDataLock.tryLock()) {
+ try {
+ syncUSStockData.set(true); // 设置处理中标识为true
+ loadAllStock(EStockType.US);
+ } finally {
+ syncUSStockDataLock.unlock();
+ syncUSStockData.set(false); // 设置处理中标识为false
+ }
+ }
}
diff --git a/src/main/java/com/nq/ws/USWebsocketRunClient.java b/src/main/java/com/nq/ws/USWebsocketRunClient.java
new file mode 100644
index 0000000..302d897
--- /dev/null
+++ b/src/main/java/com/nq/ws/USWebsocketRunClient.java
@@ -0,0 +1,108 @@
+package com.nq.ws;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.nq.enums.EStockType;
+import com.nq.pojo.StockRealTimeBean;
+import com.nq.utils.redis.RedisKeyUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.java_websocket.client.WebSocketClient;
+import org.java_websocket.handshake.ServerHandshake;
+
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @program: dabaogp
+ * @description:
+ * @create: 2024-10-25 14:44
+ **/
+@Slf4j
+public class USWebsocketRunClient extends WebSocketClient {
+
+ private EStockType eStockType;
+ public USWebsocketRunClient(URI serverUri,
+ EStockType eStockType
+ ) {
+ super(serverUri);
+ this.eStockType = eStockType;
+ }
+
+ @Override
+ public void onOpen(ServerHandshake serverHandshake) {
+ send(("key:"+ eStockType.getStockKey()+":"+eStockType.getContryId()+":v1").getBytes());
+ }
+
+ @Override
+ public void onMessage(String s) {
+ try {
+ if(!s.equals("pong") && !s.equals("身份验证成功")){
+ StockRealTimeBean stockDetailBean = new Gson().fromJson(s, StockRealTimeBean.class);
+ RedisKeyUtil.setCacheRealTimeStock(eStockType,stockDetailBean);
+ send(s);
+ }
+ }catch (Exception e){
+ log.error("ws 消息接收错误:"+s);
+ }
+ }
+
+ public static Map<String, Object> jsonToMap(String json) {
+ Gson gson = new Gson();
+ Type type = new TypeToken<Map<String, Object>>(){}.getType();
+ return gson.fromJson(json, type);
+ }
+
+ @Override
+ public void onClose(int i, String s, boolean b) {
+ log.info("websocket 美股 关闭"+1);
+ }
+
+ @Override
+ public void onError(Exception e) {
+ log.info("websocket 错误");
+ }
+
+
+ private HttpClient httpClient; // 声明一个成员变量
+
+ private HttpPost httpPost = new HttpPost("http://127.0.0.1:8002/api/sendNotification"); // 创建一个HttpPost对象
+
+ @Override
+ public void send(String message) {
+
+ try {
+
+ if (httpClient == null) {
+ httpClient = HttpClients.createDefault(); // 使用单例模式创建HttpClient对象
+ }
+
+ // 准备 form-data 参数
+ List<BasicNameValuePair> params = new ArrayList<>();
+ params.add(new BasicNameValuePair("message", message));
+
+ // 设置编码格式为 UTF-8
+ UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, StandardCharsets.UTF_8);
+ httpPost.setEntity(entity); // 设置HttpPost对象的参数
+
+ // 发送请求
+ HttpResponse response = httpClient.execute(httpPost);
+
+ // 处理响应
+ int statusCode = response.getStatusLine().getStatusCode();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index fc5d349..cf4e4db 100644
--- a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
+++ b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
@@ -21,8 +21,26 @@
public Map<String, WebSocketClient> websocketRunClientMap() {
Map<String, WebSocketClient> retMap = new HashMap<>(2);
+// try {
+// WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("JP_WS_URL")),EStockType.JP);
+// websocketRunClient.connect();
+// websocketRunClient.setConnectionLostTimeout(0);
+// new Thread(() -> {
+// while (true) {
+// try {
+// Thread.sleep(8000);
+// websocketRunClient.send("heartbeat".getBytes());
+// } catch (Exception e) {
+// websocketRunClient.reconnect();
+// websocketRunClient.setConnectionLostTimeout(0);
+// }
+// }
+// }).start();
+// } catch (Exception e) {
+// }
+
try {
- WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("JP_WS_URL")),EStockType.JP);
+ USWebsocketRunClient websocketRunClient = new USWebsocketRunClient(new URI(PropertiesUtil.getProperty("US_WS_URL")),EStockType.US);
websocketRunClient.connect();
websocketRunClient.setConnectionLostTimeout(0);
new Thread(() -> {
@@ -40,9 +58,9 @@
}
-
return retMap;
}
+
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index ed71712..ca92950 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -42,9 +42,9 @@
#JS_IN_WS_URL =ws://api-in-2-ws.js-stock.top
#JS_IN_KEY = eVKtHt7aG4m6ozwWL9qG
#
-#US_HTTP_API = http://api-us.js-stock.top/
-#US_WS_URL = ws://ws-us.js-stock.top
-#US_KEY = jZFrku4RGQjP87Hmq5tm
+US_HTTP_API = http://api-us-v2.js-stock.top/
+US_WS_URL = ws://api-us-v2-ws.js-stock.top
+US_KEY = bP1PkxkXyzV2mfb3miun
#
#HK_HTTP_API = http://test.js-stock.top/
#HK_WS_URL = ws://test-ws.js-stock.top
diff --git a/src/main/resources/mapper/StockMapper.xml b/src/main/resources/mapper/StockMapper.xml
index 1f6f71f..2d7d916 100644
--- a/src/main/resources/mapper/StockMapper.xml
+++ b/src/main/resources/mapper/StockMapper.xml
@@ -262,7 +262,7 @@
<include refid="Base_Column_List" />
from stock
<where>
- stock_gid = 'TSE'
+ 1=1
<if test="showState != null ">
and is_show = #{showState}
</if>
@@ -316,7 +316,8 @@
<include refid="Base_Column_List"/>
FROM stock
- where stock_type = #{stockType} and stock_gid = 'TSE'
+ where stock_type = #{stockType}
+-- and stock_gid = 'TSE'
<if test="keyWords != null and keyWords != '' ">
and (stock_spell like concat('%',#{keyWords},'%') or stock_name like concat('%',#{keyWords},'%') )
@@ -335,7 +336,7 @@
<include refid="Base_Column_List"/>
FROM stock
- where stock_type = #{stockType}
+ where 1 = 1
<if test="keyWords != null and keyWords != '' ">
and (stock_spell like concat('%',#{keyWords},'%') or stock_name like concat('%',#{keyWords},'%') )
diff --git a/src/main/resources/mapper/UserPositionMapper.xml b/src/main/resources/mapper/UserPositionMapper.xml
index 7ea7077..a50f9bb 100644
--- a/src/main/resources/mapper/UserPositionMapper.xml
+++ b/src/main/resources/mapper/UserPositionMapper.xml
@@ -436,27 +436,26 @@
<select id="findMyPositionByCodeAndSpell" parameterType="map" resultMap="BaseResultMap">
SELECT
- <include refid="Base_Column_List"/>
- FROM user_position
+ u.*
+ FROM user_position u left join stock s on u.stock_code = s.stock_code
<where>
- user_id = #{uid}
+ u.user_id = #{uid}
+ and s.stock_type = #{stockType}
<if test="state != null ">
<if test="state == 0">
- and sell_order_id is null
+ and u.sell_order_id is null
</if>
<if test="state == 1">
- and sell_order_id is not null
+ and u.sell_order_id is not null
</if>
</if>
<if test="stockCode != null and stockCode != '' ">
- and stock_code like CONCAT('%','${stockCode}','%')
+ and u.stock_code like CONCAT('%','${stockCode}','%')
</if>
<if test="stockSpell != null and stockSpell != '' ">
- and stock_spell like CONCAT('%','${stockSpell}','%')
+ and u.stock_spell like CONCAT('%','${stockSpell}','%')
</if>
-<!-- <if test="stockType != null and stockType!= ''">-->
-<!-- and stock_gid = #{stockType}-->
-<!-- </if>-->
+
</where>
diff --git a/src/main/resources/mapper/UserRechargeMapper.xml b/src/main/resources/mapper/UserRechargeMapper.xml
index 2f36d6c..bd21b92 100644
--- a/src/main/resources/mapper/UserRechargeMapper.xml
+++ b/src/main/resources/mapper/UserRechargeMapper.xml
@@ -22,18 +22,18 @@
id, user_id, nick_name, agent_id, order_sn, pay_sn, pay_channel, pay_amt, order_status,
order_desc, add_time, pay_time, pay_id,img
</sql>
- <insert id="insert" parameterType="com.nq.pojo.UserRecharge" >
- insert into user_recharge (id, user_id, nick_name,
- agent_id, order_sn, pay_sn,
- pay_channel, pay_amt, order_status,
- order_desc, add_time, pay_time,pay_id,img
- )
- values (#{id,jdbcType=INTEGER}, #{userId,jdbcType=INTEGER}, #{nickName,jdbcType=VARCHAR},
- #{agentId,jdbcType=INTEGER}, #{orderSn,jdbcType=VARCHAR}, #{paySn,jdbcType=VARCHAR},
- #{payChannel,jdbcType=VARCHAR}, #{payAmt,jdbcType=DECIMAL}, #{orderStatus,jdbcType=INTEGER},
- #{orderDesc,jdbcType=VARCHAR}, #{addTime,jdbcType=TIMESTAMP}, #{payTime,jdbcType=TIMESTAMP}, #{payId,jdbcType=INTEGER}, #{img,jdbcType=VARCHAR}
- )
- </insert>
+<!-- <insert id="insert" parameterType="com.nq.pojo.UserRecharge" >-->
+<!-- insert into user_recharge (id, user_id, nick_name,-->
+<!-- agent_id, order_sn, pay_sn,-->
+<!-- pay_channel, pay_amt, order_status,-->
+<!-- order_desc, add_time, pay_time,pay_id,img-->
+<!-- )-->
+<!-- values (#{id,jdbcType=INTEGER}, #{userId,jdbcType=INTEGER}, #{nickName,jdbcType=VARCHAR},-->
+<!-- #{agentId,jdbcType=INTEGER}, #{orderSn,jdbcType=VARCHAR}, #{paySn,jdbcType=VARCHAR},-->
+<!-- #{payChannel,jdbcType=VARCHAR}, #{payAmt,jdbcType=DECIMAL}, #{orderStatus,jdbcType=INTEGER},-->
+<!-- #{orderDesc,jdbcType=VARCHAR}, #{addTime,jdbcType=TIMESTAMP}, #{payTime,jdbcType=TIMESTAMP}, #{payId,jdbcType=INTEGER}, #{img,jdbcType=VARCHAR}-->
+<!-- )-->
+<!-- </insert>-->
<insert id="insertSelective" parameterType="com.nq.pojo.UserRecharge" >
insert into user_recharge
<trim prefix="(" suffix=")" suffixOverrides="," >
diff --git a/src/main/resources/mapper/UserWithdrawMapper.xml b/src/main/resources/mapper/UserWithdrawMapper.xml
index e8e5e9b..3082694 100644
--- a/src/main/resources/mapper/UserWithdrawMapper.xml
+++ b/src/main/resources/mapper/UserWithdrawMapper.xml
@@ -23,7 +23,7 @@
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
- <include refid="Base_Column_List" />
+ *
from user_withdraw
where id = #{id,jdbcType=INTEGER}
</select>
--
Gitblit v1.9.3