From 1726190b46f7d109e7f1baaab5f3a418ba51efd2 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Thu, 19 Oct 2023 15:48:30 +0800 Subject: [PATCH 01/12] =?UTF-8?q?feat=EF=BC=9A=E6=96=B0=E5=A2=9E=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E7=94=9F=E6=88=90=E8=A7=86=E9=A2=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserMouldVideoController.java | 20 +- .../controller/VoiceMouldController.java | 15 +- .../src/main/resources/application-dev.yml | 3 + .../main/resources/application-dev.yml.bak | 197 ++++++++++++++++++ .../src/main/resources/application-prod.yml | 4 + .../main/resources/application-prod.yml.bak | 152 ++++++++++++++ .../iformall/config/RestTemplateConfig.java | 14 ++ .../iformall/smsdk/SmGenerateVideoDTO.java | 19 ++ .../com/iformall/smsdk/SmPreviewVideoDTO.java | 25 +++ .../com/iformall/smsdk/SmSdkConstant.java | 20 ++ .../com/iformall/smsdk/SmSdkProperties.java | 15 ++ .../java/com/iformall/smsdk/SmSdkUtils.java | 49 +++++ 12 files changed, 530 insertions(+), 3 deletions(-) create mode 100644 suimangCApi/src/main/resources/application-dev.yml.bak create mode 100644 suimangCApi/src/main/resources/application-prod.yml.bak create mode 100644 suimangService/src/main/java/com/iformall/config/RestTemplateConfig.java create mode 100644 suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java create mode 100644 suimangService/src/main/java/com/iformall/smsdk/SmPreviewVideoDTO.java create mode 100644 suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java create mode 100644 suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java create mode 100644 suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java diff --git a/suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java b/suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java index 8598513..a3a5fe5 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java @@ -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) diff --git a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java index b61e965..f5c2d18 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java @@ -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); + } } diff --git a/suimangCApi/src/main/resources/application-dev.yml b/suimangCApi/src/main/resources/application-dev.yml index 63c7645..480f770 100644 --- a/suimangCApi/src/main/resources/application-dev.yml +++ b/suimangCApi/src/main/resources/application-dev.yml @@ -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 diff --git a/suimangCApi/src/main/resources/application-dev.yml.bak b/suimangCApi/src/main/resources/application-dev.yml.bak new file mode 100644 index 0000000..63c7645 --- /dev/null +++ b/suimangCApi/src/main/resources/application-dev.yml.bak @@ -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 + + # EMAIL + 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 diff --git a/suimangCApi/src/main/resources/application-prod.yml b/suimangCApi/src/main/resources/application-prod.yml index 8ba888b..e449999 100644 --- a/suimangCApi/src/main/resources/application-prod.yml +++ b/suimangCApi/src/main/resources/application-prod.yml @@ -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 \ No newline at end of file diff --git a/suimangCApi/src/main/resources/application-prod.yml.bak b/suimangCApi/src/main/resources/application-prod.yml.bak new file mode 100644 index 0000000..8ba888b --- /dev/null +++ b/suimangCApi/src/main/resources/application-prod.yml.bak @@ -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 + + # EMAIL + 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 diff --git a/suimangService/src/main/java/com/iformall/config/RestTemplateConfig.java b/suimangService/src/main/java/com/iformall/config/RestTemplateConfig.java new file mode 100644 index 0000000..d8e6c44 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/config/RestTemplateConfig.java @@ -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(); + } +} diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java b/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java new file mode 100644 index 0000000..d8289dd --- /dev/null +++ b/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java @@ -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; + } +} diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmPreviewVideoDTO.java b/suimangService/src/main/java/com/iformall/smsdk/SmPreviewVideoDTO.java new file mode 100644 index 0000000..c52a5d9 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/smsdk/SmPreviewVideoDTO.java @@ -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; + } +} diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java new file mode 100644 index 0000000..003c5ad --- /dev/null +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java @@ -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"; +} diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java new file mode 100644 index 0000000..9b908c5 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java @@ -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; +} diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java new file mode 100644 index 0000000..c171411 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -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 httpEntity = new HttpEntity<>(dto); + log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); + ResponseEntity 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 httpEntity = new HttpEntity<>(dto); + log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSONString(dto)); + ResponseEntity 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"); + } +} From 0effb069d3c4199a5e76276042dcc4520ceaec4d Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 20 Oct 2023 14:37:31 +0800 Subject: [PATCH 02/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=A7=86=E9=A2=91=E6=8E=A5=E5=8F=A3sdk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserMouldVideoController.java | 17 ++++++++--------- .../java/com/iformall/common/ErrorCode.java | 5 +++-- .../sm/impl/UserMouldVideoServiceImpl.java | 5 ++++- .../com/iformall/smsdk/SmGenerateVideoDTO.java | 8 ++++++-- .../java/com/iformall/smsdk/SmSdkUtils.java | 9 ++++++++- 5 files changed, 29 insertions(+), 15 deletions(-) diff --git a/suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java b/suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java index a3a5fe5..7f2274a 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java @@ -161,9 +161,8 @@ public class UserMouldVideoController extends BaseController { * @param record * @return {@link ResultData} */ - @Deprecated @ApiOperation("生成视频") - @PostMapping("createVideo_bak") + @PostMapping("createVideo") public ResultData create(@RequestBody UserMouldVideo record) { logger.debug("[" + getIpAddr() + "] MouldPatchController::saveOrUpdate"); if(record.getId() == null){ @@ -202,13 +201,13 @@ 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(); - } +// @AuthIgnore +// @ApiOperation("生成视频") +// @PostMapping("createVideo") +// public ResultData createVideo(@RequestBody UserMouldVideo record) { +// SmSdkUtils.generateVideo(SmGenerateVideoDTO.mapping(record)); +// return new ResultData(); +// } @ApiOperation("根据id查询接口") @GetMapping("/findVideo") diff --git a/suimangService/src/main/java/com/iformall/common/ErrorCode.java b/suimangService/src/main/java/com/iformall/common/ErrorCode.java index 5fde228..4b4a768 100644 --- a/suimangService/src/main/java/com/iformall/common/ErrorCode.java +++ b/suimangService/src/main/java/com/iformall/common/ErrorCode.java @@ -677,9 +677,10 @@ public enum ErrorCode{ */ ORDER_CREAT_OVERRUN(64000, "重复生成次数超限"), - ; + CODE_ALREADY_EXISTS(71000, "该code已存在") + ; - private int code; + private int code; private String message; ErrorCode(int code, String message) { diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java index 9cd8881..cf9ab7b 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java @@ -15,6 +15,8 @@ import com.iformall.service.sm.*; import com.iformall.sm.AiVideoHelper; import com.iformall.sm.AiVideoParam; import com.iformall.sm.AiVideoResult; +import com.iformall.smsdk.SmGenerateVideoDTO; +import com.iformall.smsdk.SmSdkUtils; import com.iformall.utils.Base64Util; import com.iformall.utils.Constant; import com.iformall.utils.RedisLock; @@ -391,7 +393,8 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { } videoParam.setVideo_files(videoFiles); - AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId()); +// AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId()); + AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, mouldVideo.getId())); if(video.isSuccess()){ videoUpd.setVideoPath(video.getUrl()); // videoUpd.setVideoTime(video.getDuration()+""); diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java b/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java index d8289dd..1ea3682 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java @@ -1,6 +1,7 @@ package com.iformall.smsdk; import com.iformall.domain.po.sm.UserMouldVideo; +import com.iformall.sm.AiVideoParam; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -10,10 +11,13 @@ import lombok.Data; public class SmGenerateVideoDTO { @ApiModelProperty(value = "视频唯一标识") private Long id; + @ApiModelProperty(value = "生成视频参数") + private AiVideoParam aiVideoParam; - public static SmGenerateVideoDTO mapping(UserMouldVideo record) { + public static SmGenerateVideoDTO build(AiVideoParam aiVideoParam, Long id) { SmGenerateVideoDTO dto = new SmGenerateVideoDTO(); - dto.setId(record.getId()); + dto.setId(id); + dto.setAiVideoParam(aiVideoParam); return dto; } } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index c171411..0d0aadb 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -2,7 +2,11 @@ package com.iformall.smsdk; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.iformall.sm.AiVideoParam; +import com.iformall.sm.AiVideoResult; +import com.iformall.utils.JsonUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; @@ -29,12 +33,15 @@ public class SmSdkUtils { smSdkUtils = this; } - public static void generateVideo(SmGenerateVideoDTO dto) { + public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; HttpEntity httpEntity = new HttpEntity<>(dto); log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); + JSONObject resultObject = JSON.parseObject(response.getBody()); + String data = resultObject.getString("data"); + return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiVideoResult.class) : new AiVideoResult(); } public static Double preview(SmPreviewVideoDTO dto) { From 2736f34b04f7eb23cfd5339e70fa42fd3c083773 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 20 Oct 2023 16:10:31 +0800 Subject: [PATCH 03/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E8=A7=86=E9=A2=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/VoiceMouldController.java | 11 ----------- .../service/sm/impl/VoiceInfoServiceImpl.java | 5 ++++- .../src/main/java/com/iformall/smsdk/SmSdkUtils.java | 6 ++++-- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java index f5c2d18..56a9eb4 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java @@ -158,7 +158,6 @@ public class VoiceMouldController extends BaseController { return new ResultData(voiceInfoService.chooseType(id)); } - @Deprecated @AuthIgnore @ApiOperation("TTS音色预览") @PostMapping("/preview_bak") @@ -167,14 +166,4 @@ public class VoiceMouldController extends BaseController { 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); - } } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java index 496ce20..ef11f04 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java @@ -16,6 +16,8 @@ import com.iformall.file.aliyun.bean.AliyunOSSConfig; import com.iformall.mapper.VoiceMapper; import com.iformall.service.sm.VoiceInfoService; import com.iformall.sm.*; +import com.iformall.smsdk.SmPreviewVideoDTO; +import com.iformall.smsdk.SmSdkUtils; import com.iformall.utils.Constant; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -90,7 +92,8 @@ public class VoiceInfoServiceImpl implements VoiceInfoService { param.setVoice_id(voiceInfo.getMouldSmId()); param.setVoice_style(StringUtils.isBlank(aiPreviewParam.getVoice_style()) ? EnumSpeakType.default_0.getMessage() : aiPreviewParam.getVoice_style()); param.setGender(voiceInfo.getSex() == 1 ? "male" : "female"); - AiPreviewResult result = AiVideoHelper.voicePreview(param); +// AiPreviewResult result = AiVideoHelper.voicePreview(param); + AiPreviewResult result = SmSdkUtils.preview(SmPreviewVideoDTO.mapping(param)); if (result.isSuccess()){ return result.getTime(); } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index 0d0aadb..d0367c3 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -2,6 +2,7 @@ package com.iformall.smsdk; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.iformall.sm.AiPreviewResult; import com.iformall.sm.AiVideoParam; import com.iformall.sm.AiVideoResult; import com.iformall.utils.JsonUtil; @@ -44,13 +45,14 @@ public class SmSdkUtils { return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiVideoResult.class) : new AiVideoResult(); } - public static Double preview(SmPreviewVideoDTO dto) { + public static AiPreviewResult preview(SmPreviewVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; HttpEntity httpEntity = new HttpEntity<>(dto); log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSONString(dto)); ResponseEntity 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"); + String data = resultObject.getString("data"); + return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); } } From af3d7bcb6250000f4e51d6cc6e7b7833c5933b17 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 20 Oct 2023 16:30:11 +0800 Subject: [PATCH 04/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E8=A7=86=E9=A2=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/VoiceMouldController.java | 2 +- .../com/iformall/smsdk/SmSdkConstant.java | 4 ++-- .../java/com/iformall/smsdk/SmSdkUtils.java | 22 +++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java index 56a9eb4..2f2de09 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java @@ -160,7 +160,7 @@ public class VoiceMouldController extends BaseController { @AuthIgnore @ApiOperation("TTS音色预览") - @PostMapping("/preview_bak") + @PostMapping("/preview") @ApiImplicitParams({}) public ResultData voicePreview(@RequestBody AiPreviewParam aiPreviewParam) { logger.debug("[" + getIpAddr() + "] MouldPatchController::voicePreview"); diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java index 003c5ad..ee2c40a 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java @@ -11,10 +11,10 @@ public interface SmSdkConstant { /** * 预览视频 */ - String PREVIEW_VIDEO = "/ai/video/preview"; + String PREVIEW_VIDEO = "/ai/video/previewVideo"; /** * 生成视频 */ - String GENERATE_VIDEO = "/ai/video/preview"; + String GENERATE_VIDEO = "/ai/video/generateVideo"; } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index d0367c3..7ceb654 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -34,17 +34,6 @@ public class SmSdkUtils { smSdkUtils = this; } - public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { - String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; - HttpEntity httpEntity = new HttpEntity<>(dto); - log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); - ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); - log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); - JSONObject resultObject = JSON.parseObject(response.getBody()); - String data = resultObject.getString("data"); - return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiVideoResult.class) : new AiVideoResult(); - } - public static AiPreviewResult preview(SmPreviewVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; HttpEntity httpEntity = new HttpEntity<>(dto); @@ -55,4 +44,15 @@ public class SmSdkUtils { String data = resultObject.getString("data"); return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); } + + public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { + String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; + HttpEntity httpEntity = new HttpEntity<>(dto); + log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); + ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); + log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); + JSONObject resultObject = JSON.parseObject(response.getBody()); + String data = resultObject.getString("data"); + return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiVideoResult.class) : new AiVideoResult(); + } } From 64e4f6887ab059014e3957eef842124c0db47323 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 20 Oct 2023 18:00:56 +0800 Subject: [PATCH 05/12] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E7=BC=BA?= =?UTF-8?q?=E5=A4=B1=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java index 8f83fde..ac6f1cd 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java @@ -1,6 +1,6 @@ package com.iformall.domain.dto.neuver; -import com.iformall.common.CommonConstant; +import com.iformall.common.CommonConstants; import com.iformall.common.IdWorker; import com.iformall.domain.po.sm.ServiceInfo; import io.swagger.annotations.ApiModel; @@ -30,7 +30,7 @@ public class SaveServiceInfoDTO { serviceInfo.setAddress(dto.getAddress()); serviceInfo.setCode(dto.getCode()); serviceInfo.setType(dto.getType()); - serviceInfo.setStatus(CommonConstant.STATUS_NORMAL); + serviceInfo.setStatus(CommonConstants.STATUS_NORMAL); return serviceInfo; } } From 729ffd78703d215c8464b59128259080641c640b Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 20 Oct 2023 18:52:38 +0800 Subject: [PATCH 06/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E6=8E=A5=E5=8F=A3=E4=BD=BF=E7=94=A8=E5=87=AD=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/smsdk/SmSdkConstant.java | 10 +++- .../com/iformall/smsdk/SmSdkProperties.java | 8 +++- .../java/com/iformall/smsdk/SmSdkUtils.java | 8 ++-- .../main/java/com/iformall/smsdk/SmUtils.java | 48 +++++++++++++++++++ 4 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 suimangService/src/main/java/com/iformall/smsdk/SmUtils.java diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java index ee2c40a..9b836ef 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java @@ -8,13 +8,19 @@ package com.iformall.smsdk; */ public interface SmSdkConstant { + /** + * 请求头参数 + */ + String APP_KEY = "appKey"; + String SIGN = "sign"; + /** * 预览视频 */ - String PREVIEW_VIDEO = "/ai/video/previewVideo"; + String PREVIEW_VIDEO = "/api/video/previewVideo"; /** * 生成视频 */ - String GENERATE_VIDEO = "/ai/video/generateVideo"; + String GENERATE_VIDEO = "/api/video/generateVideo"; } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java index 9b908c5..4b3e210 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java @@ -4,12 +4,18 @@ import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; +/** + * 遂芒sdk调用凭证 + * + * @author xmzhao71 + * @date 2023-10-20 + */ @Data @Component @ConfigurationProperties(prefix = "sdk.sm") public class SmSdkProperties { /** - * 域名 + * 域名 */ private String baseUrl; } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index 7ceb654..f5377cd 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -36,9 +36,9 @@ public class SmSdkUtils { public static AiPreviewResult preview(SmPreviewVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; - HttpEntity httpEntity = new HttpEntity<>(dto); +// HttpEntity httpEntity = new HttpEntity<>(dto); log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSONString(dto)); - ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); + ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.toJSONString(dto)), String.class); log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); @@ -47,9 +47,9 @@ public class SmSdkUtils { public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; - HttpEntity httpEntity = new HttpEntity<>(dto); +// HttpEntity httpEntity = new HttpEntity<>(dto); log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); - ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); + ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.toJSONString(dto)), String.class); log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java new file mode 100644 index 0000000..a9c2ad3 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java @@ -0,0 +1,48 @@ +package com.iformall.smsdk; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iformall.common.CommonConstants; +import com.iformall.domain.po.WxThirdPartyApi; +import com.iformall.mapper.WxThirdPartyApiMapper; +import com.iformall.utils.sign.SignUtils; +import org.apache.http.protocol.HTTP; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.List; +import java.util.Map; + +@Component +public class SmUtils { + public static SmUtils smUtils; + @Autowired + private SmSdkProperties smSdkProperties; + @Autowired + private WxThirdPartyApiMapper wxThirdPartyApiMapper; + + @PostConstruct + public void init() { + smUtils = this; + } + + public static HttpEntity getHttpEntity(String param) { + WxThirdPartyApi apiConfig = getApiConfig(); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.set(SmSdkConstant.APP_KEY, apiConfig.getAppId() + "&" + apiConfig.getAppKey()); + String sign = SignUtils.getSign(apiConfig.getSignKey(), JSON.parseObject(param, Map.class), "MD5"); + httpHeaders.set(SmSdkConstant.SIGN, sign); + return new HttpEntity<>(param, httpHeaders); + } + + + public static WxThirdPartyApi getApiConfig() { + List wxThirdPartyApis = smUtils.wxThirdPartyApiMapper.selectList(new LambdaQueryWrapper() + .eq(WxThirdPartyApi::getStatus, CommonConstants.STATUS_NORMAL)); + return wxThirdPartyApis.get(0); + } +} From 56eb26fb04397a147bb02f847c1d65755bd5c97a Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Mon, 23 Oct 2023 11:35:23 +0800 Subject: [PATCH 07/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E6=8E=A5=E5=8F=A3=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AiVideoServiceImpl.java | 2 +- .../java/com/iformall/smsdk/SmSdkConstant.java | 6 ++++++ .../main/java/com/iformall/smsdk/SmSdkUtils.java | 16 ++++++++-------- .../main/java/com/iformall/smsdk/SmUtils.java | 7 ++++--- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java b/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java index 3c6c992..d050322 100644 --- a/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java +++ b/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java @@ -20,7 +20,7 @@ public class AiVideoServiceImpl implements AiVideoService { private ServiceVideoRecordService serviceVideoRecordService; @Override - public AiPreviewResult previewVideo(AiPreviewParam aiPreviewParam) { + public AiPreviewResult previewVideo(AiPreviewParam aiPreviewParam) { return AiVideoHelper.voicePreview(aiPreviewParam); } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java index 9b836ef..7d6b254 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java @@ -14,6 +14,12 @@ public interface SmSdkConstant { String APP_KEY = "appKey"; String SIGN = "sign"; + /** + * 请求参数,必填 + */ + String TIMESTAMP = "timeStamp"; + + /** * 预览视频 */ diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index f5377cd..508f1b6 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -17,6 +17,7 @@ import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; import javax.annotation.Resource; +import java.util.Map; @Slf4j @Component @@ -36,10 +37,9 @@ public class SmSdkUtils { public static AiPreviewResult preview(SmPreviewVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; -// HttpEntity httpEntity = new HttpEntity<>(dto); - log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSONString(dto)); - ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.toJSONString(dto)), String.class); - log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); + log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSON(dto)); + ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(dto), Map.class)), String.class); + log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSON(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); @@ -47,10 +47,10 @@ public class SmSdkUtils { public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; -// HttpEntity httpEntity = new HttpEntity<>(dto); - log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); - ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.toJSONString(dto)), String.class); - log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); +// log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); + log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(dto.getId())); + ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(dto), Map.class)), String.class); + log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSON(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiVideoResult.class) : new AiVideoResult(); diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java index a9c2ad3..31be7e3 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java @@ -30,13 +30,14 @@ public class SmUtils { smUtils = this; } - public static HttpEntity getHttpEntity(String param) { + public static HttpEntity> getHttpEntity(Map paramMap) { + paramMap.put(SmSdkConstant.TIMESTAMP, System.currentTimeMillis()); WxThirdPartyApi apiConfig = getApiConfig(); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.set(SmSdkConstant.APP_KEY, apiConfig.getAppId() + "&" + apiConfig.getAppKey()); - String sign = SignUtils.getSign(apiConfig.getSignKey(), JSON.parseObject(param, Map.class), "MD5"); + String sign = SignUtils.getSign(apiConfig.getSignKey(), paramMap, "MD5"); httpHeaders.set(SmSdkConstant.SIGN, sign); - return new HttpEntity<>(param, httpHeaders); + return new HttpEntity<>(paramMap, httpHeaders); } From cfca89e8ae181518f30a9f68da9c61c92c090bb0 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Mon, 23 Oct 2023 16:57:23 +0800 Subject: [PATCH 08/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E7=A7=81?= =?UTF-8?q?=E6=9C=89=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/dto/PreviewVideoDTO.java | 11 +++++++++++ suimangCApi/src/main/resources/application-dev.yml | 8 ++++---- suimangCApi/src/main/resources/application-prod.yml | 9 ++++----- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/open-api/src/main/java/com/iformall/dto/PreviewVideoDTO.java b/open-api/src/main/java/com/iformall/dto/PreviewVideoDTO.java index 749e3b3..74df873 100644 --- a/open-api/src/main/java/com/iformall/dto/PreviewVideoDTO.java +++ b/open-api/src/main/java/com/iformall/dto/PreviewVideoDTO.java @@ -5,6 +5,17 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +/** + * 参数示例: + * { + * "paperwork": "文案", + * "voiceId": "zh-CN-XiaomengNeural", + * "voiceStyle": "default" + * } + * + * @author xmzhao71 + * @date 2023-10-23 + */ @ApiModel(value = "预览视频请求参数") @Data public class PreviewVideoDTO { diff --git a/suimangCApi/src/main/resources/application-dev.yml b/suimangCApi/src/main/resources/application-dev.yml index 87bf750..008dd08 100644 --- a/suimangCApi/src/main/resources/application-dev.yml +++ b/suimangCApi/src/main/resources/application-dev.yml @@ -190,11 +190,11 @@ logging: 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://test.metavatar.cc/C + photo_speak: xxx + photo_speak_hy: xxx + digital_avatar: xxx + digital_avatar_hy: xxx sdk: sm: base-url: https://mtest.metavatar.cc/public diff --git a/suimangCApi/src/main/resources/application-prod.yml b/suimangCApi/src/main/resources/application-prod.yml index e449999..568317b 100644 --- a/suimangCApi/src/main/resources/application-prod.yml +++ b/suimangCApi/src/main/resources/application-prod.yml @@ -145,12 +145,11 @@ logging: 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 - + photo_speak: xxx + photo_speak_hy: xxx + digital_avatar: xxx + digital_avatar_hy: xxx sdk: sm: base-url: https://neuver.metavatar.cc/public \ No newline at end of file From 3d85af3cb7a1a2d3c51847c5c9e1413ae988866e Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 27 Oct 2023 15:14:42 +0800 Subject: [PATCH 09/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- suimangCApi/src/main/resources/application-dev.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/suimangCApi/src/main/resources/application-dev.yml b/suimangCApi/src/main/resources/application-dev.yml index 151de8f..a86ec04 100644 --- a/suimangCApi/src/main/resources/application-dev.yml +++ b/suimangCApi/src/main/resources/application-dev.yml @@ -190,12 +190,12 @@ logging: suimang: oral_broadcasting: http://111.198.0.15:22266 - video_tts: http://111.198.0.15:22222 - photo_speak: http://111.198.0.15:22299 - photo_speak_hy: http://111.198.0.15:22288 - digital_avatar: http://nas.pucao.cn:2005 - digital_avatar_hy: http://nas.pucao.cn:2003 callbackUrl: https://mtest.metavatar.cc/C + video_tts: xxx + photo_speak: xxx + photo_speak_hy: xxx + digital_avatar: xxx + digital_avatar_hy: xxx sdk: sm: From 8a64e5c86d59910b86f5c0b5f9655620e7f13562 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 27 Oct 2023 16:01:42 +0800 Subject: [PATCH 10/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E7=A7=81?= =?UTF-8?q?=E6=9C=89=E5=8C=96=E4=BB=A3=E7=A0=81=E8=B0=83=E7=94=A8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=A7=86=E9=A2=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/service/sm/impl/UserMouldVideoServiceImpl.java | 3 ++- .../src/main/java/com/iformall/smsdk/SmSdkUtils.java | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java index 06a023f..8c863a0 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java @@ -395,7 +395,8 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { videoParam.setVideo_files(videoFiles); // AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId()); - AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, mouldVideo.getId())); +// AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, mouldVideo.getId())); + AiVideoResult video = SmSdkUtils.generateVideo(videoParam); if(video.isSuccess()){ videoUpd.setVideoPath(video.getUrl()); // videoUpd.setVideoTime(video.getDuration()+""); diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index 508f1b6..30b2ebb 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -45,11 +45,11 @@ public class SmSdkUtils { return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); } - public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { + public static AiVideoResult generateVideo(AiVideoParam aiVideoParam) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; // log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); - log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(dto.getId())); - ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(dto), Map.class)), String.class); + log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(aiVideoParam.getTask_id())); + ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(aiVideoParam), Map.class)), String.class); log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSON(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); From d57a1ff387c1b97f818f7f5e75a29f5554649a84 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 27 Oct 2023 18:33:35 +0800 Subject: [PATCH 11/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=A7=86=E5=B1=8Fapi=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/sm/impl/UserMouldVideoServiceImpl.java | 3 ++- .../main/java/com/iformall/smsdk/SmGenerateVideoDTO.java | 8 ++++---- .../src/main/java/com/iformall/smsdk/SmSdkUtils.java | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java index 8c863a0..8da4fdf 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java @@ -10,6 +10,7 @@ import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.sm.*; import com.iformall.enums.*; +import com.iformall.enums.sm.EnumThirdPartyType; import com.iformall.mapper.UserMouldVideoMapper; import com.iformall.service.sm.*; import com.iformall.sm.AiVideoHelper; @@ -396,7 +397,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { // AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId()); // AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, mouldVideo.getId())); - AiVideoResult video = SmSdkUtils.generateVideo(videoParam); + AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, EnumThirdPartyType.PRIVATE_JOIN.getCode())); if(video.isSuccess()){ videoUpd.setVideoPath(video.getUrl()); // videoUpd.setVideoTime(video.getDuration()+""); diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java b/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java index 1ea3682..da463e8 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmGenerateVideoDTO.java @@ -9,14 +9,14 @@ import lombok.Data; @ApiModel(value = "生成视频请求参数") @Data public class SmGenerateVideoDTO { - @ApiModelProperty(value = "视频唯一标识") - private Long id; + @ApiModelProperty(value = "类型") + private Integer type; @ApiModelProperty(value = "生成视频参数") private AiVideoParam aiVideoParam; - public static SmGenerateVideoDTO build(AiVideoParam aiVideoParam, Long id) { + public static SmGenerateVideoDTO build(AiVideoParam aiVideoParam, Integer type) { SmGenerateVideoDTO dto = new SmGenerateVideoDTO(); - dto.setId(id); + dto.setType(type); dto.setAiVideoParam(aiVideoParam); return dto; } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index 30b2ebb..41fde5d 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -45,7 +45,8 @@ public class SmSdkUtils { return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); } - public static AiVideoResult generateVideo(AiVideoParam aiVideoParam) { + public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { + AiVideoParam aiVideoParam = dto.getAiVideoParam(); String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; // log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(aiVideoParam.getTask_id())); From b5c0a81758443ef0b081b0bc610f585d13e302b2 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 27 Oct 2023 18:53:22 +0800 Subject: [PATCH 12/12] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9api?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/service/sm/impl/UserMouldVideoServiceImpl.java | 3 +-- .../src/main/java/com/iformall/smsdk/SmSdkUtils.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java index 8da4fdf..32f476f 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java @@ -396,8 +396,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { videoParam.setVideo_files(videoFiles); // AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId()); -// AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, mouldVideo.getId())); - AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, EnumThirdPartyType.PRIVATE_JOIN.getCode())); + AiVideoResult video = SmSdkUtils.generateVideo(videoParam); if(video.isSuccess()){ videoUpd.setVideoPath(video.getUrl()); // videoUpd.setVideoTime(video.getDuration()+""); diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index 41fde5d..30b2ebb 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -45,8 +45,7 @@ public class SmSdkUtils { return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); } - public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { - AiVideoParam aiVideoParam = dto.getAiVideoParam(); + public static AiVideoResult generateVideo(AiVideoParam aiVideoParam) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; // log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(aiVideoParam.getTask_id()));