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 < #{formatDate} AND end_time > #{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