From a25a799a89dec7ec39890bc5327e4d0d585959e8 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 28 Apr 2024 14:40:25 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java | 150 +++++++++++++++--------------
src/main/java/com/nq/controller/echo/EChoController.java | 6 +
src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java | 2
src/main/java/com/nq/service/impl/EchoServices.java | 37 +++++--
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 81 +++++++++++-----
src/main/java/com/nq/service/impl/UserServiceImpl.java | 2
6 files changed, 168 insertions(+), 110 deletions(-)
diff --git a/src/main/java/com/nq/controller/echo/EChoController.java b/src/main/java/com/nq/controller/echo/EChoController.java
index bb854da..6ab33d2 100644
--- a/src/main/java/com/nq/controller/echo/EChoController.java
+++ b/src/main/java/com/nq/controller/echo/EChoController.java
@@ -50,6 +50,9 @@
@PostMapping("buyEcho.do")
@ResponseBody
public ServerResponse buyEcho(@RequestParam("eId") String eid, @RequestParam("money") BigDecimal money, HttpServletRequest request) {
+ if(null == money || money.compareTo(BigDecimal.ZERO) <= 0){
+ return ServerResponse.createByErrorMsg("金额不能小于0",request);
+ }
EChoBean eChoBean = eChoMapper.selectById(Integer.parseInt(eid));
if (eChoBean == null) {
return ServerResponse.createByErrorMsg("基金产品不存在",request);
@@ -60,6 +63,9 @@
}
User user = this.iUserService.getCurrentRefreshUser(request);
UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("IN", user.getId());
+ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+ return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
+ }
if(userAssets.getAvailableBalance().compareTo(money) < 0){
return ServerResponse.createByErrorMsg("配资不足",request);
}
diff --git a/src/main/java/com/nq/service/impl/EchoServices.java b/src/main/java/com/nq/service/impl/EchoServices.java
index 319c337..80d115b 100644
--- a/src/main/java/com/nq/service/impl/EchoServices.java
+++ b/src/main/java/com/nq/service/impl/EchoServices.java
@@ -114,21 +114,38 @@
// 本金*收益率*周期/365=收益金额
BigDecimal incomeAmount = money.multiply(rate);
BigDecimal aml = incomeAmount.add(money);
- if (aml.compareTo(BigDecimal.ZERO) > 0) {
- UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
- .eq(UserAssets::getUserId, orderEchoBean.getUserId())
- .eq(UserAssets::getAccectType, "IN")
- );
- userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(aml));
- userAssetsMapper.updateById(userAssets);
- orderEchoBean.setState("2");
- orderEchoBean.setEarnings(incomeAmount.toString());
- orderEchoMapper.updateById(orderEchoBean);
+ UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
+ .eq(UserAssets::getUserId, orderEchoBean.getUserId())
+ .eq(UserAssets::getAccectType, "IN")
+ );
+ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+ continue;
}
+ BigDecimal subtract = aml.subtract(userAssets.getAmountToBeCovered());
+ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+ if(subtract.compareTo(BigDecimal.ZERO) > 0){
+ userAssets.setAmountToBeCovered(BigDecimal.ZERO);
+ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(subtract));
+ }else{
+ userAssets.setAmountToBeCovered(subtract.negate());
+ }
+ }else{
+ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(aml));
+ }
+ userAssetsMapper.updateById(userAssets);
+ orderEchoBean.setState("2");
+ orderEchoBean.setEarnings(incomeAmount.toString());
+ orderEchoMapper.updateById(orderEchoBean);
}
}
+ public static void main(String[] args) {
+ BigDecimal a = new BigDecimal("20");
+ BigDecimal b = new BigDecimal("-100");
+ System.out.println(a.add(b));
+ }
+
@Override
public int insertEcho(EChoBean eChoBean) {
return eChoMapper.insert(eChoBean);
diff --git a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
index c9e87a6..22d3a9a 100644
--- a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
@@ -153,7 +153,7 @@
siteNews.setSourceName("");
siteNews.setTitle(jsonObject.getString("title"));
Long showTime = jsonObject.getLong("time");
- siteNews.setShowTime(new Date(showTime));
+ siteNews.setShowTime(new Date(showTime * 1000));
if(jsonObject.has("img")){
convertBase64ToImage(jsonObject.getString("img"),PropertiesUtil.getProperty("ftp.address")+newsId+".jpg");
siteNews.setImgurl(PropertiesUtil.getProperty("ftp.server.http.prefix")+newsId+".jpg");
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 2762d34..9e7abbc 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -117,6 +117,9 @@
@Autowired
IStockConfigServices iStockConfigServices;
+ @Autowired
+ private UserAssetsMapper userAssetsMapper;
+
@Transactional
public ServerResponse buy(Integer stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, HttpServletRequest request) {
@@ -150,15 +153,14 @@
return ServerResponse.createByErrorMsg("最低购买数量"+mainBuyConfig.getCValue(), request);
}
-
+ UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId());
StockConfig maxBuyConfig = iStockConfigServices.queryByKey(EConfigKey.MAX_BUY.getCode());
-
if(buyNum<Integer.parseInt(mainBuyConfig.getCValue())){
return ServerResponse.createByErrorMsg("最高购买数量"+maxBuyConfig.getCValue(), request);
}
-
- //
-
+ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+ return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
+ }
if (stock.getIsLock() != 0) {
return ServerResponse.createByErrorMsg("订单失败,股票被锁定", request);
}
@@ -177,7 +179,6 @@
BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever));
BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId());
BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance());
if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
@@ -322,6 +323,13 @@
// 手续费率
BigDecimal siitteBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.SELL_HANDLING_CHARGE.getCode()).getCValue()) ;
+ UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
+ .eq(UserAssets::getUserId, userPosition.getUserId())
+ .eq(UserAssets::getAccectType, "IN")
+ );
+ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+ return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
+ }
Boolean b = tradingHourService.timeCheck(userPosition.getStockCode());
if (!b) {
return ServerResponse.createByErrorMsg("订单失败,不在交易时间之内", request);
@@ -1532,6 +1540,10 @@
if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
return ServerResponse.createByErrorMsg("Order failed, account has been locked");
}
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("IN", 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);
@@ -1554,7 +1566,6 @@
return ServerResponse.createByErrorMsg("最小购买数据" + stockDz.getStockNum(), request);
}
BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(num.intValue()));
- UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId());
BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance());
if (buyAmt.compareTo(availableBalance) > 0) {
@@ -1610,17 +1621,23 @@
@Transactional
public void stockConstraint(List<UserPosition> list) {
SiteSetting siteSetting = iSiteSettingService.getSiteSetting();
- BigDecimal siteBuyFee = siteSetting.getBuyFee();
for (UserPosition position : list) {
+ UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
+ .eq(UserAssets::getUserId, position.getUserId())
+ .eq(UserAssets::getAccectType, "IN")
+ );
+ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+ continue;
+ }
//平仓检查
Result result = getResult(position);
if (result == null) continue;
- boolean liquidation = false;
+ Integer liquidation = 0;
liquidation = isLiquidation(position, result.signum, result.profit, liquidation);
- if(liquidation){
- extracted(position, result.nowPrice, result.stock);
+ if(liquidation != 0){
+ extracted(position, result.nowPrice, result.stock,liquidation);
}
}
}
@@ -1690,7 +1707,8 @@
}
//判断平仓
- private boolean isLiquidation(UserPosition position, int signum, BigDecimal profit, boolean liquidation) {
+ private Integer isLiquidation(UserPosition position, int signum, BigDecimal profit, Integer liquidation) {
+ //-1强平 0未触发 1止损强平 2止盈强平
//最新报价
BigDecimal nowPrice = priceServices.getNowPrice(position.getStockCode());
if(position.getOrderDirection().equals("买涨")){
@@ -1701,17 +1719,17 @@
//止损
if(null != position.getStopTargetPrice() && nowPrice.compareTo(position.getStopTargetPrice()) <= 0){
//强制平仓
- return liquidation = true;
+ return liquidation = 1;
}
if (negate.compareTo(position.getOrderTotalPrice()) >= 0){//亏平强平
//强制平仓
- return liquidation = true;
+ return liquidation = -1;
}
}else{
//止盈
if(null != position.getProfitTargetPrice() && nowPrice.compareTo(position.getProfitTargetPrice()) >= 0){
//强制平仓
- return liquidation = true;
+ return liquidation = 2;
}
}
}else{
@@ -1720,18 +1738,18 @@
//止损
if(null != position.getStopTargetPrice() && nowPrice.compareTo(position.getStopTargetPrice()) >= 0){
//强制平仓
- return liquidation = true;
+ return liquidation = 1;
}
//判断亏损金额是否达到保证金金额
if (profit.compareTo(position.getOrderTotalPrice()) >= 0){//亏平强平
//强制平仓
- return liquidation = true;
+ return liquidation = -1;
}
}else{
//止盈
if(null != position.getProfitTargetPrice() && nowPrice.compareTo(position.getProfitTargetPrice()) <= 0){
//强制平仓
- return liquidation = true;
+ return liquidation = 2;
}
}
}
@@ -1739,21 +1757,32 @@
}
//平仓
- private void extracted(UserPosition position, BigDecimal nowPrice, Stock stock) {
+ private void extracted(UserPosition position, BigDecimal nowPrice, Stock stock,Integer liquidation) {
+ //-1强平 0未触发 1止损强平 2止盈强平
+ BigDecimal siitteBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.SELL_HANDLING_CHARGE.getCode()).getCValue()) ;
+ BigDecimal sellOrderTotel = nowPrice.multiply(new BigDecimal(position.getOrderNum()));
+ BigDecimal xsPrice = sellOrderTotel.multiply(siitteBuyFee);//手续费
// 更新订单信息
position.setSellOrderId(GeneratePosition.getPositionId());
position.setSellOrderPrice(nowPrice);
position.setSellOrderTime(new Date());
userPositionMapper.updateById(position);
+ if(liquidation == -1){
+ userAssetsServices.availablebalanceChange(stock.getStockType(),
+ position.getUserId(),
+ EUserAssets.CONSTRAINT_CLOSE_POSITION,
+ position.getOrderTotalPrice(), "", "");
+ }else if(liquidation == 1 || liquidation == 2){
+ userAssetsServices.availablebalanceChange(stock.getStockType(),
+ position.getUserId(), EUserAssets.HANDLING_CHARGE,
+ xsPrice, "", "");
+ PositionProfitVO profitVO = UserPointUtil.getPositionProfitVO(position, priceServices.getNowPrice(position.getStockCode()));
+ userAssetsServices.availablebalanceChange(stock.getStockType(), position.getUserId(), EUserAssets.CLOSE_POSITION,
+ profitVO.getAllProfitAndLose(), "", "");
+ }
- // 计算手续费等
- BigDecimal handlingFee = BigDecimal.ZERO;
- //更新用户资产
- userAssetsServices.availablebalanceChange(stock.getStockType(),
- position.getUserId(),
- EUserAssets.CONSTRAINT_CLOSE_POSITION,
- position.getOrderTotalPrice(), "", "");
+
log.info("强制平仓成功,订单id: {}", position.getId());
}
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index d22ca98..0e639bf 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -556,6 +556,8 @@
rUserAssets.setHandlingChargeUSD(handlingChargeUSD.setScale(s,BigDecimal.ROUND_UP).toString());
rUserAssets.setProfitAndLossUSD(profitAndLossUSD.setScale(s,BigDecimal.ROUND_UP).toString());
rUserAssets.setProfitAndLoss(getProfitAndLose(userId).toString());
+ BigDecimal decimal = new BigDecimal(rUserAssets.getTotalMoney()).add(new BigDecimal(rUserAssets.getProfitAndLoss()));
+ rUserAssets.setTotalMoney(decimal.toString());
AllProfitAndLose = AllProfitAndLose.add(profitAndLossUSD);
allTotalAssets = allTotalAssets.add(totleMoneyUSD);
allAmt = allAmt.add(availableBalanceUSD);
diff --git a/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java b/src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
index 0d009e5..91fb092 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);
}
@@ -182,6 +183,9 @@
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()));
if((model.getStatus() == 3 && model.getApplyNumber() == null) || (model.getStatus() == 3 && model.getApplyNumber() == 0) ){
--
Gitblit v1.9.3