From 67db7b820ee5bc318d2e7d5510b5ede981e57f3f Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 18 Aug 2025 11:43:50 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/StockDzServiceImpl.java |   85 ++++++++++++++++++++++++++++--------------
 1 files changed, 56 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/StockDzServiceImpl.java b/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
index 22c4879..3c8ce9d 100644
--- a/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
@@ -1,21 +1,38 @@
 package com.nq.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+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.github.pagehelper.PageHelper;
+import com.google.common.collect.Lists;
 import com.nq.common.ServerResponse;
 import com.nq.dao.StockDzMapper;
 import com.nq.dao.StockMapper;
+import com.nq.dao.UserPositionMapper;
 import com.nq.pojo.Stock;
 import com.nq.pojo.StockDz;
+import com.nq.pojo.UserPosition;
+import com.nq.pojo.reponse.RPageInfo;
 import com.nq.service.StockDzService;
+import com.nq.utils.stock.sina.StockApi;
 import com.nq.utils.timeutil.DateTimeUtil;
+import com.nq.vo.stock.StockDzVo;
+import com.nq.vo.stock.StockListVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
 
+import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
 
 /**
 * @author Administrator
@@ -32,47 +49,45 @@
     private SiteSettingServiceImpl siteSettingService;
     @Autowired
     private StockMapper stockMapper;
+    @Autowired
+    private UserPositionMapper userPositionMapper;
+
     @Override
-    public ServerResponse getDzList() {
-//        List<StockDz> list = stockDzMapper.selectList(new QueryWrapper<StockDz>().eq("is_show", 1));
-//        List<StockDzVo> stockDzVos = Lists.newArrayList();
-//        for (StockDz stockDz : list) {
-//            StockListVO stockListVO = SinaStockApi.assembleInStockListVO(SinaStockApi.getInStockDetail(stockDz.getStockCode()));
-//            BigDecimal price = new BigDecimal(stockListVO.getNowPrice()).multiply(stockDz.getDiscount());
-//
-//            StockDzVo stockDzVo = new StockDzVo();
-//            stockDzVo.setId(stockDz.getId());
-//            stockDzVo.setStockName(stockDz.getStockName());
-//            stockDzVo.setStockCode(stockDz.getStockCode());
-//            stockDzVo.setPrice(price);
-//            stockDzVo.setStockType(stockDz.getStockType());
-//            stockDzVo.setStockGid(stockDz.getStockGid());
-//            stockDzVo.setStockPlate(stockDz.getStockPlate());
-//            stockDzVo.setIsLock(stockDz.getIsLock());
-//            stockDzVo.setStockNum(stockDz.getStockNum());
-//            stockDzVo.setStartTime(stockDz.getStartTime());
-//            stockDzVo.setEndTime(stockDz.getEndTime());
-//            stockDzVos.add(stockDzVo);
-//        }
-        return ServerResponse.createBySuccess();
+    public ServerResponse getDzList(int pageNum, int pageSize, String orderBy, String keyWords,  HttpServletRequest request) {
+        PageHelper.startPage(pageNum, pageSize);
+        String formatDate = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
+        List<StockDz> stockTypeDz = stockMapper.findStockTypeDz(orderBy, keyWords,formatDate);
+        RPageInfo pageInfo = new RPageInfo();
+        pageInfo.setList(stockTypeDz);
+        return ServerResponse.createBySuccess(pageInfo);
     }
 
     @Override
-    public ServerResponse addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount) {
-        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("")){
+    public ServerResponse addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount,Integer period,String nowPrice,Integer switchType) {
+        if (stockCode == null || stockCode.equals("")||stockNum == null || stockNum.equals("")|| startTime == null || startTime.equals("")||endTime == null || endTime.equals("") || period == null || nowPrice == null){
             return ServerResponse.createByErrorMsg("参数不能为空");
         }
-        Stock stock = stockMapper.findStockByCode(stockCode);
+
+        Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>()
+                .eq(StockDz::getStockCode,stockCode));
+        if(count > 0){
+            return ServerResponse.createByErrorMsg("股票代码已存在");
+        }
+
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("stock_code",stockCode);
+
+        Stock stock = stockMapper.selectOne(queryWrapper);
         if (stock == null){
             return ServerResponse.createByErrorMsg("股票代码不存在");
         }
+
         StockDz stockDz = new StockDz();
         stockDz.setStockName(stock.getStockName());
         stockDz.setStockCode(stock.getStockCode());
         stockDz.setStockType(stock.getStockType());
         stockDz.setStockGid(stock.getStockGid());
-        stockDz.setStockPlate(stock.getStockPlate());
+        stockDz.setStockSpell(stock.getStockSpell());
         stockDz.setIsLock(stock.getIsLock());
         stockDz.setIsShow(1);
         stockDz.setAddTime(new Date());
@@ -82,7 +97,10 @@
         stockDz.setPassword(password);
         stockDz.setStartTime(DateTimeUtil.strToDate(startTime));
         stockDz.setEndTime(DateTimeUtil.strToDate(endTime));
-        stockDz.setDiscount(new BigDecimal(discount));
+//        stockDz.setDiscount(new BigDecimal(discount));
+        stockDz.setPeriod(period);
+        stockDz.setSwitchType(switchType);
+        stockDz.setNowPrice(new BigDecimal(nowPrice));
         int res = stockDzMapper.insert(stockDz);
         if (res > 0) {
             return ServerResponse.createBySuccessMsg("添加成功");
@@ -105,12 +123,21 @@
 
     @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("修改失败");
     }
 
     @Override
     public ServerResponse deleteByAdmin(String id) {
+        List<UserPosition> userPositions = userPositionMapper.selectList(new LambdaQueryWrapper<>(UserPosition.class).eq(UserPosition::getDzId, id).isNull(UserPosition::getSellOrderId));
+        if(CollectionUtil.isNotEmpty(userPositions)){
+            return ServerResponse.createByErrorMsg("删除失败,当前大宗还有用户持有仓位");
+        }
         int res =  stockDzMapper.deleteById(id);
         if (res > 0) {
             return ServerResponse.createBySuccess("删除成功");

--
Gitblit v1.9.3