|
@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.excel.UserWithdrawalExport;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.FrozenTypeEnum;
|
|
|
import com.yonge.cooleshow.common.constant.SysConfigConstant;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.UserBankCardDao;
|
|
@@ -18,6 +19,10 @@ import com.yonge.cooleshow.biz.dal.vo.UserBankCardVo;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.res.WithdrawalInfoRes;
|
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
import com.yonge.cooleshow.common.exception.BizException;
|
|
|
+import com.yonge.toolset.utils.easyexcel.ErrMsg;
|
|
|
+import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;
|
|
|
+import com.yonge.toolset.utils.easyexcel.ExcelException;
|
|
|
+import com.yonge.toolset.utils.string.StringUtil;
|
|
|
import com.yonge.toolset.utils.string.ValueUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -29,8 +34,12 @@ import com.yonge.cooleshow.biz.dal.dto.search.TeacherWithdrawalSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.UserWithdrawalDao;
|
|
|
import com.yonge.cooleshow.biz.dal.service.UserWithdrawalService;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import org.springframework.util.DigestUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -55,7 +64,9 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
|
|
|
|
|
|
@Override
|
|
|
public IPage<UserWithdrawalVo> selectPage(IPage<UserWithdrawalVo> page, TeacherWithdrawalSearch query) {
|
|
|
- return page.setRecords(baseMapper.selectPage(page, query));
|
|
|
+ List<UserWithdrawalVo> withdrawalVoList = baseMapper.selectPage(page, query);
|
|
|
+ withdrawalVoList.forEach(o -> o.setBankCard(ValueUtil.fuzzyBankCard(o.getBankCard())));
|
|
|
+ return page.setRecords(withdrawalVoList);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -109,13 +120,59 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
|
|
|
);
|
|
|
accountRecordDto.setFrozenType(FrozenTypeEnum.FROZEN);
|
|
|
HttpResponseResult<UserAccountRecord> accountChange = userAccountService.accountChange(accountRecordDto);
|
|
|
- if(accountChange.getStatus()){
|
|
|
+ if (accountChange.getStatus()) {
|
|
|
return HttpResponseResult.succeed(true);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
throw new BizException("提现失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void importExcel(List<ExcelDataReaderProperty<UserWithdrawalExport>> dataList) {
|
|
|
+ List<ErrMsg> errMsgList = new ArrayList<>();
|
|
|
+ dataList.sort(Comparator.comparingInt(ExcelDataReaderProperty::getRowIndex));
|
|
|
+ List<UserWithdrawal> userWithdrawalList = new ArrayList<>();
|
|
|
+ for (ExcelDataReaderProperty<UserWithdrawalExport> dataReaderProperty : dataList) {
|
|
|
+ String errMsg = dataReaderProperty.getErrorMessage();
|
|
|
+ if (StringUtil.isEmpty(errMsg)) {
|
|
|
+ errMsgList.add(new ErrMsg(dataReaderProperty.getRowIndex(), errMsg));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ UserWithdrawalExport data = dataReaderProperty.getClazz();
|
|
|
+ StringBuffer buffer = new StringBuffer(data.getId().toString());
|
|
|
+ buffer.append(data.getUserId());
|
|
|
+ buffer.append(data.getAmount());
|
|
|
+ buffer.append(data.getActualAmount());
|
|
|
+ String sign = DigestUtils.md5DigestAsHex(buffer.toString().getBytes());
|
|
|
+ if (!data.getSign().equals(sign)) {
|
|
|
+ errMsgList.add(new ErrMsg(dataReaderProperty.getRowIndex(), "验签失败"));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ UserWithdrawal userWithdrawal = new UserWithdrawal();
|
|
|
+ userWithdrawal.setId(data.getId());
|
|
|
+ userWithdrawal.setBankFlowNo(data.getBankFlowNo());
|
|
|
+ userWithdrawal.setStatus(data.getStatus());
|
|
|
+ userWithdrawalList.add(userWithdrawal);
|
|
|
+ }
|
|
|
+ if (!CollectionUtils.isEmpty(errMsgList)) {
|
|
|
+ throw new ExcelException("导入异常", errMsgList);
|
|
|
+ }
|
|
|
+ authWithdrawalBancth(userWithdrawalList);
|
|
|
+ }
|
|
|
+
|
|
|
+ /***
|
|
|
+ * 审核
|
|
|
+ * @author liweifan
|
|
|
+ * @param: userWithdrawalList
|
|
|
+ * @updateTime 2022/4/20 11:18
|
|
|
+ */
|
|
|
+ private void authWithdrawalBancth(List<UserWithdrawal> userWithdrawalList) {
|
|
|
+ for (UserWithdrawal userWithdrawal : userWithdrawalList) {
|
|
|
+ baseMapper.updateById(userWithdrawal);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/***
|
|
|
* 入提现表
|
|
|
* @author liweifan
|
|
@@ -135,8 +192,6 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
|
|
|
BigDecimal actualAmount = withdrawalReq.getAmountWithdrawal().subtract(withdrawalServiceFee);
|
|
|
userWithdrawal.setActualAmount(actualAmount);
|
|
|
userWithdrawal.setBankCard(bankCardVo.getBankCard());
|
|
|
- //todo 银行流水号
|
|
|
-
|
|
|
userWithdrawal.setCreateTime(new Date());
|
|
|
userWithdrawal.setUpdateTime(new Date());
|
|
|
userWithdrawal.setStatus(AuthStatusEnum.DOING);
|