zyy
2025-10-24 d81475d7e0f7ab0ebce71a5ec1b626c2bdc67b45
新增股票大宗 新增后台
6 files added
319 ■■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/admin/controller/dz/AdminStockDzController.java 74 ●●●●● patch | view | raw | blame | history
trading-order-bean/src/main/java/com/yami/trading/bean/dz/StockDz.java 61 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/dao/dz/StockDzMapper.java 17 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/dz/StockDzService.java 22 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java 117 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/resources/mapper/dz/StockDzMapper.xml 28 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/controller/dz/AdminStockDzController.java
New file
@@ -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);
    }
}
trading-order-bean/src/main/java/com/yami/trading/bean/dz/StockDz.java
New file
@@ -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;
}
trading-order-service/src/main/java/com/yami/trading/dao/dz/StockDzMapper.java
New file
@@ -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);
}
trading-order-service/src/main/java/com/yami/trading/service/dz/StockDzService.java
New file
@@ -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);
}
trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java
New file
@@ -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("删除失败");
    }
}
trading-order-service/src/main/resources/mapper/dz/StockDzMapper.xml
New file
@@ -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>