增加对账功能异常捕获和处理
This commit is contained in:
parent
5f5a4c377e
commit
e0aaee803e
@ -1,6 +1,8 @@
|
||||
package com.xhpc.activity.controller;
|
||||
|
||||
|
||||
import com.xhpc.activity.domain.XhpcTradebillUploadRecordDomain;
|
||||
import com.xhpc.activity.service.CommonService;
|
||||
import com.xhpc.common.core.utils.SecurityUtils;
|
||||
import com.xhpc.common.core.web.controller.BaseController;
|
||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||
@ -8,8 +10,6 @@ import com.xhpc.common.log.annotation.Log;
|
||||
import com.xhpc.common.log.enums.BusinessType;
|
||||
import com.xhpc.common.util.LogUserUtils;
|
||||
import com.xhpc.system.api.model.LoginUser;
|
||||
import com.xhpc.activity.domain.XhpcTradebillUploadRecordDomain;
|
||||
import com.xhpc.activity.service.CommonService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@ -21,7 +21,7 @@ import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/common")
|
||||
public class CommonController extends BaseController {
|
||||
public class XhpcTradebillCommonController extends BaseController {
|
||||
|
||||
@Resource
|
||||
CommonService commonService;
|
||||
@ -1,13 +1,13 @@
|
||||
package com.xhpc.activity.controller;
|
||||
|
||||
|
||||
import com.xhpc.activity.domain.XhpcTradebillInternetCheckRecordDomain;
|
||||
import com.xhpc.activity.service.InternetBillService;
|
||||
import com.xhpc.common.core.web.controller.BaseController;
|
||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||
import com.xhpc.common.core.web.page.TableDataInfo;
|
||||
import com.xhpc.common.log.annotation.Log;
|
||||
import com.xhpc.common.log.enums.BusinessType;
|
||||
import com.xhpc.activity.domain.XhpcTradebillInternetCheckRecordDomain;
|
||||
import com.xhpc.activity.service.InternetBillService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -17,7 +17,7 @@ import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/internet")
|
||||
public class InternetBillController extends BaseController {
|
||||
public class XhpcTradebillInternetBillController extends BaseController {
|
||||
|
||||
|
||||
@Resource
|
||||
@ -1,13 +1,13 @@
|
||||
package com.xhpc.activity.controller;
|
||||
|
||||
|
||||
import com.xhpc.activity.domain.XhpcTradebillPaymentCheckRecordDomain;
|
||||
import com.xhpc.activity.service.PaymentBillService;
|
||||
import com.xhpc.common.core.web.controller.BaseController;
|
||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||
import com.xhpc.common.core.web.page.TableDataInfo;
|
||||
import com.xhpc.common.log.annotation.Log;
|
||||
import com.xhpc.common.log.enums.BusinessType;
|
||||
import com.xhpc.activity.domain.XhpcTradebillPaymentCheckRecordDomain;
|
||||
import com.xhpc.activity.service.PaymentBillService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -17,7 +17,7 @@ import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/payment")
|
||||
public class PaymentBillController extends BaseController {
|
||||
public class XhpcTradebillPaymentBillController extends BaseController {
|
||||
|
||||
@Resource
|
||||
PaymentBillService paymentBillService;
|
||||
@ -1,6 +1,7 @@
|
||||
package com.xhpc.activity.service.impl;
|
||||
|
||||
import com.aliyun.oss.OSSClient;
|
||||
import com.xhpc.common.core.exception.CustomException;
|
||||
import com.xhpc.common.core.utils.SecurityUtils;
|
||||
import com.xhpc.activity.config.AliOSSProperties;
|
||||
import com.xhpc.activity.domain.XhpcTradebillInternetCheckRecordDomain;
|
||||
@ -19,6 +20,7 @@ import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@ -59,60 +61,66 @@ public class CommonServiceImpl implements CommonService {
|
||||
Map<String, Integer> totalMap = new HashMap<>();
|
||||
int insertCount = 0;
|
||||
resDomain.setStatus(2);
|
||||
switch (domain.getType()) {
|
||||
case 1:
|
||||
case 2:
|
||||
// 微信支付
|
||||
paymentCheckRecordDomainList = paymentBillService.getWechatDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = paymentBillService.insertPaymentCheckList(resDomain.getId(), paymentCheckRecordDomainList);
|
||||
totalMap = computePaymentRecord(paymentCheckRecordDomainList);
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
// 支付宝支付
|
||||
paymentCheckRecordDomainList = paymentBillService.getAliPayDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = paymentBillService.insertPaymentCheckList(resDomain.getId(), paymentCheckRecordDomainList);
|
||||
totalMap = computePaymentRecord(paymentCheckRecordDomainList);
|
||||
break;
|
||||
case 5:
|
||||
// 恒大
|
||||
recordDomainList = internetBillService.getHdInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||
totalMap = computeInternetRecord(recordDomainList);
|
||||
break;
|
||||
case 6:
|
||||
// 小桔
|
||||
recordDomainList = internetBillService.getXjInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||
totalMap = computeInternetRecord(recordDomainList);
|
||||
break;
|
||||
case 7:
|
||||
// 新电途
|
||||
recordDomainList = internetBillService.getXDTInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||
totalMap = computeInternetRecord(recordDomainList);
|
||||
break;
|
||||
case 8:
|
||||
// 快电
|
||||
recordDomainList = internetBillService.getKDInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||
totalMap = computeInternetRecord(recordDomainList);
|
||||
break;
|
||||
default:
|
||||
resDomain.setStatus(1);
|
||||
totalMap.put("successCount", 0);
|
||||
totalMap.put("failCount", 0);
|
||||
totalMap.put("checkCount", 0);
|
||||
totalMap.put("uncheckCount", 0);
|
||||
break;
|
||||
try {
|
||||
switch (domain.getType()) {
|
||||
case 1:
|
||||
case 2:
|
||||
// 微信支付
|
||||
paymentCheckRecordDomainList = paymentBillService.getWechatDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = paymentBillService.insertPaymentCheckList(resDomain.getId(), paymentCheckRecordDomainList);
|
||||
totalMap = computePaymentRecord(paymentCheckRecordDomainList);
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
// 支付宝支付
|
||||
paymentCheckRecordDomainList = paymentBillService.getAliPayDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = paymentBillService.insertPaymentCheckList(resDomain.getId(), paymentCheckRecordDomainList);
|
||||
totalMap = computePaymentRecord(paymentCheckRecordDomainList);
|
||||
break;
|
||||
case 5:
|
||||
// 恒大
|
||||
recordDomainList = internetBillService.getHdInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||
totalMap = computeInternetRecord(recordDomainList);
|
||||
break;
|
||||
case 6:
|
||||
// 小桔
|
||||
recordDomainList = internetBillService.getXjInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||
totalMap = computeInternetRecord(recordDomainList);
|
||||
break;
|
||||
case 7:
|
||||
// 新电途
|
||||
recordDomainList = internetBillService.getXDTInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||
totalMap = computeInternetRecord(recordDomainList);
|
||||
break;
|
||||
case 8:
|
||||
// 快电
|
||||
recordDomainList = internetBillService.getKDInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||
totalMap = computeInternetRecord(recordDomainList);
|
||||
break;
|
||||
default:
|
||||
resDomain.setStatus(1);
|
||||
totalMap.put("successCount", 0);
|
||||
totalMap.put("failCount", 0);
|
||||
totalMap.put("checkCount", 0);
|
||||
totalMap.put("uncheckCount", 0);
|
||||
break;
|
||||
}
|
||||
resDomain.setStatus(1);
|
||||
resDomain.setSuccessCount(totalMap.get("successCount"));
|
||||
resDomain.setFailCount(totalMap.get("failCount"));
|
||||
resDomain.setCheckedCount(totalMap.get("checkCount"));
|
||||
resDomain.setUncheckCount(totalMap.get("uncheckCount"));
|
||||
uploadRecordMapper.updateByPrimaryKey(resDomain);
|
||||
return resDomain;
|
||||
} catch (Exception exception){
|
||||
exception.printStackTrace();
|
||||
throw new CustomException("内部错误");
|
||||
}
|
||||
resDomain.setStatus(1);
|
||||
resDomain.setSuccessCount(totalMap.get("successCount"));
|
||||
resDomain.setFailCount(totalMap.get("failCount"));
|
||||
resDomain.setCheckedCount(totalMap.get("checkCount"));
|
||||
resDomain.setUncheckCount(totalMap.get("uncheckCount"));
|
||||
uploadRecordMapper.updateByPrimaryKey(resDomain);
|
||||
return resDomain;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -121,25 +129,28 @@ public class CommonServiceImpl implements CommonService {
|
||||
|
||||
XhpcTradebillUploadRecordDomain domain = new XhpcTradebillUploadRecordDomain();
|
||||
// 创建OSSClient实例
|
||||
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
|
||||
String suffix = Objects.requireNonNull(file.getOriginalFilename()).substring(file.getOriginalFilename().lastIndexOf(".") + 1);
|
||||
File dataFile = File.createTempFile("temp_", suffix);
|
||||
|
||||
file.transferTo(dataFile);
|
||||
try{
|
||||
file.transferTo(dataFile);
|
||||
|
||||
String ossPath = "bill/" + file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")) + "_" + System.currentTimeMillis() + "." + suffix;
|
||||
OSSClient ossClient = new OSSClient(ossProperties.getEndpoint(), ossProperties.getAccessKey(), ossProperties.getSecretKey());
|
||||
// 上传文件流
|
||||
ossClient.putObject(ossProperties.getBucketName(), ossPath, dataFile);
|
||||
ossClient.shutdown();
|
||||
String ossPath = "bill/" + file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")) + "_" + System.currentTimeMillis() + "." + suffix;
|
||||
OSSClient ossClient = new OSSClient(ossProperties.getEndpoint(), ossProperties.getAccessKey(), ossProperties.getSecretKey());
|
||||
// 上传文件流
|
||||
ossClient.putObject(ossProperties.getBucketName(), ossPath, dataFile);
|
||||
ossClient.shutdown();
|
||||
|
||||
domain.setFileName(file.getOriginalFilename());
|
||||
domain.setUrl(ossProperties.getDomain() + ossPath);
|
||||
domain.setStartTime(startTime);
|
||||
domain.setEndTime(endTime);
|
||||
domain.setType(type);
|
||||
domain.setTenantId(tenantId);
|
||||
|
||||
return ossUpload(domain);
|
||||
domain.setFileName(file.getOriginalFilename());
|
||||
domain.setUrl(ossProperties.getDomain() + ossPath);
|
||||
domain.setStartTime(startTime);
|
||||
domain.setEndTime(endTime);
|
||||
domain.setType(type);
|
||||
domain.setTenantId(tenantId);
|
||||
return ossUpload(domain);
|
||||
} catch (Exception exception){
|
||||
throw new CustomException("服务错误");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -7,6 +7,7 @@ import cn.hutool.core.text.csv.CsvReader;
|
||||
import cn.hutool.core.text.csv.CsvUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.poi.excel.ExcelWriter;
|
||||
import com.xhpc.common.core.exception.CustomException;
|
||||
import com.xhpc.common.core.utils.SecurityUtils;
|
||||
import com.xhpc.common.core.utils.poi.ExcelUtil;
|
||||
import com.xhpc.activity.domain.XhpcHistoryOrderDomain;
|
||||
@ -182,19 +183,24 @@ public class InternetBillServiceImpl implements InternetBillService {
|
||||
List<HDTradebillVo> hdTradebillVoList = new ArrayList<>();
|
||||
|
||||
List<String> serialNumberList = new ArrayList<>();
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "XLS":
|
||||
case "XLSX":
|
||||
ExcelUtil<HDTradebillVo> util = new ExcelUtil<HDTradebillVo>(HDTradebillVo.class);
|
||||
hdTradebillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||
break;
|
||||
case "CSV":
|
||||
CsvReader reader = CsvUtil.getReader();
|
||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||
hdTradebillVoList = reader.read(fileReader.readString(), HDTradebillVo.class);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
try {
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "XLS":
|
||||
case "XLSX":
|
||||
ExcelUtil<HDTradebillVo> util = new ExcelUtil<HDTradebillVo>(HDTradebillVo.class);
|
||||
hdTradebillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||
break;
|
||||
case "CSV":
|
||||
CsvReader reader = CsvUtil.getReader();
|
||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||
hdTradebillVoList = reader.read(fileReader.readString(), HDTradebillVo.class);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
throw new CustomException("文件数据不合规,请检查");
|
||||
}
|
||||
|
||||
for (HDTradebillVo vo : hdTradebillVoList) {
|
||||
@ -245,19 +251,24 @@ public class InternetBillServiceImpl implements InternetBillService {
|
||||
List<XJTradeBillVo> xjTradeBillVoList = new ArrayList<>();
|
||||
|
||||
List<String> serialNumberList = new ArrayList<>();
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "XLS":
|
||||
case "XLSX":
|
||||
ExcelUtil<XJTradeBillVo> util = new ExcelUtil<XJTradeBillVo>(XJTradeBillVo.class);
|
||||
xjTradeBillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||
break;
|
||||
case "CSV":
|
||||
CsvReader reader = CsvUtil.getReader();
|
||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||
xjTradeBillVoList = reader.read(fileReader.readString(), XJTradeBillVo.class);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
try {
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "XLS":
|
||||
case "XLSX":
|
||||
ExcelUtil<XJTradeBillVo> util = new ExcelUtil<XJTradeBillVo>(XJTradeBillVo.class);
|
||||
xjTradeBillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||
break;
|
||||
case "CSV":
|
||||
CsvReader reader = CsvUtil.getReader();
|
||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||
xjTradeBillVoList = reader.read(fileReader.readString(), XJTradeBillVo.class);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
throw new CustomException("文件数据不合规,请检查");
|
||||
}
|
||||
|
||||
for (XJTradeBillVo vo : xjTradeBillVoList) {
|
||||
@ -312,19 +323,24 @@ public class InternetBillServiceImpl implements InternetBillService {
|
||||
List<XDTTradebillVo> xdtTradebillVoList = new ArrayList<>();
|
||||
|
||||
List<String> serialNumberList = new ArrayList<>();
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "XLS":
|
||||
case "XLSX":
|
||||
ExcelUtil<XDTTradebillVo> util = new ExcelUtil<XDTTradebillVo>(XDTTradebillVo.class);
|
||||
xdtTradebillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||
break;
|
||||
case "CSV":
|
||||
CsvReader reader = CsvUtil.getReader();
|
||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||
xdtTradebillVoList = reader.read(fileReader.readString(), XDTTradebillVo.class);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
try {
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "XLS":
|
||||
case "XLSX":
|
||||
ExcelUtil<XDTTradebillVo> util = new ExcelUtil<XDTTradebillVo>(XDTTradebillVo.class);
|
||||
xdtTradebillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||
break;
|
||||
case "CSV":
|
||||
CsvReader reader = CsvUtil.getReader();
|
||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||
xdtTradebillVoList = reader.read(fileReader.readString(), XDTTradebillVo.class);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
throw new CustomException("文件数据不合规,请检查");
|
||||
}
|
||||
|
||||
for (XDTTradebillVo vo : xdtTradebillVoList) {
|
||||
@ -374,18 +390,22 @@ public class InternetBillServiceImpl implements InternetBillService {
|
||||
List<Map<String, Object>> dataList = new ArrayList<>();
|
||||
|
||||
List<String> serialNumberList = new ArrayList<>();
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "XLS":
|
||||
case "XLSX":
|
||||
ExcelUtil<KDTradebillVo> util = new ExcelUtil<KDTradebillVo>(KDTradebillVo.class);
|
||||
kdTradebillVoList = util.importExcel(new FileInputStream(dataFile), 1);
|
||||
try {
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "XLS":
|
||||
case "XLSX":
|
||||
ExcelUtil<KDTradebillVo> util = new ExcelUtil<KDTradebillVo>(KDTradebillVo.class);
|
||||
kdTradebillVoList = util.importExcel(new FileInputStream(dataFile), 1);
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
throw new CustomException("文件数据不合规,请检查");
|
||||
}
|
||||
|
||||
|
||||
for (KDTradebillVo vo : kdTradebillVoList) {
|
||||
if (vo.getOrderNo().equals("交易订单号") || StrUtil.hasBlank(vo.getOrderNo())) {
|
||||
continue;
|
||||
|
||||
@ -9,6 +9,7 @@ import cn.hutool.core.text.csv.CsvUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import cn.hutool.poi.excel.ExcelWriter;
|
||||
import com.xhpc.common.core.exception.CustomException;
|
||||
import com.xhpc.common.core.utils.SecurityUtils;
|
||||
import com.xhpc.activity.domain.XhpcTradebillPaymentCheckRecordDomain;
|
||||
import com.xhpc.activity.mapper.XhpcRechargeOrderMapper;
|
||||
@ -139,88 +140,93 @@ public class PaymentBillServiceImpl implements PaymentBillService {
|
||||
List<XhpcTradebillPaymentCheckRecordDomain> paymentCheckRecordDomainList = new ArrayList<>();
|
||||
String suffix = dataFile.getName().substring(dataFile.getName().lastIndexOf(".") + 1);
|
||||
System.out.println(dataFile.getAbsolutePath());
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "CSV":
|
||||
CsvReader csvReader = CsvUtil.getReader();
|
||||
CsvData data = csvReader.read(dataFile, CharsetUtil.CHARSET_GBK);
|
||||
List<CsvRow> rows = data.getRows();
|
||||
try {
|
||||
switch (suffix.toUpperCase()) {
|
||||
case "CSV":
|
||||
CsvReader csvReader = CsvUtil.getReader();
|
||||
CsvData data = csvReader.read(dataFile, CharsetUtil.CHARSET_GBK);
|
||||
List<CsvRow> rows = data.getRows();
|
||||
|
||||
List<String> serialNumberList = new ArrayList<>();
|
||||
int orderType = 0;
|
||||
List<String> serialNumberList = new ArrayList<>();
|
||||
int orderType = 0;
|
||||
|
||||
for (CsvRow row : rows) {
|
||||
// 列数是22,则是正文内容
|
||||
if (row.getRawList().size() != 22) {
|
||||
continue;
|
||||
for (CsvRow row : rows) {
|
||||
// 列数是22,则是正文内容
|
||||
if (row.getRawList().size() != 22) {
|
||||
continue;
|
||||
}
|
||||
// 判断内容是否是中文,如果是中文就认为是标题,则跳过
|
||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||
continue;
|
||||
}
|
||||
XhpcTradebillPaymentCheckRecordDomain domain = new XhpcTradebillPaymentCheckRecordDomain();
|
||||
domain.setCreateBy(userId);
|
||||
domain.setUpdateBy(userId);
|
||||
domain.setPaymentChannel(2);
|
||||
domain.setPaymentUserId(row.get(12));
|
||||
domain.setPaymentPayTime(DateUtil.parse(row.get(1)));
|
||||
|
||||
BigDecimal paymentAmount = BigDecimal.ZERO;
|
||||
String serialNumber = "";
|
||||
|
||||
if (row.get(5).equals("在线支付")) {
|
||||
// 充值订单
|
||||
serialNumber = row.get(4).trim().replaceAll("`", "").replaceAll("'", "");
|
||||
orderType = 1;
|
||||
domain.setPaymentPayNumber(serialNumber);
|
||||
domain.setOrderType(orderType);
|
||||
System.out.println(row);
|
||||
paymentAmount = row.get(6) != null && !"".equals(row.get(6).trim()) ? new BigDecimal(row.get(6)) : BigDecimal.ZERO;
|
||||
domain.setPaymentAmount(paymentAmount);
|
||||
|
||||
serialNumberList.add(serialNumber);
|
||||
} else if (row.get(5).equals("转账")) {
|
||||
// 退款订单
|
||||
serialNumber = row.get(16).trim().replaceAll("`", "").replaceAll("'", "").replaceAll("单笔转账--", "");
|
||||
domain.setPaymentPayNumber(serialNumber);
|
||||
orderType = 2;
|
||||
domain.setOrderType(orderType);
|
||||
|
||||
paymentAmount = row.get(7) != null && !"".equals(row.get(7).trim()) ? new BigDecimal(row.get(7)) : BigDecimal.ZERO;
|
||||
domain.setPaymentAmount(paymentAmount);
|
||||
|
||||
serialNumberList.add(serialNumber);
|
||||
}
|
||||
paymentCheckRecordDomainList.add(domain);
|
||||
}
|
||||
// 判断内容是否是中文,如果是中文就认为是标题,则跳过
|
||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||
continue;
|
||||
getPlatOrderData(paymentCheckRecordDomainList, orderType, serialNumberList, startTime, endTime, tenantId);
|
||||
|
||||
break;
|
||||
case "ZIP":
|
||||
ZipFile zip = new ZipFile(dataFile);
|
||||
File file = null;
|
||||
for (Enumeration<ZipEntry> enumeration = zip.getEntries(); enumeration.hasMoreElements(); ) {
|
||||
ZipEntry entry = enumeration.nextElement();
|
||||
InputStream in = zip.getInputStream(entry);
|
||||
if (entry.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
file = File.createTempFile("alipay_", entry.getName().substring(entry.getName().lastIndexOf(".")));
|
||||
OutputStream outputStream = new FileOutputStream(file);
|
||||
byte[] buff = new byte[1024];
|
||||
int len;
|
||||
while ((len = in.read(buff)) > 0) {
|
||||
outputStream.write(buff, 0, len);
|
||||
}
|
||||
in.close();
|
||||
outputStream.close();
|
||||
}
|
||||
XhpcTradebillPaymentCheckRecordDomain domain = new XhpcTradebillPaymentCheckRecordDomain();
|
||||
domain.setCreateBy(userId);
|
||||
domain.setUpdateBy(userId);
|
||||
domain.setPaymentChannel(2);
|
||||
domain.setPaymentUserId(row.get(12));
|
||||
domain.setPaymentPayTime(DateUtil.parse(row.get(1)));
|
||||
|
||||
BigDecimal paymentAmount = BigDecimal.ZERO;
|
||||
String serialNumber = "";
|
||||
|
||||
if (row.get(5).equals("在线支付")) {
|
||||
// 充值订单
|
||||
serialNumber = row.get(4).trim().replaceAll("`", "").replaceAll("'", "");
|
||||
orderType = 1;
|
||||
domain.setPaymentPayNumber(serialNumber);
|
||||
domain.setOrderType(orderType);
|
||||
System.out.println(row);
|
||||
paymentAmount = row.get(6) != null && !"".equals(row.get(6).trim()) ? new BigDecimal(row.get(6)) : BigDecimal.ZERO;
|
||||
domain.setPaymentAmount(paymentAmount);
|
||||
|
||||
serialNumberList.add(serialNumber);
|
||||
} else if (row.get(5).equals("转账")) {
|
||||
// 退款订单
|
||||
serialNumber = row.get(16).trim().replaceAll("`", "").replaceAll("'", "").replaceAll("单笔转账--", "");
|
||||
domain.setPaymentPayNumber(serialNumber);
|
||||
orderType = 2;
|
||||
domain.setOrderType(orderType);
|
||||
|
||||
paymentAmount = row.get(7) != null && !"".equals(row.get(7).trim()) ? new BigDecimal(row.get(7)) : BigDecimal.ZERO;
|
||||
domain.setPaymentAmount(paymentAmount);
|
||||
|
||||
serialNumberList.add(serialNumber);
|
||||
if (file != null) {
|
||||
paymentCheckRecordDomainList = getAliPayDataList(file, startTime, endTime, tenantId);
|
||||
}
|
||||
paymentCheckRecordDomainList.add(domain);
|
||||
}
|
||||
getPlatOrderData(paymentCheckRecordDomainList, orderType, serialNumberList, startTime, endTime, tenantId);
|
||||
|
||||
break;
|
||||
case "ZIP":
|
||||
ZipFile zip = new ZipFile(dataFile);
|
||||
File file = null;
|
||||
for (Enumeration<ZipEntry> enumeration = zip.getEntries(); enumeration.hasMoreElements(); ) {
|
||||
ZipEntry entry = enumeration.nextElement();
|
||||
InputStream in = zip.getInputStream(entry);
|
||||
if (entry.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
file = File.createTempFile("alipay_", entry.getName().substring(entry.getName().lastIndexOf(".")));
|
||||
OutputStream outputStream = new FileOutputStream(file);
|
||||
byte[] buff = new byte[1024];
|
||||
int len;
|
||||
while ((len = in.read(buff)) > 0) {
|
||||
outputStream.write(buff, 0, len);
|
||||
}
|
||||
in.close();
|
||||
outputStream.close();
|
||||
}
|
||||
if (file != null) {
|
||||
paymentCheckRecordDomainList = getAliPayDataList(file, startTime, endTime, tenantId);
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
throw new Exception("暂不支持的文件格式");
|
||||
break;
|
||||
default:
|
||||
throw new Exception("暂不支持的文件格式");
|
||||
}
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
throw new CustomException("文件数据不合规,请检查");
|
||||
}
|
||||
|
||||
paymentCheckRecordDomainList.sort(Comparator.comparing(XhpcTradebillPaymentCheckRecordDomain::getStatus));
|
||||
@ -252,68 +258,74 @@ public class PaymentBillServiceImpl implements PaymentBillService {
|
||||
List<XhpcTradebillPaymentCheckRecordDomain> paymentCheckRecordDomainList = new ArrayList<>();
|
||||
String suffix = dataFile.getName().substring(dataFile.getName().lastIndexOf(".") + 1);
|
||||
|
||||
if ("CSV".equalsIgnoreCase(suffix)) {// 微信充值订单格式
|
||||
CsvReader csvReader = CsvUtil.getReader();
|
||||
CsvData data = csvReader.read(dataFile);
|
||||
List<CsvRow> rows = data.getRows();
|
||||
try {
|
||||
if ("CSV".equalsIgnoreCase(suffix)) {// 微信充值订单格式
|
||||
CsvReader csvReader = CsvUtil.getReader();
|
||||
CsvData data = csvReader.read(dataFile);
|
||||
List<CsvRow> rows = data.getRows();
|
||||
|
||||
List<String> serialNumberList = new ArrayList<>();
|
||||
int orderType = 0;
|
||||
for (CsvRow row : rows) {
|
||||
// 列数是6,则是充值订单
|
||||
// 列数是13,则是退款订单
|
||||
if (row.getRawList().size() != 6 && row.getRawList().size() != 13) {
|
||||
continue;
|
||||
}
|
||||
XhpcTradebillPaymentCheckRecordDomain domain = new XhpcTradebillPaymentCheckRecordDomain();
|
||||
domain.setPaymentChannel(1);
|
||||
domain.setCreateBy(userId);
|
||||
domain.setUpdateBy(userId);
|
||||
|
||||
String serialNumber = "";
|
||||
if (row.getRawList().size() == 6) {
|
||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||
List<String> serialNumberList = new ArrayList<>();
|
||||
int orderType = 0;
|
||||
for (CsvRow row : rows) {
|
||||
// 列数是6,则是充值订单
|
||||
// 列数是13,则是退款订单
|
||||
if (row.getRawList().size() != 6 && row.getRawList().size() != 13) {
|
||||
continue;
|
||||
}
|
||||
orderType = 1;
|
||||
serialNumber = StringFormat(row.get(2));
|
||||
domain.setOrderType(orderType);
|
||||
domain.setPaymentPayNumber(serialNumber);
|
||||
XhpcTradebillPaymentCheckRecordDomain domain = new XhpcTradebillPaymentCheckRecordDomain();
|
||||
domain.setPaymentChannel(1);
|
||||
domain.setCreateBy(userId);
|
||||
domain.setUpdateBy(userId);
|
||||
|
||||
BigDecimal paymentAmount = row.get(5) != null && !"".equals(row.get(5).trim()) ? new BigDecimal(StringFormat(row.get(5))) : BigDecimal.ZERO;
|
||||
String serialNumber = "";
|
||||
if (row.getRawList().size() == 6) {
|
||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||
continue;
|
||||
}
|
||||
orderType = 1;
|
||||
serialNumber = StringFormat(row.get(2));
|
||||
domain.setOrderType(orderType);
|
||||
domain.setPaymentPayNumber(serialNumber);
|
||||
|
||||
domain.setPaymentAmount(paymentAmount);
|
||||
domain.setPaymentPayTime(DateUtil.parse(row.get(0)));
|
||||
BigDecimal paymentAmount = row.get(5) != null && !"".equals(row.get(5).trim()) ? new BigDecimal(StringFormat(row.get(5))) : BigDecimal.ZERO;
|
||||
|
||||
serialNumberList.add(serialNumber);
|
||||
} else if (row.getRawList().size() == 13) {
|
||||
// 微信退款订单
|
||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||
continue;
|
||||
domain.setPaymentAmount(paymentAmount);
|
||||
domain.setPaymentPayTime(DateUtil.parse(row.get(0)));
|
||||
|
||||
serialNumberList.add(serialNumber);
|
||||
} else if (row.getRawList().size() == 13) {
|
||||
// 微信退款订单
|
||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||
continue;
|
||||
}
|
||||
orderType = 2;
|
||||
serialNumber = StringFormat(row.get(2));
|
||||
domain.setOrderType(orderType);
|
||||
domain.setPaymentPayNumber(serialNumber);
|
||||
|
||||
BigDecimal paymentAmount = row.get(10) != null && !"".equals(row.get(10).trim()) ?
|
||||
new BigDecimal(StringFormat(row.get(10)))
|
||||
: BigDecimal.ZERO;
|
||||
|
||||
domain.setPaymentAmount(paymentAmount);
|
||||
domain.setPaymentUserId(StringFormat(row.get(4)));
|
||||
domain.setPaymentPayTime(DateUtil.parse(row.get(6)));
|
||||
|
||||
serialNumberList.add(serialNumber);
|
||||
}
|
||||
orderType = 2;
|
||||
serialNumber = StringFormat(row.get(2));
|
||||
domain.setOrderType(orderType);
|
||||
domain.setPaymentPayNumber(serialNumber);
|
||||
|
||||
BigDecimal paymentAmount = row.get(10) != null && !"".equals(row.get(10).trim()) ?
|
||||
new BigDecimal(StringFormat(row.get(10)))
|
||||
: BigDecimal.ZERO;
|
||||
|
||||
domain.setPaymentAmount(paymentAmount);
|
||||
domain.setPaymentUserId(StringFormat(row.get(4)));
|
||||
domain.setPaymentPayTime(DateUtil.parse(row.get(6)));
|
||||
|
||||
serialNumberList.add(serialNumber);
|
||||
paymentCheckRecordDomainList.add(computeTradebillData(domain));
|
||||
}
|
||||
getPlatOrderData(paymentCheckRecordDomainList, orderType, serialNumberList, startTime, endTime, tenantId);
|
||||
|
||||
paymentCheckRecordDomainList.add(computeTradebillData(domain));
|
||||
} else {
|
||||
throw new Exception("暂不支持的文件格式");
|
||||
}
|
||||
getPlatOrderData(paymentCheckRecordDomainList, orderType, serialNumberList, startTime, endTime, tenantId);
|
||||
|
||||
} else {
|
||||
throw new Exception("暂不支持的文件格式");
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
throw new CustomException("文件数据不合规,请检查");
|
||||
}
|
||||
|
||||
paymentCheckRecordDomainList.sort(Comparator.comparing(XhpcTradebillPaymentCheckRecordDomain::getStatus));
|
||||
return paymentCheckRecordDomainList;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user