caozixuan 4 年之前
父節點
當前提交
42d9d62966

+ 41 - 31
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMessageServiceImpl.java

@@ -50,25 +50,30 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void saveMessageSendLog(Long userId,String mobileNumber,Long businessId,String variableParams,Long createId,MessageEnum messageType) {
-        // 其他方法调用所传入的参数,必须校验有值
-        this.checkData(userId,mobileNumber,businessId,variableParams,createId,messageType);
-
+        BasicMessage basicMessage = new BasicMessage();
         // code和content
-        Map<String,String> enumInfo = this.getCodeAndContentByEnum(messageType);
+        Map<String, String> enumInfo = this.getCodeAndContentByEnum(messageType);
         String templateCode = enumInfo.get("templateCode");
         String templateContent = enumInfo.get("templateContent");
 
-
-        // 短信提示系统是否启用配置验证
-        SysConfig sysConfig = sysConfigService.getByKey("sys.message.enable");
-        if (sysConfig.getConfigValue() == null) {
-            throw ExceptionResultEnum.ERROR.exception("短信消息提示启用开关未设置");
-        }
-        if (sysConfig.getConfigValue().equals("false")) {
-            throw ExceptionResultEnum.ERROR.exception("短信消息提示已关闭");
-        }
+        String errorMessage = null;
 
         try {
+            // 其他方法调用所传入的参数,必须校验有值
+            this.checkData(userId, mobileNumber, businessId, variableParams, createId, messageType);
+
+            // 短信提示系统是否启用配置验证
+            SysConfig sysConfig = sysConfigService.getByKey("sys.message.enable");
+            if (sysConfig == null){
+                throw ExceptionResultEnum.ERROR.exception("未找到短信配置");
+            }
+            if (sysConfig.getConfigValue() == null) {
+                throw ExceptionResultEnum.ERROR.exception("短信消息提示启用开关未设置");
+            }
+            if (sysConfig.getConfigValue().equals("false")) {
+                throw ExceptionResultEnum.ERROR.exception("短信消息提示已关闭");
+            }
+
             System.setProperty("sun.net.client.defaultConnectTimeout", "180000");
             System.setProperty("sun.net.client.defaultReadTimeout", "18000");
             // 初始化ascClient需要的几个参数
@@ -103,29 +108,34 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
             SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
 
             if (sendSmsResponse.getCode() != null) {
-                BasicMessage basicMessage = new BasicMessage();
-                // 传入的必填字段
-                basicMessage.setUserId(userId);
-                basicMessage.setMobileNumber(mobileNumber);
-                basicMessage.setBusinessId(businessId);
-                basicMessage.setVariableParams(variableParams);
-                basicMessage.setCreateId(createId);
-                basicMessage.setMessageType(messageType);
-
-                // 经过处理的新字段
-                basicMessage.setId(SystemConstant.getDbUuid());
-                basicMessage.setBusinessOperate(messageType.getName());
-                basicMessage.setCreateTime(System.currentTimeMillis());
-                basicMessage.setTemplateCode(templateCode);
-//                basicMessage.setTemplateContent(templateContent);
+
                 basicMessage.setSendStatus(sendSmsResponse.getCode());
                 basicMessage.setSendResult(sendSmsResponse.getMessage());
-                this.save(basicMessage);
+
             } else {
                 throw ExceptionResultEnum.ERROR.exception(sendSmsResponse.getMessage());
             }
-        }catch (ClientException e){
-            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
+        } catch (Exception e) {
+            errorMessage  = e.getMessage();
+        } finally {
+            // 传入的必填字段
+            basicMessage.setUserId(userId);
+            basicMessage.setMobileNumber(mobileNumber);
+            basicMessage.setBusinessId(businessId);
+            basicMessage.setVariableParams(variableParams);
+            basicMessage.setCreateId(createId);
+            basicMessage.setMessageType(messageType);
+
+            // 经过处理的新字段
+            basicMessage.setId(SystemConstant.getDbUuid());
+            basicMessage.setBusinessOperate(messageType.getName());
+            basicMessage.setCreateTime(System.currentTimeMillis());
+            basicMessage.setTemplateCode(templateCode);
+            if (errorMessage != null && errorMessage.length() > 0){
+                basicMessage.setSendStatus("error");
+                basicMessage.setSendResult(errorMessage);
+            }
+            this.save(basicMessage);
         }
     }