From 8f47428a53105cc0926c295efaeb962665ca3eba Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 20 Jul 2025 20:12:42 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/pojo/IntradayOrder.java                         |   39 ++
 src/main/java/com/nq/vo/smart/IntradayOrderVo.java                   |   47 +++
 src/main/java/com/nq/service/impl/UserAssetsServices.java            |    6 
 src/main/java/com/nq/utils/stock/sina/StockApi.java                  |    2 
 src/main/java/com/nq/service/impl/StockServiceImpl.java              |    8 
 src/main/java/com/nq/service/impl/IntradayOrderSerivceImpl.java      |   17 +
 src/main/java/com/nq/controller/StockApiController.java              |    7 
 src/main/java/com/nq/controller/protol/UserController.java           |   26 -
 src/main/java/com/nq/dao/IntradayOrderMapper.java                    |   12 
 src/main/java/com/nq/service/IntradayOrderSerivce.java               |    8 
 src/main/java/com/nq/service/impl/SmartIntradaySerivceImpl.java      |   17 +
 src/main/java/com/nq/pojo/StockIndexData.java                        |   57 ++++
 src/main/java/com/nq/controller/smart/IntradayOrderController.java   |  131 +++++++++
 src/main/java/com/nq/service/SmartIntradaySerivce.java               |   10 
 src/main/java/com/nq/common/ServerResponse.java                      |    4 
 src/main/java/com/nq/dao/SmartIntradayMapper.java                    |   11 
 src/main/resources/mapper/IntradayOrderMapper.xml                    |   35 ++
 src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java          |    1 
 src/main/java/com/nq/pojo/SmartIntraday.java                         |   30 ++
 src/main/java/com/nq/service/IStockService.java                      |    2 
 src/main/java/com/nq/controller/backend/SmartIntradayController.java |  300 +++++++++++++++++++++
 src/main/java/com/nq/vo/smart/SmartIntradayVo.java                   |   32 ++
 22 files changed, 766 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/nq/common/ServerResponse.java b/src/main/java/com/nq/common/ServerResponse.java
index 208c7ac..c9d06a8 100644
--- a/src/main/java/com/nq/common/ServerResponse.java
+++ b/src/main/java/com/nq/common/ServerResponse.java
@@ -82,8 +82,8 @@
     }
 
 
-    public static <T> ServerResponse<T> createBySuccess(String data,HttpServletRequest request) {
-        return new ServerResponse(ResponseCode.SUCCESS.getCode(), new GoogleTranslateUtil().translate(data,request.getHeader(LANG)));
+    public static <T> ServerResponse<T> createBySuccess(String data, HttpServletRequest request) {
+        return new ServerResponse(ResponseCode.SUCCESS.getCode(), new GoogleTranslateUtil().translate(data, request.getHeader(LANG)));
     }
 
     public static <T> ServerResponse<T> createBySuccess(String msg, T data) {
diff --git a/src/main/java/com/nq/controller/StockApiController.java b/src/main/java/com/nq/controller/StockApiController.java
index d265e7a..744c5f6 100644
--- a/src/main/java/com/nq/controller/StockApiController.java
+++ b/src/main/java/com/nq/controller/StockApiController.java
@@ -81,7 +81,12 @@
     }
 
 
-
+    /*查询股票指数*/
+    @RequestMapping({"getIndexData.do"})
+    @ResponseBody
+    public ServerResponse getIndexData() {
+        return this.iStockService.getIndexData();
+    }
 
     /**
      *大宗交易 列表
diff --git a/src/main/java/com/nq/controller/backend/SmartIntradayController.java b/src/main/java/com/nq/controller/backend/SmartIntradayController.java
new file mode 100644
index 0000000..d274597
--- /dev/null
+++ b/src/main/java/com/nq/controller/backend/SmartIntradayController.java
@@ -0,0 +1,300 @@
+package com.nq.controller.backend;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.nq.common.ServerResponse;
+import com.nq.dao.*;
+import com.nq.enums.EConfigKey;
+import com.nq.enums.EStockType;
+import com.nq.pojo.*;
+import com.nq.service.*;
+import com.nq.service.impl.IntradayOrderSerivceImpl;
+import com.nq.service.impl.SmartIntradaySerivceImpl;
+import com.nq.service.impl.UserPositionServiceImpl;
+import com.nq.utils.ConverterUtil;
+import com.nq.utils.KeyUtils;
+import com.nq.utils.stock.GeneratePosition;
+import com.nq.vo.smart.IntradayOrderVo;
+import com.nq.vo.smart.SmartIntradayVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import javax.validation.constraints.DecimalMin;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: dabaogp
+ * @description: 智能日内
+ * @create: 2025-07-15 10:20
+ **/
+@Controller
+@RequestMapping({"/admin/smart/"})
+public class SmartIntradayController {
+
+    @Autowired
+    private SmartIntradaySerivceImpl smartIntradaySerivce;
+
+    @Autowired
+    private IntradayOrderSerivceImpl intradayOrderSerivce;
+
+    @Autowired
+    private IntradayOrderMapper intradayOrderMapper;
+
+    @Autowired
+    private UserMapper userMapper;
+
+    @Autowired
+    private IUserAssetsServices iUserAssetsServices;
+
+    @Autowired
+    private UserAssetsMapper userAssetsMapper;
+
+    @Autowired
+    private StockMapper stockMapper;
+
+    @Autowired
+    private UserPositionMapper userPositionMapper;
+
+
+    /**
+     * 添加智能日内
+     * @param vo
+     * @return
+     */
+    @RequestMapping(value = {"addSmart.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse addSmart(@Valid SmartIntradayVo vo) {
+        long count = smartIntradaySerivce.count(new LambdaQueryWrapper<>(SmartIntraday.class)
+                .eq(SmartIntraday::getDepositName, vo.getDepositName())
+                .eq(SmartIntraday::getAccountType, vo.getAccountType())
+                .eq(SmartIntraday::getStockType, vo.getStockType())
+        );
+        if(count > 0){
+            return ServerResponse.createByErrorMsg("已存在同名产品");
+        }
+        SmartIntraday smartIntraday = ConverterUtil.convert(vo, SmartIntraday.class);
+
+        smartIntraday.setStockType(EStockType.JP.getCode());
+        smartIntraday.setAccountType(EStockType.JP.getCode());
+        smartIntradaySerivce.save(smartIntraday);
+        return ServerResponse.createBySuccessMsg("添加成功");
+    }
+
+    /**
+     * 修改智能日内
+     * @param vo
+     * @return
+     */
+    @RequestMapping(value = {"updateSmart.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse updateSmart(@Valid SmartIntradayVo vo) {
+        long count = smartIntradaySerivce.count(new LambdaQueryWrapper<>(SmartIntraday.class)
+                .eq(SmartIntraday::getDepositName, vo.getDepositName())
+                .eq(SmartIntraday::getAccountType, vo.getAccountType())
+                .eq(SmartIntraday::getStockType, vo.getStockType())
+                .ne(SmartIntraday::getId,vo.getId())
+        );
+        if(count > 0){
+            return ServerResponse.createByErrorMsg("已存在同名产品");
+        }
+        SmartIntraday smartIntraday = ConverterUtil.convert(vo, SmartIntraday.class);
+        smartIntradaySerivce.updateById(smartIntraday);
+        return ServerResponse.createBySuccessMsg("修改成功");
+    }
+
+    /**
+     * 智能日内列表
+     */
+    @RequestMapping(value = {"listSmart.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse listSmart(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                    @RequestParam(value = "pageSize", defaultValue = "15") int pageSize,
+                                    @RequestParam(value = "status" , required = false) Integer status) {
+        // 创建分页对象
+       Page<SmartIntraday> page = Page.of(pageNum, pageSize);
+        // 创建查询条件
+        LambdaQueryWrapper<SmartIntraday> wrapper = new LambdaQueryWrapper<>();
+
+        // 状态查询
+        if (status != null) {
+            wrapper.eq(SmartIntraday::getStatus, status);
+        }
+        // 按创建时间倒序
+        wrapper.orderByDesc(SmartIntraday::getCreatedAt);
+        // 执行分页查询
+        Page<SmartIntraday> intradayPage = smartIntradaySerivce.page(page, wrapper);
+        return ServerResponse.createBySuccess(intradayPage);
+    }
+
+    /**
+     * 删除智能日内
+     * @return
+     */
+    @RequestMapping(value = {"deleteSmart.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse deleteSmart( @RequestParam("id") Integer id) {
+        smartIntradaySerivce.removeById(id);
+        return ServerResponse.createBySuccessMsg("删除成功");
+    }
+
+
+
+    /**
+     * 审核日内订单
+     * @param vo
+     * @return
+     */
+    @RequestMapping(value = {"updateIntraday.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    @Transactional(rollbackFor = Exception.class) // 异常时回滚
+    public ServerResponse updateIntraday(@Valid IntradayOrderVo vo) {
+        IntradayOrder intradayOrder = intradayOrderSerivce.getById(vo.getId());
+        if(intradayOrder.getAuditStatus() != 0){
+            return ServerResponse.createByErrorMsg("订单已操作");
+        }
+        Stock stock = stockMapper.findStockByCode(vo.getStockCode());
+        if(ObjectUtil.isEmpty(stock)){
+            return ServerResponse.createByErrorMsg("选择的股票不存在!");
+        }
+
+
+        intradayOrder.setStockType(vo.getStockType());
+        intradayOrder.setStockCode(vo.getStockCode());
+        intradayOrder.setStockName(stock.getStockName());
+        intradayOrder.setStockGid(stock.getStockGid());
+        intradayOrder.setStockQuantity(vo.getStockQuantity());
+        intradayOrder.setPriceType(vo.getPriceType());
+        intradayOrder.setStockPrice(new BigDecimal(vo.getStockPrice()));
+        intradayOrder.setAuditStatus(vo.getAuditStatus());
+        intradayOrder.setOrderTime(DateUtil.parse(vo.getOrderTime(),"yyyy-MM-dd HH:mm:ss"));
+        intradayOrder.setIsLocked(vo.getIsLocked());
+        intradayOrder.setStockId(stock.getId());
+
+        if(vo.getAuditStatus() == 2){
+            UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.JP.getCode(), intradayOrder.getUserId());
+            BigDecimal orderAmount = vo.getOrderAmount();
+            userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(orderAmount));
+            userAssetsMapper.updateById(userAssets);
+            return ServerResponse.createBySuccessMsg("操作成功");
+        }
+        BigDecimal stockQuantity = new BigDecimal(intradayOrder.getStockQuantity());//股票数量
+        BigDecimal totalPrice = intradayOrder.getStockPrice().multiply(stockQuantity);//订单总价
+        if(intradayOrder.getOrderAmount().compareTo(totalPrice) < 0){
+            return ServerResponse.createByErrorMsg("股票总价超过订单金额!");
+        }
+
+
+        User user = userMapper.selectById(intradayOrder.getUserId());
+
+
+        //结余资金返还账户
+        BigDecimal surplusAmount = intradayOrder.getOrderAmount().subtract(totalPrice);//结余
+        UserPosition userPosition = new UserPosition();
+        userPosition.setProfitTargetPrice(BigDecimal.ZERO);
+        userPosition.setStopTargetPrice(BigDecimal.ZERO);
+        userPosition.setPositionType(user.getAccountType());
+        userPosition.setPositionSn(KeyUtils.getUniqueKey());
+        userPosition.setUserId(intradayOrder.getUserId());
+        userPosition.setNickName(user.getRealName());
+        userPosition.setAgentId(user.getAgentId());
+        userPosition.setStockCode(stock.getStockCode());
+        userPosition.setStockName(stock.getStockName());
+        userPosition.setStockGid(stock.getStockType());
+        userPosition.setStockSpell(stock.getStockSpell());
+        userPosition.setBuyOrderId(GeneratePosition.getPositionId());
+        userPosition.setBuyOrderTime(new Date());
+        userPosition.setBuyOrderPrice(intradayOrder.getStockPrice());
+        userPosition.setOrderDirection((intradayOrder.getPriceType() == 0) ? "买涨" : "买跌");
+        userPosition.setOrderNum(intradayOrder.getStockQuantity());
+        if (stock.getStockPlate() != null) {
+            userPosition.setStockPlate(stock.getStockPlate());
+        }
+        userPosition.setIsLock(intradayOrder.getIsLocked());
+        userPosition.setOrderLever(1);
+        userPosition.setOrderTotalPrice(totalPrice);
+        // 手续费
+        userPosition.setOrderFee(BigDecimal.ZERO);
+        userPosition.setOrderSpread(BigDecimal.ZERO);
+        userPosition.setSpreadRatePrice(BigDecimal.ZERO);
+        BigDecimal profit_and_lose = new BigDecimal("0");
+        userPosition.setProfitAndLose(profit_and_lose);
+        userPosition.setAllProfitAndLose(profit_and_lose.add(BigDecimal.ZERO));
+        userPosition.setOrderStayDays(Integer.valueOf(0));
+        userPosition.setOrderStayFee(BigDecimal.ZERO);
+        userPositionMapper.insert(userPosition);
+
+        //结余资金返还账户
+        UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.JP.getCode(), intradayOrder.getUserId());
+        userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(surplusAmount));
+        userAssetsMapper.updateById(userAssets);
+        intradayOrder.setPositionOrder(userPosition.getId());
+        intradayOrder.setPurchaseAmount(totalPrice);
+        intradayOrderMapper.updateById(intradayOrder);
+        return ServerResponse.createBySuccessMsg("操作成功");
+    }
+
+    /**
+     * 智能日内订单列表
+     */
+    @RequestMapping(value = {"listIntraday.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse listIntraday(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                       @RequestParam(value = "pageSize", defaultValue = "15") int pageSize,
+                                       @RequestParam(value = "userId" , required = false) Integer userId,
+                                       @RequestParam(value = "phone" , required = false) String phone,
+                                       @RequestParam(value = "stockName" , required = false) String stockName,
+                                       @RequestParam(value = "stockGid" , required = false) String stockGid,
+                                       @RequestParam(value = "status" , required = false) Integer status
+
+    ) {
+        // 执行分页查询
+        PageHelper.startPage(pageNum, pageSize);
+        List<IntradayOrder> intradayOrderList = intradayOrderMapper.conditionQuery(userId,phone,stockName,stockGid,status);
+        PageInfo<IntradayOrder> pageInfo = new PageInfo<>(intradayOrderList);
+        return ServerResponse.createBySuccess(pageInfo);
+    }
+
+    /**
+     * 删除日内订单
+     * @return
+     */
+    @RequestMapping(value = {"deleteIntraday.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse deleteIntraday( @RequestParam("id") Integer id) {
+        intradayOrderSerivce.removeById(id);
+        return ServerResponse.createBySuccessMsg("删除成功");
+    }
+
+    /**
+     * 根据条件查询所有股票
+     */
+    @RequestMapping(value = {"getStockByKeyWords.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse updateIntraday(@RequestParam("keyWords") String keyWords) {
+        Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<>(Stock.class)
+                .eq(Stock::getStockCode, keyWords).last(" limit 1"));
+        if(ObjectUtil.isEmpty(stock)){
+            return ServerResponse.createBySuccessMsg("股票不存在");
+        }
+        return ServerResponse.createBySuccess(stock);
+    }
+
+}
diff --git a/src/main/java/com/nq/controller/protol/UserController.java b/src/main/java/com/nq/controller/protol/UserController.java
index b01f91a..43bef84 100644
--- a/src/main/java/com/nq/controller/protol/UserController.java
+++ b/src/main/java/com/nq/controller/protol/UserController.java
@@ -418,31 +418,7 @@
     @ResponseBody
     public ServerResponse thirdPartyRecharge(@RequestParam("tradeAmoun") String tradeAmoun,@RequestParam("type") Integer type,HttpServletRequest request) {
         return ServerResponse.createBySuccess("请联系客服充值");
-//        payLock.lock();
-//        try {
-//
-//            if (payCreated.get()) {
-//                return ServerResponse.createByErrorMsg("当前充值人数过多,请稍后重试", request);
-//            }
-//            if (!isIntegerGreaterThan100(tradeAmoun)) {
-//                return ServerResponse.createByErrorMsg("请输入整数!",request);
-//            }
-//            if(null == type){
-//                return ServerResponse.createByErrorMsg("请选择支付通道!",request);
-//            }
-//            if(new BigDecimal(tradeAmoun).compareTo(new BigDecimal("1000")) < 0){
-//                return ServerResponse.createByErrorMsg("请重新输入,最低充值金额:1000", request);
-//            }
-//
-//            payCreated.set(true);
-//            return payService.thirdPartyRecharge(request,tradeAmoun,type);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//            return ServerResponse.createByErrorMsg("获取充值链接异常,请稍后重试", request);
-//        }  finally{
-//            payLock.unlock();
-//            payCreated.set(false);
-//        }
+
     }
     // 判断字符串是否是整数且大于100
     public static boolean isIntegerGreaterThan100(String str) {
diff --git a/src/main/java/com/nq/controller/smart/IntradayOrderController.java b/src/main/java/com/nq/controller/smart/IntradayOrderController.java
new file mode 100644
index 0000000..109777b
--- /dev/null
+++ b/src/main/java/com/nq/controller/smart/IntradayOrderController.java
@@ -0,0 +1,131 @@
+package com.nq.controller.smart;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.nq.common.ServerResponse;
+import com.nq.dao.IntradayOrderMapper;
+import com.nq.dao.StockMapper;
+import com.nq.dao.UserAssetsMapper;
+import com.nq.enums.EStockType;
+import com.nq.enums.EUserAssets;
+import com.nq.pojo.*;
+import com.nq.service.IUserAssetsServices;
+import com.nq.service.IUserService;
+import com.nq.service.impl.IntradayOrderSerivceImpl;
+import com.nq.service.impl.SmartIntradaySerivceImpl;
+import com.nq.service.impl.StockServiceImpl;
+import com.nq.utils.ConverterUtil;
+import com.nq.vo.smart.IntradayOrderVo;
+import com.nq.vo.smart.SmartIntradayVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @program: dabaogp
+ * @description:
+ * @create: 2025-07-15 14:27
+ **/
+@Controller
+@RequestMapping({"/api/intraday/"})
+public class IntradayOrderController {
+
+    @Autowired
+    private IntradayOrderSerivceImpl intradayOrderSerivce;
+
+    @Autowired
+    private SmartIntradaySerivceImpl smartIntradaySerivce;
+
+    @Autowired
+    private StockMapper stockMapper;
+
+    @Autowired
+    private IUserService userService;
+
+    @Autowired
+    private IUserAssetsServices iUserAssetsServices;
+
+    @Autowired
+    private UserAssetsMapper userAssetsMapper;
+
+    @Autowired
+    private IntradayOrderMapper intradayOrderMapper;
+
+
+
+    /**
+     * 智能日内列表
+     */
+    @RequestMapping(value = {"listSmart.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse listSmart() {
+
+        // 创建查询条件
+        LambdaQueryWrapper<SmartIntraday> wrapper = new LambdaQueryWrapper<>();
+
+        wrapper.eq(SmartIntraday::getStatus,1);
+        // 按创建时间倒序
+        wrapper.orderByDesc(SmartIntraday::getCreatedAt);
+        // 执行分页查询
+        List<SmartIntraday>list = smartIntradaySerivce.list( wrapper);
+        return ServerResponse.createBySuccess(list);
+    }
+
+    /**
+     * 下单智能日内
+     * @param vo
+     * @return
+     */
+    @RequestMapping(value = {"addIntraday.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse addIntraday(@Valid IntradayOrderVo vo,HttpServletRequest request) {
+        SmartIntraday smartIntraday = smartIntradaySerivce.getById(vo.getSmartId());
+        if(ObjectUtil.isEmpty(smartIntraday)){
+            return ServerResponse.createBySuccess("产品已下架!",request);
+        }
+        User user = userService.getCurrentRefreshUser(request);
+        UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.JP.getCode(), user.getId());
+        BigDecimal orderAmount = vo.getOrderAmount();
+        if(userAssets.getAvailableBalance().compareTo(orderAmount)<0){
+            return ServerResponse.createByErrorMsg("余额不足",request);
+        }
+
+        userAssets.setAvailableBalance(userAssets.getAvailableBalance().subtract(orderAmount));
+        userAssetsMapper.updateById(userAssets);
+
+        IntradayOrder intradayOrder = ConverterUtil.convert(vo, IntradayOrder.class);
+        intradayOrder.setUserId(user.getId());
+        intradayOrder.setSmartId(smartIntraday.getId());
+        intradayOrder.setStockType(EStockType.JP.getCode());
+        intradayOrderSerivce.save(intradayOrder);
+        return ServerResponse.createBySuccess("下单成功",request);
+    }
+
+    /**
+     * 智能日内订单列表
+     */
+    @RequestMapping(value = {"listIntraday.do"}, method = {RequestMethod.POST})
+    @ResponseBody
+    public ServerResponse listIntraday(@RequestParam(value = "status" , required = false) Integer status,HttpServletRequest request) {
+        User user = userService.getCurrentRefreshUser(request);
+        List<IntradayOrder> intradayOrderList = intradayOrderMapper.selectList(new LambdaQueryWrapper<>(IntradayOrder.class)
+                .eq(IntradayOrder::getAuditStatus,status)
+                .eq(IntradayOrder::getUserId,user.getId())
+        );
+        return ServerResponse.createBySuccess(intradayOrderList);
+    }
+}
diff --git a/src/main/java/com/nq/dao/IntradayOrderMapper.java b/src/main/java/com/nq/dao/IntradayOrderMapper.java
new file mode 100644
index 0000000..fd802ca
--- /dev/null
+++ b/src/main/java/com/nq/dao/IntradayOrderMapper.java
@@ -0,0 +1,12 @@
+package com.nq.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.nq.pojo.IntradayOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface IntradayOrderMapper extends BaseMapper<IntradayOrder> {
+    List<IntradayOrder> conditionQuery(Integer userId, String phone, String stockName, String stockGid, Integer status);
+}
diff --git a/src/main/java/com/nq/dao/SmartIntradayMapper.java b/src/main/java/com/nq/dao/SmartIntradayMapper.java
new file mode 100644
index 0000000..dce631b
--- /dev/null
+++ b/src/main/java/com/nq/dao/SmartIntradayMapper.java
@@ -0,0 +1,11 @@
+package com.nq.dao;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.nq.pojo.SmartIntraday;
+import com.nq.pojo.StockDz;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SmartIntradayMapper extends BaseMapper<SmartIntraday> {
+}
diff --git a/src/main/java/com/nq/pojo/IntradayOrder.java b/src/main/java/com/nq/pojo/IntradayOrder.java
new file mode 100644
index 0000000..e130d2f
--- /dev/null
+++ b/src/main/java/com/nq/pojo/IntradayOrder.java
@@ -0,0 +1,39 @@
+package com.nq.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.sql.Date;
+
+/**
+ * @program: dabaogp
+ * @description: 日内交易订单表
+ * @create: 2025-07-15 10:41
+ **/
+@Data
+public class IntradayOrder {
+
+    @TableId(value = "id",type = IdType.AUTO)
+    private Integer id; // 订单ID
+    private Integer userId; // 用户ID
+    private Integer smartId; //日内产品id
+    private BigDecimal orderAmount; // 订单金额
+    private String stockType; // 股票类型: 日股/美股/港股等
+    private String stockCode; // 股票编码
+    private String stockName; // 股票名称
+    private String stockGid; // 股票GID
+    private Integer stockQuantity; // 股票数量
+    private Integer priceType; // 涨跌类型: 0-买涨,1-买跌
+    private Integer positionOrder; // 持仓订单
+    private BigDecimal stockPrice; // 股票价格
+    private Integer auditStatus; // 审核状态: 0-未审核,1-审核通过,2-审核拒绝
+    private java.util.Date orderTime; // 下单时间
+    private Integer isLocked; // 是否锁仓: 0-开仓,1-锁仓
+    private java.util.Date createdAt; // 创建时间
+    private java.util.Date updatedAt; // 更新时间
+    private Integer stockId; //股票id
+    private BigDecimal purchaseAmount; //实际买入金额
+
+}
diff --git a/src/main/java/com/nq/pojo/SmartIntraday.java b/src/main/java/com/nq/pojo/SmartIntraday.java
new file mode 100644
index 0000000..452bf4b
--- /dev/null
+++ b/src/main/java/com/nq/pojo/SmartIntraday.java
@@ -0,0 +1,30 @@
+package com.nq.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.sql.Date;
+
+/**
+ * @program: dabaogp
+ * @description: 日内交易产品表
+ * @create: 2025-07-15 10:44
+ **/
+@Data
+public class SmartIntraday {
+
+    @TableId(type = IdType.AUTO,value = "id")
+    private Integer id; // 主键ID
+    private String depositName; // 定存名称
+    private String stockType; // 股票类型
+    private String accountType; // 账户类型
+    private String profit; // 盈利
+    private Integer status = 1; // 状态: 0-关闭, 1-开启
+    private BigDecimal minAmount; // 最小金额
+    private BigDecimal maxAmount; // 最大金额
+    private java.util.Date createdAt; // 创建时间
+    private java.util.Date updatedAt; // 更新时间
+
+}
diff --git a/src/main/java/com/nq/pojo/StockIndexData.java b/src/main/java/com/nq/pojo/StockIndexData.java
new file mode 100644
index 0000000..945a4b4
--- /dev/null
+++ b/src/main/java/com/nq/pojo/StockIndexData.java
@@ -0,0 +1,57 @@
+package com.nq.pojo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @program: dabaogp
+ * @description: 股票指数
+ * @create: 2025-07-15 17:48
+ **/
+@Data
+public class StockIndexData {
+
+    /** 指数ID(也是指数的PID) */
+    private Long id;
+
+    /** 股票/指数名称 */
+    private String name;
+
+    /** 股票/指数代码 */
+    private String symbol;
+
+    /** 最新价格 */
+    private BigDecimal last;
+
+    /** 当日最高价 */
+    private BigDecimal high;
+
+    /** 当日最低价 */
+    private BigDecimal low;
+
+    /** 今日开盘价 */
+    private BigDecimal open;
+
+    /** 昨日收盘价 */
+    private BigDecimal prevClose;
+
+    /** 价格更新时间(Unix时间戳) */
+    private Long time;
+
+    /** 交易量 */
+    private Long volume;
+
+    /** 涨跌额 */
+    private BigDecimal chg;
+
+    /** 涨跌幅百分比 */
+    private BigDecimal chgPct;
+
+    /** 所属国家ID */
+    private Integer countryId;
+
+    /** 交易所类型(如NSE) */
+    private String type;
+
+}
diff --git a/src/main/java/com/nq/service/IStockService.java b/src/main/java/com/nq/service/IStockService.java
index 4763888..f5bc74d 100644
--- a/src/main/java/com/nq/service/IStockService.java
+++ b/src/main/java/com/nq/service/IStockService.java
@@ -105,4 +105,6 @@
 
 
     ServerResponse getOptionStock(HttpServletRequest request);
+
+  ServerResponse getIndexData();
 }
diff --git a/src/main/java/com/nq/service/IntradayOrderSerivce.java b/src/main/java/com/nq/service/IntradayOrderSerivce.java
new file mode 100644
index 0000000..5f1ceec
--- /dev/null
+++ b/src/main/java/com/nq/service/IntradayOrderSerivce.java
@@ -0,0 +1,8 @@
+package com.nq.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.nq.pojo.IntradayOrder;
+import com.nq.pojo.SmartIntraday;
+
+public interface IntradayOrderSerivce extends IService<IntradayOrder> {
+}
diff --git a/src/main/java/com/nq/service/SmartIntradaySerivce.java b/src/main/java/com/nq/service/SmartIntradaySerivce.java
new file mode 100644
index 0000000..fc3ab37
--- /dev/null
+++ b/src/main/java/com/nq/service/SmartIntradaySerivce.java
@@ -0,0 +1,10 @@
+package com.nq.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.nq.pojo.SmartIntraday;
+import com.nq.pojo.StockDz;
+
+
+public interface SmartIntradaySerivce extends IService<SmartIntraday> {
+}
diff --git a/src/main/java/com/nq/service/impl/IntradayOrderSerivceImpl.java b/src/main/java/com/nq/service/impl/IntradayOrderSerivceImpl.java
new file mode 100644
index 0000000..4f53ab9
--- /dev/null
+++ b/src/main/java/com/nq/service/impl/IntradayOrderSerivceImpl.java
@@ -0,0 +1,17 @@
+package com.nq.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nq.dao.IntradayOrderMapper;
+import com.nq.dao.SmartIntradayMapper;
+import com.nq.pojo.IntradayOrder;
+import com.nq.pojo.SmartIntraday;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: dabaogp
+ * @description:
+ * @create: 2025-07-15 10:50
+ **/
+@Service
+public class IntradayOrderSerivceImpl extends ServiceImpl<IntradayOrderMapper, IntradayOrder> {
+}
diff --git a/src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java b/src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java
index a5ad4ff..69b940e 100644
--- a/src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java
@@ -123,7 +123,6 @@
             return ServerResponse.createByErrorMsg("参数不能为空");
 
         }
-
         adminPwd = SymmetricCryptoUtil.encryptPassword(adminPwd);
         SiteAdmin siteAdmin = this.siteAdminMapper.login(adminPhone, adminPwd);
         if (siteAdmin == null) {
diff --git a/src/main/java/com/nq/service/impl/SmartIntradaySerivceImpl.java b/src/main/java/com/nq/service/impl/SmartIntradaySerivceImpl.java
new file mode 100644
index 0000000..2c1d407
--- /dev/null
+++ b/src/main/java/com/nq/service/impl/SmartIntradaySerivceImpl.java
@@ -0,0 +1,17 @@
+package com.nq.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nq.dao.SmartIntradayMapper;
+import com.nq.dao.StockDzMapper;
+import com.nq.pojo.SmartIntraday;
+import com.nq.pojo.StockDz;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: dabaogp
+ * @description:
+ * @create: 2025-07-15 10:48
+ **/
+@Service
+public class SmartIntradaySerivceImpl extends ServiceImpl<SmartIntradayMapper, SmartIntraday> {
+}
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index e645c0c..34ef33e 100644
--- a/src/main/java/com/nq/service/impl/StockServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -462,6 +462,14 @@
         return ServerResponse.createBySuccess();
     }
 
+    @Override
+    public ServerResponse getIndexData() {
+        Object object = HttpUtil.get(EStockType.JP.stockUrl + "/indices?country_id="+EStockType.JP.contryId+"&key="+EStockType.JP.getStockKey());
+        Gson gson = new Gson();
+        List<StockIndexData> dataList = gson.fromJson(object.toString(), new TypeToken<List<StockIndexData>>(){}.getType());
+        return ServerResponse.createBySuccess(dataList);
+    }
+
     public ServerResponse<Stock> findStockByName(String name) {
         return ServerResponse.createBySuccess(this.stockMapper.findStockByName(name));
     }
diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 09f5d3e..fa18738 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -51,9 +51,6 @@
 
     @Override
     public UserAssets assetsByTypeAndUserId(String accetType, Integer userId) {
-        if(accetType.equals("SZHB")){
-            accetType = "US";
-        }
         QueryWrapper<UserAssets>  queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("accect_type",accetType);
         queryWrapper.eq("user_id",userId);
@@ -159,9 +156,6 @@
 
     @Override
     public BigDecimal getAvailableBalance(String accetType, Integer userId) {
-        if(accetType.equals("SZHB")){
-            accetType = "US";
-        }
         return  assetsByTypeAndUserId(accetType,userId).getAvailableBalance();
     }
 
diff --git a/src/main/java/com/nq/utils/stock/sina/StockApi.java b/src/main/java/com/nq/utils/stock/sina/StockApi.java
index 369dc63..ee55cc8 100644
--- a/src/main/java/com/nq/utils/stock/sina/StockApi.java
+++ b/src/main/java/com/nq/utils/stock/sina/StockApi.java
@@ -38,7 +38,7 @@
                 Stock stock = stocks.get(i);
                 StockRealTimeBean realTimeStock = RedisKeyUtil.getCacheRealTimeStock(stock);
                 StockListVO stockListVO = new StockListVO();
-                stockListVO.setHcrate(new BigDecimal(realTimeStock.getPcp()));
+                stockListVO.setHcrate(new BigDecimal(realTimeStock.getPc()));
                 stockListVO.setHcrateP(realTimeStock.getPcp()+"%");
                 if(realTimeStock.getPcp().contains("-")){
                     stockListVO.setColor(0);
diff --git a/src/main/java/com/nq/vo/smart/IntradayOrderVo.java b/src/main/java/com/nq/vo/smart/IntradayOrderVo.java
new file mode 100644
index 0000000..3905843
--- /dev/null
+++ b/src/main/java/com/nq/vo/smart/IntradayOrderVo.java
@@ -0,0 +1,47 @@
+package com.nq.vo.smart;
+
+import lombok.Data;
+
+import javax.validation.constraints.*;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @program: dabaogp
+ * @description:
+ * @create: 2025-07-15 10:52
+ **/
+@Data
+public class IntradayOrderVo {
+
+    private Integer id; // 订单ID
+
+    private Integer smartId;
+
+    @NotNull(message = "订单金额不能为空")
+    @DecimalMin(value = "1", message = "订单金额必须大于0")
+    private BigDecimal orderAmount; // 订单金额
+
+    private String stockType; // 股票类型: 日股/美股/港股等
+
+    private String stockCode; // 股票编码
+
+    private String stockName; // 股票名称
+
+    private String stockGid; // 股票GID
+
+    private Integer stockQuantity; // 股票数量
+
+    private Integer priceType; // 涨跌类型: 1-买涨,2-买跌
+
+    private String positionOrder; // 持仓订单
+
+    private String stockPrice; // 股票价格
+
+    private Integer auditStatus = 0; // 审核状态: 0-未审核,1-审核通过,2-审核拒绝
+
+    private String orderTime; // 下单时间
+
+    private Integer isLocked; // 是否锁仓: 0-开仓,1-锁仓
+
+}
diff --git a/src/main/java/com/nq/vo/smart/SmartIntradayVo.java b/src/main/java/com/nq/vo/smart/SmartIntradayVo.java
new file mode 100644
index 0000000..488fdaf
--- /dev/null
+++ b/src/main/java/com/nq/vo/smart/SmartIntradayVo.java
@@ -0,0 +1,32 @@
+package com.nq.vo.smart;
+
+import lombok.Data;
+
+import javax.validation.constraints.*;
+import java.math.BigDecimal;
+
+/**
+ * @program: dabaogp
+ * @description:
+ * @create: 2025-07-15 10:52
+ **/
+@Data
+public class SmartIntradayVo {
+
+    private Integer id; // 主键ID
+
+    private String depositName; // 定存名称
+
+    private String stockType; // 股票类型
+
+    private String accountType; // 账户类型
+
+    private String profit; // 盈利百分比
+
+    private Integer status = 1; // 状态: 0-关闭, 1-开启
+
+    private BigDecimal minAmount; // 最小金额
+
+    private BigDecimal maxAmount; // 最大金额
+
+}
diff --git a/src/main/resources/mapper/IntradayOrderMapper.xml b/src/main/resources/mapper/IntradayOrderMapper.xml
new file mode 100644
index 0000000..898fe6f
--- /dev/null
+++ b/src/main/resources/mapper/IntradayOrderMapper.xml
@@ -0,0 +1,35 @@
+<?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.nq.dao.IntradayOrderMapper">
+
+    <select id="conditionQuery" resultType="com.nq.pojo.IntradayOrder">
+        SELECT
+        o.*
+        FROM
+        intraday_order o
+        LEFT JOIN user u ON o.user_id = u.id
+        LEFT JOIN stock s ON s.id = o.stock_id
+        <where>
+            1=1
+            <if test="userId != null and userId != ''">
+                AND u.id = #{userId}
+            </if>
+            <if test="phone != null and phone != ''">
+                AND u.phone = #{phone}
+            </if>
+            <if test="stockName != null and stockName != ''">
+                AND s.stock_name LIKE CONCAT('%', #{stockName}, '%')
+            </if>
+            <if test="stockGid != null and stockGid != ''">
+                AND s.stock_gid = #{stockGid}
+            </if>
+            <if test="status != null and status != '' ">
+                AND o.audit_status = #{auditStatus}
+            </if>
+        </where>
+        GROUP BY o.id
+        ORDER BY o.order_time DESC
+
+    </select>
+</mapper>

--
Gitblit v1.9.3