@@ -19,6 +19,9 @@ import com.iformall.service.sm.MouldPatchService; | |||
import com.iformall.service.sm.MouldPatchSignService; | |||
import com.iformall.service.sm.UserMouldVideoService; | |||
import com.iformall.service.sm.VoiceInfoService; | |||
import com.iformall.smsdk.SmGenerateVideoDTO; | |||
import com.iformall.smsdk.SmPreviewVideoDTO; | |||
import com.iformall.smsdk.SmSdkUtils; | |||
import com.iformall.video.VideoFactory; | |||
import com.iformall.video.entity.VideUploadResult; | |||
import io.swagger.annotations.Api; | |||
@@ -152,8 +155,15 @@ public class UserMouldVideoController extends BaseController { | |||
return userMouldVideoService.saveOrUpdate(record); | |||
} | |||
/** | |||
* 私有化部署不使用该接口 | |||
* | |||
* @param record | |||
* @return {@link ResultData} | |||
*/ | |||
@Deprecated | |||
@ApiOperation("生成视频") | |||
@PostMapping("createVideo") | |||
@PostMapping("createVideo_bak") | |||
public ResultData create(@RequestBody UserMouldVideo record) { | |||
logger.debug("[" + getIpAddr() + "] MouldPatchController::saveOrUpdate"); | |||
if(record.getId() == null){ | |||
@@ -192,6 +202,14 @@ public class UserMouldVideoController extends BaseController { | |||
return new ResultData(); | |||
} | |||
@AuthIgnore | |||
@ApiOperation("生成视频") | |||
@PostMapping("createVideo") | |||
public ResultData createVideo(@RequestBody UserMouldVideo record) { | |||
SmSdkUtils.generateVideo(SmGenerateVideoDTO.mapping(record)); | |||
return new ResultData(); | |||
} | |||
@ApiOperation("根据id查询接口") | |||
@GetMapping("/findVideo") | |||
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) | |||
@@ -13,6 +13,8 @@ import com.iformall.language.LanguageDetect; | |||
import com.iformall.service.WxCVoiceService; | |||
import com.iformall.service.sm.*; | |||
import com.iformall.sm.AiPreviewParam; | |||
import com.iformall.smsdk.SmPreviewVideoDTO; | |||
import com.iformall.smsdk.SmSdkUtils; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiImplicitParam; | |||
import io.swagger.annotations.ApiImplicitParams; | |||
@@ -156,14 +158,23 @@ public class VoiceMouldController extends BaseController { | |||
return new ResultData(voiceInfoService.chooseType(id)); | |||
} | |||
@Deprecated | |||
@AuthIgnore | |||
@ApiOperation("TTS音色预览") | |||
@PostMapping("/preview") | |||
@PostMapping("/preview_bak") | |||
@ApiImplicitParams({}) | |||
public ResultData voicePreview(@RequestBody AiPreviewParam aiPreviewParam) { | |||
logger.debug("[" + getIpAddr() + "] MouldPatchController::voicePreview"); | |||
return new ResultData(voiceInfoService.previewVoice(aiPreviewParam)); | |||
} | |||
@AuthIgnore | |||
@ApiOperation("TTS音色预览") | |||
@PostMapping("/preview") | |||
@ApiImplicitParams({}) | |||
public ResultData previewVideo(@RequestBody AiPreviewParam aiPreviewParam) { | |||
logger.debug("[" + getIpAddr() + "] MouldPatchController::previewVideo"); | |||
Double time = SmSdkUtils.preview(SmPreviewVideoDTO.mapping(aiPreviewParam)); | |||
return new ResultData(time); | |||
} | |||
} |
@@ -195,3 +195,6 @@ suimang: | |||
digital_avatar: http://111.198.0.15:22200 | |||
digital_avatar_hy: http://nas.pucao.cn:2003 | |||
callbackUrl: https://test.metavatar.cc/C | |||
sdk: | |||
sm: | |||
base-url: https://mtest.metavatar.cc/public |
@@ -0,0 +1,197 @@ | |||
spring: | |||
profiles: | |||
#include: aliyunRocketMQ | |||
include: rabbitMQ | |||
# JDBC | |||
datasource: | |||
url: jdbc:mysql://182.92.151.30:3306/mallink_suimang_test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true | |||
username: root | |||
password: sm2023@ms | |||
type: com.alibaba.druid.pool.DruidDataSource | |||
driver-class-name: com.mysql.cj.jdbc.Driver | |||
filters: stat | |||
maxActive: 20 | |||
initialSize: 1 | |||
maxWait: 60000 | |||
minIdle: 1 | |||
timeBetweenEvictionRunsMillis: 28000 | |||
minEvictableIdleTimeMillis: 28000 | |||
validationQuery: select 'x' | |||
testWhileIdle: true | |||
testOnBorrow: false | |||
testOnReturn: false | |||
poolPreparedStatements: true | |||
maxOpenPreparedStatements: 20 | |||
#jackson: | |||
#date-format: yyyy-MM-dd HH:mm:ss | |||
# REDIS | |||
redis: | |||
host: 101.200.130.134 | |||
port: 6379 | |||
password: iF0rm@2l2ol9 | |||
timeout: 3600 | |||
expire: 1800 #30分钟 | |||
database: 5 | |||
jedis: | |||
pool: | |||
max-active: 200 | |||
max-idle: 100 | |||
max-wait: -1 | |||
min-idle: 0 | |||
# SMS | |||
aliyun: | |||
sms: | |||
accessKeyId: LTAI5tQs4MBjzLFbiQLjsMYy | |||
accessKeySecret: nYmnexFJxrsBu0AGVIOSbUaSaweJu7 | |||
product: Dysmsapi | |||
domain: dysmsapi.aliyuncs.com | |||
regionId: cn-hangzhou | |||
dateFormat: yyyyMMdd | |||
endpointName: cn-hangzhou | |||
oss: | |||
endpoint: oss-cn-beijing.aliyuncs.com | |||
keyid: LTAI5tQs4MBjzLFbiQLjsMYy | |||
keysecret: nYmnexFJxrsBu0AGVIOSbUaSaweJu7 | |||
bucketname: suimang | |||
filehost: capi | |||
filedomain: https://suimang.oss-accelerate.aliyuncs.com | |||
mail: | |||
host: smtp.exmail.qq.com | |||
username: zhengfangyuan@iformall.com | |||
password: 2hSeppFRaw7KZZyf # 授权密码 | |||
properties: | |||
mail: | |||
smtp: | |||
auth: true | |||
starttls: | |||
enable: true | |||
socketFactory: | |||
port: 465 | |||
class: javax.net.ssl.SSLSocketFactory | |||
# ROCKETMQ | |||
rocketmq: | |||
nameServer: 127.0.0.1:9876 | |||
producer: | |||
retry-times-when-send-async-failed: 0 | |||
send-msg-timeout: 300000 | |||
compress-msg-body-over-howmuch: 4096 | |||
max-message-size: 4194304 | |||
retry-another-broker-when-not-store-ok: false | |||
retry-times-when-send-failed: 2 | |||
# RABBITMQ | |||
rabbitmq: | |||
host: 127.0.0.1 | |||
port: 5672 | |||
username: fumao | |||
password: f9l98 | |||
publisher-confirms: true | |||
publisher-returns: false | |||
virtual-host: / | |||
aliyunRocketmq: | |||
accessKeyId: "LTAI4G7ixY4AhvM35F8o3W3V" | |||
accessKeySecret: "VfWqGb83qIQrS9us45utskl8itd7ry" | |||
groupId: "GID_P_1" | |||
namesrvAddr: "http://MQ_INST_1796289517488555_Bcqaq2is.cn-beijing.mq-internal.aliyuncs.com:8080" | |||
aws: | |||
clientRegion: cn-northwest-1 | |||
bucketName: iformall-net | |||
access: ENC(3gx5ghDFBqGrEhO3Wf8aYmXsnwHO7Cj3HNKJGOeUj0o=) | |||
secret: ENC(HVKIJwCJKVXLlUpGlQPwNqJOlnpxn4xYuy91SH0seTSm2uAttIQHvA49fXWWax90v5wloIk0QuU=) | |||
#wechat: | |||
# open: | |||
# componentAppId: "wxdfc8fb4e62d6b52b" | |||
# componentSecret: "98daa62b316dd6feabaad708327ce233" | |||
# componentToken: "formall2018" | |||
# componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" | |||
# redis: | |||
# host: 101.201.103.81 | |||
# port: 6379 | |||
# password: ENC(xPFDlgd6v8zUhJMbcKc0KmmQiqs9qHtk) | |||
# timeout: 3600 | |||
# expire: 1800 #30分钟 | |||
# database: 2 | |||
# defaultExpiration: 2592000 # 默认生命周期30天 | |||
# jedis: | |||
# pool: | |||
# max-active: 100 | |||
# max-idle: 500 | |||
# max-wait: -1 | |||
# min-idle: 10 | |||
wechat: | |||
web: | |||
appId: "wx091907dd0bfd3f6b" | |||
secret: "2a2ca10738998b9ef92c1fe8a4d366a6" | |||
url: "https://admintest.malls.iformall.com" | |||
open: | |||
componentAppId: wxdfc8fb4e62d6b52b | |||
componentSecret: 98daa62b316dd6feabaad708327ce233 | |||
componentToken: formall2018 | |||
componentAesKey: htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN | |||
redis: | |||
host: 101.200.130.134 | |||
port: 6379 | |||
password: iF0rm@2l2ol9 | |||
timeout: 3600 | |||
expire: 1800 #30分钟 | |||
database: 2 | |||
defaultExpiration: 2592000 # 默认生命周期30天 | |||
jedis: | |||
pool: | |||
max-active: 100 | |||
max-idle: 100 | |||
max-wait: -1 | |||
min-idle: 10 | |||
alipay: | |||
open: | |||
appId: 2021002137663024 | |||
appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCUfymV5J73QQMG52PVIGUbowkloYCO4B7TQoKbrTZf2YeYsg/To/o4PiXPMNwEUfEUU8NYQ6WwNhCd2fa1ei8WFXJUf3bfgswtBk1aOmHLeY9yoXFxIKMTQ9RcobnmBzKQZlaAPMTSr7t1QtKZKPuc2gEHGRFYKO/ZuL8gIpnsVidVtmi52yd7hzao/pI3ThLA0lreg4L3rYP5ESQZRytxIPgUQ4KI11pZxFgbe+uy28AGDYIQscSIb+SWOHPYKLvOEqqepIZ8M18w/U0lZzpzepzi/V/llekvXJ6UEf1lzl7x/4UIA3WPN1B40+NzbD/OxEGTuM0UctOG6ZTd4Te9AgMBAAECggEAPYksnHbvARspu/SrRCh2fatkIPn6Ijrxyy3mnch7neCw9i/jqxpqmF/4nxFqO0gRlRDZBHyT7p+Y5zDpsW5+kLI2fJmNkzXKkmXoLBnBaOZo8WHBdtXFfjg/iltig9Y7t+cQtXd5QK2eCwuz5dA75FXa0ywqKdRdAGY0nYZ5LpwrHVU8RXheUDCJyhKNj2+W6lIaSKDxLZU3laO1oBrv1agcy7Crd5E2ndb8O3Enga+z7wSz2h7A1BasC/Yl/Ro0Y21wLCH3s/R6qA0Paq12+WEF+xdodM7SrP43CCTVFGbC1TfEOdanJfixop8QuYsIp7pHrL925+vP4eY9RfckgQKBgQDQqLdpDzzU7Ot/L9Vc/r8d4iwXXbX8+HwVFV4oBuausgFyv8eJJpfrI+IlEoB1ubJcPpJBFqfmeYTW6/v6ioFljJAlWfFvesUVt/HszBMIOsU0Bzt7ex6WlwKOagb0q0ZPA4T0OY0K0lg0loaaaR8ZTr4ivDymaGBtTBYhslpc7QKBgQC2MBznGEc5r2dhyENvdPOR20PnXQcevGnPdqSus8m0VmDcHE72RVcckcZtwczsb3NaLSqmjAcWTn51/VFmlvhB3F34FcFTPZGq6sj7fWK8HuFq7l7mu5OzYuVr73zy9ggsUuaw10IqvvwIVxszNAF0hiRnSGH3z27CoRmz3s+8EQKBgQCK3o7atBJ3X4rIJiypbL4DhIB1uJ+jUjk6yvLUTut+fufp1+tTw0S+cS5UIAEw2Lr1G4u5F/v8rwmTBJG6SC4gSLGyui6uVBYRA1BWmedcxchzfRDAeMt9y9kesUAZ3Fe5xIzbAeZ1ulKMBVZmM+pHrJlsgr0Wv0bV1xqvqITtbQKBgBIsIGXopQoa9dvqBtfyOW1eCprkS5aEQqWf9vM6Ga90QjsSU8n6xqKh48IE57TZtQ7UnIF6TCasc66/MsRh4KdpHLJnMR5lcMc0nhF/wz5ychehaTPol+X3wlyOyc7OPah2KG6ROhdbb3ZBggQMduyxiKYIsUTvmuOtAAxR+DSRAoGADtuDzGQDOJYWiO2uuP6FpA5IJaiwlSfu3xncJVfhO8SVr6VBJFg88igbIB3w6nk/sv7j9VTXqXre9HMvp1flxaaLsdxM4HcTSALS9q6t/ajaveqte6S5kAtWx0WW8C6PtgWXHbxcD7LXARSsKLoEl2JXXyUVS/m2l/RzHBQ8GJI= | |||
appPublicKeyCertPath: /opt/iformall/service/alipay/appCertPublicKey_2021002137663024.crt | |||
alipayCertPath: /opt/iformall/service/alipay/alipayCertPublicKey_RSA2.crt | |||
alipayRootCertPath: /opt/iformall/service/alipay/alipayRootCert.crt | |||
callback: https://callbacktest.malls.iformall.com/api/alipay/notify/callback | |||
video: | |||
aliyun: | |||
accessKeyId: LTAI5tQs4MBjzLFbiQLjsMYy | |||
accessKeySecret: nYmnexFJxrsBu0AGVIOSbUaSaweJu7 | |||
regionId: cn-beijing | |||
endPoint: https://oss-cn-beijing.aliyuncs.com | |||
corePoolSize: 6 | |||
maxPoolSize: 20 | |||
queueCapacity: 1000 | |||
namePrefix: aliyun-video-upload | |||
jasypt: | |||
encryptor: | |||
password: oRqdnDbK5pj3eMmB | |||
fm: | |||
exception: true | |||
exception_emails: xuxiaohu@iformall.com | |||
deploy: 1 | |||
open: false | |||
upload_dir: /home/test/server/uploads/ | |||
ocr_data: /root/ocr_data/ | |||
videoType: aliyun | |||
logging: | |||
level: | |||
com.iformall: debug | |||
path: ./logs/c | |||
suimang: | |||
oral_broadcasting: http://nas.pucao.cn:2001 | |||
photo_speak: http://111.198.0.15:22299 | |||
photo_speak_hy: http://111.198.0.15:22288 | |||
digital_avatar: http://111.198.0.15:22200 | |||
digital_avatar_hy: http://nas.pucao.cn:2003 | |||
callbackUrl: https://test.metavatar.cc/C |
@@ -150,3 +150,7 @@ suimang: | |||
digital_avatar: http://111.198.0.15:22200 | |||
digital_avatar_hy: http://nas.pucao.cn:2003 | |||
callbackUrl: https://metavatar.cc/C | |||
sdk: | |||
sm: | |||
base-url: https://neuver.metavatar.cc/public |
@@ -0,0 +1,152 @@ | |||
spring: | |||
profiles: | |||
include: aliyunRocketMQ | |||
# JDBC | |||
datasource: | |||
url: jdbc:mysql://182.92.151.30:3306/mallink_suimang?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false&useAffectedRows=true | |||
username: root | |||
password: sm2023@ms | |||
type: com.alibaba.druid.pool.DruidDataSource | |||
driver-class-name: com.mysql.cj.jdbc.Driver | |||
filters: stat | |||
maxActive: 200 | |||
initialSize: 1 | |||
maxWait: 60000 | |||
minIdle: 1 | |||
timeBetweenEvictionRunsMillis: 28000 | |||
minEvictableIdleTimeMillis: 28000 | |||
validationQuery: select 'x' | |||
testWhileIdle: true | |||
testOnBorrow: false | |||
testOnReturn: false | |||
poolPreparedStatements: true | |||
maxOpenPreparedStatements: 20 | |||
# REDIS | |||
redis: | |||
host: 182.92.151.30 | |||
port: 6379 | |||
password: sm2023@rd | |||
timeout: 3600 | |||
expire: 1800 #30分钟 | |||
database: 1 | |||
defaultExpiration: 2592000 # 默认生命周期30天 | |||
jedis: | |||
pool: | |||
max-active: 100 | |||
max-idle: 100 | |||
max-wait: -1 | |||
min-idle: 10 | |||
# SMS | |||
aliyun: | |||
sms: | |||
accessKeyId: LTAI5tQs4MBjzLFbiQLjsMYy | |||
accessKeySecret: nYmnexFJxrsBu0AGVIOSbUaSaweJu7 | |||
product: Dysmsapi | |||
domain: dysmsapi.aliyuncs.com | |||
regionId: cn-hangzhou | |||
dateFormat: yyyyMMdd | |||
endpointName: cn-hangzhou | |||
oss: | |||
endpoint: oss-cn-beijing.aliyuncs.com | |||
keyid: LTAI5tQs4MBjzLFbiQLjsMYy | |||
keysecret: nYmnexFJxrsBu0AGVIOSbUaSaweJu7 | |||
bucketname: suimang | |||
filehost: capi | |||
filedomain: https://suimang.oss-accelerate.aliyuncs.com | |||
mail: | |||
host: smtp.exmail.qq.com | |||
username: system@metavatar.com.cn | |||
password: 2bKGhFaKKjhQFeka # 授权密码 | |||
properties: | |||
mail: | |||
smtp: | |||
auth: true | |||
starttls: | |||
enable: true | |||
socketFactory: | |||
port: 465 | |||
class: javax.net.ssl.SSLSocketFactory | |||
# RABBITMQ | |||
rabbitmq: | |||
host: 127.0.0.1 | |||
port: 5672 | |||
username: ENC(lRmLd6EzgeY1RT5ktcHv9g==) | |||
password: ENC(gBI8mCjr3OC0v57jcnSb660Ux7mW03K2oePgvohhg7w=) | |||
publisher-confirms: true | |||
publisher-returns: false | |||
virtual-host: / | |||
aliyunRocketmq: | |||
accessKeyId: "LTAI4G7ixY4AhvM35F8o3W3V" | |||
accessKeySecret: "VfWqGb83qIQrS9us45utskl8itd7ry" | |||
groupId: "GID_P_1" | |||
namesrvAddr: "http://MQ_INST_1796289517488555_Bcqaq2is.cn-beijing.mq-internal.aliyuncs.com:8080" | |||
aws: | |||
clientRegion: cn-northwest-1 | |||
bucketName: iformall-net | |||
access: ENC(a6SN1sZ1enNL49ypiOXkg/pPPAnZD8H4buQFTTKN08s=) | |||
secret: ENC(5P5ff4bTMJUbXVR4ZsM03UHzOKZ4+Zg5Iutcdkyp/Quny/oXg+A4KpfwEyGarlLu3vQMJahGP5M=) | |||
wechat: | |||
open: | |||
componentAppId: ENC(b3JG0MUZgQfz5Zj+DC2ZM1zDeLOiGTmmeokfe2O8kaM=) | |||
componentSecret: ENC(QVyc4BPGdnSjXGs2ivgpDBE1v8wPWHLLRMYI7Vv8uYwC0SiZHQz0QpyyQV/b48Pb) | |||
componentToken: ENC(rkxj0733WxFFDLgA9x01m2s5Fi2L+0PC) | |||
componentAesKey: ENC(EIbJUBpbYOrLb4YQ/HXLQmxlxgAqIp2ZmpnGICC8pu5xiTz3Cqfkbwd2S8raCcK/IvYcX2GmedI=) | |||
redis: | |||
host: 182.92.151.30 | |||
port: 6379 | |||
password: sm2023@rd | |||
timeout: 3600 | |||
expire: 1800 #30分钟 | |||
database: 2 | |||
defaultExpiration: 2592000 # 默认生命周期30天 | |||
jedis: | |||
pool: | |||
max-active: 100 | |||
max-idle: 100 | |||
max-wait: -1 | |||
min-idle: 10 | |||
alipay: | |||
open: | |||
appId: 2021002140616334 | |||
appPrivateKey: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCEJmHIlS0luIH7zJRRVlypCcgiSkqpSlnmgyCEM7nu8IerV8Yf7dMBitBklTpJB+4URV1bW+q6Ijzo8RsCyjm1Kx+EFiKf1PiJXlT0h1+bF3fYdDr6r5GK0/TtB8O80p774NcRD3HgbzUS8AEe/GcBvhiXbDRgJh7yAngW9vxl9u1o5UcaxOXVLWDrjlQGF6qyXUlycCNIdPXj3LduP3PBK5daVZwJm33Pr7kmSI0agZvV267HaTpSKaiXI7Zwo+nFMqx9g9kpzmYRfOgHx3DWpQUFI646IB8nEpLpQp3/0eDocuqiHXYgEpLpPoFKoVE228v74YSFh3Y4fFGX+qtjAgMBAAECggEAIJK9Y42xtSyHjaNdo7bf3CK3HAyn3pafFjyYFT4SxJyxNEDMay5Z5nVq7IAD/+BehMycOFqtvveVf+1+NO/XzZo1iH9URYVfRazkz+lWXYopVkdACm6gN1ILeymAy9g2q+s918ywyxteP668+ABK+5j5wsk/F7wNwKVvKGn0yMT7DP0FAL1e0KWndZCZlF79VnFpBLscDJq28GqRzqYop4CWqHHTA6DBvIqkfQV4U3IzqnzOsxNLEMBwhnbK08XfYZ3DxCPH0jQdA2Jj/aABrntq2EpWjzW5H9iZqrVo33rmsNHUSQvla/333RkbpwGyNhI6kcPBRq4cVSAa3y7dMQKBgQDVfyDUPWKXVwIJUgO1my8WIUu2p6nhuT7Mfnpk4X7ewdFaRVjb/r0KvhLgoz2/KOwkqtWTlEvNaCDDycpLXk+V5ZH833kYsDEmxY7ikOUjCcrfYJgT7P77//cZ4Kx8a5X45SiKAZT2GQv7BTtIfNhrfTUj6AQx/3MP3sa2QAWeNQKBgQCedWoF7t+qyck2hctqtTFC7fRkEk7RNJVph1ZOeTqOIAKhmhkwaOE3joxQ/VqHDy212YdW4hI0BWUzbEdMy0Idz2G3y9ERVD84hZehf5GGRdiSrY9EEQgHlcI6Qb8/AnDdpy1DlKUMwTYjVNzkDL3AzeWn61JS1XQaOzZBsJy2NwKBgFa+pJQXrOtYytcGn8M2Hlebh6vbS8cPAVkNOqWqiWXw0iMfcg9Q3XZz7C+hpAD7m5b6YnToGDSJTma+opck5qk88agRFJ7XV+Es+/VKcg9edzNzh9bwwFmbksbM5shW3kSWt3X7Vo73dkqzwXaeY0CpSuIf7zRxWkrkdVCvipjRAoGAMcJlPN+6VQNwsDJromKryXy31gT5wzBkCvN44sOm46KhsOWXK2CD+NJGtdgZaXgWvphEq7/qP3PCR9ekvDTH2lyZLwJN8Mcn4zPwXcKVjDi6vbTK3HEMuHUKvQiQadT2ZGRvDl3LRqoVuhqYEvT9UWJWz9hRzblB8ErPyukPDRkCgYB7bMv2iflpaGE1J3gkTlVJB+2QSfnAXaUDMLWsZN4gYjwEBVCEJ+mhWL1/GeEIBjSs5/qZIeRsYzlxGEcnsJzRfog6ITBF14AeZ+xNkHq83ja87OGVKMypiccGwRehijDhJi6tgMJ0u0w6PiqcJvh0SX4jBhDDPjuWzK2XD+lx8A== | |||
appPublicKeyCertPath: /opt/iformall/service/alipay/appCertPublicKey_2021002140616334.crt | |||
alipayCertPath: /opt/iformall/service/alipay/alipayCertPublicKey_RSA2.crt | |||
alipayRootCertPath: /opt/iformall/service/alipay/alipayRootCert.crt | |||
callback: https://callback.malls.iformall.com/api/alipay/notify/callback | |||
video: | |||
aliyun: | |||
accessKeyId: LTAI5tQs4MBjzLFbiQLjsMYy | |||
accessKeySecret: nYmnexFJxrsBu0AGVIOSbUaSaweJu7 | |||
regionId: cn-beijing | |||
endPoint: https://oss-cn-beijing.aliyuncs.com | |||
corePoolSize: 6 | |||
maxPoolSize: 20 | |||
queueCapacity: 1000 | |||
namePrefix: aliyun-video-upload | |||
fm: | |||
exception: true | |||
exception_emails: houtaikaifa@iformall.com | |||
deploy: 3 | |||
open: true | |||
upload_dir: /root/uploads/ | |||
ocr_data: /root/ocr_data/ | |||
videoType: aliyun | |||
logging: | |||
level: | |||
com.iformall: debug | |||
path: ./logs/c | |||
suimang: | |||
oral_broadcasting: http://111.198.0.15:22266 | |||
photo_speak: http://111.198.0.15:22299 | |||
photo_speak_hy: http://111.198.0.15:22288 | |||
digital_avatar: http://111.198.0.15:22200 | |||
digital_avatar_hy: http://nas.pucao.cn:2003 | |||
callbackUrl: https://metavatar.cc/C |
@@ -0,0 +1,14 @@ | |||
package com.iformall.config; | |||
import org.springframework.context.annotation.Bean; | |||
import org.springframework.context.annotation.Configuration; | |||
import org.springframework.web.client.RestTemplate; | |||
@Configuration | |||
public class RestTemplateConfig { | |||
@Bean | |||
public RestTemplate restTemplate() { | |||
return new RestTemplate(); | |||
} | |||
} |
@@ -0,0 +1,19 @@ | |||
package com.iformall.smsdk; | |||
import com.iformall.domain.po.sm.UserMouldVideo; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
@ApiModel(value = "生成视频请求参数") | |||
@Data | |||
public class SmGenerateVideoDTO { | |||
@ApiModelProperty(value = "视频唯一标识") | |||
private Long id; | |||
public static SmGenerateVideoDTO mapping(UserMouldVideo record) { | |||
SmGenerateVideoDTO dto = new SmGenerateVideoDTO(); | |||
dto.setId(record.getId()); | |||
return dto; | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
package com.iformall.smsdk; | |||
import com.iformall.sm.AiPreviewParam; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
@ApiModel(value = "预览视频请求参数") | |||
@Data | |||
public class SmPreviewVideoDTO { | |||
@ApiModelProperty("文案") | |||
private String paperwork; | |||
@ApiModelProperty("声音id") | |||
private String voiceId; | |||
@ApiModelProperty("声音风格名称") | |||
private String voiceStyle; | |||
public static SmPreviewVideoDTO mapping(AiPreviewParam aiPreviewParam) { | |||
SmPreviewVideoDTO dto = new SmPreviewVideoDTO(); | |||
dto.setPaperwork(aiPreviewParam.getGen_txt()); | |||
dto.setVoiceId(aiPreviewParam.getVoice_id()); | |||
dto.setVoiceStyle(aiPreviewParam.getVoice_style()); | |||
return dto; | |||
} | |||
} |
@@ -0,0 +1,20 @@ | |||
package com.iformall.smsdk; | |||
/** | |||
* 遂芒sdk常量 | |||
* | |||
* @author xmzhao71 | |||
* @date 2023-10-19 | |||
*/ | |||
public interface SmSdkConstant { | |||
/** | |||
* 预览视频 | |||
*/ | |||
String PREVIEW_VIDEO = "/ai/video/preview"; | |||
/** | |||
* 生成视频 | |||
*/ | |||
String GENERATE_VIDEO = "/ai/video/preview"; | |||
} |
@@ -0,0 +1,15 @@ | |||
package com.iformall.smsdk; | |||
import lombok.Data; | |||
import org.springframework.boot.context.properties.ConfigurationProperties; | |||
import org.springframework.stereotype.Component; | |||
@Data | |||
@Component | |||
@ConfigurationProperties(prefix = "sdk.sm") | |||
public class SmSdkProperties { | |||
/** | |||
* 域名 | |||
*/ | |||
private String baseUrl; | |||
} |
@@ -0,0 +1,49 @@ | |||
package com.iformall.smsdk; | |||
import com.alibaba.fastjson.JSON; | |||
import com.alibaba.fastjson.JSONObject; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.http.HttpEntity; | |||
import org.springframework.http.HttpMethod; | |||
import org.springframework.http.ResponseEntity; | |||
import org.springframework.stereotype.Component; | |||
import org.springframework.web.client.RestTemplate; | |||
import javax.annotation.PostConstruct; | |||
import javax.annotation.Resource; | |||
@Slf4j | |||
@Component | |||
public class SmSdkUtils { | |||
private static SmSdkUtils smSdkUtils; | |||
@Resource(name = "restTemplate") | |||
private RestTemplate restTemplate; | |||
@Autowired | |||
private SmSdkProperties smSdkProperties; | |||
@PostConstruct | |||
public void init() { | |||
smSdkUtils = this; | |||
} | |||
public static void generateVideo(SmGenerateVideoDTO dto) { | |||
String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; | |||
HttpEntity<SmGenerateVideoDTO> httpEntity = new HttpEntity<>(dto); | |||
log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); | |||
ResponseEntity<String> response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); | |||
log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); | |||
} | |||
public static Double preview(SmPreviewVideoDTO dto) { | |||
String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; | |||
HttpEntity<SmPreviewVideoDTO> httpEntity = new HttpEntity<>(dto); | |||
log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSONString(dto)); | |||
ResponseEntity<String> response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); | |||
log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); | |||
JSONObject resultObject = JSON.parseObject(response.getBody()); | |||
return resultObject.getDouble("data"); | |||
} | |||
} |