From 4bdc6337ddc03790a7242a7f8207cee86e2f3196 Mon Sep 17 00:00:00 2001 From: wing <10123261+rattan-xiamingrui@user.noreply.gitee.com> Date: Mon, 6 Oct 2025 13:34:12 +0800 Subject: [PATCH] Default Changelist --- yudao-module-ai/pom.xml | 20 ++ .../admin/tikhup/TikHupController.java | 47 +++++ .../admin/tikhup/vo/TikTokenVO.java | 31 +++ .../ai/dal/mysql/tikhup/TikHupMapper.java | 14 ++ .../tikhup/TikFileTransCharacters.java | 178 ++++++++++++++++++ .../ai/service/tikhup/TikHupService.java | 30 +++ .../ai/service/tikhup/TikHupServiceImpl.java | 107 +++++++++++ .../src/main/resources/application.yaml | 4 +- .../src/main/resources/application-dev.yaml | 6 +- .../src/main/resources/application-local.yaml | 24 +-- 10 files changed, 444 insertions(+), 17 deletions(-) create mode 100644 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/tikhup/TikHupController.java create mode 100644 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/tikhup/vo/TikTokenVO.java create mode 100644 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/tikhup/TikHupMapper.java create mode 100644 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikFileTransCharacters.java create mode 100644 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikHupService.java create mode 100644 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikHupServiceImpl.java diff --git a/yudao-module-ai/pom.xml b/yudao-module-ai/pom.xml index 95a28979a1..8773e02a9a 100644 --- a/yudao-module-ai/pom.xml +++ b/yudao-module-ai/pom.xml @@ -25,6 +25,26 @@ + + com.mashape.unirest + unirest-java + 1.4.9 + + + com.aliyun + aliyun-java-sdk-core + 4.6.3 + + + com.alibaba.nls + nls-sdk-transcriber + 2.2.1 + + + com.alibaba.nls + nls-sdk-common + 2.1.6 + cn.iocoder.boot yudao-module-system diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/tikhup/TikHupController.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/tikhup/TikHupController.java new file mode 100644 index 0000000000..7e7a0114a9 --- /dev/null +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/tikhup/TikHupController.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.ai.controller.admin.tikhup; + +import cn.iocoder.yudao.module.ai.service.tikhup.TikHupService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +@Tag(name = "TikHup - TikTok数据管理", description = "TikHup平台TikTok数据获取相关接口") +@RestController +@RequestMapping("/ai/tikHup") +@RequiredArgsConstructor +public class TikHupController { + + private final TikHupService tikHupService; + + @GetMapping("/fetch_user_post_videos") + @Operation( + summary = "获取用户主页作品数据", + description = "通过TikHup API获取指定用户的TikTok作品数据,包括视频列表、用户信息等" + ) + public Object fetch_user_post_videos( + @RequestParam String type, + @RequestParam String sec_user_id, + @RequestParam int max_cursor, + @RequestParam int count) { + return tikHupService.fetch_user_post_videos(type, sec_user_id,max_cursor, count); + } + + @PostMapping("/videoToCharacters") + @Operation(summary = "音频转文字", description = "音频转文字接口") + public Object videoToCharacters(@RequestBody Map fileLinkMap) { + String fileLink = (String) fileLinkMap.get("fileLink"); + return tikHupService.videoToCharacters(fileLink); + } + + @PostMapping("/videoToCharacters2") + @Operation(summary = "音频转文字", description = "音频转文字接口") + public Object videoToCharacters2(@RequestBody Map fileLinkMap) { + List fileLinkList = (List) fileLinkMap.get("fileLinkList"); + return tikHupService.videoToCharacters2(fileLinkList); + } + +} diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/tikhup/vo/TikTokenVO.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/tikhup/vo/TikTokenVO.java new file mode 100644 index 0000000000..cf8db27f28 --- /dev/null +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/tikhup/vo/TikTokenVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.ai.controller.admin.tikhup.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "TikToken - TikToken管理 Request VO") +@TableName("tik_token") +@Data +public class TikTokenVO { + + @Schema( + description = "TikHup平台API地址", + requiredMode = Schema.RequiredMode.REQUIRED, + example = "https://api.tikhub.io/api/v1/xiaohongshu/app/get_user_info", + title = "平台API地址" + ) + @TableField(value = "platform_url") + private String platformUrl; + + @Schema( + description = "TikHup平台访问Token,用于API认证", + requiredMode = Schema.RequiredMode.REQUIRED, + example = "y15aJOgphU+dik4QGaCW3CL2bR7eQ6ZA2Tz3tUe8c6ycoW27OX+zRTO6Ow==", + title = "平台访问Token" + ) + @TableField(value = "platform_token") + private String platformToken; + +} diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/tikhup/TikHupMapper.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/tikhup/TikHupMapper.java new file mode 100644 index 0000000000..442e848a85 --- /dev/null +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/mysql/tikhup/TikHupMapper.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.ai.dal.mysql.tikhup; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.ai.controller.admin.tikhup.vo.TikTokenVO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TikHupMapper extends BaseMapperX { + + default TikTokenVO getPlatformToken(String platformUrl) { + return selectOne("platform_url",platformUrl); + } + +} diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikFileTransCharacters.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikFileTransCharacters.java new file mode 100644 index 0000000000..e9ddafcf72 --- /dev/null +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikFileTransCharacters.java @@ -0,0 +1,178 @@ +package cn.iocoder.yudao.module.ai.service.tikhup; + +import com.alibaba.fastjson.JSONObject; +import com.aliyuncs.CommonRequest; +import com.aliyuncs.CommonResponse; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.exceptions.ClientException; +import com.aliyuncs.http.MethodType; +import com.aliyuncs.profile.DefaultProfile; + +public class TikFileTransCharacters { + + // 地域ID,常量,固定值。 + public static final String REGIONID = "cn-shanghai"; + public static final String ENDPOINTNAME = "cn-shanghai"; + public static final String PRODUCT = "nls-filetrans"; + public static final String DOMAIN = "filetrans.cn-shanghai.aliyuncs.com"; + public static final String API_VERSION = "2018-08-17"; // 中国站版本 + // public static final String API_VERSION = "2019-08-23"; // 国际站版本 + public static final String POST_REQUEST_ACTION = "SubmitTask"; + public static final String GET_REQUEST_ACTION = "GetTaskResult"; + // 请求参数 + public static final String KEY_APP_KEY = "appkey"; + public static final String KEY_FILE_LINK = "file_link"; + public static final String KEY_VERSION = "version"; + public static final String KEY_ENABLE_WORDS = "enable_words"; + // 响应参数 + public static final String KEY_TASK = "Task"; + public static final String KEY_TASK_ID = "TaskId"; + public static final String KEY_STATUS_TEXT = "StatusText"; + public static final String KEY_RESULT = "Result"; + // 状态值 + public static final String STATUS_SUCCESS = "SUCCESS"; + private static final String STATUS_RUNNING = "RUNNING"; + private static final String STATUS_QUEUEING = "QUEUEING"; + // 阿里云鉴权client + IAcsClient client; + public TikFileTransCharacters(String accessKeyId, String accessKeySecret) { + // 设置endpoint + try { + DefaultProfile.addEndpoint(ENDPOINTNAME, REGIONID, PRODUCT, DOMAIN); + } catch (ClientException e) { + e.printStackTrace(); + } + // 创建DefaultAcsClient实例并初始化 + DefaultProfile profile = DefaultProfile.getProfile(REGIONID, accessKeyId, accessKeySecret); + this.client = new DefaultAcsClient(profile); + } + public String submitFileTransRequest(String appKey, String fileLink) { + /** + * 1. 创建CommonRequest,设置请求参数。 + */ + CommonRequest postRequest = new CommonRequest(); + // 设置域名 + postRequest.setDomain(DOMAIN); + // 设置API的版本号,格式为YYYY-MM-DD。 + postRequest.setVersion(API_VERSION); + // 设置action + postRequest.setAction(POST_REQUEST_ACTION); + // 设置产品名称 + postRequest.setProduct(PRODUCT); + /** + * 2. 设置录音文件识别请求参数,以JSON字符串的格式设置到请求Body中。 + */ + JSONObject taskObject = new JSONObject(); + // 设置appkey + taskObject.put(KEY_APP_KEY, appKey); + // 设置音频文件访问链接 + taskObject.put(KEY_FILE_LINK, fileLink); + // 新接入请使用4.0版本,已接入(默认2.0)如需维持现状,请注释掉该参数设置。 + taskObject.put(KEY_VERSION, "4.0"); + // 设置是否输出词信息,默认为false,开启时需要设置version为4.0及以上。 + taskObject.put(KEY_ENABLE_WORDS, true); + String task = taskObject.toJSONString(); + System.out.println(task); + // 设置以上JSON字符串为Body参数。 + postRequest.putBodyParameter(KEY_TASK, task); + // 设置为POST方式的请求。 + postRequest.setMethod(MethodType.POST); + // postRequest.setHttpContentType(FormatType.JSON); //当aliyun-java-sdk-core 版本为4.6.0及以上时,请取消该行注释 + /** + * 3. 提交录音文件识别请求,获取录音文件识别请求任务的ID,以供识别结果查询使用。 + */ + String taskId = null; + try { + CommonResponse postResponse = client.getCommonResponse(postRequest); + System.err.println("提交录音文件识别请求的响应:" + postResponse.getData()); + if (postResponse.getHttpStatus() == 200) { + JSONObject result = JSONObject.parseObject(postResponse.getData()); + String statusText = result.getString(KEY_STATUS_TEXT); + if (STATUS_SUCCESS.equals(statusText)) { + taskId = result.getString(KEY_TASK_ID); + } + } + } catch (ClientException e) { + e.printStackTrace(); + } + return taskId; + } + public String getFileTransResult(String taskId) { + /** + * 1. 创建CommonRequest,设置任务ID。 + */ + CommonRequest getRequest = new CommonRequest(); + // 设置域名 + getRequest.setDomain(DOMAIN); + // 设置API版本 + getRequest.setVersion(API_VERSION); + // 设置action + getRequest.setAction(GET_REQUEST_ACTION); + // 设置产品名称 + getRequest.setProduct(PRODUCT); + // 设置任务ID为查询参数 + getRequest.putQueryParameter(KEY_TASK_ID, taskId); + // 设置为GET方式的请求 + getRequest.setMethod(MethodType.GET); + /** + * 2. 提交录音文件识别结果查询请求 + * 以轮询的方式进行识别结果的查询,直到服务端返回的状态描述为“SUCCESS”或错误描述,则结束轮询。 + */ + String result = null; + while (true) { + try { + CommonResponse getResponse = client.getCommonResponse(getRequest); + System.err.println("识别查询结果:" + getResponse.getData()); + if (getResponse.getHttpStatus() != 200) { + break; + } + JSONObject rootObj = JSONObject.parseObject(getResponse.getData()); + String statusText = rootObj.getString(KEY_STATUS_TEXT); + if (STATUS_RUNNING.equals(statusText) || STATUS_QUEUEING.equals(statusText)) { + // 继续轮询,注意设置轮询时间间隔。 + Thread.sleep(10000); + } + else { + // 状态信息为成功,返回识别结果;状态信息为异常,返回空。 + if (STATUS_SUCCESS.equals(statusText)) { + result = rootObj.getString(KEY_RESULT); + // 状态信息为成功,但没有识别结果,则可能是由于文件里全是静音、噪音等导致识别为空。 + if(result == null) { + result = ""; + } + } + break; + } + } catch (Exception e) { + e.printStackTrace(); + } + } + return result; + } + public static void main(String args[]) throws Exception { + final String accessKeyId = System.getenv().get("ALIYUN_AK_ID"); + final String accessKeySecret = System.getenv().get("ALIYUN_AK_SECRET"); + final String appKey = System.getenv().get("NLS_APP_KEY"); + String fileLink = "https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav"; + TikFileTransCharacters demo = new TikFileTransCharacters(accessKeyId, accessKeySecret); + // 第一步:提交录音文件识别请求,获取任务ID用于后续的识别结果轮询。 + String taskId = demo.submitFileTransRequest(appKey, fileLink); + if (taskId != null) { + System.out.println("录音文件识别请求成功,task_id: " + taskId); + } + else { + System.out.println("录音文件识别请求失败!"); + return; + } + // 第二步:根据任务ID轮询识别结果。 + String result = demo.getFileTransResult(taskId); + if (result != null) { + System.out.println("录音文件识别结果查询成功:" + result); + } + else { + System.out.println("录音文件识别结果查询失败!"); + } + } + +} diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikHupService.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikHupService.java new file mode 100644 index 0000000000..2801f03209 --- /dev/null +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikHupService.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.ai.service.tikhup; + +import java.util.List; + +public interface TikHupService { + + /** + * 获取用户主页作品数据 + * @param sec_user_id 类型 + * @param sec_user_id 用户 + * @param count 查询总数 + * @return Response + */ + Object fetch_user_post_videos(String type,String sec_user_id,int max_cursor, int count); + + /** + * 音频转文字 + * @param downloadUrl 下载地址 + * @return 语音文字 + */ + Object videoToCharacters(String downloadUrl); + + /** + * 批量音频转文字 + * @param fileLinkList 音频地址 + * @return 语音文字 + */ + Object videoToCharacters2(List fileLinkList); + +} diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikHupServiceImpl.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikHupServiceImpl.java new file mode 100644 index 0000000000..e4e1e0fcd6 --- /dev/null +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/tikhup/TikHupServiceImpl.java @@ -0,0 +1,107 @@ +package cn.iocoder.yudao.module.ai.service.tikhup; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.ai.controller.admin.tikhup.vo.TikTokenVO; +import cn.iocoder.yudao.module.ai.dal.mysql.tikhup.TikHupMapper; +import com.alibaba.dashscope.audio.asr.transcription.Transcription; +import com.alibaba.dashscope.audio.asr.transcription.TranscriptionParam; +import com.alibaba.dashscope.audio.asr.transcription.TranscriptionQueryParam; +import com.alibaba.dashscope.audio.asr.transcription.TranscriptionResult; +import com.alibaba.fastjson.JSON; +import com.google.gson.GsonBuilder; +import com.mashape.unirest.http.HttpResponse; +import com.mashape.unirest.http.Unirest; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class TikHupServiceImpl implements TikHupService{ + + private final TikHupMapper tikHupMapper; + + @Override + public Object fetch_user_post_videos(String type,String sec_user_id, int max_cursor, int count){ + String url = StringUtils.EMPTY; + if("xiaohongshu".equals(type)){ + url = "https://api.tikhub.io/api/v1/xiaohongshu/app/get_user_info"; + } else if("tik-web".equals(type)){ + url = "https://api.tikhub.io/api/v1/douyin/web/fetch_user_post_videos"; + } else if("tik-app".equals(type)){ + url = "https://api.tikhub.io/api/v1/douyin/app/v3/fetch_user_post_videos"; + } + TikTokenVO tikTokenVO = tikHupMapper.getPlatformToken(url); + String Authorization = tikTokenVO.getPlatformToken(); + try{ + Unirest.setTimeouts(0, 0); + HttpResponse response = Unirest.get(url+"?sec_user_id="+sec_user_id+"&max_cursor="+max_cursor+"&count="+count) + .header("Authorization", "Bearer "+Authorization) + .asString(); + if(response.getStatus() == 200){ + Long userId = SecurityFrameworkUtils.getLoginUser().getId(); + return JSON.parseObject(response.getBody()); + } + }catch (Exception e){ + log.error("fetch_user_post_videos接口调用异常"); + } + return new HashMap<>(); + } + + private final String appKey = "sldJ4XSpYp3rKALZ "; + private final String accessKeyId = "LTAI5tPV9Ag3csf41GZjaLTA"; + private final String accessKeySecret = "kDqlGeJTKw6tJtFYiaY8vQTFuVIQDs"; + + @Override + public Object videoToCharacters(String fileLink){ + TikFileTransCharacters tikFileTransCharacters = new TikFileTransCharacters(accessKeyId, accessKeySecret); + // 第一步:提交录音文件识别请求,获取任务ID用于后续的识别结果轮询。 + String taskId = tikFileTransCharacters.submitFileTransRequest(appKey, fileLink); + if (taskId == null) { + return CommonResult.error(500,"录音文件识别请求失败!"); + } + // 第二步:根据任务ID轮询识别结果。 + String transResult = tikFileTransCharacters.getFileTransResult(taskId); + if (transResult == null) { + return CommonResult.error(501,"录音文件识别请求失败!"); + } + return CommonResult.success(transResult); + } + + private final String apiKey = "sk-10c746f8cb8640738f8d6b71af699003"; + + @Override + public Object videoToCharacters2(List fileLinkList){ + // 创建转写请求参数 + TranscriptionParam param = + TranscriptionParam.builder() + // 若没有将API Key配置到环境变量中,需将apiKey替换为自己的API Key + .apiKey(apiKey) + .model("paraformer-v1") + // “language_hints”只支持paraformer-v2模型 + .parameter("language_hints", new String[]{"zh", "en"}) + .fileUrls(fileLinkList) + .build(); + try { + Transcription transcription = new Transcription(); + // 提交转写请求 + TranscriptionResult result = transcription.asyncCall(param); + log.info("RequestId: {}" ,result.getRequestId()); + // 阻塞等待任务完成并获取结果 + result = transcription.wait( + TranscriptionQueryParam.FromTranscriptionParam(param, result.getTaskId())); + return CommonResult.success(new GsonBuilder().setPrettyPrinting().create().toJson(result.getOutput())); + } catch (Exception e) { + log.error(e.getMessage()); + return CommonResult.error(500,"录音文件识别请求失败!"); + } + + } + +} diff --git a/yudao-module-iot/yudao-module-iot-gateway/src/main/resources/application.yaml b/yudao-module-iot/yudao-module-iot-gateway/src/main/resources/application.yaml index b85e84c170..8bd8b18974 100644 --- a/yudao-module-iot/yudao-module-iot-gateway/src/main/resources/application.yaml +++ b/yudao-module-iot/yudao-module-iot-gateway/src/main/resources/application.yaml @@ -7,10 +7,10 @@ spring: # Redis 配置 data: redis: - host: 127.0.0.1 # Redis 服务器地址 + host: 8.155.172.147 # Redis 服务器地址 port: 6379 # Redis 服务器端口 database: 0 # Redis 数据库索引 - # password: # Redis 密码,如果有的话 + password: sion+Rui!$ # Redis 密码,如果有的话 timeout: 30000ms # 连接超时时间 --- #################### 消息队列相关 #################### diff --git a/yudao-server/src/main/resources/application-dev.yaml b/yudao-server/src/main/resources/application-dev.yaml index 970002f84a..dde76b9a3c 100644 --- a/yudao-server/src/main/resources/application-dev.yaml +++ b/yudao-server/src/main/resources/application-dev.yaml @@ -170,9 +170,9 @@ wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-sta # 芋道配置项,设置当前项目所有自定义的配置 yudao: pay: - order-notify-url: http://yunai.natapp1.cc/admin-api/pay/notify/order # 支付渠道的【支付】回调地址 - refund-notify-url: http://yunai.natapp1.cc/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址 - transfer-notify-url: https://yunai.natapp1.cc/admin-api/pay/notify/transfer # 支付渠道的【转账】回调地址 + order-notify-url: http://8.155.172.147/admin-api/pay/notify/order # 支付渠道的【支付】回调地址 + refund-notify-url: http://8.155.172.147/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址 + transfer-notify-url: https://8.155.172.147/admin-api/pay/notify/transfer # 支付渠道的【转账】回调地址 demo: false # 开启演示模式 tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 2185548b55..6fe0277d50 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -1,5 +1,5 @@ server: - port: 48080 + port: 48081 --- #################### 数据库相关配置 #################### spring: @@ -47,7 +47,7 @@ spring: primary: master datasource: master: - url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + url: jdbc:mysql://8.155.172.147:3306/sion_rui_dev?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 # url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=true&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true # MySQL Connector/J 5.X 连接的示例 # url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro # PostgreSQL 连接的示例 # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 @@ -55,8 +55,8 @@ spring: # url: jdbc:dm://127.0.0.1:5236?schema=RUOYI_VUE_PRO # DM 连接的示例 # url: jdbc:kingbase8://127.0.0.1:54321/test # 人大金仓 KingbaseES 连接的示例 # url: jdbc:postgresql://127.0.0.1:5432/postgres # OpenGauss 连接的示例 - username: root - password: 123456 + username: sion_rui_dev + password: 4w8GaSMmcihjzxkz # username: sa # SQL Server 连接的示例 # password: Yudao@2024 # SQL Server 连接的示例 # username: SYSDBA # DM 连接的示例 @@ -65,9 +65,9 @@ spring: # password: Yudao@2024 # OpenGauss 连接的示例 slave: # 模拟从库,可根据自己需要修改 lazy: true # 开启懒加载,保证启动速度 - url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true - username: root - password: 123456 + url: jdbc:mysql://8.155.172.147:3306/sion_rui_dev?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true + username: sion_rui_dev + password: 4w8GaSMmcihjzxkz # tdengine: # IoT 数据库(需要 IoT 物联网再开启噢!) # url: jdbc:TAOS-RS://127.0.0.1:6041/ruoyi_vue_pro # driver-class-name: com.taosdata.jdbc.rs.RestfulDriver @@ -79,10 +79,10 @@ spring: # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 data: redis: - host: 127.0.0.1 # 地址 + host: 8.155.172.147 # 地址 port: 6379 # 端口 database: 0 # 数据库索引 -# password: dev # 密码,建议生产环境开启 + password: sion+Rui!$ # 密码,建议生产环境开启 --- #################### 定时任务相关配置 #################### @@ -228,9 +228,9 @@ yudao: security: mock-enable: true pay: - order-notify-url: https://yutou.mynatapp.cc/admin-api/pay/notify/order # 支付渠道的【支付】回调地址 - refund-notify-url: https://yutou.mynatapp.cc/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址 - transfer-notify-url: https://yutou.mynatapp.cc/admin-api/pay/notify/transfer # 支付渠道的【转账】回调地址 + order-notify-url: http://8.155.172.147/admin-api/pay/notify/order # 支付渠道的【支付】回调地址 + refund-notify-url: http://8.155.172.147/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址 + transfer-notify-url: http://8.155.172.147/admin-api/pay/notify/transfer # 支付渠道的【转账】回调地址 access-log: # 访问日志的配置项 enable: false demo: false # 关闭演示模式