|
@@ -1,7 +1,9 @@
|
|
package cn.kdan.compdf.service.impl;
|
|
package cn.kdan.compdf.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
+import cn.kdan.compdf.constant.MyConstant;
|
|
import cn.kdan.compdf.dto.ApplyInvoiceDTO;
|
|
import cn.kdan.compdf.dto.ApplyInvoiceDTO;
|
|
import cn.kdan.compdf.dto.BillSendEmailDTO;
|
|
import cn.kdan.compdf.dto.BillSendEmailDTO;
|
|
import cn.kdan.compdf.dto.UserBillingUpInfoDTO;
|
|
import cn.kdan.compdf.dto.UserBillingUpInfoDTO;
|
|
@@ -9,6 +11,7 @@ import cn.kdan.compdf.entity.UserBillingInformation;
|
|
import cn.kdan.compdf.enums.ResponseEnum;
|
|
import cn.kdan.compdf.enums.ResponseEnum;
|
|
import cn.kdan.compdf.exception.BusinessException;
|
|
import cn.kdan.compdf.exception.BusinessException;
|
|
import cn.kdan.compdf.mapper.UserBillingInformationMapper;
|
|
import cn.kdan.compdf.mapper.UserBillingInformationMapper;
|
|
|
|
+import cn.kdan.compdf.service.OrderCashFlowService;
|
|
import cn.kdan.compdf.service.OrdersService;
|
|
import cn.kdan.compdf.service.OrdersService;
|
|
import cn.kdan.compdf.service.UserBillingInformationService;
|
|
import cn.kdan.compdf.service.UserBillingInformationService;
|
|
import cn.kdan.compdf.utils.TemplatesUtil;
|
|
import cn.kdan.compdf.utils.TemplatesUtil;
|
|
@@ -46,9 +49,8 @@ import java.net.URL;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.Instant;
|
|
import java.time.Instant;
|
|
-import java.util.Date;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Random;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @author ComPDFKit-WPH 2023-05-15
|
|
* @author ComPDFKit-WPH 2023-05-15
|
|
@@ -69,6 +71,8 @@ public class UserBillingInformationServiceImpl extends ServiceImpl<UserBillingIn
|
|
private String fromEmail;
|
|
private String fromEmail;
|
|
private final OrdersService ordersService;
|
|
private final OrdersService ordersService;
|
|
|
|
|
|
|
|
+ private final OrderCashFlowService orderCashFlowService;
|
|
|
|
+
|
|
static {
|
|
static {
|
|
try {
|
|
try {
|
|
invoiceHtml = new String(StreamUtils.copyToByteArray(UserBillingInformationServiceImpl.class.getClassLoader().getResourceAsStream("templates/invoice.html")), StandardCharsets.UTF_8);
|
|
invoiceHtml = new String(StreamUtils.copyToByteArray(UserBillingInformationServiceImpl.class.getClassLoader().getResourceAsStream("templates/invoice.html")), StandardCharsets.UTF_8);
|
|
@@ -178,7 +182,7 @@ public class UserBillingInformationServiceImpl extends ServiceImpl<UserBillingIn
|
|
String billUrl = postForObjectMap.get("url").toString();
|
|
String billUrl = postForObjectMap.get("url").toString();
|
|
// TODO 上传资源服务器
|
|
// TODO 上传资源服务器
|
|
// 持久化发票数据
|
|
// 持久化发票数据
|
|
- ordersService.updateBillInfo(applyInvoiceDTO.getOrderId(), billUrl, billNo, JSONObject.toJSONString(userBillingInfo));
|
|
|
|
|
|
+ orderCashFlowService.updateBillInfo(applyInvoiceDTO.getOrderId(), billUrl, billNo, JSONObject.toJSONString(userBillingInfo));
|
|
// 返回结果
|
|
// 返回结果
|
|
ApplyInvoiceVO applyInvoiceVO = new ApplyInvoiceVO();
|
|
ApplyInvoiceVO applyInvoiceVO = new ApplyInvoiceVO();
|
|
applyInvoiceVO.setBillNo(billNo);
|
|
applyInvoiceVO.setBillNo(billNo);
|
|
@@ -188,7 +192,7 @@ public class UserBillingInformationServiceImpl extends ServiceImpl<UserBillingIn
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void billSendEmail(BillSendEmailDTO billSendEmailDTO) {
|
|
public void billSendEmail(BillSendEmailDTO billSendEmailDTO) {
|
|
- OrderBillVo orderBillVo = ordersService.getSaaSOrderByOrderId(billSendEmailDTO.getOrderId());
|
|
|
|
|
|
+ OrderBillVo orderBillVo = orderCashFlowService.getOrderCashFlowByOrderId(billSendEmailDTO.getOrderId());
|
|
try {
|
|
try {
|
|
// 发送邮件并发送附件
|
|
// 发送邮件并发送附件
|
|
MimeMessage message = javaMailSender.createMimeMessage();
|
|
MimeMessage message = javaMailSender.createMimeMessage();
|
|
@@ -210,6 +214,20 @@ public class UserBillingInformationServiceImpl extends ServiceImpl<UserBillingIn
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<OrderBillVo> getOrderBillVos(Integer compdfKitId) {
|
|
|
|
+ // 获取用户所有成功的orderId
|
|
|
|
+ List<Integer> successOrderIds = ordersService.getSuccessOrderIdByCompdfKitId(compdfKitId);
|
|
|
|
+ List<OrderBillVo> orderCashFlowByOrderId = orderCashFlowService.getOrderCashFlowByOrderId(successOrderIds, MyConstant.ORDER_SUCCESS);
|
|
|
|
+ // 获取用户所有退款的orderId
|
|
|
|
+ List<Integer> failOrderIds = ordersService.getFailOrderIdByCompdfKitId(compdfKitId);
|
|
|
|
+ orderCashFlowByOrderId.addAll(orderCashFlowService.getOrderCashFlowByOrderId(failOrderIds, MyConstant.ORDER_FAIL));
|
|
|
|
+ // 按时间排序
|
|
|
|
+ return orderCashFlowByOrderId.stream()
|
|
|
|
+ .sorted(Comparator.comparing(OrderBillVo::getPayTime).reversed())
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
// 工具方法:判断属性是否为null或空字符
|
|
// 工具方法:判断属性是否为null或空字符
|
|
private void checkFieldNotNullOrEmpty(Object obj, Field field) {
|
|
private void checkFieldNotNullOrEmpty(Object obj, Field field) {
|