From 2a13fc3d05c012766eb677cb0486e6dcf9ed1bf2 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 29 Aug 2024 18:30:16 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java | 30 ++++++++++++++++--------------
1 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
index 91fb092..75ae719 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
@@ -83,7 +84,7 @@
return ServerResponse.createByErrorMsg("参数错误",request);
}
User user = iUserService.getCurrentRefreshUser(request);
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN",user.getId());
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("MAS",user.getId());
if (model.getNewCode() != null) {
StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>()
.eq("code", model.getNewCode()).eq("type",model.getType()));
@@ -111,8 +112,8 @@
if (stockSubscribe == null) {
return ServerResponse.createByErrorMsg("新的股票代码不存在",request);
}
- if (model.getApplyNums() == null || model.getApplyNums() > stockSubscribe.getOrderNumber()|| model.getApplyNums() < 500) {
- return ServerResponse.createByErrorMsg("最小起订量是500,最大值"
+ if (model.getApplyNums() == null || model.getApplyNums() > stockSubscribe.getOrderNumber()) {
+ return ServerResponse.createByErrorMsg("最大申购数量:"
+ stockSubscribe.getOrderNumber(),request);
}
if(stockSubscribe.getType() == 1){
@@ -135,7 +136,7 @@
}
}else{
BigDecimal bound = new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice());
- BigDecimal useEnaAmount = iUserAssetsServices.getAvailableBalance(EStockType.IN.getCode(), user.getId());
+ BigDecimal useEnaAmount = iUserAssetsServices.getAvailableBalance(stockSubscribe.getStockType(), user.getId());
if(useEnaAmount.compareTo(bound)<0){
return ServerResponse.createByErrorMsg("余额不足,配售失败",request);
}
@@ -152,7 +153,7 @@
model.setType(stockSubscribe.getType());
model.setDbMoney(BigDecimal.ZERO);
ret = userStockSubscribeMapper.insert(model);
- iUserAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
+ iUserAssetsServices.availablebalanceChange(stockSubscribe.getStockType(), user.getId(),EUserAssets.BUY,bound.negate(),"","");
if (ret > 0) {
return ServerResponse.createBySuccessMsg("配售成功",request);
} else {
@@ -196,7 +197,8 @@
model.setBond(stockSubscribe.getPrice().multiply(BigDecimal.valueOf(model.getApplyNumber())));
model.setDbMoney(model.getDbMoney());
//客户中签直接扣除客户账户可用资金
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", userStockSubscribe.getUserId());
+ Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<>(Stock.class).eq(Stock::getStockCode, model.getNewCode()));
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), userStockSubscribe.getUserId());
if(null == userAssets){
return ServerResponse.createByErrorMsg("客户资金账户不存在");
}
@@ -217,7 +219,7 @@
}
BigDecimal cCount = new BigDecimal(model.getApplyNums()-model.getApplyNumber());
BigDecimal tMoney = stockSubscribe.getPrice().multiply(cCount);
- iUserAssetsServices.availablebalanceChange(EStockType.IN.getCode(),userStockSubscribe.getUserId(),
+ iUserAssetsServices.availablebalanceChange(stockSubscribe.getStockType(),userStockSubscribe.getUserId(),
EUserAssets.TOP_UP,tMoney,"","");
model.setBond(stockSubscribe.getPrice().multiply(BigDecimal.valueOf(model.getApplyNumber())));
model.setDbMoney(BigDecimal.ZERO);
@@ -286,7 +288,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");
}
@@ -419,14 +421,14 @@
userStockSubscribe.setSubmitTime(DateTimeUtil.getCurrentDate());
userStockSubscribe.setStatus(4);
BigDecimal bigDecimal = iUserAssetsServices.
- getAvailableBalance(EStockType.IN.getCode(),
+ getAvailableBalance(stockSubscribe.getStockType(),
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(stockSubscribe.getStockType(),userStockSubscribe.getUserId(),
EUserAssets.BUY,multiply.negate(),"","");
userStockSubscribe.setDbMoney(BigDecimal.ZERO);
userStockSubscribeMapper.update1(userStockSubscribe);
--
Gitblit v1.9.3