From 665c763cb07deb261cf4fa62c6eb574aec1d816a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 30 Dec 2024 14:03:05 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java | 36 +++++++++++++++++++-----------------
1 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
index 2e39552..a9f6262 100644
--- a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
@@ -127,23 +127,26 @@
}
// //重复申购限制
-// 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);
-// }
+ Long count = userStockSubscribeMapper.selectCount(new QueryWrapper<UserStockSubscribe>().eq(
+ "new_code", model.getNewCode()).eq("user_id", user.getId()).eq("type", model.getType()));
+ if (count > 0) {
+ return ServerResponse.createByErrorMsg("请勿重复申请",request);
+ }
if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
return ServerResponse.createByErrorMsg("订单失败,帐户已被锁定",request);
}
if (stockSubscribe == null) {
return ServerResponse.createByErrorMsg("新的股票代码不存在",request);
}
+
+ model.setApplyNums((int) (model.getApplyNums()*stockSubscribe.getLever()));
+
//计算申购金额
BigDecimal bound;
if (stockSubscribe.getMinPrice() != null && stockSubscribe.getMinPrice().compareTo(BigDecimal.ZERO) > 0) {
- bound = new BigDecimal(model.getApplyNums()).multiply(new BigDecimal(stockSubscribe.getLever().toString())).multiply(stockSubscribe.getMinPrice());
+ bound = new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getMinPrice());
}else{
- bound = new BigDecimal(model.getApplyNums()).multiply(new BigDecimal(stockSubscribe.getLever().toString())).multiply(stockSubscribe.getPrice());
+ bound = new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice());
}
if(stockSubscribe.getType() == 1){
@@ -227,7 +230,7 @@
*/
@Override
@Transactional
- public ServerResponse save(UserStockSubscribe model, HttpServletRequest request) {
+ public ServerResponse save(UserStockSubscribe model, HttpServletRequest request) throws Exception {
int ret = 0;
if( model.getId() != null ){
if (model.getStatus() == 3||model.getStatus() == 2) {
@@ -253,7 +256,7 @@
UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", 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())).multiply(new BigDecimal(stockSubscribe.getLever().toString())));
+ model.setBond((stockSubscribe.getMinPrice() != null ? stockSubscribe.getMinPrice() : stockSubscribe.getPrice()).multiply(BigDecimal.valueOf(model.getApplyNumber())));
model.setDbMoney(model.getDbMoney());
if(null == userAssets){
@@ -263,13 +266,13 @@
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) <= 0){
if(applyNumber > 0){
//需要退回的资金
- BigDecimal refundPrice = userStockSubscribe.getBuyPrice().multiply(new BigDecimal(stockSubscribe.getLever())).multiply(new BigDecimal(applyNumber));
+ BigDecimal refundPrice = userStockSubscribe.getBuyPrice().multiply(new BigDecimal(applyNumber));
userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(refundPrice));
- userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(refundPrice));
+ userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(refundPrice));
}
}else{
if(applyNumber > 0){
- BigDecimal refundPrice = userStockSubscribe.getBuyPrice().multiply(new BigDecimal(stockSubscribe.getLever())).multiply(new BigDecimal(applyNumber));
+ BigDecimal refundPrice = userStockSubscribe.getBuyPrice().multiply(new BigDecimal(applyNumber));
BigDecimal subtract = refundPrice.subtract(userAssets.getAmountToBeCovered());
if(subtract.compareTo(BigDecimal.ZERO) <= 0){//如果退回的资金不足补足待补则直接减
userAssets.setAmountToBeCovered(userAssets.getAmountToBeCovered().subtract(refundPrice));
@@ -281,9 +284,9 @@
}
}
ret = userStockSubscribeMapper.update1(model);
+ userAssetsMapper.updateById(userAssets);
iUserPositionService.newStockToPosition(model.getId(),userAssets.getAmountToBeCovered());//转持仓
model.setStatus(5);
- userAssetsMapper.updateById(userAssets);
}else{
if(model.getApplyNumber()>model.getApplyNums()){
return ServerResponse.createByErrorMsg("配置中签数量不能超过申请数量",request);
@@ -298,7 +301,7 @@
ret = userStockSubscribeMapper.update1(model);
}
}else if (model.getStatus() == 2){
- BigDecimal bond = (stockSubscribe.getMinPrice() != null ? stockSubscribe.getMinPrice() : stockSubscribe.getPrice()).multiply(BigDecimal.valueOf(model.getApplyNums())).multiply(new BigDecimal(stockSubscribe.getLever().toString()));
+ BigDecimal bond = (stockSubscribe.getMinPrice() != null ? stockSubscribe.getMinPrice() : stockSubscribe.getPrice()).multiply(BigDecimal.valueOf(model.getApplyNums()));
BigDecimal subtractMoney = bond.subtract(userAssets.getAmountToBeCovered());//需要退回的钱
userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(subtractMoney.abs()));
userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(subtractMoney));
@@ -352,8 +355,6 @@
}
}
-
-
} else{
if(model.getPhone() != null&&model.getId()==null) {
User user = userMapper.findByPhone(model.getPhone());
@@ -379,7 +380,8 @@
model.setAddTime(DateTimeUtil.getCurrentDate());
model.setOrderNo(KeyUtils.getUniqueKey());
model.setType(stockSubscribe.getType());
- ret = userStockSubscribeMapper.insert(model);
+ UserStockSubscribeAddIn convert = Convert.convert(UserStockSubscribeAddIn.class, model);
+ return insert(convert,request);
}
}
if(ret>0){
--
Gitblit v1.9.3