| | |
| | | import com.nq.service.*; |
| | | import com.nq.utils.DateTimeUtil; |
| | | import com.nq.utils.KeyUtils; |
| | | import com.nq.utils.UserFundUtil; |
| | | import com.nq.utils.PropertiesUtil; |
| | | import com.nq.utils.redis.CookieUtils; |
| | | import com.nq.utils.redis.JsonUtil; |
| | |
| | | if (user.getEnableAmt().compareTo(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice())) < 0) { |
| | | return ServerResponse.createByErrorMsg("用户可用余额不足,申购条件不满足"); |
| | | } |
| | | user.setEnableAmt(user.getEnableAmt().subtract(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()))); |
| | | BigDecimal applyAmt = new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()); |
| | | UserFundUtil.deductEnableAndWithdraw(user, applyAmt); |
| | | if (user.getDjzj() != null) { |
| | | user.setDjzj(user.getDjzj().add(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()))); |
| | | } else { |
| | |
| | | Integer refund = refundenum * userStockSubscribe.getBuyPrice().intValue(); |
| | | // log.info("退还金额"+refund); |
| | | user.setEnableAmt(user.getEnableAmt().add(BigDecimal.valueOf(refund))); |
| | | user.setEnaleWithdrawAmt(user.getEnaleWithdrawAmt().add(BigDecimal.valueOf(refund))); |
| | | user.setEnaleWithdrawAmt((user.getEnaleWithdrawAmt() == null ? BigDecimal.ZERO : user.getEnaleWithdrawAmt()).add(BigDecimal.valueOf(refund))); |
| | | user.setDjzj(user.getDjzj().subtract(BigDecimal.valueOf(refund))); |
| | | int ret1 = userMapper.updateByPrimaryKey(user); |
| | | if (ret1 <= 0) { |
| | |
| | | iSiteMessageService.insert(siteMessage); |
| | | } else { |
| | | User user = userMapper.selectByPrimaryKey(userStockSubscribe.getUserId()); |
| | | user.setEnableAmt(user.getEnableAmt().add(userStockSubscribe.getBond())); |
| | | UserFundUtil.refundEnableAndWithdraw(user, userStockSubscribe.getBond()); |
| | | user.setDjzj(user.getDjzj().subtract(userStockSubscribe.getBond())); |
| | | userMapper.updateByPrimaryKey(user); |
| | | SiteMessage siteMessage = new SiteMessage(); |
| | |
| | | } |
| | | // log.info("原可用資金"+user1.getEnableAmt()); |
| | | BigDecimal enableAmt = user1.getEnableAmt().subtract(userStockSubscribe.getBond()); |
| | | BigDecimal enaleWithdrawAmt = user1.getEnaleWithdrawAmt().subtract(userStockSubscribe.getBond()); |
| | | if (enaleWithdrawAmt.compareTo(userStockSubscribe.getBond()) < 0) { |
| | | //若可取資金小於保證金,但是可用資金充足,則令當前可取資金為0 |
| | | BigDecimal withdrawAmt = user1.getEnaleWithdrawAmt() == null ? BigDecimal.ZERO : user1.getEnaleWithdrawAmt(); |
| | | BigDecimal bond = userStockSubscribe.getBond(); |
| | | if (withdrawAmt.compareTo(bond) < 0) { |
| | | user1.setEnaleWithdrawAmt(BigDecimal.ZERO); |
| | | } else { |
| | | user1.setEnaleWithdrawAmt(enaleWithdrawAmt); |
| | | user1.setEnaleWithdrawAmt(withdrawAmt.subtract(bond)); |
| | | } |
| | | // log.info("enableAmt" + enableAmt); |
| | | user1.setEnableAmt(enableAmt); |
| | | // log.info("可用資金" + user1.getEnableAmt()+"保證金"+userStockSubscribe.getBond()+"原djzj"+user1.getDjzj()); |
| | | if (user1.getDjzj() != null) { |
| | |
| | | } |
| | | |
| | | BigDecimal totalNewStockPrice = new BigDecimal(num).multiply(stockSubscribe.getPrice()); |
| | | user.setEnableAmt(user.getEnableAmt().subtract(totalNewStockPrice)); |
| | | BigDecimal user_enable_withdraw_amt = user.getEnaleWithdrawAmt(); |
| | | //修改用戶可取余額=當前可取余額-下單總金額 |
| | | int compareUserWithdrawAmtInt = user_enable_withdraw_amt.compareTo(totalNewStockPrice); |
| | | if (compareUserWithdrawAmtInt == -1) { |
| | | //若可取余額小於下單總額,但是可用余額充足,令可取余額為0 |
| | | user.setEnaleWithdrawAmt(BigDecimal.ZERO); |
| | | } else { |
| | | user_enable_withdraw_amt = user_enable_withdraw_amt.subtract(totalNewStockPrice); |
| | | user.setEnaleWithdrawAmt(user_enable_withdraw_amt); |
| | | } |
| | | |
| | | // if (user.getDjzj()!=null) { |
| | | UserFundUtil.deductEnableAndWithdraw(user, totalNewStockPrice); |
| | | // user.setDjzj(user.getDjzj().add(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()))); |
| | | // }else |
| | | // { |
| | |
| | | if (userStockSubscribe.getStatus() == 1) { |
| | | //审核失败退款 |
| | | if ("2".equals(status)) { |
| | | user.setEnableAmt(user.getEnableAmt().add(userStockSubscribe.getBond())); |
| | | user.setEnaleWithdrawAmt(user.getEnaleWithdrawAmt().add(userStockSubscribe.getBond())); |
| | | UserFundUtil.refundEnableAndWithdraw(user, userStockSubscribe.getBond()); |
| | | int ret = userMapper.updateById(user); |
| | | if (ret <= 0) { |
| | | return ServerResponse.createByErrorMsg("未知原因,审核失败"); |
| | |
| | | userStockSubscribe.setApplyNumber(Integer.valueOf(num)); |
| | | this.userStockSubscribeMapper.updateById(userStockSubscribe); |
| | | BigDecimal reimburse = new BigDecimal(userStockSubscribe.getApplyNums() - Integer.parseInt(num)).multiply(userStockSubscribe.getBuyPrice()); |
| | | user.setEnableAmt(user.getEnableAmt().add(reimburse)); |
| | | user.setEnaleWithdrawAmt(user.getEnaleWithdrawAmt().add(reimburse)); |
| | | UserFundUtil.refundEnableAndWithdraw(user, reimburse); |
| | | int ret = userMapper.updateById(user); |
| | | if (ret <= 0) { |
| | | return ServerResponse.createByErrorMsg("未知原因,审核失败"); |