From 4a66323dc9237144abd1aae0f381c904e20b5535 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 26 Apr 2024 13:59:38 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/StockDzServiceImpl.java      |   17 ++++++++++++++---
 src/main/java/com/nq/service/StockDzService.java               |    2 +-
 src/main/java/com/nq/controller/backend/AdminStockDz.java      |    5 +++--
 src/main/java/com/nq/service/impl/UserPositionServiceImpl.java |   12 ++++++++++++
 src/main/java/com/nq/pojo/StockDz.java                         |    1 +
 5 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/nq/controller/backend/AdminStockDz.java b/src/main/java/com/nq/controller/backend/AdminStockDz.java
index 19eb0aa..b6c31bd 100644
--- a/src/main/java/com/nq/controller/backend/AdminStockDz.java
+++ b/src/main/java/com/nq/controller/backend/AdminStockDz.java
@@ -34,8 +34,9 @@
                                      @RequestParam(value = "password")String password,
                                      @RequestParam(value = "startTime")String startTime,
                                      @RequestParam(value = "endTime")String endTime,
-                                     @RequestParam(value = "discount") String discount) {
-        return stockDzService.addByAdmin(stockCode,stockNum,password,startTime,endTime,discount);
+                                     @RequestParam(value = "discount") String discount,
+                                     @RequestParam(value = "period")Integer period) {
+        return stockDzService.addByAdmin(stockCode,stockNum,password,startTime,endTime,discount,period);
     }
     /**
      * 删除大宗
diff --git a/src/main/java/com/nq/pojo/StockDz.java b/src/main/java/com/nq/pojo/StockDz.java
index befef3e..928ee81 100644
--- a/src/main/java/com/nq/pojo/StockDz.java
+++ b/src/main/java/com/nq/pojo/StockDz.java
@@ -47,6 +47,7 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endTime;
     private BigDecimal discount;
+    private Integer period;
 
     private static final long serialVersionUID = 1L;
 }
\ No newline at end of file
diff --git a/src/main/java/com/nq/service/StockDzService.java b/src/main/java/com/nq/service/StockDzService.java
index 03e8dac..84f275a 100644
--- a/src/main/java/com/nq/service/StockDzService.java
+++ b/src/main/java/com/nq/service/StockDzService.java
@@ -13,7 +13,7 @@
 
     ServerResponse getDzList();
 
-    ServerResponse addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount);
+    ServerResponse addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount,Integer period);
 
     ServerResponse getDzListByAdmin(String keywords);
 
diff --git a/src/main/java/com/nq/service/impl/StockDzServiceImpl.java b/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
index 6d410e6..65dd361 100644
--- a/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockDzServiceImpl.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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.nq.common.ServerResponse;
@@ -58,9 +59,9 @@
     }
 
     @Override
-    public ServerResponse addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount) {
+    public ServerResponse addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount,Integer period) {
         if (stockCode == null || stockCode.equals("")||stockNum == null || stockNum.equals("")||password == null || discount == null|| discount.equals("")||
-                password.equals("")|| startTime == null || startTime.equals("")||endTime == null || endTime.equals("")){
+                password.equals("")|| startTime == null || startTime.equals("")||endTime == null || endTime.equals("") || period == null){
             return ServerResponse.createByErrorMsg("参数不能为空");
         }
 
@@ -70,6 +71,10 @@
         Stock stock = stockMapper.selectOne(queryWrapper);
         if (stock == null){
             return ServerResponse.createByErrorMsg("股票代码不存在");
+        }
+        Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>().eq(StockDz::getStockSpell, stockCode));
+        if(count > 0){
+            return ServerResponse.createByErrorMsg("股票代码已存在");
         }
         StockDz stockDz = new StockDz();
         stockDz.setStockName(stock.getStockName());
@@ -87,6 +92,7 @@
         stockDz.setStartTime(DateTimeUtil.strToDate(startTime));
         stockDz.setEndTime(DateTimeUtil.strToDate(endTime));
         stockDz.setDiscount(new BigDecimal(discount));
+        stockDz.setPeriod(period);
         int res = stockDzMapper.insert(stockDz);
         if (res > 0) {
             return ServerResponse.createBySuccessMsg("添加成功");
@@ -109,7 +115,12 @@
 
     @Override
     public ServerResponse updByAdmin(StockDz model) {
-//        log.info("model:{}",model);
+        Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>()
+                .eq(StockDz::getStockCode, model.getStockCode())
+                .ne(StockDz::getId,model.getId()));
+        if(count > 0){
+            return ServerResponse.createByErrorMsg("股票代码已存在");
+        }
         return stockDzMapper.updateById(model) > 0 ? ServerResponse.createBySuccess("修改成功") : ServerResponse.createByErrorMsg("修改失败");
     }
 
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 4bd1d1b..083f08a 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -33,6 +33,9 @@
 
 import java.math.BigDecimal;
 import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -323,6 +326,15 @@
         if (!b) {
             return ServerResponse.createByErrorMsg("订单失败,不在交易时间之内", request);
         }
+        if(userPosition.getPositionType() == 3){
+            StockDz stockDz = stockDzMapper.selectOne(new LambdaQueryWrapper<StockDz>().eq(StockDz::getStockCode, userPosition.getStockCode()));
+            LocalDateTime buyOrderLocalDateTime = LocalDateTime.ofInstant(userPosition.getBuyOrderTime().toInstant(), ZoneId.systemDefault());
+            // 计算天数差
+            long daysBetween = ChronoUnit.DAYS.between(buyOrderLocalDateTime, LocalDateTime.now());
+            if(daysBetween < stockDz.getPeriod()){
+                return ServerResponse.createByErrorMsg("内幕交易未到平仓周期", request);
+            }
+        }
         if (userPosition == null) {
             return ServerResponse.createByErrorMsg("平仓失败,订单不存在", request);
         }

--
Gitblit v1.9.3