Commit a1383193 authored by liqin's avatar liqin 💬

Merge branch 'master' of http://111.203.232.171:8888/licc/shop-mall into master

parents 80f93643 c2d734ca
...@@ -456,4 +456,14 @@ public class RedisUtils { ...@@ -456,4 +456,14 @@ public class RedisUtils {
} }
return null; return null;
} }
/**
* 根据key 获取过期时间
*
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效
*/
public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
} }
\ No newline at end of file
...@@ -3,11 +3,15 @@ package cn.wisenergy.service.app.impl; ...@@ -3,11 +3,15 @@ package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.utils.*; import cn.wisenergy.common.utils.*;
import cn.wisenergy.mapper.AccountMapper; import cn.wisenergy.mapper.AccountMapper;
import cn.wisenergy.mapper.BankInfoMapper; import cn.wisenergy.mapper.BankInfoMapper;
import cn.wisenergy.mapper.TradeRecordMapper;
import cn.wisenergy.mapper.UsersMapper; import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.AccountInfo; import cn.wisenergy.model.app.AccountInfo;
import cn.wisenergy.model.app.BankInfo; import cn.wisenergy.model.app.BankInfo;
import cn.wisenergy.model.app.TradeRecord;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
import cn.wisenergy.model.dto.WithdrawBankDto; import cn.wisenergy.model.dto.WithdrawBankDto;
import cn.wisenergy.model.enums.TradeRecordEnum;
import cn.wisenergy.model.enums.TradeStatusEnum;
import cn.wisenergy.service.app.BankService; import cn.wisenergy.service.app.BankService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -40,6 +44,9 @@ public class BankServiceImpl extends ServiceImpl<BankInfoMapper, BankInfo> imple ...@@ -40,6 +44,9 @@ public class BankServiceImpl extends ServiceImpl<BankInfoMapper, BankInfo> imple
@Autowired @Autowired
private AccountMapper accountMapper; private AccountMapper accountMapper;
@Autowired
private TradeRecordMapper recordMapper;
@Override @Override
public R<BankInfo> add(BankInfo bankInfo) { public R<BankInfo> add(BankInfo bankInfo) {
...@@ -131,17 +138,32 @@ public class BankServiceImpl extends ServiceImpl<BankInfoMapper, BankInfo> imple ...@@ -131,17 +138,32 @@ public class BankServiceImpl extends ServiceImpl<BankInfoMapper, BankInfo> imple
//1、判断提现金额不得超过余额 //1、判断提现金额不得超过余额
//获取账户信息 //获取账户信息
AccountInfo accountInfo=accountMapper.getByUserId(dto.getUserId()); AccountInfo accountInfo = accountMapper.getByUserId(dto.getUserId());
if(null != accountInfo){ if (null != accountInfo) {
if(dto.getMoney() > accountInfo.getExtractMoney().doubleValue()){ if (dto.getMoney() > accountInfo.getExtractMoney().doubleValue()) {
return R.error("提现金额不得超过余额"); return R.error("提现金额不得超过余额");
} }
} }
//2、验证短信验证码 //2、验证短信验证码
//判断缓存是否过期
assert accountInfo != null;
String phone = accountInfo.getUserId();
String code = dto.getCode();
String key = StringUtil.formatKeyWithPrefix(Constants.RedisKey.BANK_PRIFIX, Constants.RedisKey.SMS_PRIFIX, phone, code + "");
long time = redisUtils.getExpire(key);
if (time < 0) {
return R.error(1, "验证码已过期!", false);
}
//3、添加提现交易流水记录 //3、添加提现交易流水记录
TradeRecord tradeRecord = new TradeRecord();
tradeRecord.setUserId(accountInfo.getUserId());
return null; tradeRecord.setTradeType(TradeRecordEnum.WITHDRAW_DEPOSIT.getCode());
tradeRecord.setTradeNo(null);
tradeRecord.setStatus(TradeStatusEnum.BANK_TRANSFER_ACCOUNTS.getCode());
int count = recordMapper.add(tradeRecord);
if (count == 0) {
return R.error("保存交易流水失败!");
}
return R.ok(0, true);
} }
} }
...@@ -2,6 +2,7 @@ package cn.wisenergy.web.admin.controller.app; ...@@ -2,6 +2,7 @@ package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.R; import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.app.BankInfo; import cn.wisenergy.model.app.BankInfo;
import cn.wisenergy.model.dto.WithdrawBankDto;
import cn.wisenergy.service.app.BankService; import cn.wisenergy.service.app.BankService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
...@@ -58,4 +59,16 @@ public class BankController { ...@@ -58,4 +59,16 @@ public class BankController {
public R<Boolean> sendSmsCode(String userId) { public R<Boolean> sendSmsCode(String userId) {
return bankService.bankWithdrawSendSms(userId); return bankService.bankWithdrawSendSms(userId);
} }
@ApiOperation(value = "钱包余额-提现", notes = "编辑用户银行卡信息", httpMethod = "POST")
@ApiImplicitParam(name = "dto", value = "提现信息", dataType = "WithdrawBankDto")
@PostMapping("/userWithdrawBank")
public R<Boolean> userWithdrawBank(@RequestBody WithdrawBankDto dto) {
log.info("shop-mall[]BankController[]userWithdrawBank[]input.param.dto:" + dto);
if (null == dto) {
return R.error("入参为空!");
}
return bankService.userWithdrawBank(dto);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment