| | |
| | | return ServerResponse.createByErrorMsg("用户资金账户不存在"); |
| | | } |
| | | userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(userWithdraw.getWithAmt())); |
| | | userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(userWithdraw.getWithAmt())); |
| | | int updateUserCount = userAssetsMapper.updateById(userAssets); |
| | | |
| | | if (updateUserCount > 0) { |
| | |
| | | if (state.intValue() == 3 && |
| | | StringUtils.isBlank(authMsg)) { |
| | | return ServerResponse.createByErrorMsg("失败信息必填"); |
| | | |
| | | } |
| | | User user = this.userMapper.selectById(userWithdraw.getUserId()); |
| | | if (user == null) { |
| | | return ServerResponse.createByErrorMsg("用户不存在"); |
| | | } |
| | | UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", user.getId()); |
| | | if (userAssets == null) { |
| | | return ServerResponse.createByErrorMsg("用户资金账户不存在"); |
| | | } |
| | | if (state == 3) { |
| | | User user = this.userMapper.selectById(userWithdraw.getUserId()); |
| | | if (user == null) { |
| | | return ServerResponse.createByErrorMsg("用户不存在"); |
| | | if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){ |
| | | BigDecimal subtract = userWithdraw.getWithAmt().subtract(userAssets.getAmountToBeCovered()); |
| | | if(subtract.compareTo(BigDecimal.ZERO) > 0){ |
| | | userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(subtract)); |
| | | userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(userAssets.getAmountToBeCovered())); |
| | | userAssets.setAmountToBeCovered(BigDecimal.ZERO); |
| | | }else{ |
| | | userAssets.setAmountToBeCovered(userAssets.getAmountToBeCovered().subtract(userWithdraw.getWithAmt())); |
| | | userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(userWithdraw.getWithAmt())); |
| | | } |
| | | }else{ |
| | | userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(userWithdraw.getWithAmt())); |
| | | userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(userWithdraw.getWithAmt())); |
| | | } |
| | | UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("IN", user.getId()); |
| | | if (userAssets == null) { |
| | | return ServerResponse.createByErrorMsg("用户资金账户不存在"); |
| | | } |
| | | userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(userWithdraw.getWithAmt())); |
| | | int updateCount = userAssetsMapper.updateById(userAssets); |
| | | if (updateCount > 0) { |
| | | log.info("提现失败,返还用户资金成功!"); |
| | |
| | | throw new Exception("修改用户资金出错,抛出异常"); |
| | | } |
| | | userWithdraw.setWithMsg(authMsg); |
| | | }else{ |
| | | userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(userWithdraw.getWithAmt())); |
| | | userAssetsMapper.updateById(userAssets); |
| | | } |
| | | |
| | | userWithdraw.setWithStatus(state); |
| | | userWithdraw.setTransTime(new Date()); |
| | | int updateCount = this.userWithdrawMapper.updateByPrimaryKeySelective(userWithdraw); |