1
zj
2024-10-29 57c2b6875b5f026a1432f3209471d6b4503f43fc
src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
@@ -72,7 +72,7 @@
    UserAssetsMapper userAssetsMapper;
    @Override
    public ServerResponse addOrder(String stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, BigDecimal targetPrice, HttpServletRequest request) {
    public ServerResponse addOrder(String stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, BigDecimal targetPrice,HttpServletRequest request) {
        User user = this.iUserService.getCurrentRefreshUser(request);
        if (user == null) {
@@ -87,17 +87,17 @@
            return ServerResponse.createByErrorMsg("The pending order failed because the purchased quantity was greater than" + siteSetting
                    .getBuyMaxNum() + "stocks",request);
        }
        Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<>(Stock.class).eq(Stock::getStockCode, stockId));
        UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
                .eq(UserAssets::getUserId, user.getId())
                .eq(UserAssets::getAccectType, "JP")
                .eq(UserAssets::getAccectType, stock.getStockType())
        );
        BigDecimal amount = new BigDecimal(buyNum).multiply(targetPrice).setScale(5, RoundingMode.DOWN);
        if (userAssets.getAvailableBalance().compareTo(amount) < 0) {
            return ServerResponse.createByErrorMsg("订单失败,余额不足", request);
        }
        if(buyNum<100){
        if(buyNum<siteSetting.getBuyMinNum()){
            return ServerResponse.createByErrorMsg("最低购买数量"+siteSetting.getBuyMinNum(), request);
        }
@@ -118,6 +118,7 @@
        userPendingorder.setTargetPrice(targetPrice);
        userPendingorder.setAddTime(new Date());
        userPendingorder.setStatus(0);
        userPendingorder.setAssetsType(stock.getStockType());
        int ret = userPendingorderMapper.insert(userPendingorder);
        if (ret > 0) {
            String lang = request.getHeader("lang");
@@ -133,7 +134,7 @@
    }
    @Override
    public ServerResponse orderList(HttpServletRequest request) {
    public ServerResponse orderList(String stockType,HttpServletRequest request) {
        String property = PropertiesUtil.getProperty("user.cookie.name");
        String header = request.getHeader(property);
@@ -143,7 +144,10 @@
            User user = (User) JsonUtil.string2Obj(userJson, User.class);
//            log.info("user:{}",user);
            if (user != null) {
                List<UserPendingorder> userPendingorders = userPendingorderMapper.selectList(new QueryWrapper<UserPendingorder>().eq("user_id", user.getId()).ne("status",1));
                List<UserPendingorder> userPendingorders = userPendingorderMapper.selectList(new QueryWrapper<UserPendingorder>()
                        .eq("user_id", user.getId())
                        .eq("assets_type",stockType)
                        .ne("status",1));
                List UserPendingorderList = new ArrayList();
@@ -330,7 +334,7 @@
            if (delCount > 0) {
                UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
                        .eq(UserAssets::getUserId, user.getId())
                        .eq(UserAssets::getAccectType, "JP")
                        .eq(UserAssets::getAccectType, userPendingorder.getAssetsType())
                );
                BigDecimal amount = new BigDecimal(userPendingorder.getBuyNum()).multiply(userPendingorder.getTargetPrice()).setScale(5, RoundingMode.DOWN);
                userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));