zyy
2025-07-14 962c41d912d60f54f21df739596e61c5888684d9
APP大宗交易接口
10 files modified
103 ■■■■ changed files
src/main/java/com/nq/common/interceptor/ApiAdminAuthorityInterceptor.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/controller/StockApiController.java 36 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/dao/UserPositionMapper.java 3 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/pojo/DataStockBean.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/nq/pojo/StockDz.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/nq/service/IUserPositionService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/StockDzServiceImpl.java 11 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/StockServiceImpl.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java 27 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/UserPositionMapper.xml 14 ●●●●● patch | view | raw | blame | history
src/main/java/com/nq/common/interceptor/ApiAdminAuthorityInterceptor.java
@@ -30,7 +30,7 @@
            return true;
        }
        SiteAdmin siteAdmin = null;
        /*SiteAdmin siteAdmin = null;
        String loginToken = httpServletRequest.getHeader(PropertiesUtil.getProperty("admin.cookie.name"));
        if (StringUtils.isNotEmpty(loginToken)) {
            String adminJsonStr = RedisShardedPoolUtils.get(loginToken);
@@ -60,7 +60,7 @@
            writer.flush();
            writer.close();
            return false;
        }
        }*/
//        194.26.73.150, 172.70.34.195
//        String ip = IpUtils.getIp(httpServletRequest);
src/main/java/com/nq/controller/StockApiController.java
@@ -1,8 +1,11 @@
package com.nq.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nq.common.ServerResponse;
import com.nq.service.IStockService;
import com.nq.service.StockDzService;
import com.nq.pojo.User;
import com.nq.pojo.UserPositionCheckDz;
import com.nq.service.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +26,8 @@
    IStockService iStockService;
    @Autowired
    StockDzService stockDzService;
    @Autowired
    IUserPositionService iUserPositionService;
    //查询 股票指数、大盘指数信息
    @RequestMapping({"getMarket.do"})
@@ -81,21 +86,40 @@
    }
    /**
     *大宗交易 列表
     * 大宗交易 列表
     * @param pageNum
     * @param pageSize
     * @param orderBy
     * @param keyWords 搜索内容
     * @return
     */
    @PostMapping({"getDzList.do"})
    @ResponseBody
    public ServerResponse getDzList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                    @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
                                    @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
                                    @RequestParam(value = "orderBy", required = false) String orderBy,
                                    @RequestParam(value = "keyWords", required = false) String keyWords,
                                    HttpServletRequest request) {
        return stockDzService.getDzList(pageNum, pageSize, orderBy,keyWords , request);
    }
    /**
     * 大宗交易订单列表
     * @param pageNum
     * @param pageSize
     * @param status    状态 //0:待审核  1:成功 2:失败
     * @return
     */
    @RequestMapping({"getDzOrderList.do"})
    @ResponseBody
    public ServerResponse getDzOrderList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                         @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
                                         @RequestParam(value = "status", required = false) Integer status,
                                         HttpServletRequest request) {
        return iUserPositionService.getDzOrderList(pageNum, pageSize, status, request);
    }
    /**
     * vip 抢筹列表
src/main/java/com/nq/dao/UserPositionMapper.java
@@ -5,6 +5,7 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface UserPositionMapper extends BaseMapper<UserPosition> {
@@ -60,5 +61,5 @@
  UserPosition findUserPositionByCode(@Param("userId") Integer paramInteger,@Param("stockCode") String stockCode);
  List<UserPosition> getUserPositionDzList(@Param("userId") Integer userId,@Param("checkType") Integer checkType);
}
src/main/java/com/nq/pojo/DataStockBean.java
@@ -67,4 +67,6 @@
    //k线
    private Object kData;
    private String stockType;
}
src/main/java/com/nq/pojo/StockDz.java
@@ -36,7 +36,7 @@
    private BigDecimal spreadRate;
    private BigDecimal increaseRatio;
    //最小购买数量
    private Integer stockNum;
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String password;
src/main/java/com/nq/service/IUserPositionService.java
@@ -85,4 +85,6 @@
  ServerResponse buyStockDzList(HttpServletRequest request);
  void stockConstraint(List<UserPosition> userPositions);
  ServerResponse getDzOrderList(int pageNum, int pageSize, Integer status, HttpServletRequest request);
}
src/main/java/com/nq/service/impl/StockDzServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.nq.common.ServerResponse;
import com.nq.dao.StockDzMapper;
@@ -21,6 +22,7 @@
import com.nq.utils.timeutil.DateTimeUtil;
import com.nq.vo.stock.StockDzVo;
import com.nq.vo.stock.StockListVO;
import com.nq.vo.stock.ai.StockAiOrderTypeVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -54,15 +56,14 @@
    @Override
    public ServerResponse getDzList(int pageNum, int pageSize, String orderBy, String keyWords,  HttpServletRequest request) {
        String formatDate = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
        PageHelper.startPage(pageNum, pageSize);
        if (keyWords == null || keyWords.trim().isEmpty()) {
        /*if (keyWords == null || keyWords.trim().isEmpty()) {
            // 如果 keyWords 为空,则直接返回空分页结果
            return ServerResponse.createBySuccess(new RPageInfo());
        }
        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);
        PageInfo<StockDz> pageInfo = new PageInfo<>(stockTypeDz);
        return ServerResponse.createBySuccess(pageInfo);
    }
src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -723,6 +723,7 @@
                Gson gson = new Gson();
                List<kData> dataList = gson.fromJson(kData.toString(), new TypeToken<List<kData>>(){}.getType());
                cacheBaseStock.setKData(dataList);
                cacheBaseStock.setStockType(stockType);
                usDataStockBeans.add(cacheBaseStock);
            }
            for (int i = 0; i < mxStockCodeList.size(); i++) {
@@ -739,6 +740,7 @@
                Gson gson = new Gson();
                List<kData> dataList = gson.fromJson(kData.toString(), new TypeToken<List<kData>>(){}.getType());
                cacheBaseStock.setKData(dataList);
                cacheBaseStock.setStockType(stockType);
                mxDataStockBeans.add(cacheBaseStock);
            }
            Map<String, Object> resultMap = new HashMap<>();
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -29,6 +29,7 @@
import com.nq.vo.position.PositionVO;
import com.nq.vo.position.UserPositionVO;
import com.nq.vo.stock.StockListVO;
import com.nq.vo.stock.ai.StockAiOrderTypeVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@@ -1829,6 +1830,32 @@
        }
    }
    /**
     * 获取大宗交易订单
     * @param pageNum
     * @param pageSize
     * @param status
     * @param request
     * @return
     */
    @Override
    public ServerResponse getDzOrderList(int pageNum, int pageSize, Integer status, HttpServletRequest request) {
        try {
            User user = iUserService.getCurrentUser(request);
            if (user == null ){
                return ServerResponse.createBySuccessMsg("请先登录");
            }
            PageHelper.startPage(pageNum, pageSize);
            List<UserPosition> userPositions = userPositionMapper.getUserPositionDzList(user.getId(), status);
            // 获取分页信息
            PageInfo<UserPosition> pageInfo = new PageInfo<>(userPositions);
            return ServerResponse.createBySuccess(pageInfo);
        } catch (Exception e) {
            log.error("StockAiService getStockAiOrderList error", e);
        }
        return ServerResponse.createByError();
    }
    private Result getResult(UserPosition position) {
        // 检查订单是否存在
        if (position == null) {
src/main/resources/mapper/UserPositionMapper.xml
@@ -542,7 +542,21 @@
    limit 1
  </select>
  <select id="getUserPositionDzList" resultType="com.nq.pojo.UserPosition">
        SELECT u.*
            FROM user_position u
        LEFT JOIN user_position_check_dz dz ON dz.id = u.dz_id
    <where>
      <if test="userId != null ">
        and u.user_id = #{userId}
      </if>
      <if test="checkType != null ">
        and dz.check_type = #{checkType}
      </if>
    </where>
    ORDER BY u.buy_order_time DESC
  </select>
</mapper>