Переглянути джерело

fix: 添加投保站内信发送

luofeiyun 1 тиждень тому
батько
коміт
61389a5857

+ 3 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderRespNewVO.java

@@ -154,6 +154,9 @@ public class TradeOrderRespNewVO {
     @Schema(description = "发票下载")
     private String invoiceUrl;
 
+    @Schema(description = "投保状态")
+    private Integer isInsure;
+
     @Schema(description = "保险")
     private List<InsuranceDO> insuranceList;
 

+ 3 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderRespVO.java

@@ -336,6 +336,9 @@ public class TradeOrderRespVO {
     @Schema(description = "发票下载")
     private String invoiceUrl;
 
+    @Schema(description = "投保状态")
+    private Integer isInsure;
+
     @Schema(description = "当前站点可检门票")
     private Integer thisSiteCanCheckNum;
 

+ 20 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/notify/NotifyServiceImpl.java

@@ -2,8 +2,11 @@ package com.yc.ship.module.trade.service.notify;
 
 import cn.hutool.core.date.LocalDateTimeUtil;
 import com.yc.ship.framework.common.util.date.DateUtils;
+import com.yc.ship.module.system.api.notify.NotifyMessageSendApi;
+import com.yc.ship.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
 import com.yc.ship.module.trade.controller.admin.notify.vo.NotifyInsuranceReqVO;
 import com.yc.ship.module.trade.dal.dataobject.insurance.InsuranceDO;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
 import com.yc.ship.module.trade.dal.mysql.insurance.InsuranceMapper;
 import com.yc.ship.module.trade.enums.InsuranceStatusEnum;
 import com.yc.ship.module.trade.service.order.TradeOrderRepositoryService;
@@ -12,6 +15,8 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * 第三方调用通知的具体处理业务
@@ -23,12 +28,15 @@ public class NotifyServiceImpl implements NotifyService {
     private InsuranceMapper insuranceMapper;
     @Resource
     private TradeOrderRepositoryService tradeOrderRepositoryService;
+    @Resource
+    private NotifyMessageSendApi notifyMessageSendApi;
     @Override
     public Boolean notifyInsurance(NotifyInsuranceReqVO reqVO) {
         String status = reqVO.getStatus();
         String externalPolicyNumber = reqVO.getExternalPolicyNumber();
         String policyNo = reqVO.getPolicyNo();
         String downloadUrl = reqVO.getDownloadUrl();
+        String msg = reqVO.getMsg();
 //        String successDate = reqVO.getSuccessDate();
         Long id = Long.valueOf(externalPolicyNumber);
         String service = reqVO.getService();
@@ -46,6 +54,18 @@ public class NotifyServiceImpl implements NotifyService {
 
         }else if ("FAIL".equals(status)) {
             insuranceDO.setInsuranceStatus(InsuranceStatusEnum.FAIL.getValue());
+            // 发送站内信
+            TradeOrderDO orderDO = tradeOrderRepositoryService.getById(insuranceDO.getOrderId());
+            String insuranceNo = insuranceDO.getInsuranceNo();
+
+            Map<String,Object> templateData = new HashMap<>();
+            templateData.put("orderNo",insuranceNo);
+            templateData.put("msg",msg);
+            NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
+            reqDTO.setUserId(Long.parseLong(orderDO.getCreator()));
+            reqDTO.setTemplateParams(templateData);
+            reqDTO.setTemplateCode("send_insurance_fail");
+            notifyMessageSendApi.sendSingleMessageToMember(reqDTO);
         }
         insuranceMapper.updateById(insuranceDO);
         tradeOrderRepositoryService.updateOrderInsureStatus(insuranceDO.getOrderId(),insuranceDO.getInsuranceStatus());