| | |
| | | package com.nq.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | |
| | | |
| | | |
| | | @Resource |
| | | MoneyLogMapper mapper; |
| | | |
| | | @Resource |
| | | UserPositionMapper userPositionMapper; |
| | | @Resource |
| | | SiteAmtTransLogMapper siteAmtTransLogMapper; |
| | |
| | | } |
| | | |
| | | |
| | | User dbuser = this.userMapper.findByPhone(phone); |
| | | User dbuser = this.userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getPhone,phone).last( " limit 1")); |
| | | if (dbuser != null) { |
| | | return ServerResponse.createByErrorMsg("Registration failed, the mobile phone number has been registered"); |
| | | } |
| | |
| | | |
| | | log.info("用户{}登陆成功, 登陆状态{} ,交易状态{}", new Object[]{user.getId(), user.getIsLogin(), user.getIsLock()}); |
| | | |
| | | userAssetsServices.assetsByTypeAndUserId(EStockType.HG.getCode(),user.getId()); |
| | | userAssetsServices.assetsByTypeAndUserId(EStockType.MAS.getCode(),user.getId()); |
| | | userAssetsServices.assetsByTypeAndUserId(EStockType.US.getCode(),user.getId()); |
| | | this.iSiteLoginLogService.saveLog(user, request); |
| | | return ServerResponse.createBySuccess(user); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public ServerResponse getMoney(HttpServletRequest request) { |
| | | |
| | | BigDecimal exchangeRate = iSiteSettingService.getSiteSetting().getExchangeRate(); |
| | | List<UserAssets> userAssetsList = userAssetsServices.assetsByUserId(getCurrentUser(request).getId()); |
| | | List<RUserAssets> rUserAssetsList = new ArrayList<>(); |
| | | |
| | | /** |
| | | * 浮动盈亏 |
| | | * */ |
| | |
| | | } |
| | | |
| | | @Override |
| | | public ServerResponse getMoney(Integer userId) { |
| | | BigDecimal exchangeRate = iSiteSettingService.getSiteSetting().getExchangeRate(); |
| | | List<UserAssets> userAssetsList = userAssetsServices.assetsByUserId(userId); |
| | | List<RUserAssets> rUserAssetsList = new ArrayList<>(); |
| | | /** |
| | | * 浮动盈亏 |
| | | * */ |
| | | BigDecimal AllProfitAndLose = BigDecimal.ZERO; |
| | | /** |
| | | * 总资产 |
| | | * */ |
| | | BigDecimal allTotalAssets = BigDecimal.ZERO; |
| | | /** |
| | | * 总可用余额 |
| | | * */ |
| | | BigDecimal allAmt = BigDecimal.ZERO; |
| | | /** |
| | | * 累计盈亏 |
| | | * */ |
| | | BigDecimal AllHProfitAndLose = BigDecimal.ZERO; |
| | | /** |
| | | * 总冻结资产 |
| | | * */ |
| | | BigDecimal allFreeMoney = BigDecimal.ZERO; |
| | | /** |
| | | * 总手续费 |
| | | * */ |
| | | BigDecimal allHMoney = BigDecimal.ZERO; |
| | | for (int i = 0; i <userAssetsList.size() ; i++) { |
| | | RUserAssets rUserAssets = new RUserAssets(); |
| | | UserAssets userAssets = userAssetsList.get(i); |
| | | // 浮动盈亏 |
| | | BigDecimal profitAndLose = userAssets.getProfitAndLoss(); |
| | | BigDecimal amt = userAssets.getAvailableBalance(); |
| | | BigDecimal totalAssets = userAssets.getAvailableBalance().add(userAssets.getFreezeMoney()); |
| | | BigDecimal freeMoney = userAssets.getFreezeMoney(); |
| | | BigDecimal hMoney = userAssets.getHandlingCharge(); |
| | | BigDecimal hProfitAndLose = userAssets.getCumulativeProfitAndLoss(); |
| | | rUserAssets.setId(userAssets.getId()); |
| | | rUserAssets.setTotalMoney((totalAssets.setScale(2).toString())); |
| | | rUserAssets.setAccectType(userAssets.getAccectType()); |
| | | rUserAssets.setAvailableBalance(amt.setScale(2).toString()); |
| | | rUserAssets.setFreezeMoney(freeMoney.setScale(2).toString()); |
| | | rUserAssets.setCumulativeProfitAndLoss(hProfitAndLose.setScale(2).toString()); |
| | | rUserAssets.setHandlingCharge(hMoney.setScale(2).toString()); |
| | | rUserAssets.setProfitAndLoss(profitAndLose.setScale(2).toString()); |
| | | if(userAssets.getAccectType().equals("US")){ |
| | | rUserAssets.setSymbol("$"); |
| | | rUserAssets.setSymbolCode("USD"); |
| | | AllProfitAndLose = AllProfitAndLose.add(profitAndLose); |
| | | allTotalAssets = allTotalAssets.add(totalAssets); |
| | | allAmt = allAmt.add(amt); |
| | | AllHProfitAndLose = AllHProfitAndLose.add(hProfitAndLose); |
| | | allFreeMoney = allFreeMoney.add(freeMoney); |
| | | allHMoney = allHMoney.add(hMoney); |
| | | rUserAssets.setAvailableBalanceUSD(rUserAssets.getAvailableBalance()); |
| | | rUserAssets.setFreezeMoneyUSD(rUserAssets.getFreezeMoney()); |
| | | rUserAssets.setTotalMoneyUSD(rUserAssets.getTotalMoney()); |
| | | rUserAssets.setCumulativeProfitAndLossUSD(hProfitAndLose.setScale(2).toString()); |
| | | rUserAssets.setHandlingChargeUSD(hMoney.setScale(2).toString()); |
| | | rUserAssets.setProfitAndLossUSD(hProfitAndLose.setScale(2).toString()); |
| | | |
| | | }else{ |
| | | rUserAssets.setAvailableBalanceUSD(userAssets.getAvailableBalance().divide(exchangeRate,BigDecimal.ROUND_CEILING).toString()); |
| | | rUserAssets.setFreezeMoneyUSD(userAssets.getFreezeMoney().divide(exchangeRate,BigDecimal.ROUND_CEILING).toString()); |
| | | rUserAssets.setTotalMoneyUSD(userAssets.getTotleAssets().divide(exchangeRate,BigDecimal.ROUND_CEILING).toString()); |
| | | rUserAssets.setSymbol("RM"); |
| | | rUserAssets.setSymbolCode("MYR"); |
| | | rUserAssets.setCumulativeProfitAndLossUSD(hProfitAndLose.divide(exchangeRate,BigDecimal.ROUND_CEILING).toString()); |
| | | rUserAssets.setHandlingChargeUSD(hMoney.divide(exchangeRate,BigDecimal.ROUND_CEILING).toString()); |
| | | rUserAssets.setProfitAndLossUSD(hProfitAndLose.divide(exchangeRate,BigDecimal.ROUND_CEILING).toString()); |
| | | |
| | | AllProfitAndLose = AllProfitAndLose.add(profitAndLose.divide(exchangeRate,BigDecimal.ROUND_CEILING)); |
| | | allTotalAssets = allTotalAssets.add(totalAssets.divide(exchangeRate,BigDecimal.ROUND_CEILING)); |
| | | allAmt = allAmt.add(amt.divide(exchangeRate,BigDecimal.ROUND_CEILING)); |
| | | AllHProfitAndLose = AllHProfitAndLose.add(hProfitAndLose.divide(exchangeRate,BigDecimal.ROUND_CEILING)); |
| | | allFreeMoney = allFreeMoney.add(freeMoney.divide(exchangeRate,BigDecimal.ROUND_CEILING)); |
| | | allHMoney = allHMoney.add(hMoney.divide(exchangeRate,BigDecimal.ROUND_CEILING)); |
| | | } |
| | | rUserAssetsList.add(rUserAssets); |
| | | } |
| | | |
| | | |
| | | |
| | | RUserAssets rUserAssets = new RUserAssets(); |
| | | rUserAssets.setAccectType("ALL"); |
| | | rUserAssets.setProfitAndLoss(AllProfitAndLose.setScale(2).toString()); |
| | | rUserAssets.setProfitAndLossUSD(AllProfitAndLose.setScale(2).toString()); |
| | | rUserAssets.setHandlingCharge(allHMoney.setScale(2).toString()); |
| | | rUserAssets.setHandlingChargeUSD(allHMoney.setScale(2).toString()); |
| | | rUserAssets.setCumulativeProfitAndLoss(AllHProfitAndLose.setScale(2).toString()); |
| | | rUserAssets.setCumulativeProfitAndLossUSD(AllHProfitAndLose.setScale(2).toString()); |
| | | rUserAssets.setTotalMoney(allTotalAssets.setScale(2).toString()); |
| | | rUserAssets.setTotalMoneyUSD(allTotalAssets.setScale(2).toString()); |
| | | rUserAssets.setAvailableBalance(allAmt.setScale(2).toString()); |
| | | rUserAssets.setAvailableBalanceUSD(allAmt.setScale(2).toString()); |
| | | rUserAssets.setFreezeMoney(allFreeMoney.setScale(2).toString()); |
| | | rUserAssets.setFreezeMoneyUSD(allFreeMoney.setScale(2).toString()); |
| | | rUserAssets.setSymbol("$"); |
| | | rUserAssets.setSymbolCode("USD"); |
| | | rUserAssetsList.add(rUserAssets); |
| | | |
| | | return ServerResponse.createBySuccess(rUserAssetsList); |
| | | } |
| | | |
| | | @Override |
| | | public ServerResponse transfer(String fromType, String toType, String amt,HttpServletRequest paramHttpServletRequest) { |
| | | |
| | | User user = userService.getCurrentUser(paramHttpServletRequest); |
| | |
| | | if(formAssets.getAvailableBalance().compareTo(amtBig)<0){ |
| | | return ServerResponse.createByErrorMsg("Insufficient amount"); |
| | | } |
| | | SiteSetting siteSetting = iSiteSettingService.getSiteSetting(); |
| | | userAssetsServices.availablebalanceChange(fromType,user.getId(), EUserAssets.TRANSFER,amtBig.negate(),"",""); |
| | | |
| | | if(fromType.equals(EStockType.MAS.getCode())){ |
| | | amtBig = amtBig.divide(siteSetting.getExchangeRate(), BigDecimal.ROUND_CEILING); |
| | | }else{ |
| | | amtBig = amtBig.multiply(siteSetting.getExchangeRate()); |
| | | } |
| | | userAssetsServices.availablebalanceChange(toType,user.getId(),EUserAssets.TRANSFER,amtBig,"",""); |
| | | return ServerResponse.createBySuccess(); |
| | | } |
| | |
| | | userMapper.updateUserAmt(amt, user_id); |
| | | } |
| | | |
| | | // @Override |
| | | // public ServerResponse queryMyOption(String code, HttpServletRequest request) { |
| | | // User user = getCurrentUser(request); |
| | | // |
| | | // if (user == null) { |
| | | // return ServerResponse.createBySuccessMsg("請先登錄"); |
| | | // } |
| | | // String stockcode = code; |
| | | // if(code.contains("hf")){ |
| | | // stockcode = code.split("_")[1].toString(); |
| | | // } |
| | | // stockcode = stockcode.replace("sh","").replace("sz","").replace("bj",""); |
| | | // return this.iStockOptionService.isOption(user.getId(), stockcode); |
| | | // } |
| | | |
| | | @Override |
| | | public ServerResponse queryMyOption(String code, HttpServletRequest request) { |
| | | User user = getCurrentUser(request); |
| | | |
| | | return this.iStockOptionService.isOption(user.getId(), code); |
| | | } |
| | | |
| | | @Override |
| | | public ServerResponse getMoenyLog(String type,HttpServletRequest request) { |
| | | User user = getCurrentUser(request); |
| | | QueryWrapper<MoneyLog> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("type",type); |
| | | queryWrapper.eq("user_id",user.getId()); |
| | | return ServerResponse.createBySuccess(mapper.selectList(queryWrapper)); |
| | | } |
| | | |
| | | } |
| | | |