From 37670b2ff5379e8603d3b0eec6d493daf2d6cfcb Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 10 Jul 2025 19:26:55 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java | 14
src/main/java/com/nq/ws/WebsocketRunClient.java | 6
src/main/java/com/nq/controller/echo/EChoController.java | 2
src/main/java/com/nq/utils/task/stock/StockTask.java | 2
src/main/java/com/nq/service/impl/EchoServices.java | 4
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 18
src/main/java/com/nq/controller/AdminApiController.java | 119 +++++++++++
pom.xml | 11 +
src/main/java/com/nq/pojo/SiteAdmin.java | 11 +
src/main/java/com/nq/service/impl/UserServiceImpl.java | 15
src/main/resources/application.properties | 65 +++---
src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java | 6
src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java | 68 ++++--
src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java | 6
src/main/java/com/nq/service/ISiteAdminService.java | 6
src/main/java/com/nq/service/impl/PriceServicesImpl.java | 2
src/main/java/com/nq/service/impl/SiteInfoServiceImpl.java | 36 ---
src/main/java/com/nq/controller/UserPositionCheckDzController.java | 4
src/main/java/com/nq/service/impl/PayServiceImpl.java | 4
src/main/java/com/nq/utils/task/stock/CarryPositionTask.java | 2
src/main/java/com/nq/enums/EStockType.java | 36 ++-
src/main/java/com/nq/pojo/UnbindingGoogleAuthModel.java | 17 +
src/main/java/com/nq/service/impl/TradingHourServiceImpl.java | 2
src/main/java/com/nq/service/impl/StockServiceImpl.java | 4
src/main/java/com/nq/utils/redis/RedisKeyUtil.java | 2
src/main/java/com/nq/controller/protol/UserController.java | 80 ++++---
src/main/java/com/nq/utils/task/news/NewsTask.java | 2
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java | 2
src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java | 2
src/main/java/com/nq/service/impl/StockDzServiceImpl.java | 4
src/main/java/com/nq/pojo/UpdateGoogleAuthDto.java | 21 ++
src/main/java/com/nq/pojo/GoogleAuthDto.java | 14 +
src/main/resources/application.yml | 10
33 files changed, 384 insertions(+), 213 deletions(-)
diff --git a/pom.xml b/pom.xml
index 058a9cb..02463df 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,16 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>com.google.zxing</groupId>
+ <artifactId>core</artifactId>
+ <version>3.4.1</version> <!-- 或最新版本 -->
+ </dependency>
+ <dependency>
+ <groupId>com.google.zxing</groupId>
+ <artifactId>javase</artifactId>
+ <version>3.4.1</version> <!-- 如果需要生成/解析二维码图片 -->
+ </dependency>
<dependency>
<groupId>org.flywaydb</groupId>
diff --git a/src/main/java/com/nq/controller/AdminApiController.java b/src/main/java/com/nq/controller/AdminApiController.java
index 3820b97..920ddc4 100644
--- a/src/main/java/com/nq/controller/AdminApiController.java
+++ b/src/main/java/com/nq/controller/AdminApiController.java
@@ -1,9 +1,13 @@
package com.nq.controller;
+import cn.hutool.extra.qrcode.QrCodeUtil;
+import cn.hutool.extra.qrcode.QrConfig;
+import com.google.common.collect.Maps;
import com.nq.common.ServerResponse;
-import com.nq.pojo.SiteAdminIndex;
-import com.nq.pojo.SiteSpread;
+import com.nq.dao.SiteAdminMapper;
+import com.nq.pojo.*;
import com.nq.service.*;
+import com.nq.service.impl.GoogleAuthenticator;
import com.nq.utils.PropertiesUtil;
import com.nq.utils.redis.CookieUtils;
import com.nq.utils.redis.JsonUtil;
@@ -13,14 +17,19 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.validation.Valid;
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Date;
+import java.util.Map;
@Controller
@RequestMapping({"/api/admin/"})
@@ -29,6 +38,9 @@
@Autowired
ISiteAdminService iSiteAdminService;
+
+ @Autowired
+ SiteAdminMapper siteAdminMapper;
@Autowired
ISiteSettingService iSiteSettingService;
@@ -51,8 +63,13 @@
//管理系统登录
@RequestMapping({"login.do"})
@ResponseBody
- public ServerResponse login(@RequestParam("adminPhone") String adminPhone, @RequestParam("adminPwd") String adminPwd, @RequestParam("verifyCode") String verifyCode, HttpSession httpSession, HttpServletRequest request, HttpServletResponse response) {
- ServerResponse serverResponse = this.iSiteAdminService.login(adminPhone, adminPwd, verifyCode, request);
+ public ServerResponse login(@RequestParam("adminPhone") String adminPhone,
+ @RequestParam("adminPwd") String adminPwd,
+ @RequestParam("verifyCode") String verifyCode,
+ @RequestParam(value = "googleAuthCode", required = false) Integer googleAuthCode,
+ HttpSession httpSession, HttpServletRequest request,
+ HttpServletResponse response) {
+ ServerResponse serverResponse = this.iSiteAdminService.login(adminPhone, adminPwd, verifyCode, googleAuthCode,request);
return serverResponse;
}
@@ -125,8 +142,96 @@
}
+ /**
+ * 获取当前登录用户
+ * @return
+ */
+ @GetMapping("getAdmin")
+ @ResponseBody
+ public ServerResponse getAdmin(HttpServletRequest request) {
+ String cookie_name = PropertiesUtil.getProperty("admin.cookie.name");
+ SiteAdmin siteAdmin = null;
+ if(StringUtils.isNotEmpty(cookie_name)){
+ String logintoken = CookieUtils.readLoginToken(request, cookie_name);
+ String adminJson = RedisShardedPoolUtils.get(logintoken);
+ siteAdmin = (SiteAdmin) JsonUtil.string2Obj(adminJson, SiteAdmin.class);
+ siteAdmin = siteAdminMapper.selectById(siteAdmin.getId());
+ }
+ return ServerResponse.createBySuccess(siteAdmin);
+ }
+ /**
+ * 获取谷歌验证码密钥
+ * @return
+ */
+ @GetMapping("getLoginGoogleAuthSecret")
+ @ResponseBody
+ public ServerResponse getLoginGoogleAuthSecret(HttpServletRequest request) {
+ GoogleAuthDto dto = iSiteAdminService.getGoogleAuth(request);
+ return ServerResponse.createBySuccess(dto);
+ }
+
+ /**
+ * 绑定谷歌验证码
+ */
+ @PostMapping("bindGoogleAuth")
+ @ResponseBody
+ public ServerResponse updateGoogleAuth(@RequestParam("id") String id,
+ @RequestParam("googleAuthCode") String googleAuthCode,
+ @RequestParam("secret") String secret) {
+ SiteAdmin siteAdmin = siteAdminMapper.selectById(id);
+ if (siteAdmin == null) {
+ return ServerResponse.createByErrorMsg("当前用户未找到");
+ }
+ long t = System.currentTimeMillis();
+ GoogleAuthenticator ga = new GoogleAuthenticator();
+ ga.setWindowSize(5);
+ if (siteAdmin.getGoogleAuthBind()) {
+ return ServerResponse.createByErrorMsg("谷歌验证码已绑定");
+ }
+ boolean userFlag = ga.check_code(secret, Long.valueOf(googleAuthCode), t);
+ if (!userFlag) {
+ return ServerResponse.createByErrorMsg("谷歌验证码错误");
+ }
+ siteAdmin.setGoogleAuthBind(true);
+ siteAdmin.setGoogleAuthSecret(secret);
+ siteAdminMapper.updateById(siteAdmin);
+ return ServerResponse.createBySuccess();
+ }
+
+
+ /**
+ * 解绑谷歌验证码
+ * @param param
+ * @return
+ */
+ @PostMapping("/unbindingGoogleAuth")
+ @ResponseBody
+ public ServerResponse unbindingGoogleAuth(@RequestParam("id") String id,
+ @RequestParam("rootGoogleAuthCode") String rootGoogleAuthCode) {
+ SiteAdmin siteAdmin = siteAdminMapper.selectById(id);
+ if (siteAdmin == null) {
+ return ServerResponse.createByErrorMsg("当前用户未找到");
+ }
+ long t = System.currentTimeMillis();
+ GoogleAuthenticator ga = new GoogleAuthenticator();
+ ga.setWindowSize(5);
+ boolean flag = ga.check_code(siteAdmin.getGoogleAuthSecret(), Long.valueOf(rootGoogleAuthCode), t);
+ if (flag) {
+ if (!siteAdmin.getGoogleAuthBind()) {
+ return ServerResponse.createByErrorMsg("谷歌验证码未绑定,无需解绑!");
+
+ }
+ siteAdmin.setGoogleAuthBind(false);
+ siteAdmin.setGoogleAuthSecret("");
+ siteAdminMapper.updateById(siteAdmin);
+ } else {
+ return ServerResponse.createByErrorMsg("超级谷歌验证码错误");
+ }
+ return ServerResponse.createBySuccess();
+ }
+
// //页面样式设置
diff --git a/src/main/java/com/nq/controller/UserPositionCheckDzController.java b/src/main/java/com/nq/controller/UserPositionCheckDzController.java
index 4af1c30..eff0556 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("JP", 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.JP.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..0049f54 100644
--- a/src/main/java/com/nq/controller/echo/EChoController.java
+++ b/src/main/java/com/nq/controller/echo/EChoController.java
@@ -62,7 +62,7 @@
}
}
User user = this.iUserService.getCurrentRefreshUser(request);
- UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("JP", user.getId());
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
}
diff --git a/src/main/java/com/nq/controller/protol/UserController.java b/src/main/java/com/nq/controller/protol/UserController.java
index bfa4713..b01f91a 100644
--- a/src/main/java/com/nq/controller/protol/UserController.java
+++ b/src/main/java/com/nq/controller/protol/UserController.java
@@ -417,30 +417,32 @@
@RequestMapping({"thirdPartyRecharge.do"})
@ResponseBody
public ServerResponse thirdPartyRecharge(@RequestParam("tradeAmoun") String tradeAmoun,@RequestParam("type") Integer type,HttpServletRequest request) {
- payLock.lock();
- try {
- if (payCreated.get()) {
- return ServerResponse.createByErrorMsg("当前充值人数过多,请稍后重试", request);
- }
- if (!isIntegerGreaterThan100(tradeAmoun)) {
- return ServerResponse.createByErrorMsg("请输入整数!",request);
- }
- if(null == type){
- return ServerResponse.createByErrorMsg("请选择支付通道!",request);
- }
- if(new BigDecimal(tradeAmoun).compareTo(new BigDecimal("1000")) < 0){
- return ServerResponse.createByErrorMsg("请重新输入,最低充值金额:1000", request);
- }
-
- payCreated.set(true);
- return payService.thirdPartyRecharge(request,tradeAmoun,type);
- } catch (Exception e) {
- e.printStackTrace();
- return ServerResponse.createByErrorMsg("获取充值链接异常,请稍后重试", request);
- } finally{
- payLock.unlock();
- payCreated.set(false);
- }
+ return ServerResponse.createBySuccess("请联系客服充值");
+// payLock.lock();
+// try {
+//
+// if (payCreated.get()) {
+// return ServerResponse.createByErrorMsg("当前充值人数过多,请稍后重试", request);
+// }
+// if (!isIntegerGreaterThan100(tradeAmoun)) {
+// return ServerResponse.createByErrorMsg("请输入整数!",request);
+// }
+// if(null == type){
+// return ServerResponse.createByErrorMsg("请选择支付通道!",request);
+// }
+// if(new BigDecimal(tradeAmoun).compareTo(new BigDecimal("1000")) < 0){
+// return ServerResponse.createByErrorMsg("请重新输入,最低充值金额:1000", request);
+// }
+//
+// payCreated.set(true);
+// return payService.thirdPartyRecharge(request,tradeAmoun,type);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return ServerResponse.createByErrorMsg("获取充值链接异常,请稍后重试", request);
+// } finally{
+// payLock.unlock();
+// payCreated.set(false);
+// }
}
// 判断字符串是否是整数且大于100
public static boolean isIntegerGreaterThan100(String str) {
@@ -452,19 +454,19 @@
}
}
- /**
- * 充值1异步接收地址
- */
- @PostMapping({"rechargeCallback.do"})
- public void rechargeCallback(PaymentResponse vo, HttpServletResponse response) throws IOException {
- payService.rechargeCallback(vo,response);
- }
-
- /**
- * 充值2异步接收地址
- */
- @PostMapping({"rechargeCallbackTwo.do"})
- public void rechargeCallbackTwo(TransactionStatusVo vo, HttpServletResponse response) throws IOException {
- payService.rechargeCallbackTwo(vo,response);
- }
+// /**
+// * 充值1异步接收地址
+// */
+// @PostMapping({"rechargeCallback.do"})
+// public void rechargeCallback(PaymentResponse vo, HttpServletResponse response) throws IOException {
+// payService.rechargeCallback(vo,response);
+// }
+//
+// /**
+// * 充值2异步接收地址
+// */
+// @PostMapping({"rechargeCallbackTwo.do"})
+// public void rechargeCallbackTwo(TransactionStatusVo vo, HttpServletResponse response) throws IOException {
+// payService.rechargeCallbackTwo(vo,response);
+// }
}
diff --git a/src/main/java/com/nq/enums/EStockType.java b/src/main/java/com/nq/enums/EStockType.java
index 373ee52..91ffe4b 100644
--- a/src/main/java/com/nq/enums/EStockType.java
+++ b/src/main/java/com/nq/enums/EStockType.java
@@ -10,12 +10,13 @@
public enum EStockType {
-
- US("US","美国股票","5",PropertiesUtil.getProperty("US_HTTP_API"),PropertiesUtil.getProperty("US_KEY"),"USD","$"),
- HK("HK","香港股票","39",PropertiesUtil.getProperty("HK_HTTP_API"),PropertiesUtil.getProperty("HK_KEY"),"HKD","HK$"),
- MAS("MAS","马来西亚股票","42",PropertiesUtil.getProperty("MAS_HTTP_API"),PropertiesUtil.getProperty("MAS_KEY"),"MYR","RM"),
-
- IN("IN","印度股票","14", PropertiesUtil.getProperty("JS_IN_HTTP_URL"),PropertiesUtil.getProperty("JS_IN_KEY"),"INR","₹");
+//
+// US("US","美国股票","5",PropertiesUtil.getProperty("US_HTTP_API"),PropertiesUtil.getProperty("US_KEY"),"USD","$"),
+// HK("HK","香港股票","39",PropertiesUtil.getProperty("HK_HTTP_API"),PropertiesUtil.getProperty("HK_KEY"),"HKD","HK$"),
+// MAS("MAS","马来西亚股票","42",PropertiesUtil.getProperty("MAS_HTTP_API"),PropertiesUtil.getProperty("MAS_KEY"),"MYR","RM"),
+//
+// IN("IN","印度股票","14", PropertiesUtil.getProperty("JS_IN_HTTP_URL"),PropertiesUtil.getProperty("JS_IN_KEY"),"INR","₹");
+ JP("JP","日本股票","35", PropertiesUtil.getProperty("JP_HTTP_API"),PropertiesUtil.getProperty("JP_KEY"),"JPY","¥");
// TH("TH","泰国股票","41",PropertiesUtil.getProperty("TH_HTTP_API"),PropertiesUtil.getProperty("TH_KEY")),
// HG("HG","韩国股票","11",PropertiesUtil.getProperty("HG_HTTP_API"),PropertiesUtil.getProperty("HG_KEY")),
// SZHB("SZHB","数字货币","41",PropertiesUtil.getProperty("SZHB_HTTP_API"),PropertiesUtil.getProperty("SZHB_KEY"));
@@ -42,18 +43,21 @@
}
public static EStockType getEStockTypeByCode(String code){
- if(EStockType.US.getCode().equals(code)){
- return US;
+ if(EStockType.JP.getCode().equals(code)){
+ return JP;
- }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{
- return MAS;
+ }else {
+ return null;
}
+// 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{
+// return MAS;
+// }
}
public String getContryId() {
diff --git a/src/main/java/com/nq/pojo/GoogleAuthDto.java b/src/main/java/com/nq/pojo/GoogleAuthDto.java
new file mode 100644
index 0000000..caa37e7
--- /dev/null
+++ b/src/main/java/com/nq/pojo/GoogleAuthDto.java
@@ -0,0 +1,14 @@
+package com.nq.pojo;
+
+import lombok.Data;
+
+@Data
+public class GoogleAuthDto {
+
+
+ //密钥
+ private String googleAuthSecret;
+
+ //密钥
+ private String googleAuthImg;
+}
diff --git a/src/main/java/com/nq/pojo/SiteAdmin.java b/src/main/java/com/nq/pojo/SiteAdmin.java
index 3a5fa95..fea278a 100644
--- a/src/main/java/com/nq/pojo/SiteAdmin.java
+++ b/src/main/java/com/nq/pojo/SiteAdmin.java
@@ -1,6 +1,7 @@
package com.nq.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.Date;
@@ -15,6 +16,14 @@
private Date addTime;
private String token;
-
+ /**
+ * 谷歌验证器
+ */
+ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
+ private String googleAuthSecret;
+ /**
+ * 谷歌验证器是否绑定
+ */
+ private Boolean googleAuthBind=false;
}
diff --git a/src/main/java/com/nq/pojo/UnbindingGoogleAuthModel.java b/src/main/java/com/nq/pojo/UnbindingGoogleAuthModel.java
new file mode 100644
index 0000000..e808c12
--- /dev/null
+++ b/src/main/java/com/nq/pojo/UnbindingGoogleAuthModel.java
@@ -0,0 +1,17 @@
+package com.nq.pojo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class UnbindingGoogleAuthModel {
+
+
+ private long id;
+
+
+ //谷歌验证码
+ @NotBlank
+ private String rootGoogleAuthCode;
+}
diff --git a/src/main/java/com/nq/pojo/UpdateGoogleAuthDto.java b/src/main/java/com/nq/pojo/UpdateGoogleAuthDto.java
new file mode 100644
index 0000000..f8b369b
--- /dev/null
+++ b/src/main/java/com/nq/pojo/UpdateGoogleAuthDto.java
@@ -0,0 +1,21 @@
+package com.nq.pojo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class UpdateGoogleAuthDto {
+
+
+ private long id;
+
+ //谷歌密钥
+ @NotBlank
+ private String secret;
+
+
+ //验证码
+ private String googleAuthCode;
+
+}
diff --git a/src/main/java/com/nq/service/ISiteAdminService.java b/src/main/java/com/nq/service/ISiteAdminService.java
index 07329f9..fa6d977 100644
--- a/src/main/java/com/nq/service/ISiteAdminService.java
+++ b/src/main/java/com/nq/service/ISiteAdminService.java
@@ -3,12 +3,13 @@
import com.github.pagehelper.PageInfo;
import com.nq.common.ServerResponse;
+import com.nq.pojo.GoogleAuthDto;
import com.nq.pojo.SiteAdmin;
import javax.servlet.http.HttpServletRequest;
public interface ISiteAdminService {
- ServerResponse login(String paramString1, String paramString2, String paramString3, HttpServletRequest paramHttpServletRequest);
+ ServerResponse login(String paramString1, String paramString2, String paramString3, Integer googleAuthCode,HttpServletRequest paramHttpServletRequest);
ServerResponse<PageInfo> listByAdmin(String paramString1, String paramString2, HttpServletRequest paramHttpServletRequest, int paramInt1, int paramInt2);
@@ -26,7 +27,10 @@
ServerResponse count();
+
ServerResponse deleteAdmin(Integer adminId);
ServerResponse moneyCount(String agentId, String startTime, String entTime);
+
+ GoogleAuthDto getGoogleAuth(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..07cf897 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, "JP")
);
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, "JP")
);
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 7b1c67a..eb53af3 100644
--- a/src/main/java/com/nq/service/impl/PayServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/PayServiceImpl.java
@@ -724,7 +724,7 @@
}
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class)
.eq(UserAssets::getUserId, paymentRecharge.getUserId())
- .eq(UserAssets::getAccectType, "IN")
+ .eq(UserAssets::getAccectType, "JP")
);
ServerResponse serverResponse = iUserAssetsServices.updateUserAssets(userAssets.getId(), vo.getOriAmount().toString(), "2");
if(serverResponse.getStatus() == 0){
@@ -936,7 +936,7 @@
}
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class)
.eq(UserAssets::getUserId, paymentRecharge.getUserId())
- .eq(UserAssets::getAccectType, "IN")
+ .eq(UserAssets::getAccectType, "JP")
);
ServerResponse serverResponse = iUserAssetsServices.updateUserAssets(userAssets.getId(), vo.getAccount_fee().toString(), "2");
if(serverResponse.getStatus() == 0){
diff --git a/src/main/java/com/nq/service/impl/PriceServicesImpl.java b/src/main/java/com/nq/service/impl/PriceServicesImpl.java
index 05dd037..5ad56e6 100644
--- a/src/main/java/com/nq/service/impl/PriceServicesImpl.java
+++ b/src/main/java/com/nq/service/impl/PriceServicesImpl.java
@@ -112,7 +112,7 @@
public String doPost(String pid) {
// 从配置中获取 API URL,并拼接 key
- String apiUrl = PropertiesUtil.getProperty("JS_IN_HTTP_URL") + "stock?key=" + PropertiesUtil.getProperty("JS_IN_KEY");
+ String apiUrl = PropertiesUtil.getProperty("JP_HTTP_API") + "stock?key=" + PropertiesUtil.getProperty("JP_KEY");
String result = null;
try {
URL url = new URL(apiUrl);
diff --git a/src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java b/src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java
index 863377c..a5ad4ff 100644
--- a/src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java
@@ -1,8 +1,10 @@
package com.nq.service.impl;
import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.qrcode.QrCodeUtil;
+import cn.hutool.extra.qrcode.QrConfig;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nq.dao.*;
import com.github.pagehelper.PageHelper;
@@ -30,6 +32,7 @@
import com.nq.utils.PropertiesUtil;
import com.nq.utils.SymmetricCryptoUtil;
+import com.nq.utils.redis.CookieUtils;
import com.nq.utils.redis.JsonUtil;
import com.nq.utils.redis.RedisConst;
import com.nq.utils.redis.RedisShardedPoolUtils;
@@ -109,53 +112,44 @@
@Autowired
AgentUserMapper agentUserMapper;
- public ServerResponse login(String adminPhone, String adminPwd, String verifyCode, HttpServletRequest request) {
+ public ServerResponse login(String adminPhone, String adminPwd, String verifyCode,Integer googleAuthCode, HttpServletRequest request) {
if (StringUtils.isBlank(verifyCode)) {
-
return ServerResponse.createByErrorMsg("验证码不能为空");
-
}
-//
- String original = (String) request.getSession().getAttribute("KAPTCHA_SESSION_KEY");
- /*if (!verifyCode.equalsIgnoreCase(original)) {
-
- return ServerResponse.createByErrorMsg("验证码错误");
-
- }*/
-
-
- if (StringUtils.isBlank(adminPhone) || StringUtils.isBlank(adminPwd)) {
+ if (StringUtils.isBlank(adminPhone) || StringUtils.isBlank(adminPwd) ) {
return ServerResponse.createByErrorMsg("参数不能为空");
}
- SymmetricCryptoUtil.decryptPassword("8OTlTNZ9EwQ29Pf0R8a37Q==");
adminPwd = SymmetricCryptoUtil.encryptPassword(adminPwd);
SiteAdmin siteAdmin = this.siteAdminMapper.login(adminPhone, adminPwd);
-// SiteAdmin siteAdmin = (SiteAdmin) siteAdminMapper.selectOne(new QueryWrapper<SiteAdmin>().eq("admin_phone", adminPhone).eq("admin_pwd", adminPwd));
-
if (siteAdmin == null) {
-
return ServerResponse.createByErrorMsg("账号密码错误");
-
}
-
-
if (siteAdmin.getIsLock().intValue() == 1) {
-
return ServerResponse.createByErrorMsg("账号已被锁定");
-
}
-
+ if(siteAdmin.getGoogleAuthBind() && ObjectUtil.isEmpty(googleAuthCode)){
+ return ServerResponse.createByErrorMsg("谷歌验证码不能为空");
+ }
+ if(siteAdmin.getGoogleAuthBind()){
+ long t = System.currentTimeMillis();
+ GoogleAuthenticator ga = new GoogleAuthenticator();
+ ga.setWindowSize(5);
+ boolean userFlag = ga.check_code(siteAdmin.getGoogleAuthSecret(), Long.valueOf(googleAuthCode), t);
+ if (!userFlag) {
+ return ServerResponse.createByErrorMsg("谷歌验证码错误!");
+ }
+ }
siteAdmin.setAdminPwd(null);
HttpSession httpSession = request.getSession();
String token = RedisConst.getAdminRedisKey(httpSession.getId());
- String str = RedisShardedPoolUtils.setEx(token,
+ RedisShardedPoolUtils.setEx(token,
JsonUtil.obj2String(siteAdmin), 999999);
@@ -461,6 +455,30 @@
return ServerResponse.createBySuccess(map);
}
+ @Override
+ public GoogleAuthDto getGoogleAuth(HttpServletRequest request) {
+ String secretKey = GoogleAuthenticator.generateSecretKey();
+ QrConfig config = new QrConfig(345, 345);
+ config.setMargin(3);
+ String cookie_name = PropertiesUtil.getProperty("admin.cookie.name");
+ SiteAdmin siteAdmin = null;
+ if(StringUtils.isNotEmpty(cookie_name)){
+ siteAdmin = getAdmin(cookie_name,request);
+ }
+ String content = String.format("otpauth://totp/%s?secret=%s", siteAdmin.getAdminName(),secretKey);
+ String base64 = QrCodeUtil.generateAsBase64(content, config, "png");
+ GoogleAuthDto dto = new GoogleAuthDto();
+ dto.setGoogleAuthImg(base64);
+ dto.setGoogleAuthSecret(secretKey);
+ return dto;
+ }
+
+ public SiteAdmin getAdmin(String cookie_name,HttpServletRequest request){
+ String logintoken = CookieUtils.readLoginToken(request, cookie_name);
+ String adminJson = RedisShardedPoolUtils.get(logintoken);
+ return (SiteAdmin) JsonUtil.string2Obj(adminJson, SiteAdmin.class);
+ }
+
public static List<Integer> getAllChildrenIds(AgentUserNodeVO parent) {
List<Integer> allChildrenIds = new ArrayList<>();
getAllChildrenIdsHelper(parent, allChildrenIds);
diff --git a/src/main/java/com/nq/service/impl/SiteInfoServiceImpl.java b/src/main/java/com/nq/service/impl/SiteInfoServiceImpl.java
index 325e82b..d14d73c 100644
--- a/src/main/java/com/nq/service/impl/SiteInfoServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteInfoServiceImpl.java
@@ -100,42 +100,12 @@
log.info("当前以后名");
if(user != null ){
AgentUser agentUser = agentUserMapper.findAgentByAgentId(user.getAgentId());
- if(agentUser != null){
+ if(agentUser != null) {
siteInfo.setAgentCode(agentUser.getAgentCode());
- if(!agentUser.getOnLineServices().isEmpty()){
-// siteInfo.setOnlineService(agentUser.getOnLineServices());
- if(agentUser.getId().equals(17)){
- siteInfo.setOnlineService("https://t.me/DuroCaspital035");
- }else if(agentUser.getId().equals(18)){
- siteInfo.setOnlineService("https://t.me/DC_1352");
- }else if(agentUser.getId().equals(19)){
- siteInfo.setOnlineService("https://t.me/DCBlocktrades");
- }else if(agentUser.getId().equals(20)){
- siteInfo.setOnlineService("https://t.me/JOP1090Q");
- }else if(agentUser.getId().equals(22)){
- siteInfo.setOnlineService("https://t.me/JOP1090Q");
- }else if(agentUser.getId().equals(23)){
- siteInfo.setOnlineService("https://t.me/DCcustomerservice");
- }else if(agentUser.getId().equals(24)){
- siteInfo.setOnlineService("https://t.me/Acc0880");
- }else if(agentUser.getId().equals(25)){
- siteInfo.setOnlineService("https://t.me/DCLisaService");
- }else if(agentUser.getId().equals(26)){
- siteInfo.setOnlineService("https://t.me/AliceKKQ");
- }else if(agentUser.getId().equals(27)){
- siteInfo.setOnlineService("https://t.me/Duro_Capital");
- }else if(agentUser.getId().equals(28)){
- siteInfo.setOnlineService("@https://t.me/DC11023");
- }else if(agentUser.getId().equals(29)){
- siteInfo.setOnlineService("https://t.me/Duro_Capital");
- }else if(agentUser.getId().equals(30)){
- siteInfo.setOnlineService("https://t.me/DL9855\t");
- }
+ if (!agentUser.getOnLineServices().isEmpty()) {
+ siteInfo.setOnlineService(agentUser.getOnLineServices());
}
-
}
- }else{
- siteInfo.setOnlineService("https://t.me/Duro_Capital");
}
return ServerResponse.createBySuccess(siteInfo);
}
diff --git a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
index fb7a0d9..12a5a4c 100644
--- a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
@@ -132,7 +132,7 @@
@Override
public void grabNews() {
- addNews(1, PropertiesUtil.getProperty("JS_IN_HTTP_URL") + "stock-markets?key=" + PropertiesUtil.getProperty("JS_IN_KEY") + "&type=6");
+ addNews(1, PropertiesUtil.getProperty("JP_HTTP_API") + "stock-markets?key=" + PropertiesUtil.getProperty("JP_KEY") + "&type=1&country_id=35");
}
private void addNews(Integer type, String url) {
diff --git a/src/main/java/com/nq/service/impl/StockDzServiceImpl.java b/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
index e225249..3c8ce9d 100644
--- a/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
@@ -55,10 +55,6 @@
@Override
public ServerResponse getDzList(int pageNum, int pageSize, String orderBy, String keyWords, HttpServletRequest request) {
PageHelper.startPage(pageNum, pageSize);
- if (keyWords == null || keyWords.trim().isEmpty()) {
- // 如果 keyWords 为空,则直接返回空分页结果
- return ServerResponse.createBySuccess(new RPageInfo());
- }
String formatDate = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
List<StockDz> stockTypeDz = stockMapper.findStockTypeDz(orderBy, keyWords,formatDate);
RPageInfo pageInfo = new RPageInfo();
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index 5aefa76..e645c0c 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, "JP", 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, "JP"));
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..bef41b5 100644
--- a/src/main/java/com/nq/service/impl/TradingHourServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/TradingHourServiceImpl.java
@@ -48,7 +48,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","JP"));
if(stockSetting!= null){
// 说明进入盘前交易或者盘后交易时间
Date newDate = new Date();
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 2ff418f..42a85fa 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -191,7 +191,7 @@
BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever));
BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
- BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
+ BigDecimal fundratio = new BigDecimal(String.valueOf(user.getFundRatio().isEmpty() ? 100 : user.getFundRatio())).divide(new BigDecimal(100));
BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance());
if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
@@ -344,7 +344,7 @@
UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
.eq(UserAssets::getUserId, userPosition.getUserId())
- .eq(UserAssets::getAccectType, "IN")
+ .eq(UserAssets::getAccectType, "JP")
);
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("JP");
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("JP", userPosition.getUserId());
if(null == userAssets){
return ServerResponse.createByErrorMsg("新股转持仓失败");
}
userAssetsMapper.updateById(userAssets);
- iUserAssetsServices.availablebalanceChange("IN", userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", "");
+ iUserAssetsServices.availablebalanceChange("JP", 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("JP", 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.JP.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
+ iUserAssetsServices.availablebalanceChange("JP", 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, "JP")
);
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..1f3bc75 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.JP.getSymbol1());
+ userRecharges.get(i).setChannelName(EStockType.JP.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.JP.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..48f6ca5 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -189,7 +189,6 @@
user.setRegAddress(uadd);
user.setIsLogin(Integer.valueOf(0));
-
int insertCount = this.userMapper.insert(user);
if (insertCount > 0) {
@@ -210,7 +209,7 @@
if (user.getIsLogin().intValue() == 1) {
return ServerResponse.createByErrorMsg("登录失败。账户锁定",request);
}
- userAssetsServices.assetsByTypeAndUserId(EStockType.IN.getCode(),user.getId());
+ userAssetsServices.assetsByTypeAndUserId(EStockType.JP.getCode(),user.getId());
this.iSiteLoginLogService.saveLog(user, request);
return ServerResponse.createBySuccess(user);
}
@@ -527,7 +526,7 @@
rUserAssets.setAmountToBeCovered((userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten()).toString()));
rUserAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten());
BigDecimal rate = rateServices.currencyRate(
- EStockType.getEStockTypeByCode(userAssets.getAccectType()),EStockType.US);
+ EStockType.getEStockTypeByCode(userAssets.getAccectType()),EStockType.JP);
BigDecimal availableBalanceUSD = amt;
if(amt.compareTo(BigDecimal.ZERO)>0){
@@ -613,7 +612,7 @@
userPositions = userPositionMapper.
findMyPositionByCodeAndSpell(userId,
"","",
- 0, "IN");
+ 0, "JP");
List<UserPositionVO> userPositionVOS = Lists.newArrayList();
@@ -770,7 +769,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 -> "JP".equals(stock.getAccectType()))
.findFirst()
.orElse(null);
@@ -828,8 +827,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.JP.getCode(),dbUser.getId() );
+ userAssetsServices.availablebalanceChange(EStockType.JP.getCode(),dbUser.getId(),EUserAssets.TOP_UP,new BigDecimal(amt),"","");
if (insertCount > 0) {
return ServerResponse.createBySuccessMsg("Success");
}
@@ -854,7 +853,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 -> "JP".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 f202434..deb6e13 100644
--- a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
@@ -86,7 +86,7 @@
}
User user = iUserService.getCurrentRefreshUser(request);
synchronized (user.getId()){
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN",user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("JP",user.getId());
if (model.getNewCode() != null) {
StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>()
.eq("newlist_id", model.getNewlistId()));
@@ -191,7 +191,7 @@
// bound = new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice());
// }
//
- BigDecimal useEnaAmount = iUserAssetsServices.getAvailableBalance(EStockType.IN.getCode(), user.getId());
+ BigDecimal useEnaAmount = iUserAssetsServices.getAvailableBalance(EStockType.JP.getCode(), user.getId());
if(useEnaAmount.compareTo(bound)<0){
return ServerResponse.createByErrorMsg("余额不足,配售失败",request);
}
@@ -210,7 +210,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.JP.getCode(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
if (ret > 0) {
return ServerResponse.createBySuccessMsg("配售成功",request);
} else {
@@ -255,7 +255,7 @@
}
//客户中签直接扣除客户账户可用资金
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", userStockSubscribe.getUserId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("JP", 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())));
@@ -295,7 +295,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.JP.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);
@@ -499,14 +499,14 @@
userStockSubscribe.setSubmitTime(DateTimeUtil.getCurrentDate());
userStockSubscribe.setStatus(4);
BigDecimal bigDecimal = iUserAssetsServices.
- getAvailableBalance(EStockType.IN.getCode(),
+ getAvailableBalance(EStockType.JP.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.JP.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 ded5e4a..4f0fedf 100644
--- a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
@@ -172,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", "JP"));
if (stockTimeSetting == null) {
return false;
}
@@ -240,7 +240,7 @@
User user = this.userMapper.selectById(userWithdraw.getUserId());
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("JP", user.getId());
if (userAssets == null) {
return ServerResponse.createByErrorMsg("用户资金账户不存在");
}
@@ -354,7 +354,7 @@
if (user == null) {
return ServerResponse.createByErrorMsg("用户不存在");
}
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("JP", user.getId());
if (userAssets == null) {
return ServerResponse.createByErrorMsg("用户资金账户不存在");
}
diff --git a/src/main/java/com/nq/utils/redis/RedisKeyUtil.java b/src/main/java/com/nq/utils/redis/RedisKeyUtil.java
index 7e53315..22e7f74 100644
--- a/src/main/java/com/nq/utils/redis/RedisKeyUtil.java
+++ b/src/main/java/com/nq/utils/redis/RedisKeyUtil.java
@@ -91,7 +91,7 @@
public static String doPost(String pid) {
// 从配置中获取 API URL,并拼接 key
- String apiUrl = PropertiesUtil.getProperty("JS_IN_HTTP_URL") + "stock?key=" + PropertiesUtil.getProperty("JS_IN_KEY");
+ String apiUrl = PropertiesUtil.getProperty("JP_HTTP_API") + "stock?key=" + PropertiesUtil.getProperty("JP_KEY");
String result = null;
try {
URL url = new URL(apiUrl);
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..6838ebe 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 0/1 * * * ?")
public void NewsInfoTask() {
if (NewsInfoTask.get()) { // 判断任务是否在处理中
return;
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..84851b7 100644
--- a/src/main/java/com/nq/utils/task/stock/CarryPositionTask.java
+++ b/src/main/java/com/nq/utils/task/stock/CarryPositionTask.java
@@ -113,7 +113,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("JP",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..a1fee8d 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.JP);
} finally {
syncINStockDataLock.unlock();
syncINStockData.set(false); // 设置处理中标识为false
diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index 3b8a3a0..d2b9ce2 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("JS_IN_WS_URL")),EStockType.IN);
+ WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("JS_IN_WS_URL")),EStockType.JP);
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 9c2fd8a..471b111 100644
--- a/src/main/java/com/nq/ws/WebsocketRunClient.java
+++ b/src/main/java/com/nq/ws/WebsocketRunClient.java
@@ -74,7 +74,7 @@
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.JP,stockRealTimeBean);
ObjectMapper objectMapper = new ObjectMapper();
try {
if(!stockRealTimeBean.getPcp().contains("-")){
@@ -83,7 +83,7 @@
String json = objectMapper.writeValueAsString(stockRealTimeBean);
sendLoca(json);
StockRealTimeBean stockDetailBean = new Gson().fromJson(s, StockRealTimeBean.class);
- RedisKeyUtil.setCacheRealTimeStock(EStockType.IN,stockDetailBean);
+ RedisKeyUtil.setCacheRealTimeStock(EStockType.JP,stockDetailBean);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
@@ -101,7 +101,7 @@
@Override
public void onClose(int i, String s, boolean b) {
- log.info("websocket 印度股票 关闭"+1);
+ log.info("websocket 日本股票 关闭"+1);
}
@Override
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 5fbe190..8199de9 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -17,10 +17,10 @@
ftp.user=ftp_stock
ftp.pass=123456
ftp.address =/www/wwwroot/ftp_stock/
-ftp.server.http.prefix=https://img.durocaspitall.com/
+ftp.server.http.prefix=https://img.yanshiz.com/
redis1.ip=localhost
-redis1.port=6379
+redis1.port=6380
redis1.pwd=
redis1.timeout=10000
redis.max.total=50
@@ -47,42 +47,45 @@
#IN_NEW_HTTP_API = http://api-in-2.js-stock.top/
#IN_NEW_KEY = eVKtHt7aG4m6ozwWL9qG
-JS_IN_HTTP_API = http://api-in-3-socket.js-stock.top
-JS_IN_HTTP_URL = http://api-in-pro.js-stock.top/
-JS_IN_WS_URL = ws://api-in-pro-ws.js-stock.top
-JS_IN_KEY = xKChgi47AP1NMwMeYI3c
-
-US_HTTP_API = http://api-us.js-stock.top/
-US_WS_URL = ws://ws-us.js-stock.top
-US_KEY = jZFrku4RGQjP87Hmq5tm
-
-HK_HTTP_API = http://test.js-stock.top/
-HK_WS_URL = ws://test-ws.js-stock.top
-HK_KEY = mG8QQDdjGuLjLnrryd0B
+#JS_IN_HTTP_API = http://api-in-3-socket.js-stock.top
+#JS_IN_HTTP_URL = http://api-in-pro.js-stock.top/
+#JS_IN_WS_URL = ws://api-in-pro-ws.js-stock.top
+#JS_IN_KEY = xKChgi47AP1NMwMeYI3c
+#
+#US_HTTP_API = http://api-us.js-stock.top/
+#US_WS_URL = ws://ws-us.js-stock.top
+#US_KEY = jZFrku4RGQjP87Hmq5tm
+#
+#HK_HTTP_API = http://test.js-stock.top/
+#HK_WS_URL = ws://test-ws.js-stock.top
+#HK_KEY = mG8QQDdjGuLjLnrryd0B
#HK_HTTP_API = http://api-v1.js-stock.top/
#HK_WS_URL = ws://api-v1-ws.js-stock.top
#HK_KEY = QgiqrYYZem1WWXWbHeT7
+JP_HTTP_API = http://api-jp.js-stock.top/
+JP_WS_URL = ws://api-jp-ws.js-stock.top
+JP_KEY = XBAhluTZJ9hNvRJ0hHmj
-HG_HTTP_API = http://test.js-stock.top/
-HG_WS_URL = ws://test-ws.js-stock.top
-HG_KEY = mG8QQDdjGuLjLnrryd0B
-
-
-
-TH_HTTP_API = http://test.js-stock.top/
-TH_WS_URL = ws://api-in-ws.js-stock.top
-TH_KEY = GBZAcUPLKZzDMDjvV9Ea
-
-MAS_HTTP_API = http://api-ms.js-stock.top/
-MAS_WS_URL = ws://api-ms-ws.js-stock.top
-MAS_KEY = PQWyZGrw7wRqdoWrvnY9
-
-SZHB_HTTP_API = https://api.huobi.pro/
-SZHB_WS_URL = ws://api-in-ws.js-stock.top
-SZHB_KEY = GBZAcUPLKZzDMDjvV9Ea
+#HG_HTTP_API = http://test.js-stock.top/
+#HG_WS_URL = ws://test-ws.js-stock.top
+#HG_KEY = mG8QQDdjGuLjLnrryd0B
+#
+#
+#
+#TH_HTTP_API = http://test.js-stock.top/
+#TH_WS_URL = ws://api-in-ws.js-stock.top
+#TH_KEY = GBZAcUPLKZzDMDjvV9Ea
+#
+#MAS_HTTP_API = http://api-ms.js-stock.top/
+#MAS_WS_URL = ws://api-ms-ws.js-stock.top
+#MAS_KEY = PQWyZGrw7wRqdoWrvnY9
+#
+#SZHB_HTTP_API = https://api.huobi.pro/
+#SZHB_WS_URL = ws://api-in-ws.js-stock.top
+#SZHB_KEY = GBZAcUPLKZzDMDjvV9Ea
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index fd47f7d..d058a45 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -2,7 +2,7 @@
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8090
- port: 8091
+ port: 8092
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
@@ -104,9 +104,9 @@
# 地址
host: localhost
# 端口,默认为6379
- port: 6379
+ port: 6380
# 数据库索引
- database: 0
+ database: 3
# 密码
password:
# 连接超时时间
@@ -124,10 +124,10 @@
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/stock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ url: jdbc:mysql://127.0.0.1:6306/stock-rg?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
# url: jdbc:mysql://127.0.0.1:3306/cgstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
- password: 123456
+ password: Err;2[eoGFUriwdgr
druid:
# 初始连接数
initialSize: 5
--
Gitblit v1.9.3