|
@@ -2,6 +2,7 @@ package cn.kdan.cloud.pdf.office.payment.service.impl;
|
|
|
|
|
|
import cn.kdan.cloud.pdf.office.api.account.feign.UserApi;
|
|
|
import cn.kdan.cloud.pdf.office.api.account.feign.UserSubscriptionInfoApi;
|
|
|
+import cn.kdan.cloud.pdf.office.api.email.bo.EmailSendBO;
|
|
|
import cn.kdan.cloud.pdf.office.api.email.feign.EmailApi;
|
|
|
import cn.kdan.cloud.pdf.office.api.payment.appstore.AppTransaction;
|
|
|
import cn.kdan.cloud.pdf.office.api.payment.constant.AppStoreAPIConstant;
|
|
@@ -10,6 +11,7 @@ import cn.kdan.cloud.pdf.office.api.payment.enums.PaymentMethodEnum;
|
|
|
import cn.kdan.cloud.pdf.office.api.payment.vo.OrdersVO;
|
|
|
import cn.kdan.cloud.pdf.office.api.product.feign.ProductApi;
|
|
|
import cn.kdan.cloud.pdf.office.api.product.vo.ProductVO;
|
|
|
+import cn.kdan.cloud.pdf.office.common.enums.EmailCodeTypeEnum;
|
|
|
import cn.kdan.cloud.pdf.office.common.enums.ExceptionEnum;
|
|
|
import cn.kdan.cloud.pdf.office.common.enums.payment.SubscriptionTypeEnum;
|
|
|
import cn.kdan.cloud.pdf.office.common.exception.BackendRuntimeException;
|
|
@@ -22,6 +24,7 @@ import cn.kdan.cloud.pdf.office.payment.service.AppStoreService;
|
|
|
import cn.kdan.cloud.pdf.office.payment.service.OrderService;
|
|
|
import cn.kdan.cloud.pdf.office.payment.service.RestorePurchaseLogsService;
|
|
|
import cn.kdan.cloud.pdf.office.payment.service.SubscriptionsService;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -29,6 +32,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
@@ -123,13 +127,61 @@ public class AppStoreServiceImpl implements AppStoreService {
|
|
|
.result(appTransaction.toString())
|
|
|
.build();
|
|
|
orderService.createOrderManual(orderManualDTO);
|
|
|
-
|
|
|
+ sendBuyEmail(product, userVO);
|
|
|
UserInfoVO result = userApi.getInfoById(equityVerificationDTO.getUserId()).getResult();
|
|
|
result.setDigestPassword(null);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ private void sendBuyEmail(ProductVO product, UserVO userVO) {
|
|
|
+ if(product.getCode().contains("upgrade")){
|
|
|
+ EmailSendBO bo = new EmailSendBO();
|
|
|
+ bo.setToEmail(userVO.getEmail());
|
|
|
+ //设置事件
|
|
|
+ bo.setUseEvent(EmailCodeTypeEnum.MEMBER_UPGRADE_SUCCESS.value());
|
|
|
+ //设置title
|
|
|
+ Map<String,String> titleMap = new HashMap<>();
|
|
|
+ //设置内容
|
|
|
+ Map<String,String> contentMap = new HashMap<>();
|
|
|
+ contentMap.put("@plan@", product.getProductName());
|
|
|
+ Date date = new Date();
|
|
|
+ // 创建 SimpleDateFormat 对象,指定日期格式
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
|
|
+ // 格式化当前日期
|
|
|
+ String formattedDate = sdf.format(date);
|
|
|
+ contentMap.put("@date@",formattedDate);
|
|
|
+ String price = ObjectUtils.isNotEmpty(product.getDisplayPrice())? product.getDisplayPrice().toString() : product.getPrice().toString();
|
|
|
+
|
|
|
+ contentMap.put("@payPrice@", price);
|
|
|
+ contentMap.put("@renewPrice@", product.getPrice().toString());
|
|
|
+ bo.setSendTitleContent(titleMap);
|
|
|
+ //设置内容
|
|
|
+ bo.setSendContent(contentMap);
|
|
|
+ emailApi.sendEmail(bo);
|
|
|
+ }else{
|
|
|
+ EmailSendBO bo = new EmailSendBO();
|
|
|
+ bo.setToEmail(userVO.getEmail());
|
|
|
+ //设置事件
|
|
|
+ bo.setUseEvent(EmailCodeTypeEnum.MEMBER_BUY_SUCCESS.value());
|
|
|
+ //设置title
|
|
|
+ Map<String,String> titleMap = new HashMap<>();
|
|
|
+ //设置内容
|
|
|
+ Map<String,String> contentMap = new HashMap<>();
|
|
|
+ contentMap.put("@plan@", product.getProductName());
|
|
|
+ Date date = new Date();
|
|
|
+ // 创建 SimpleDateFormat 对象,指定日期格式
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
|
|
+ // 格式化当前日期
|
|
|
+ String formattedDate = sdf.format(date);
|
|
|
+ contentMap.put("@date@",formattedDate);
|
|
|
+ String price = ObjectUtils.isNotEmpty(product.getDisplayPrice())? product.getDisplayPrice().toString() : product.getPrice().toString();
|
|
|
+ contentMap.put("@payPrice@", price);
|
|
|
+ bo.setSendTitleContent(titleMap);
|
|
|
+ //设置内容
|
|
|
+ bo.setSendContent(contentMap);
|
|
|
+ emailApi.sendEmail(bo);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 票据验证
|