ソースを参照

add 语音通知

main
yk 1年前
コミット
718d72ca04
10個のファイルの変更236行の追加33行の削除
  1. +2
    -2
      Dockerfile
  2. +48
    -0
      application.yml
  3. +13
    -0
      pom.xml
  4. +4
    -0
      push_image.sh
  5. +19
    -0
      src/main/java/com/lecoo/wechat/config/VmsProperties.java
  6. +34
    -2
      src/main/java/com/lecoo/wechat/controller/IndexController.java
  7. +0
    -2
      src/main/java/com/lecoo/wechat/entity/SmsReqEntity.java
  8. +37
    -0
      src/main/java/com/lecoo/wechat/entity/VmsReqEntity.java
  9. +74
    -0
      src/main/java/com/lecoo/wechat/service/VmsService.java
  10. +5
    -27
      src/main/resources/config/application.yml

+ 2
- 2
Dockerfile ファイルの表示

@@ -1,9 +1,9 @@
FROM openjdk:8
MAINTAINER yangkai
ADD target/sms-msg-sender-1.0-SNAPSHOT.jar sms-msg-sender.jar
ADD target/sms-msg-sender.jar sms-msg-sender.jar
COPY application.yml /
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
EXPOSE 8080
EXPOSE 9950
ENTRYPOINT ["java","-jar","sms-msg-sender.jar","--spring.config.location=/application.yml"]

# docker run -d --restart=always --name dg-sms-sender -p 9950:9950 dg-sms-sender:v1 //运行镜像

+ 48
- 0
application.yml ファイルの表示

@@ -0,0 +1,48 @@
server:
port: 9950

nacos:
config:
server-addr: 127.0.0.1:8848
# namespace: 6d0ee265-2a92-44cc-a6de-f34b3ea104e6
enabled: true
file-extension: yaml
blocking-queue-size: 5000


sys:
baseUrl: http://dev.hjkjg.top
mms:
url: http://192.168.10.119:9950
receptionPhones: 18910801519
accessKeyId: LTAI5tBxoXcHTkMZv1jUwCT8
accessKeySecrect: E8i2eWczpxOIcYGtX9D0lNJtHApmh2
endpoint: dysmsapi.aliyuncs.com
signName: 缔智元
signNameVisitor: 缔智元
template: SMS_228835440
carTemplate: SMS_228850376
fixedTemplate: SMS_228835443
codeTemplate: SMS_229300003
meetingOrderTemplate: SMS_460710519
meetingQuitTemplate: SMS_460685561
meetingRemindTemplate: SMS_460655546
defaultRemindTemplate: SMS_460715556
visitorTemplate: SMS_461045124
robotName: 小酷

wx:
mp:
useRedis: false
redisConfig:
host: 127.0.0.1
port: 6379
configs:
- appId: wxde105494dd27c1ac # 第一个公众号的appid
secret: f81e44ef5a1ed2235ce471f0ee3d1445 # 公众号的appsecret
token: 83u4h # 接口配置里的Token值
pushMsgTemplateId: BQlE4WmvD6C2YG6aMYUxlSztBYbiSFe_KjQaneTWrHY
auditTemplateId: Y1qGJ7SjY4GFky9V101dV8rYQzDR1uZ8g3e6d16M1Ts
regAuditTemplateId: RYDfkUjIRHnCWSy_O1XfDaFT9uE-jYqDAtrpkp49350
url: ${sys.baseUrl}/f/wx/oauth2


+ 13
- 0
pom.xml ファイルの表示

@@ -62,6 +62,18 @@
<version>2.0.5</version>
</dependency>

<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-console</artifactId>
<version>0.0.1</version>
</dependency>

<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dyvmsapi20170525</artifactId>
<version>3.0.0</version>
</dependency>

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
@@ -89,6 +101,7 @@
<filtering>true</filtering>
</resource>
</resources>
<finalName>sms-msg-sender</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>


+ 4
- 0
push_image.sh ファイルの表示

@@ -0,0 +1,4 @@
docker build -t dg-sms-sender:latest .
docker login --username=缔智元2023 --password=digimeta@2023 registry.cn-beijing.aliyuncs.com
docker tag $(docker images | grep dg-sms-sender | head -1 | awk '{print $3}') registry.cn-beijing.aliyuncs.com/digimeta-common/sms-sender:latest
docker push registry.cn-beijing.aliyuncs.com/digimeta-common/sms-sender:latest

+ 19
- 0
src/main/java/com/lecoo/wechat/config/VmsProperties.java ファイルの表示

@@ -0,0 +1,19 @@
package com.lecoo.wechat.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
* sms properties
*/
@Data
@Component
@ConfigurationProperties(prefix = "sys.vms")
//@NacosConfigurationProperties(prefix = "sys.mms", dataId = "ali-sms",type = ConfigType.YAML, groupId = "DEFAULT_GROUP", autoRefreshed = true)
public class VmsProperties {
private String accessKeyId;
private String accessKeySecret;
private String endpoint;

}

+ 34
- 2
src/main/java/com/lecoo/wechat/controller/IndexController.java ファイルの表示

@@ -2,9 +2,12 @@ package com.lecoo.wechat.controller;

import com.alibaba.fastjson.JSONObject;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.dyvmsapi20170525.models.SingleCallByTtsResponse;
import com.lecoo.wechat.entity.SmsReqEntity;
import com.lecoo.wechat.entity.VmsReqEntity;
import com.lecoo.wechat.entity.WxMsgReqEntity;
import com.lecoo.wechat.service.SmsService;
import com.lecoo.wechat.service.VmsService;
import com.lecoo.wechat.utils.SendUtil;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,13 +25,14 @@ public class IndexController {
@Autowired
SmsService smsService;

@Autowired
VmsService vmsService;

@RequestMapping(value = "/sendMsg", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public JSONObject sendMsg(@RequestBody WxMsgReqEntity wxMsgReqEntity) {

JSONObject json = wxMsgReqEntity.toJson();
System.err.println(json);


JSONObject result = new JSONObject();
result.put("status", 0);
result.put("message", "send success!");
@@ -71,4 +75,32 @@ public class IndexController {
System.err.println("send sms end...");
return result;
}

@RequestMapping(value = "/sendVms", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public JSONObject sendVms(@RequestBody VmsReqEntity vmsReqEntity) {
System.err.println("receive a new req for send vms");
JSONObject result = new JSONObject();
result.put("status", 0);
result.put("message", "send success!");
System.err.println(vmsReqEntity.toJson().toJSONString());
try {
SingleCallByTtsResponse resp = vmsService.sendVms(vmsReqEntity.getTtsCode(), vmsReqEntity.getPhone());
System.err.println(resp.getBody().getMessage());
System.err.println(resp.getBody().getCode());
if (resp.getBody().code.equalsIgnoreCase("ok")) {
return result;
} else {
result.put("status", -1);
result.put("message", resp.getBody().getMessage());
return result;
}
} catch (Exception e) {
result.put("status", -1);
result.put("message", e.getMessage());
e.printStackTrace();
}
System.err.println(result.toJSONString());
System.err.println("send vms end...");
return result;
}
}

+ 0
- 2
src/main/java/com/lecoo/wechat/entity/SmsReqEntity.java ファイルの表示

@@ -1,11 +1,9 @@
package com.lecoo.wechat.entity;

import com.alibaba.fastjson.JSONObject;
import com.lecoo.wechat.utils.JsonUtils;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.util.Map;

@Data
public class SmsReqEntity {


+ 37
- 0
src/main/java/com/lecoo/wechat/entity/VmsReqEntity.java ファイルの表示

@@ -0,0 +1,37 @@
package com.lecoo.wechat.entity;

import com.alibaba.fastjson.JSONObject;
import lombok.Data;

import javax.validation.constraints.NotBlank;

@Data
public class VmsReqEntity {
@NotBlank(message = "phone不能为空")
private String phone;

@NotBlank(message = "ttsCode不能为空")
private String ttsCode;

private String dataMap;

public JSONObject toJson(){
JSONObject json = new JSONObject(true);
json.put("phone", phone);
json.put("tssCode", ttsCode);

if(dataMap!= null && dataMap.length() > 0){
JSONObject jsonObject = JSONObject.parseObject(dataMap);
jsonObject.forEach((key, item)->{
json.put(key, item);
});
}

return json;
}

public String mapToString(){
JSONObject jsonObject = JSONObject.parseObject(dataMap);
return jsonObject ==null ? "" : jsonObject.toJSONString();
}
}

+ 74
- 0
src/main/java/com/lecoo/wechat/service/VmsService.java ファイルの表示

@@ -0,0 +1,74 @@
package com.lecoo.wechat.service;

import com.aliyun.dyvmsapi20170525.Client;
import com.aliyun.dyvmsapi20170525.models.SingleCallByTtsRequest;
import com.aliyun.dyvmsapi20170525.models.SingleCallByTtsResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.teautil.models.RuntimeOptions;
import com.lecoo.wechat.config.VmsProperties;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
* spring sms 工具类
*
* @author xueyi
**/
@Component
@AllArgsConstructor
@SuppressWarnings(value = {"unchecked", "rawtypes"})
public class VmsService {
@Autowired
private VmsProperties vmsProperties;


public com.aliyun.dyvmsapi20170525.Client createClient() throws Exception {
System.err.println(vmsProperties.getAccessKeyId());
System.err.println(vmsProperties.getAccessKeySecret());
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
.setAccessKeyId(vmsProperties.getAccessKeyId())
// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
.setAccessKeySecret(vmsProperties.getAccessKeySecret());
// Endpoint 请参考 https://api.aliyun.com/product/Dyvmsapi
config.endpoint = vmsProperties.getEndpoint();
return new com.aliyun.dyvmsapi20170525.Client(config);
}

public SingleCallByTtsResponse sendVms(String ttsCode, String calledNumber) throws Exception {
System.err.println("calledNumber:" + calledNumber);
System.err.println("ttsCode:" + ttsCode);
Client client = this.createClient();
SingleCallByTtsRequest singleCallByTtsRequest = new com.aliyun.dyvmsapi20170525.models.SingleCallByTtsRequest()
.setTtsCode(ttsCode)
.setCalledNumber(calledNumber);
RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
SingleCallByTtsResponse resp = null;
try {
// 复制代码运行请自行打印 API 的返回值
resp = client.singleCallByTtsWithOptions(singleCallByTtsRequest, runtime);
} catch (TeaException error) {
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
// 错误 message
System.out.println(error.getMessage());
// 诊断地址
System.out.println(error.getData().get("Recommend"));
} catch (Exception _error) {

System.out.println(_error.getMessage());
TeaException error = new TeaException(_error.getMessage(), _error);
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
// 错误 message
System.out.println(error.getMessage());
// 诊断地址
// System.out.println(error.getData().get("Recommend"));
}
return resp;
}


}




+ 5
- 27
src/main/resources/config/application.yml ファイルの表示

@@ -1,20 +1,10 @@
server:
port: 9950

nacos:
config:
server-addr: 127.0.0.1:8848
# namespace: 6d0ee265-2a92-44cc-a6de-f34b3ea104e6
enabled: true
file-extension: yaml
blocking-queue-size: 5000

sys:
baseUrl: http://dev.hjkjg.top
mms:
url: http://192.168.10.119:9950
receptionPhones: 18910801519
# accessKeyId: LTAI5tR67Z2jD21XdjZppe2E
# accessKeySecrect: 1q8QkQEzc8UZ3JmH8nt73tP1etO5Px
accessKeyId: LTAI5tBxoXcHTkMZv1jUwCT8
accessKeySecrect: E8i2eWczpxOIcYGtX9D0lNJtHApmh2
endpoint: dysmsapi.aliyuncs.com
@@ -30,7 +20,10 @@ sys:
defaultRemindTemplate: SMS_460715556
visitorTemplate: SMS_461045124
robotName: 小酷

vms:
accessKeyId: LTAI5tBxoXcHTkMZv1jUwCT8
accessKeySecret: E8i2eWczpxOIcYGtX9D0lNJtHApmh2
endpoint: dyvmsapi.aliyuncs.com
wx:
mp:
useRedis: false
@@ -46,18 +39,3 @@ wx:
regAuditTemplateId: RYDfkUjIRHnCWSy_O1XfDaFT9uE-jYqDAtrpkp49350
url: ${sys.baseUrl}/f/wx/oauth2


spring:
application:
name: sms-msg-sender # 业务服务的名称,用于注册到nacos中
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:18848 # nacos的服务地址

config:
server-addr: 127.0.0.1:18848 # nacos的配置地址
file-extension: yml # 配置文件扩展名,默认为yml
data-id: ali-sms.yml # 配置文件名称,可以自定义



読み込み中…
キャンセル
保存