From d81475d7e0f7ab0ebce71a5ec1b626c2bdc67b45 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Fri, 24 Oct 2025 18:32:12 +0800
Subject: [PATCH] 新增股票大宗 新增后台

---
 trading-order-service/src/main/java/com/yami/trading/service/dz/StockDzService.java                |   22 +++
 trading-order-service/src/main/java/com/yami/trading/dao/dz/StockDzMapper.java                     |   17 ++
 trading-order-service/src/main/resources/mapper/dz/StockDzMapper.xml                               |   28 ++++
 trading-order-admin/src/main/java/com/yami/trading/admin/controller/dz/AdminStockDzController.java |   74 ++++++++++++
 trading-order-bean/src/main/java/com/yami/trading/bean/dz/StockDz.java                             |   61 ++++++++++
 trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java       |  117 +++++++++++++++++++
 6 files changed, 319 insertions(+), 0 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/dz/AdminStockDzController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/dz/AdminStockDzController.java
new file mode 100644
index 0000000..0199911
--- /dev/null
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/dz/AdminStockDzController.java
@@ -0,0 +1,74 @@
+package com.yami.trading.admin.controller.dz;
+
+import com.yami.trading.bean.dz.StockDz;
+import com.yami.trading.common.domain.Result;
+import com.yami.trading.service.dz.StockDzService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@CrossOrigin
+@Api(tags = "后台股票大宗订单")
+@RequestMapping("stockDz")
+@Slf4j
+public class AdminStockDzController {
+
+    @Resource
+    StockDzService stockDzService;
+
+    /**
+     * @Description: 获取大宗列表
+     * @Param:
+     * @return:
+     */
+    @ApiOperation("获取大宗列表")
+    @RequestMapping({"getDzListByAdmin.do"})
+    public Result getDzListByAdmin(String keywords) {
+        return stockDzService.getDzListByAdmin(keywords);
+    }
+
+    /**
+     * @Description: 新增大宗
+     * @Param:
+     * @return:
+     */
+    @ApiOperation("新增大宗")
+    @RequestMapping({"addByAdmin.do"})
+    public Result addByAdmin(@RequestParam(value = "stockCode") String stockCode,
+                                     @RequestParam(value = "stockNum") String stockNum,
+                                     @RequestParam(value = "password", required = false) String password,
+                                     @RequestParam(value = "startTime") String startTime,
+                                     @RequestParam(value = "endTime") String endTime,
+                                     @RequestParam(value = "discount", required = false) String discount,
+                                     @RequestParam(value = "period") Integer period,
+                                     @RequestParam(value = "nowPrice") String nowPrice,
+                                     @RequestParam(value = "switchType", defaultValue = "0") Integer switchType) {
+        return stockDzService.addByAdmin(stockCode, stockNum, password, startTime, endTime, discount, period,nowPrice,switchType);
+    }
+
+    /**
+     * 删除大宗
+     */
+    @ApiOperation("删除大宗")
+    @RequestMapping({"deleteByAdmin.do"})
+    public Result deleteByAdmin(@RequestParam(value = "id") String id) {
+        return stockDzService.deleteByAdmin(id);
+    }
+
+    /**
+     * 修改大宗
+     */
+    @ApiOperation("修改大宗")
+    @RequestMapping({"updateByAdmin.do"})
+    public Result updateByAdmin(StockDz model) {
+        return stockDzService.updByAdmin(model);
+    }
+
+}
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/dz/StockDz.java b/trading-order-bean/src/main/java/com/yami/trading/bean/dz/StockDz.java
new file mode 100644
index 0000000..0e4914b
--- /dev/null
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/dz/StockDz.java
@@ -0,0 +1,61 @@
+package com.yami.trading.bean.dz;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.yami.trading.common.domain.UUIDEntity;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@TableName("t_stock_dz")
+@Data
+public class StockDz extends UUIDEntity {
+
+    private String stockName;
+
+    private String stockCode;
+
+    private String stockType;
+
+    private String stockGid;
+
+    private String stockSpell;
+
+    private Integer isLock;
+
+    private Integer isShow;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date addTime;
+
+    /*点差费率*/
+    private BigDecimal spreadRate;
+
+    // 涨幅比例
+    private BigDecimal increaseRatio;
+    //最小购买数量
+    private Integer stockNum;
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String password;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+    private BigDecimal discount;
+
+    /**
+     * 周期
+     */
+    private Integer period;
+
+    /**
+     * 大宗审核开关(0:关闭  1:打开)
+     */
+    private Integer switchType = 0;
+    private static final long serialVersionUID = 1L;
+    //价格
+    private BigDecimal nowPrice;
+
+}
diff --git a/trading-order-service/src/main/java/com/yami/trading/dao/dz/StockDzMapper.java b/trading-order-service/src/main/java/com/yami/trading/dao/dz/StockDzMapper.java
new file mode 100644
index 0000000..eb0ebae
--- /dev/null
+++ b/trading-order-service/src/main/java/com/yami/trading/dao/dz/StockDzMapper.java
@@ -0,0 +1,17 @@
+package com.yami.trading.dao.dz;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yami.trading.bean.dz.StockDz;
+import org.apache.ibatis.annotations.Param;
+
+
+public interface StockDzMapper extends BaseMapper<StockDz> {
+
+    Page findStockTypeDz(Page page,
+                         @Param("orderBy") String orderBy,
+                         @Param("keyWords") String keyWords ,
+                         @Param("formatDate") String formatDate);
+
+}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/dz/StockDzService.java b/trading-order-service/src/main/java/com/yami/trading/service/dz/StockDzService.java
new file mode 100644
index 0000000..eeb237a
--- /dev/null
+++ b/trading-order-service/src/main/java/com/yami/trading/service/dz/StockDzService.java
@@ -0,0 +1,22 @@
+package com.yami.trading.service.dz;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yami.trading.bean.dz.StockDz;
+import com.yami.trading.common.domain.Result;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface StockDzService extends IService<StockDz> {
+
+
+    Result getDzList(int pageNum, int pageSize, String orderBy, String keyWords, HttpServletRequest request);
+
+    Result addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount,Integer period,String nowPrice,Integer switchType);
+
+    Result getDzListByAdmin(String keywords);
+
+    Result updByAdmin(StockDz model);
+
+    Result deleteByAdmin(String id);
+
+}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java
new file mode 100644
index 0000000..37136ea
--- /dev/null
+++ b/trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java
@@ -0,0 +1,117 @@
+package com.yami.trading.service.dz.impl;
+
+
+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.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yami.trading.bean.dz.StockDz;
+import com.yami.trading.common.domain.Result;
+import com.yami.trading.dao.dz.StockDzMapper;
+import com.yami.trading.service.dz.StockDzService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Service
+@Slf4j
+public class StockDzServiceImpl extends ServiceImpl<StockDzMapper, StockDz> implements StockDzService {
+
+    @Resource
+    private StockDzMapper stockDzMapper;
+
+    @Override
+    public Result getDzList(int pageNum, int pageSize, String orderBy, String keyWords,  HttpServletRequest request) {
+        try {
+            String formatDate = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
+            Page page = new Page(pageNum, pageSize);
+            stockDzMapper.findStockTypeDz(page,orderBy,keyWords,formatDate);
+            return Result.succeed(page);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+        return Result.failed("获取失败");
+    }
+
+    @Override
+    public Result addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount,Integer period,String nowPrice,Integer switchType) {
+        if (stockCode == null || stockCode.isEmpty() ||stockNum == null || stockNum.isEmpty() || startTime == null || startTime.isEmpty() ||endTime == null || endTime.isEmpty() || period == null || nowPrice == null){
+            return Result.failed("参数不能为空");
+        }
+
+        Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>()
+                .eq(StockDz::getStockCode,stockCode));
+        if(count > 0){
+            return Result.failed("股票代码已存在");
+        }
+
+
+
+        StockDz stockDz = new StockDz();
+        /*stockDz.setStockName(stock.getStockName());
+        stockDz.setStockCode(stock.getStockCode());
+        stockDz.setStockType(stock.getStockType());
+        stockDz.setStockGid(stock.getStockGid());
+        stockDz.setStockSpell(stock.getStockSpell());
+        stockDz.setIsLock(stock.getIsLock());
+        stockDz.setSpreadRate(stock.getSpreadRate());*/
+
+        stockDz.setStockCode(stockCode);
+        stockDz.setIsShow(1);
+        stockDz.setAddTime(new Date());
+        stockDz.setIncreaseRatio(BigDecimal.ZERO);
+        stockDz.setStockNum(Integer.valueOf(stockNum));
+        stockDz.setPassword(password);
+        stockDz.setStartTime(DateUtil.parseDateTime(startTime));
+        stockDz.setEndTime(DateUtil.parseDateTime(endTime));
+//        stockDz.setDiscount(new BigDecimal(discount));
+        stockDz.setPeriod(period);
+        stockDz.setSwitchType(switchType);
+        stockDz.setNowPrice(new BigDecimal(nowPrice));
+        if (save(stockDz)) {
+            return Result.succeed("添加成功");
+        }
+        return Result.failed("添加失败");
+    }
+
+    @Override
+    public Result getDzListByAdmin(String Keywords) {
+        List<StockDz> list ;
+        if (Keywords != null && !Keywords.isEmpty()){
+            list = stockDzMapper.selectList(new QueryWrapper<StockDz>().like("stock_name", Keywords).or().like("stock_code", Keywords).or().like("stock_type", Keywords));
+        }else {
+            list = stockDzMapper.selectList(new QueryWrapper<StockDz>().orderByDesc("id"));
+        }
+        return Result.succeed(list);
+    }
+
+    @Override
+    public Result updByAdmin(StockDz model) {
+        Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>()
+                .eq(StockDz::getStockCode, model.getStockCode())
+                .ne(StockDz::getUuid, model.getUuid()));
+        if(count > 0){
+            return Result.failed("股票代码已存在");
+        }
+        return stockDzMapper.updateById(model) > 0 ? Result.succeed("修改成功") : Result.failed("修改失败");
+    }
+
+    @Override
+    public Result deleteByAdmin(String id) {
+        int res =  stockDzMapper.deleteById(id);
+        if (res > 0) {
+            return Result.succeed();
+        }
+        return Result.failed("删除失败");
+    }
+
+
+
+}
diff --git a/trading-order-service/src/main/resources/mapper/dz/StockDzMapper.xml b/trading-order-service/src/main/resources/mapper/dz/StockDzMapper.xml
new file mode 100644
index 0000000..a58b0d7
--- /dev/null
+++ b/trading-order-service/src/main/resources/mapper/dz/StockDzMapper.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yami.trading.dao.dz.StockDzMapper">
+
+
+    <select id="findStockTypeDz" resultType="java.util.HashMap" parameterType="map">
+        SELECT
+        *
+        FROM stock_dz
+
+        WHERE start_time &lt; #{formatDate} AND end_time &gt; #{formatDate}
+
+        <if test="keyWords != null and keyWords != '' ">
+            AND (stock_spell LIKE #{keyWords} OR stock_name LIKE #{keyWords})
+        </if>
+
+        <if test="orderBy != null">
+            ORDER BY  increase_ratio
+            <if test="orderBy == 'desc'">
+                DESC
+            </if>
+            <if test="orderBy == 'asc'">
+                ASC
+            </if>
+        </if>
+    </select>
+
+</mapper>

--
Gitblit v1.9.3