From 47267bb39808dc4b371df933c6aa1255c32a8840 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 26 Apr 2024 11:45:46 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/UserPositionServiceImpl.java |   42 +++++++++++++++++-------------------------
 1 files changed, 17 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 6c3f208..4bd1d1b 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -1,5 +1,6 @@
 package com.nq.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.nq.dao.*;
 import com.nq.enums.EConfigKey;
@@ -177,7 +178,7 @@
         BigDecimal   fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
         BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
         if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
-            return ServerResponse.createByErrorMsg("订单失败,余额不足", request);
+            return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
         }
         UserPosition userPosition = new UserPosition();
         if (profitTarget != null && profitTarget.compareTo(new BigDecimal("0")) > 0) {
@@ -316,7 +317,7 @@
     public ServerResponse sell(String positionSn, int doType, HttpServletRequest request) {
         UserPosition userPosition = this.userPositionMapper.findPositionBySn(positionSn);
         // 手续费率
-        BigDecimal siitteBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ;
+        BigDecimal siitteBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.SELL_HANDLING_CHARGE.getCode()).getCValue()) ;
 
         Boolean b = tradingHourService.timeCheck(userPosition.getStockCode());
         if (!b) {
@@ -337,7 +338,7 @@
         }
         Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", userPosition.getStockCode()));
         if (!priceServices.isLimitDownSell(stock.getStockCode())) {
-            return ServerResponse.createByErrorMsg("股票垫停,无法平仓", request);
+            return ServerResponse.createByErrorMsg("股票跌停,无法平仓", request);
         }
         BigDecimal nowPrice = priceServices.getNowPrice(userPosition.getStockCode());
         if (nowPrice.compareTo(new BigDecimal("0")) != 1) {
@@ -1154,24 +1155,23 @@
         if (userStockSubscribe == null) {
             return ServerResponse.createByErrorMsg("无该申购记录");
         }
-        StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>().eq("code", userStockSubscribe.getNewCode()));
+        StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>().eq("code", userStockSubscribe.getNewCode()).eq("type",userStockSubscribe.getType()));
         if (userStockSubscribe == null) {
             return ServerResponse.createByErrorMsg("该新股不存在");
         }
         if (userStockSubscribe.getStatus() == 4 || userStockSubscribe.getStatus() == 3 && stockSubscribe.getType() == 2) {
-
-//                String sinaStock = SinaStockApi.getSinaStock(stockSubscribe.getStockType()+userStockSubscribe.getNewCode());
-//                String[] arrayOfString = sinaStock.split(",");
-//                 if (arrayOfString.length < 10){
-//                 return ServerResponse.createByErrorMsg("数据源无该新股数据,转持仓失败");
-//                 }
+            Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<Stock>().eq(Stock::getStockSpell, userStockSubscribe.getNewCode()));
+            if(null == stock){
+                return ServerResponse.createByErrorMsg("该新股不存在");
+            }
             UserPosition userPosition = new UserPosition();
             userPosition.setPositionType(1);
             userPosition.setPositionSn(KeyUtils.getUniqueKey());
             userPosition.setUserId(userStockSubscribe.getUserId());
             userPosition.setNickName(userStockSubscribe.getRealName());
             userPosition.setAgentId(userStockSubscribe.getAgentId());
-            userPosition.setStockCode(userStockSubscribe.getNewCode());
+            userPosition.setStockCode(stock.getStockCode());
+            userPosition.setStockSpell(stock.getStockSpell());
             userPosition.setStockName(userStockSubscribe.getNewName());
             userPosition.setStockGid(stockSubscribe.getStockType() + userStockSubscribe.getNewCode());
 
@@ -1208,14 +1208,6 @@
             log.info("用户购买印花税(配资后总资金 * 百分比) = {}", buy_yhs_amt);
             userPosition.setOrderSpread(buy_yhs_amt);
 
-            //            SiteSpread siteSpread = iSiteSpreadService.findSpreadRateOne(new BigDecimal(stock_crease), buy_amt, stock.getStockCode(), now_price);
-            //            BigDecimal spread_rate_amt = new BigDecimal("0");
-            //            if(siteSpread != null){
-            //                spread_rate_amt = buy_amt.multiply(siteSpread.getSpreadRate()).setScale(2, 4);
-            //                log.info("用户购买点差费(配资后总资金 * 百分比{}) = {}", siteSpread.getSpreadRate(), spread_rate_amt);
-            //            } else{
-            //                log.info("用户购买点差费(配资后总资金 * 百分比{}) = {}", "设置异常", spread_rate_amt);
-            //            }
             BigDecimal spread_rate_amt = new BigDecimal(0);
             userPosition.setSpreadRatePrice(spread_rate_amt);
 
@@ -1239,7 +1231,7 @@
                 userStockSubscribeMapper.update1(userStockSubscribe);
                 if (userStockSubscribe.getType() == 1 || userStockSubscribe.getType() == 2) {
                     User user = userMapper.selectById(userStockSubscribe.getUserId());
-                    ret = userMapper.updateByPrimaryKey(user);
+                    ret = userMapper.updateById(user);
                 }
                 if (ret > 0) {
                     return ServerResponse.createBySuccessMsg("新股转持仓成功");
@@ -1522,7 +1514,7 @@
         /*实名认证开关开启*/
         SiteProduct siteProduct = iSiteProductService.getProductSetting();
         User user = this.iUserService.getCurrentRefreshUser(request);
-        if (siteProduct.getRealNameDisplay() && (StringUtils.isBlank(user.getRealName()) || StringUtils.isBlank(user.getIdCard()))) {
+        if (siteProduct.getRealNameDisplay() && user.getIsActive() != 2) {
             return ServerResponse.createByErrorMsg("Order failed, please first real name authentication");
         }
         if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
@@ -1538,8 +1530,8 @@
         //价格处理
         Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", stockDz.getStockCode()));
 
-        if(stockDz.getStartTime().after(new Date()) || stockDz.getEndTime().after(new Date())){
-            return ServerResponse.createByErrorMsg("不在大宗交易所时间之内", request);
+        if(stockDz.getStartTime().getTime() > new Date().getTime() || stockDz.getEndTime().getTime() < new Date().getTime()){
+            return ServerResponse.createByErrorMsg("不在内幕交易时间之内", request);
         }
         BigDecimal nowPrice = priceServices.getNowPrice(stockCode).multiply(stockDz.getDiscount());
 
@@ -1554,7 +1546,7 @@
         BigDecimal   fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
         BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
         if (buyAmt.compareTo(availableBalance) > 0) {
-            return ServerResponse.createByErrorMsg("订单失败,余额不足", request);
+            return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
         }
         UserPosition userPosition = new UserPosition();
         userPosition.setPositionType(3);
@@ -1654,7 +1646,7 @@
         // 检查股票是否垫停
         Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", position.getStockCode()));
         if (!priceServices.isLimitDownSell(stock.getStockCode())) {
-            log.info("股票垫停,无法平仓,订单id: {}", position.getId());
+            log.info("股票跌停,无法平仓,订单id: {}", position.getId());
             return null;
         }
 

--
Gitblit v1.9.3