This commit is contained in:
77
2024-04-26 22:22:34 +08:00
parent d57a7a0348
commit 10d1ff54ad
3 changed files with 24 additions and 3 deletions

View File

@@ -50,6 +50,14 @@ public class AccountCash implements Serializable {
*/ */
@ExcelProperty(value = "提现紫贝") @ExcelProperty(value = "提现紫贝")
private Long withdrawCoin; private Long withdrawCoin;
/**
* 提现紫贝返还值
*/
private Long coinCallbackCoin;
/**
* 提现紫贝手续费
*/
private Long coinFees;
/** /**
* 提现金额 * 提现金额
*/ */

View File

@@ -30,6 +30,7 @@ public enum SystemConfigEnum {
FAST_PAY_AWARD("300", "首充奖励",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()), FAST_PAY_AWARD("300", "首充奖励",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
JOIN_ANCHOR_INVITE_AWARD("300", "主播入驻邀请人奖励",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()), JOIN_ANCHOR_INVITE_AWARD("300", "主播入驻邀请人奖励",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
LOGIN_PASSWORD_ERROR_MAX_NUM("5", "登录输错密码上限",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()), LOGIN_PASSWORD_ERROR_MAX_NUM("5", "登录输错密码上限",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
WITHDRAW_RATE("0.1", "提现手续费(拒绝提现不返回手续费)",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
GUARD_PRICE("1314", "守护价格",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()), GUARD_PRICE("1314", "守护价格",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
WINDOW_GIFT_THRESHOLD("10", "礼物飘窗阈值",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()), WINDOW_GIFT_THRESHOLD("10", "礼物飘窗阈值",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
WINDOW_RECHARGE_THRESHOLD("10", "充值飘窗阈值",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()), WINDOW_RECHARGE_THRESHOLD("10", "充值飘窗阈值",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),

View File

@@ -1,5 +1,6 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -12,7 +13,9 @@ import com.ruoyi.cai.dto.admin.vo.account.ExportBatchAuditVo;
import com.ruoyi.cai.dto.app.query.WithdrawReq; import com.ruoyi.cai.dto.app.query.WithdrawReq;
import com.ruoyi.cai.enums.AccountCashStatusEnum; import com.ruoyi.cai.enums.AccountCashStatusEnum;
import com.ruoyi.cai.enums.AuditStatusEnum; import com.ruoyi.cai.enums.AuditStatusEnum;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.IdManager; import com.ruoyi.cai.manager.IdManager;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.mapper.AccountCashMapper; import com.ruoyi.cai.mapper.AccountCashMapper;
import com.ruoyi.cai.notice.YunxinHttpService; import com.ruoyi.cai.notice.YunxinHttpService;
import com.ruoyi.cai.notice.dto.CashSuccessSendMesDTO; import com.ruoyi.cai.notice.dto.CashSuccessSendMesDTO;
@@ -20,14 +23,13 @@ import com.ruoyi.cai.pay.OrderNoUtil;
import com.ruoyi.cai.pay.OrderTypeEnum; import com.ruoyi.cai.pay.OrderTypeEnum;
import com.ruoyi.cai.rank.RankAdminManager; import com.ruoyi.cai.rank.RankAdminManager;
import com.ruoyi.cai.rank.bean.RankAdminBean; import com.ruoyi.cai.rank.bean.RankAdminBean;
import com.ruoyi.cai.service.AccountCashService;
import com.ruoyi.cai.service.AccountBankcardService; import com.ruoyi.cai.service.AccountBankcardService;
import com.ruoyi.cai.service.AccountCashService;
import com.ruoyi.cai.service.AccountService; import com.ruoyi.cai.service.AccountService;
import com.ruoyi.cai.service.WithdrawExchangeService; import com.ruoyi.cai.service.WithdrawExchangeService;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ServletUtils;
import io.undertow.util.AttachmentList;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -50,6 +52,8 @@ public class AccountCashServiceImpl extends ServiceImpl<AccountCashMapper, Accou
private WithdrawTotalCache withdrawTotalCache; private WithdrawTotalCache withdrawTotalCache;
@Autowired @Autowired
private RankAdminManager rankAdminManager; private RankAdminManager rankAdminManager;
@Autowired
private SystemConfigManager systemConfigManager;
@Override @Override
public void withdraw(WithdrawReq res) { public void withdraw(WithdrawReq res) {
AccountBankcard one = accountBankcardService.getOne(Wrappers.lambdaQuery(AccountBankcard.class) AccountBankcard one = accountBankcardService.getOne(Wrappers.lambdaQuery(AccountBankcard.class)
@@ -61,6 +65,7 @@ public class AccountCashServiceImpl extends ServiceImpl<AccountCashMapper, Accou
if(withdrawExchange == null){ if(withdrawExchange == null){
throw new ServiceException("参数不正确"); throw new ServiceException("参数不正确");
} }
BigDecimal withdrawRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.WITHDRAW_RATE);
Long traceId = IdManager.nextId(); Long traceId = IdManager.nextId();
Long coinNum = withdrawExchange.getCoinNum(); Long coinNum = withdrawExchange.getCoinNum();
accountService.withdraw(res.getUserId(), coinNum,traceId); accountService.withdraw(res.getUserId(), coinNum,traceId);
@@ -69,6 +74,13 @@ public class AccountCashServiceImpl extends ServiceImpl<AccountCashMapper, Accou
cash.setTraceId(traceId); cash.setTraceId(traceId);
cash.setOrderNo(OrderNoUtil.createOrderNo(OrderTypeEnum.WITHDRAW_ORDER_SUB)); cash.setOrderNo(OrderNoUtil.createOrderNo(OrderTypeEnum.WITHDRAW_ORDER_SUB));
cash.setWithdrawCoin(coinNum); cash.setWithdrawCoin(coinNum);
cash.setCoinFees(0L);
cash.setCoinCallbackCoin(coinNum);
if(withdrawRate != null && !withdrawRate.equals(BigDecimal.ZERO)){
long coinFees = NumberUtil.mul(coinNum, withdrawRate).longValue();
cash.setCoinFees(coinFees);
cash.setCoinCallbackCoin(coinNum-coinFees);
}
cash.setCashMoney(BigDecimal.valueOf(withdrawExchange.getMoney())); cash.setCashMoney(BigDecimal.valueOf(withdrawExchange.getMoney()));
cash.setRealCashMoney(BigDecimal.valueOf(withdrawExchange.getMoney())); cash.setRealCashMoney(BigDecimal.valueOf(withdrawExchange.getMoney()));
cash.setCashFees(BigDecimal.ZERO); cash.setCashFees(BigDecimal.ZERO);
@@ -99,7 +111,7 @@ public class AccountCashServiceImpl extends ServiceImpl<AccountCashMapper, Accou
if(!update){ if(!update){
return; return;
} }
accountService.withdrawFail(accountCash.getUserId(),accountCash.getWithdrawCoin(),accountCash.getTraceId()); accountService.withdrawFail(accountCash.getUserId(),accountCash.getCoinCallbackCoin(),accountCash.getTraceId());
yunxinHttpService.cashFailSendMessage(accountCash.getUserId(),accountCash.getCreateTime(),accountCash.getCashMoney(), yunxinHttpService.cashFailSendMessage(accountCash.getUserId(),accountCash.getCreateTime(),accountCash.getCashMoney(),
failRemark); failRemark);
} }