1
zyy
2026-02-12 e89e71158de719c70c487110a0f8d00d4a30d30b
src/main/java/com/nq/service/impl/StockDzServiceImpl.java
@@ -1,22 +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
@@ -33,36 +49,29 @@
    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,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("") || period == null){
    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("参数不能为空");
        }
        Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>()
                .eq(StockDz::getStockCode,stockCode));
        if(count > 0){
            return ServerResponse.createByErrorMsg("股票代码已存在");
        }
        QueryWrapper queryWrapper = new QueryWrapper();
@@ -72,10 +81,7 @@
        if (stock == null){
            return ServerResponse.createByErrorMsg("股票代码不存在");
        }
        Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>().eq(StockDz::getStockCode, stockCode));
        if(count > 0){
            return ServerResponse.createByErrorMsg("股票代码已存在");
        }
        StockDz stockDz = new StockDz();
        stockDz.setStockName(stock.getStockName());
        stockDz.setStockCode(stock.getStockCode());
@@ -91,8 +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("添加成功");
@@ -126,6 +134,10 @@
    @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("删除成功");