| | |
| | | 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) { |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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"); |
| | |
| | | } |
| | | |
| | | @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); |
| | |
| | | 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(); |
| | | |
| | |
| | | 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)); |