1
zj
2025-11-04 b6c17624a50c6fe44049e63a1854822838a1675a
1
8 files modified
99 ■■■■ changed files
src/main/java/com/nq/controller/protol/UserController.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/com/nq/pojo/StockRealTimeBean.java 1 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/UserPendingorderService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/PriceServicesImpl.java 36 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/nq/ws/WebsocketRunClient.java 2 ●●●●● patch | view | raw | blame | history
src/main/resources/application.properties 2 ●●● patch | view | raw | blame | history
src/main/java/com/nq/controller/protol/UserController.java
@@ -213,6 +213,23 @@
        }
        return serverResponse;
    }
    //挂单操作-撤销
    @RequestMapping({"revocationOrder.do"})
    @ResponseBody
    public ServerResponse revocationOrder(HttpServletRequest request,@RequestParam("id") Integer id) {
        ServerResponse serverResponse = null;
        try {
            serverResponse = this.userPendingorderService.cancelPendingOrder(request,id);
        } catch (Exception e) {
            log.error("挂单操作-撤销 = {}", e);
        }
        return serverResponse;
    }
    //挂单操作-删除
    @RequestMapping({"delOrder.do"})
    @ResponseBody
src/main/java/com/nq/pojo/StockRealTimeBean.java
@@ -25,5 +25,6 @@
    private String turnover_numeric;
    private String time;
    private String timestamp;
    private String Open;
}
src/main/java/com/nq/service/UserPendingorderService.java
@@ -33,4 +33,6 @@
    ServerResponse addOrderByAdmin(String phone, String buyNum,String code, String buyType, String lever, String targetPrice, HttpServletRequest request);
    ServerResponse delOrderByAdmin(Integer id);
    ServerResponse cancelPendingOrder(HttpServletRequest request, Integer id);
}
src/main/java/com/nq/service/impl/PriceServicesImpl.java
@@ -63,24 +63,24 @@
        if(null == stock){
            return BigDecimal.ZERO;
        }
        StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code",stockCode));
        if(stockSetting != null){
            Date newDate = new Date();
            DateTime startTime = DateUtil.parseDateTime(stockSetting.getStartTime());
            DateTime endTime = DateUtil.parseDateTime(stockSetting.getEndTime());
            if(newDate.after(startTime) && newDate.before(endTime)){
//            if(TimeUtil.isTradingHour(stockSetting.getStartTime(),stockSetting.getEndTime())){
                if(stockSetting.getType().equals("0")){
                    return  new BigDecimal(stockSetting.getPrice());
                }else{
                    String s = doPost(stock.getStockCode());
                    if(null != s){
                        Map<String, Object> stringObjectMap = jsonToMap(s);
                        return   new BigDecimal(stringObjectMap.get("Last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
                    }
                }
            }
        }
//        StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code",stockCode));
//        if(stockSetting != null){
//            Date newDate = new Date();
//            DateTime startTime = DateUtil.parseDateTime(stockSetting.getStartTime());
//            DateTime endTime = DateUtil.parseDateTime(stockSetting.getEndTime());
//            if(newDate.after(startTime) && newDate.before(endTime)){
////            if(TimeUtil.isTradingHour(stockSetting.getStartTime(),stockSetting.getEndTime())){
//                if(stockSetting.getType().equals("0")){
//                    return  new BigDecimal(stockSetting.getPrice());
//                }else{
//                    String s = doPost(stock.getStockCode());
//                    if(null != s){
//                        Map<String, Object> stringObjectMap = jsonToMap(s);
//                        return   new BigDecimal(stringObjectMap.get("Last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
//                    }
//                }
//            }
//        }
        String s = doPost(stock.getStockCode());
        if(null != s) {
src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
@@ -5,6 +5,7 @@
import java.util.Date;
import java.util.List;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -143,7 +144,7 @@
                    if (nowPrice == null) {
                        nowPrice = String.valueOf(0);
                    }
                    userPendingorderVO.setNowPrice(new BigDecimal(nowPrice));
                    userPendingorderVO.setNowPrice(userPendingorder.getTargetPrice());
//                    userPendingorderVO.setStockName(stock.getStockName());
                    userPendingorderVO.setStockName(stock.getStockSpell());
                    userPendingorderVO.setStockId(stock.getStockCode());
@@ -350,6 +351,38 @@
        log.info("===========删除挂单任务结束==========");
    }
    public ServerResponse cancelPendingOrder(HttpServletRequest request, Integer id){
        log.info("===========撤销挂单==========");
        UserPendingorder userPendingorder = this.userPendingorderMapper.selectById(id);
        if(ObjectUtil.isEmpty(userPendingorder)){
            return ServerResponse.createByErrorMsg("订单不存在!",request);
        }else if(userPendingorder.getStatus() == 2){
            return ServerResponse.createByErrorMsg("订单已撤销,请勿重复操作!",request);
        }
        //修改状态
        userPendingorder.setStatus(2);
        userPendingorderMapper.updateById(userPendingorder);
        //退款
        QueryWrapper<UserAssets>  queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("accect_type","US");
        queryWrapper.eq("user_id",userPendingorder.getUserId());
        UserAssets userAssets =  userAssetsMapper.selectOne(queryWrapper);
        String before = userAssets.getAvailableBalance().toString();
        userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(userPendingorder.getBuyAmt()));
        userAssetsMapper.updateById(userAssets);
        MoneyLog moneyLog = new MoneyLog();
        moneyLog.setDescs(EUserAssets.BUY_REFUND.getDesc());
        moneyLog.setBeFore(before);
        moneyLog.setAfter(userAssets.getAvailableBalance().toString());
        moneyLog.setAmount(userAssets.getAvailableBalance().toString());
        moneyLog.setAccectType("US");
        moneyLog.setType(EUserAssets.BUY_REFUND.getCode());
        moneyLog.setUserId(userPendingorder.getUserId()+"");
        moneyLog.setSymbol(EStockType.getEStockTypeByCode("US").getSymbol());
        moneyLog.setCreateTime(new Date());
        moneyLogMapper.insert(moneyLog);
        return ServerResponse.createBySuccess("撤销成功!",request);
    }
    @Override
    public ServerResponse orderListByAdmin(int pageNum, int pageSize, String keywords, String status, HttpServletRequest request) {
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -222,8 +222,10 @@
                userPendingorder.setTargetPrice(preMarketPrice);
                userPendingorder.setAddTime(new Date());
                userPendingorder.setStatus(0);
                userPendingorder.setBuyAmt(preMarketPrice.multiply(new BigDecimal(buyNum)).setScale(2, RoundingMode.HALF_UP));
                userPendingorder.setBuyAmt(preMarketPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever)));
                int ret = userPendingorderMapper.insert(userPendingorder);
                buyAmt = userPendingorder.getBuyAmt();
                orderFree = siteSettingBuyFee.multiply(buyAmt);
            }else {
                userPosition.setPositionType(user.getAccountType());
                userPosition.setPositionSn(KeyUtils.getUniqueKey());
src/main/java/com/nq/ws/WebsocketRunClient.java
@@ -71,6 +71,8 @@
                stockRealTimeBean.setPc(stringObjectMap.get("Chg"));
                stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct") + "%");
                stockRealTimeBean.setTime(stringObjectMap.get("Time"));
                stockRealTimeBean.setOpen(stringObjectMap.get("Open"));
                stockRealTimeBean.setPrevClose(stringObjectMap.get("PrevClose"));
                RedisKeyUtil.setCacheRealTimeStock(EStockType.US, stockRealTimeBean);
src/main/resources/application.properties
@@ -17,7 +17,7 @@
ftp.user=ftp_stock
ftp.pass=123456
ftp.address =/www/wwwroot/ftp_stock/
ftp.server.http.prefix=https://img.yanshiz.com/
ftp.server.http.prefix=https://img.isusstcok.com/
redis1.ip=localhost
#redis1.port=6380