| src/main/java/com/nq/enums/EUserAssets.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/pojo/UserAssets.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/UserAssetsServices.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/UserServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java | ●●●●● patch | view | raw | blame | history |
src/main/java/com/nq/enums/EUserAssets.java
@@ -8,7 +8,6 @@ HANDLING_CHARGE("HANDLING_CHARGE","手续费"), NEW_HANDLING_CHARGE("NEW_HANDLING_CHARGE","新股手续费"), CALCULATE_PROFIT_AND_LOSS("CALCULATE_PROFIT_AND_LOSS","计算盈亏"), CLOSE_POSITION_RETURN_SECURITY_DEPOSIT("CLOSE_POSITION_RETURN_SECURITY","平仓返回保证金"), src/main/java/com/nq/pojo/UserAssets.java
@@ -48,6 +48,9 @@ // 冻结金额 private BigDecimal freezeMoney; // 手续费欠款 private BigDecimal handlingChargeWritten; // 累计盈亏 0 正 1 负 private Integer isZf; } src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -78,10 +78,12 @@ if(type.equals("0")){ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){ BigDecimal availableBalance = bigAmt.subtract(userAssets.getAmountToBeCovered()); availableBalance = availableBalance.subtract(userAssets.getHandlingChargeWritten()); if(availableBalance.compareTo(BigDecimal.ZERO) > 0){ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(availableBalance)); userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(userAssets.getAmountToBeCovered())); userAssets.setAmountToBeCovered(BigDecimal.ZERO); userAssets.setHandlingChargeWritten(BigDecimal.ZERO); if(null != userPosition){ userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered()); } @@ -178,9 +180,11 @@ }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CLOSE_POSITION_RETURN_SECURITY_DEPOSIT.getCode())){ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){ BigDecimal availableBalance = amount.subtract(userAssets.getAmountToBeCovered()); availableBalance = availableBalance.subtract(userAssets.getHandlingChargeWritten()); if(availableBalance.compareTo(BigDecimal.ZERO) > 0){ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(availableBalance)); userAssets.setAmountToBeCovered(BigDecimal.ZERO); userAssets.setHandlingChargeWritten(BigDecimal.ZERO); }else{ BigDecimal amountToBeCovered = userAssets.getAmountToBeCovered().subtract(amount); userAssets.setAmountToBeCovered(amountToBeCovered); @@ -197,10 +201,12 @@ }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.TOP_UP.getCode())){ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){ BigDecimal availableBalance = amount.subtract(userAssets.getAmountToBeCovered()); availableBalance = availableBalance.subtract(userAssets.getHandlingChargeWritten()); if(availableBalance.compareTo(BigDecimal.ZERO) > 0){ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(availableBalance)); userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(userAssets.getAmountToBeCovered())); userAssets.setAmountToBeCovered(BigDecimal.ZERO); userAssets.setHandlingChargeWritten(BigDecimal.ZERO); }else{ BigDecimal amountToBeCovered = userAssets.getAmountToBeCovered().subtract(amount); userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount)); @@ -213,8 +219,13 @@ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount)); userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount.abs())); }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.HANDLING_CHARGE.getCode())){ userAssets.setHandlingCharge(userAssets.getHandlingCharge().add(amount.abs())); if(userAssets.getAvailableBalance().compareTo(amount.abs()) >= 0){ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount.negate())); }else { userAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten().add(amount.abs())); } userAssets.setHandlingCharge(userAssets.getHandlingCharge().add(amount.abs())); extracted(amount.negate(),userAssets); }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CONSTRAINT_CLOSE_POSITION.getCode())){ userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(amount)); @@ -224,9 +235,6 @@ userAssets.setCumulativeProfitAndLoss(userAssets.getCumulativeProfitAndLoss().add(amount)); } extracted(userAssets); }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.NEW_HANDLING_CHARGE.getCode())){ userAssets.setHandlingCharge(userAssets.getHandlingCharge().add(amount.abs())); extracted(amount.negate(),userAssets); } if(null != userPosition){ src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -1336,7 +1336,7 @@ return ServerResponse.createByErrorMsg("新股转持仓失败"); } userAssetsMapper.updateById(userAssets); iUserAssetsServices.availablebalanceChange("IN", userAssets.getUserId(), EUserAssets.NEW_HANDLING_CHARGE, buy_fee_amt, "", ""); iUserAssetsServices.availablebalanceChange("IN", userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", ""); if (ret > 0) { userStockSubscribe.setStatus(5); userStockSubscribeMapper.update1(userStockSubscribe); @@ -1675,7 +1675,10 @@ // 创建UserPosition对象 UserPosition userPosition = getUserPosition(dzId,num, user, stockDz, nowPrice, stock, buyAmt); userPositionMapper.insert(userPosition); BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ; BigDecimal buy_fee_amt = siteSettingBuyFee.multiply(buyAmt); userAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"",""); iUserAssetsServices.availablebalanceChange("IN", userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", ""); return ServerResponse.createBySuccess("购买成功", request); } src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -522,7 +522,7 @@ rUserAssets.setHandlingCharge(hMoney.toString()); rUserAssets.setProfitAndLoss(profitAndLose.toString()); rUserAssets.setIsZf(userAssets.getIsZf()); rUserAssets.setAmountToBeCovered(userAssets.getAmountToBeCovered().toString()); rUserAssets.setAmountToBeCovered((userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten()).toString())); BigDecimal rate = rateServices.currencyRate( EStockType.getEStockTypeByCode(userAssets.getAccectType()),EStockType.US); @@ -538,7 +538,7 @@ BigDecimal totleMoneyUSD = totalAssets; if(totalAssets.compareTo(BigDecimal.ZERO)>0){ totleMoneyUSD = totleMoneyUSD.multiply(rate); totleMoneyUSD = totleMoneyUSD.multiply(rate).subtract(new BigDecimal(rUserAssets.getHandlingCharge())); } BigDecimal cumulativeProfitAndLossUSD = hProfitAndLose; src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
@@ -127,11 +127,11 @@ } // //重复申购限制 // UserStockSubscribe userStockSubscribe = userStockSubscribeMapper.selectOne(new QueryWrapper<UserStockSubscribe>().eq( // "new_code", model.getNewCode()).eq("user_id", user.getId()).eq("type",model.getType())); // if (userStockSubscribe != null) { // return ServerResponse.createByErrorMsg("请勿重复申请",request); // } Long count = userStockSubscribeMapper.selectCount(new QueryWrapper<UserStockSubscribe>().eq( "new_code", model.getNewCode()).eq("user_id", user.getId()).eq("type", model.getType())); if (count > 0) { return ServerResponse.createByErrorMsg("请勿重复申请",request); } if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) { return ServerResponse.createByErrorMsg("订单失败,帐户已被锁定",request); } @@ -268,7 +268,7 @@ //需要退回的资金 BigDecimal refundPrice = userStockSubscribe.getBuyPrice().multiply(new BigDecimal(applyNumber)); userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(refundPrice)); userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(refundPrice)); userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(refundPrice)); } }else{ if(applyNumber > 0){