From 6f353ae65e9c9f117a9c1177aa5766fd6a3a161e Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 02 Jun 2024 16:57:26 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java | 152 ++++++++++++++++++++++++++------------------------
1 files changed, 78 insertions(+), 74 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
index 0d009e5..7469774 100644
--- a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
@@ -82,82 +82,83 @@
if (model == null) {
return ServerResponse.createByErrorMsg("参数错误",request);
}
- User user = iUserService.getCurrentRefreshUser(request);
- if (model.getNewCode() != null) {
- StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>()
- .eq("code", model.getNewCode()).eq("type",model.getType()));
- //实名认证开关
- SiteProduct siteProduct = iSiteProductService.getProductSetting();
- if (siteProduct.getRealNameDisplay() && user.getIsActive() != 2) {
- return ServerResponse.createByErrorMsg("订单失败,请先实名认证",request);
- }
+ User user = iUserService.getCurrentRefreshUser(request);
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN",user.getId());
+ if (model.getNewCode() != null) {
+ StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>()
+ .eq("code", model.getNewCode()).eq("type",model.getType()));
+ //实名认证开关
+ SiteProduct siteProduct = iSiteProductService.getProductSetting();
+ if (siteProduct.getRealNameDisplay() && user.getIsActive() != 2) {
+ return ServerResponse.createByErrorMsg("订单失败,请先实名认证",request);
+ }
+ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+ return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
+ }
+ if(new Date().before(stockSubscribe.getSubscribeTime()) && new Date().after(stockSubscribe.getSubscribeTime()) ){
+ return ServerResponse.createByErrorMsg("不在认缴或配售时间之内",request);
+ }
- if(new Date().before(stockSubscribe.getSubscribeTime()) && new Date().after(stockSubscribe.getSubscribeTime()) ){
- return ServerResponse.createByErrorMsg("不在认缴或配售时间之内",request);
+ //重复申购限制
+ UserStockSubscribe userStockSubscribe = userStockSubscribeMapper.selectOne(new QueryWrapper<UserStockSubscribe>().eq(
+ "new_code", model.getNewCode()).eq("user_id", user.getId()).eq("type",model.getType()));
+ if (userStockSubscribe != null) {
+ return ServerResponse.createByErrorMsg("请勿重复申请",request);
+ }
+ if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
+ return ServerResponse.createByErrorMsg("订单失败,帐户已被锁定",request);
+ }
+ if (stockSubscribe == null) {
+ return ServerResponse.createByErrorMsg("新的股票代码不存在",request);
+ }
+ if (model.getApplyNums() == null || model.getApplyNums() > stockSubscribe.getOrderNumber()|| model.getApplyNums() < 500) {
+ return ServerResponse.createByErrorMsg("最小起订量是500,最大值"
+ + stockSubscribe.getOrderNumber(),request);
+ }
+ if(stockSubscribe.getType() == 1){
+ model.setUserId(user.getId());
+ model.setNewName(stockSubscribe.getName());
+ model.setAgentId(user.getAgentId());
+ model.setAgentName(user.getAgentName());
+ model.setPhone(user.getPhone());
+ model.setBuyPrice(stockSubscribe.getPrice());
+ model.setBond(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()));
+ model.setRealName(Objects.equals(user.getRealName(), "")||user.getRealName()==null ?"模拟用户无实名":user.getRealName());
+ model.setAddTime(new Date());
+ model.setOrderNo(KeyUtils.getUniqueKey());
+ model.setType(stockSubscribe.getType());
+ ret = userStockSubscribeMapper.insert(model);
+ if (ret > 0) {
+ return ServerResponse.createBySuccessMsg("申购成功",request);
+ } else {
+ return ServerResponse.createByErrorMsg("申购失败",request);
}
-
- //重复申购限制
- UserStockSubscribe userStockSubscribe = userStockSubscribeMapper.selectOne(new QueryWrapper<UserStockSubscribe>().eq(
- "new_code", model.getNewCode()).eq("user_id", user.getId()).eq("type",model.getType()));
- if (userStockSubscribe != null) {
- return ServerResponse.createByErrorMsg("请勿重复申请",request);
+ }else{
+ BigDecimal bound = new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice());
+ BigDecimal useEnaAmount = iUserAssetsServices.getAvailableBalance(EStockType.IN.getCode(), user.getId());
+ if(useEnaAmount.compareTo(bound)<0){
+ return ServerResponse.createByErrorMsg("余额不足,配售失败",request);
+ }
+ model.setUserId(user.getId());
+ model.setNewName(stockSubscribe.getName());
+ model.setAgentId(user.getAgentId());
+ model.setAgentName(user.getAgentName());
+ model.setPhone(user.getPhone());
+ model.setBuyPrice(stockSubscribe.getPrice());
+ model.setBond(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()));
+ model.setRealName(Objects.equals(user.getRealName(), "")||user.getRealName()==null ?"模拟用户无实名":user.getRealName());
+ model.setAddTime(new Date());
+ model.setOrderNo(KeyUtils.getUniqueKey());
+ model.setType(stockSubscribe.getType());
+ model.setDbMoney(BigDecimal.ZERO);
+ ret = userStockSubscribeMapper.insert(model);
+ iUserAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
+ if (ret > 0) {
+ return ServerResponse.createBySuccessMsg("配售成功",request);
+ } else {
+ return ServerResponse.createByErrorMsg("配售失败",request);
}
- if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
- return ServerResponse.createByErrorMsg("订单失败,帐户已被锁定",request);
- }
- if (stockSubscribe == null) {
- return ServerResponse.createByErrorMsg("新的股票代码不存在",request);
- }
- if (model.getApplyNums() == null || model.getApplyNums() > stockSubscribe.getOrderNumber()|| model.getApplyNums() < 500) {
- return ServerResponse.createByErrorMsg("最小起订量是500,最大值"
- + stockSubscribe.getOrderNumber(),request);
- }
- if(stockSubscribe.getType() == 1){
- model.setUserId(user.getId());
- model.setNewName(stockSubscribe.getName());
- model.setAgentId(user.getAgentId());
- model.setAgentName(user.getAgentName());
- model.setPhone(user.getPhone());
- model.setBuyPrice(stockSubscribe.getPrice());
- model.setBond(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()));
- model.setRealName(Objects.equals(user.getRealName(), "")||user.getRealName()==null ?"模拟用户无实名":user.getRealName());
- model.setAddTime(new Date());
- model.setOrderNo(KeyUtils.getUniqueKey());
- model.setType(stockSubscribe.getType());
- ret = userStockSubscribeMapper.insert(model);
- if (ret > 0) {
- return ServerResponse.createBySuccessMsg("申购成功",request);
- } else {
- return ServerResponse.createByErrorMsg("申购失败",request);
- }
- }else{
- BigDecimal bound = new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice());
- BigDecimal useEnaAmount = iUserAssetsServices.getAvailableBalance(EStockType.IN.getCode(), user.getId());
- if(useEnaAmount.compareTo(bound)<0){
- return ServerResponse.createByErrorMsg("余额不足,配售失败",request);
- }
- model.setUserId(user.getId());
- model.setNewName(stockSubscribe.getName());
- model.setAgentId(user.getAgentId());
- model.setAgentName(user.getAgentName());
- model.setPhone(user.getPhone());
- model.setBuyPrice(stockSubscribe.getPrice());
- model.setBond(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()));
- model.setRealName(Objects.equals(user.getRealName(), "")||user.getRealName()==null ?"模拟用户无实名":user.getRealName());
- model.setAddTime(new Date());
- model.setOrderNo(KeyUtils.getUniqueKey());
- model.setType(stockSubscribe.getType());
- model.setDbMoney(BigDecimal.ZERO);
- ret = userStockSubscribeMapper.insert(model);
- iUserAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
- if (ret > 0) {
- return ServerResponse.createBySuccessMsg("配售成功",request);
- } else {
- return ServerResponse.createByErrorMsg("配售失败",request);
- }
- }
-
-
+ }
}
return ServerResponse.createByErrorMsg("申购失败",request);
}
@@ -181,6 +182,9 @@
UserStockSubscribe userStockSubscribe = userStockSubscribeMapper.load(model.getId());
if (userStockSubscribe.getStatus() == 5) {
return ServerResponse.createByErrorMsg("It's been converted");
+ }
+ if(userStockSubscribe.getStatus() == 3){
+ return ServerResponse.createByErrorMsg("不能更改申购状态");
}
StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<>(new StockSubscribe())
.eq("code", userStockSubscribe.getNewCode()).eq("type",userStockSubscribe.getType()));
@@ -282,7 +286,7 @@
model.setAgentId(user.getAgentId());
model.setAgentName(user.getAgentName());
StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<>(new StockSubscribe())
- .eq("code", model.getNewCode()).eq("type",model.getType()));
+ .eq("code", model.getNewCode()));
if (stockSubscribe == null) {
return ServerResponse.createByErrorMsg("Failed. Ipo information does not exist");
}
--
Gitblit v1.9.3