From 4667dc8680a1bff172ce8151f9715b92d4159b88 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 17 Apr 2024 16:39:32 +0800 Subject: [PATCH] 代币充值 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 74 ++++++++++++++++++++++++++++++++---- 1 files changed, 65 insertions(+), 9 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index 919db50..5c8dc0e 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -37,6 +37,7 @@ import java.math.BigDecimal; import java.util.*; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -65,11 +66,25 @@ private final MallProductBuyRecordMapper mallProductBuyRecordMapper; private final MallProductBuyMapper mallProductBuyMapper; private final MallMemberSpeakMapper mallMemberSpeakMapper; + private final MallMemberChargeMapper mallMemberChargeMapper; @Value("${spring.profiles.active}") private String active; + private static final String ACCOUNT_PATTERN = "^[a-zA-Z0-9]{8,16}$"; + private static final Pattern pattern = Pattern.compile(ACCOUNT_PATTERN); + + + public static boolean validateAccount(String account) { + return pattern.matcher(account).matches(); + } + + public static void main(String[] args) { + String account = "example"; // 示例账号,可以根据需要替换 + boolean isValid = validateAccount(account); + System.out.println("账号是否有效: " + isValid); + } @Transactional(rollbackFor = Exception.class) @Override public FebsResponse register(RegisterDto registerDto) { @@ -80,6 +95,10 @@ * 返回账号和密钥给前端 */ String accountLogin = registerDto.getAccountLogin(); + boolean isValid = validateAccount(accountLogin); + if(!isValid){ + throw new FebsException("账号不规范。"); + } MallMember mallMember = this.baseMapper.selectByAccountLogin(accountLogin); if (mallMember != null) { throw new FebsException("账号已使用,请重新注册。"); @@ -323,6 +342,12 @@ DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getCode() ); mallMemberVo.setInsideNFTPercent(insideNFTPercentDic.getValue()); + + DataDictionaryCustom chargeAddressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.CHARGE_ADDRESS.getType(), + DataDictionaryEnum.CHARGE_ADDRESS.getCode() + ); + mallMemberVo.setChargeAddress(chargeAddressDic.getValue()); return new FebsResponse().success().data(mallMemberVo); } @@ -1005,16 +1030,47 @@ return new FebsResponse().success().data(pages); } - public static void main(String[] args) { - Set<String> objectsAccount = new HashSet<>(); - Set<String> objects = new HashSet<>(); - int j = 100; - for(int i =0;i < 100 ; i++){ - String s = ShareCodeUtil.toSerialNumberCodeTwo(j); - objects.add(s); + @Override + public FebsResponse chargeBalance(ApiChargeBalanceDto apiChargeBalanceDto) { + Long memberId = LoginUserUtil.getLoginUser().getId(); + MallMember mallMember = this.baseMapper.selectById(memberId); + BigDecimal amount = apiChargeBalanceDto.getAmount(); + DataDictionaryCustom chargeAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.CHARGE_AMOUNT.getType(), + DataDictionaryEnum.CHARGE_AMOUNT.getCode() + ); + BigDecimal chargeAmount = new BigDecimal(chargeAmountDic.getValue()).setScale(2,BigDecimal.ROUND_DOWN); + if(chargeAmount.compareTo(amount) > 0){ + throw new FebsException("充值金额需要大于"+chargeAmount); } - System.out.println(objects); - System.out.println(objects.size()); + if (StrUtil.isBlank(mallMember.getTradePassword())) { + throw new FebsException("请设置交易密码"); + } + + if (!mallMember.getTradePassword().equals(SecureUtil.md5(apiChargeBalanceDto.getTradePassword()))) { + throw new FebsException("交易密码错误"); + } + MallMemberCharge mallMemberCharge = new MallMemberCharge(); + mallMemberCharge.setMemberId(memberId); + mallMemberCharge.setAmount(chargeAmount); + mallMemberCharge.setState(1); + mallMemberChargeMapper.insert(mallMemberCharge); + + + return new FebsResponse().success().message("操作成功"); } + +// public static void main(String[] args) { +// Set<String> objectsAccount = new HashSet<>(); +// Set<String> objects = new HashSet<>(); +// int j = 100; +// for(int i =0;i < 100 ; i++){ +// String s = ShareCodeUtil.toSerialNumberCodeTwo(j); +// objects.add(s); +// } +// +// System.out.println(objects); +// System.out.println(objects.size()); +// } } -- Gitblit v1.9.1