diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java index adb4c0345..a86d3c94b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java @@ -18,6 +18,8 @@ import com.iformall.mapper.WxMsgModelMapper; import com.iformall.service.WxMsgModelService; import com.iformall.sms.EnumSMSChannel; import com.iformall.sms.SMSFactory; + +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -67,15 +69,30 @@ public class WxMsgModelServiceImpl implements WxMsgModelService { if (wxMsgModel.getId() == null && wxMsgModels.size() == 1) { return new ResultData(ErrorCode.MSG_TEMPLATE_REPEAT.getCode(), "您添加的短信模板已存在"); } + String templateCode = ""; if (wxMsgModel.getId() != null && wxMsgModels.size() == 1) { WxMsgModel wxmsgmodel = wxMsgModels.get(0); + templateCode = wxmsgmodel.getModelCode(); if (wxmsgmodel.getContent().equals(wxMsgModel.getContent()) && wxmsgmodel.getSignature().equals(wxMsgModel.getSignature())) { return new ResultData(ResultData.SUCCESS, "修改成功"); } } - - String result = SMSFactory.addTemplate(wxMsgConfig, signature,content, EnumVerifyCode.NO.getCode().toString(), + String result = ""; + if (wxMsgModel.getId() == null) { + result = SMSFactory.addTemplate(wxMsgConfig, signature,content, EnumVerifyCode.NO.getCode().toString(), wxMsgModel.getName(),wxMsgModel.getTemplateType(),wxMsgModel.getName()); + }else { + if (StringUtils.isNotBlank(templateCode)) { + result = SMSFactory.updateTemplate(wxMsgConfig,templateCode, signature,content, EnumVerifyCode.NO.getCode().toString(), + wxMsgModel.getName(),wxMsgModel.getTemplateType(),wxMsgModel.getName()); + }else { + result = SMSFactory.addTemplate(wxMsgConfig, signature,content, EnumVerifyCode.NO.getCode().toString(), + wxMsgModel.getName(),wxMsgModel.getTemplateType(),wxMsgModel.getName()); + } + } + if (StringUtils.isBlank(result)) { + return new ResultData(ErrorCode.MSG_TEMPLATE_CREATE_ERROR.getCode(), "创建模板失败,无接口结果"); + } JSONObject jsonObjectResult = JSONObject.parseObject(result); logger.info(">>>>>"+result); String ret = jsonObjectResult.get("ret").toString(); diff --git a/mallinkService/src/main/java/com/iformall/sms/SMSExcutor.java b/mallinkService/src/main/java/com/iformall/sms/SMSExcutor.java index db23d6532..ef23a8d33 100644 --- a/mallinkService/src/main/java/com/iformall/sms/SMSExcutor.java +++ b/mallinkService/src/main/java/com/iformall/sms/SMSExcutor.java @@ -13,6 +13,10 @@ public interface SMSExcutor { String addTemplate(String secret, String bid, String publickey, String signature, String content, String notifyUrl, String verifysms,String templateName,Integer templateType, String remark); + + String updateTemplate(String secret, String bid, String publickey, String templateCode,String signature, String content, + String notifyUrl, String verifysms,String templateName,Integer templateType, + String remark); String querySmsTemplate(String templateCode); diff --git a/mallinkService/src/main/java/com/iformall/sms/SMSFactory.java b/mallinkService/src/main/java/com/iformall/sms/SMSFactory.java index a6cde119a..f403bb55d 100644 --- a/mallinkService/src/main/java/com/iformall/sms/SMSFactory.java +++ b/mallinkService/src/main/java/com/iformall/sms/SMSFactory.java @@ -79,6 +79,14 @@ public class SMSFactory { verifysms,templateName,templateType,remark); } + public static String updateTemplate(WxMsgConfig wxMsgConfig, String templateCode,String signature, String content, + String verifysms,String templateName,Integer templateType, + String remark) { + return getSendExcutor(wxMsgConfig).addTemplate(wxMsgConfig.getSecret(), wxMsgConfig.getBid(), wxMsgConfig.getPublickey(), + signature, content, wxMsgConfig.getModelnotifyurl(), + verifysms,templateName,templateType,remark); + } + public static String querySmsTemplate(WxMsgConfig wxMsgConfig, String templateCode) { return getSendExcutor(wxMsgConfig).querySmsTemplate(templateCode); } diff --git a/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java b/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java index e03537375..87822968d 100644 --- a/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java +++ b/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java @@ -137,6 +137,62 @@ public class AliyunSMS implements SMSExcutor { } return JSON.toJSONString(SMSResult); } + + @Override + public String updateTemplate(String secret, String bid, String publickey, String templateCode, String signature, + String content, String notifyUrl, String verifysms, String templateName, Integer templateType, + String remark) { + + SMSResult SMSResult = new SMSResult(); + + com.aliyun.dysmsapi20170525.Client client; + try { + client = this.createClient(); + } catch (Exception e) { + log.error("addTemplate error",e); + return JSON.toJSONString(SMSResult); + } + + com.aliyun.dysmsapi20170525.models.UpdateSmsTemplateRequest updateSmsTemplateRequest = new com.aliyun.dysmsapi20170525.models.UpdateSmsTemplateRequest(); + updateSmsTemplateRequest.setTemplateCode(templateCode); + updateSmsTemplateRequest.setTemplateName(templateName); + updateSmsTemplateRequest.setTemplateContent(content); + updateSmsTemplateRequest.setTemplateType(templateType); + updateSmsTemplateRequest.setRemark(remark); + updateSmsTemplateRequest.setRelatedSignName(signature); + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + try { + com.aliyun.dysmsapi20170525.models.UpdateSmsTemplateResponse resp = client.updateSmsTemplateWithOptions(updateSmsTemplateRequest, runtime); + log.info(">>>"+JSON.toJSONString(resp)); + JSONObject respo = JSON.parseObject(JSON.toJSONString(resp)); + JSONObject body = respo.getJSONObject("body"); + if (null != body) { + String code = body.getString("code"); + if (StringUtils.isNotBlank(code) && code.equalsIgnoreCase("ok")) { + SMSResult.setRet(EnumMsgModelStatus.SUCCESS.getCode().toString()); + SMSResult.setAliyunModelCode(body.getString("templateCode")); + } + } + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + //System.out.println(error.getMessage()); + // 诊断地址 + //System.out.println(error.getData().get("Recommend")); + log.error("addTemplate error:"+error.getMessage()+"|recommend:"+error.getData().get("Recommend"),error); + SMSResult.setRet(EnumMsgModelStatus.FAIL.getCode().toString()); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + //System.out.println(error.getMessage()); + // 诊断地址 + //System.out.println(error.getData().get("Recommend")); + log.error("addTemplate error:"+error.getMessage()+"|recommend:"+error.getData().get("Recommend"),error); + SMSResult.setRet(EnumMsgModelStatus.FAIL.getCode().toString()); + } + return JSON.toJSONString(SMSResult); + } @Override public String querySmsTemplate(String templateCode) { @@ -192,7 +248,7 @@ public class AliyunSMS implements SMSExcutor { } return null; } - + @Override public String querySendDetail(String phone, String bizId, Date sendDate) { Query query = new Query(); @@ -539,4 +595,6 @@ public class AliyunSMS implements SMSExcutor { } + + } diff --git a/mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java b/mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java index 48a853416..7231ec16f 100644 --- a/mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java +++ b/mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java @@ -33,6 +33,13 @@ public class WiwideUtil implements SMSExcutor { public String addTemplate(String secret, String bid, String publickey, String signature, String content, String notifyUrl, String verifysms, String templateName, Integer templateType, String remark) { return addTemplate(secret, bid, publickey, signature, content, notifyUrl,verifysms); } + + @Override + public String updateTemplate(String secret, String bid, String publickey, String templateCode, String signature, + String content, String notifyUrl, String verifysms, String templateName, Integer templateType, + String remark) { + return addTemplate(secret, bid, publickey, signature, content, notifyUrl,verifysms); + } @Override public String querySmsTemplate(String templateCode) { @@ -282,4 +289,5 @@ public class WiwideUtil implements SMSExcutor { } + }