Commit 46a0c336 authored by Administrator's avatar Administrator

Merge branch 'jd_dev' into 'release'

# Conflicts:
#   sql/v2.3/20250107lh.sql
#   yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberUserLevelConfigServiceImpl.java
#   yudao-server/src/main/resources/application-local.yaml
parents 18461fa0 c3f62ca0
...@@ -2,5 +2,4 @@ ...@@ -2,5 +2,4 @@
根目录下直接执行 mvn clean install package '-Dmaven.test.skip=true' 命令,将项目进行初始化的打包,预计需要 1 分钟左右。 根目录下直接执行 mvn clean install package '-Dmaven.test.skip=true' 命令,将项目进行初始化的打包,预计需要 1 分钟左右。
首次启动运行YudaoServerApplication 首次启动运行YudaoServerApplication
services:
api-jiedao-test-operator:
image: harbor.jiedao.com/api-jiedao-test-operator:latest
container_name: api-jiedao-test-operator
ports:
- "9091:9001"
environment:
env: uat
volumes:
- '/etc/localtime:/etc/localtime'
- '/jiedao/docker/test/apps/jiedao/api/logs/operator:/logs'
- '/jiedao/docker/test/apps/jiedao/static:/app/static'
- '/jiedao/docker/test/apps/jiedao/fonts/zh:/usr/share/fonts/zh'
restart: always
ulimits:
nproc: 65535
nofile:
soft: 32000
hard: 40000
deploy:
resources:
limits:
cpus: '3'
memory: 3G
networks:
app-net:
ipv4_address: 10.10.0.120
networks:
app-net:
external: true
ALTER TABLE member_user_level_details MODIFY COLUMN `config_id` bigint DEFAULT NULL COMMENT '会员等级配置id' ALTER TABLE member_user_level_details MODIFY COLUMN `config_id` bigint DEFAULT NULL COMMENT '会员等级配置id'
ALTER TABLE member_user_level_operate_log MODIFY COLUMN `config_id` bigint DEFAULT NULL COMMENT '会员等级配置id'; ALTER TABLE member_user_level_operate_log MODIFY COLUMN `config_id` bigint DEFAULT NULL COMMENT '会员等级配置id';
ALTER table member_user_level_operate_log MODIFY COLUMN `config_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '会员等级配置名称'; ALTER table member_user_level_operate_log MODIFY COLUMN `config_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '会员等级配置名称';
INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(0, '会员升级', 'levelUpdate', 'need_know_type', 0, 'default', '', NULL, '1', '2024-12-31 10:46:03', '1', '2024-12-31 11:09:39', 0, 'Membership Upgrade', 'Mise à niveau de l''adhésion');
INSERT INTO jiedao.system_need_know (know_type, title_zh, title_en, content_zh, content_en, status, creator, create_time, updater, update_time, deleted, title_fr, content_fr) VALUES('levelUpdate', '会员升级', 'Membership Upgrade', '<p><span style="text-wrap-mode: wrap;"></span><span style="text-wrap-mode: wrap;">尊敬的{username}, 恭喜您已升级成为我们{levelName}</span><span style="text-wrap-mode: wrap;">会员,会员权限将于</span>{validityPeriod}<span style="text-wrap-mode: wrap;">日到期;如有疑问请联系400-900-9962</span></p>', '<p>Dear {username}, congratulations on becoming our {levelName} member. Your membership will expire on {validityPeriod}. If you have any questions, please contact 400-900-9962</p>', 0, '1', '2024-12-31 10:52:05', '1', '2024-12-31 17:31:44', 0, 'Mise à niveau de l''adhésion', '<p>Cher {username}, félicitations pour devenir notre membre {levelName}. Votre adhésion expirera le {validityPeriod}. Si vous avez des questions, veuillez contacter 400-900-9962</p>');
...@@ -330,9 +330,6 @@ public class StrUtils { ...@@ -330,9 +330,6 @@ public class StrUtils {
* @return 转义后的值 * @return 转义后的值
*/ */
private static String escapeValue(Object value) { private static String escapeValue(Object value) {
if (value instanceof String) {
return ((String) value).replaceAll("[^a-zA-Z0-9_]", "");
}
return value.toString(); return value.toString();
} }
} }
...@@ -69,7 +69,7 @@ public class SendChampSmsClient extends AbstractSmsClient { ...@@ -69,7 +69,7 @@ public class SendChampSmsClient extends AbstractSmsClient {
List<String> messages = splitContent(content); List<String> messages = splitContent(content);
for (String message : messages) { for (String message : messages) {
// 设置发送短信所需的参数 // 设置发送短信所需的参数
Map<String, Object> param = sendchampHttp.setParams(mobile, message, "Sendchamp"); Map<String, Object> param = sendchampHttp.setParams(mobile, message, "ECLogistics");
// 设置请求头,包含认证信息 // 设置请求头,包含认证信息
Map<String, String> header = sendchampHttp.setHeader("Bearer " + properties.getApiSecret()); Map<String, String> header = sendchampHttp.setHeader("Bearer " + properties.getApiSecret());
// 发送POST请求 // 发送POST请求
...@@ -100,7 +100,7 @@ public class SendChampSmsClient extends AbstractSmsClient { ...@@ -100,7 +100,7 @@ public class SendChampSmsClient extends AbstractSmsClient {
public SmsLogDTO getReceiveStatus(SmsLogDTO smsLogDO) { public SmsLogDTO getReceiveStatus(SmsLogDTO smsLogDO) {
// 初始化短信日志DTO,并默认设置接收状态为未接收到 // 初始化短信日志DTO,并默认设置接收状态为未接收到
SmsLogDTO smsLogDTO = new SmsLogDTO(); SmsLogDTO smsLogDTO = new SmsLogDTO();
smsLogDTO.setReceiveStatus(ReceiveStatusEnum.Receive_STATUS_20.getValue()); smsLogDTO.setReceiveStatus(ReceiveStatusEnum.Receive_STATUS_10.getValue());
return smsLogDTO; return smsLogDTO;
} }
......
...@@ -137,7 +137,7 @@ public class MemberUserLevelConfigServiceImpl extends AbstractService<MemberUser ...@@ -137,7 +137,7 @@ public class MemberUserLevelConfigServiceImpl extends AbstractService<MemberUser
if (levelPage.getTotal() > 0){ if (levelPage.getTotal() > 0){
List<MemberUserLevelConfigBaseRespVO> list = levelPage.getList(); List<MemberUserLevelConfigBaseRespVO> list = levelPage.getList();
list.forEach(i -> { list.forEach(i -> {
if (i.getSort().equals(query.getSort())){ if (i.getSort().equals(query.getSort())&&!(query.getRuleNumber()!=null&&i.getRuleNumber().equals(query.getRuleNumber()))){
if (i.getStatus()==0 || i.getStatus()==1){ if (i.getStatus()==0 || i.getStatus()==1){
if (i.getEndTime()==null){ if (i.getEndTime()==null){
throw exception(LEVEL_Order_REPEAT); throw exception(LEVEL_Order_REPEAT);
......
...@@ -98,7 +98,9 @@ public interface OfferMapper extends BaseMapperX<OfferDO> { ...@@ -98,7 +98,9 @@ public interface OfferMapper extends BaseMapperX<OfferDO> {
"if(#{lang} = 0, o.objective ->> '$.titleZh', o.objective ->> '$.titleEn') as objective_name, ", "if(#{lang} = 0, o.objective ->> '$.titleZh', o.objective ->> '$.titleEn') as objective_name, ",
"user.number as customer_number, ", "user.number as customer_number, ",
"(select count(1) from ecw_customer_followup l where l.offer_id = o.offer_id) as log_count, ", "(select count(1) from ecw_customer_followup l where l.offer_id = o.offer_id) as log_count, ",
"u.nickname as creator_name, ", "(SELECT su.nickname FROM system_user as su WHERE su.id = o.creator AND su.deleted = 0 ) as creator_name,",
// 跟进客户经理
"u.nickname as follow_up_salesman_name, ",
"u.nickname as business_manager_name, ", "u.nickname as business_manager_name, ",
"cc.name as relation_name, ", "cc.name as relation_name, ",
"cc.area_code as relation_area_code, ", "cc.area_code as relation_area_code, ",
...@@ -198,6 +200,12 @@ public interface OfferMapper extends BaseMapperX<OfferDO> { ...@@ -198,6 +200,12 @@ public interface OfferMapper extends BaseMapperX<OfferDO> {
"AND o.`follow_up_salesman_id` IN ", "AND o.`follow_up_salesman_id` IN ",
"<foreach item='id' collection='pageVO.salesmanIds' open='(' close=')' separator=','> #{id} </foreach>", "<foreach item='id' collection='pageVO.salesmanIds' open='(' close=')' separator=','> #{id} </foreach>",
"</when>", "</when>",
// 根据创建人查询
"<when test = 'pageVO.creatorIds != null and pageVO.creatorIds.size() > 0'>",
"AND o.`creator` IN ",
"<foreach item='id' collection='pageVO.creatorIds' open='(' close=')' separator=','> #{id} </foreach>",
"</when>",
"<when test = 'pageVO.statusList != null and pageVO.statusList.size() > 0'>", "<when test = 'pageVO.statusList != null and pageVO.statusList.size() > 0'>",
"AND o.`status` IN ", "AND o.`status` IN ",
"<foreach item='it' collection='pageVO.statusList' open='(' close=')' separator=','> #{it} </foreach>", "<foreach item='it' collection='pageVO.statusList' open='(' close=')' separator=','> #{it} </foreach>",
...@@ -337,6 +345,11 @@ public interface OfferMapper extends BaseMapperX<OfferDO> { ...@@ -337,6 +345,11 @@ public interface OfferMapper extends BaseMapperX<OfferDO> {
"AND o.`follow_up_salesman_id` IN ", "AND o.`follow_up_salesman_id` IN ",
"<foreach item='id' collection='pageVO.salesmanIds' open='(' close=')' separator=','> #{id} </foreach>", "<foreach item='id' collection='pageVO.salesmanIds' open='(' close=')' separator=','> #{id} </foreach>",
"</when>", "</when>",
// 根据创建人查询
"<when test = 'pageVO.creatorIds != null and pageVO.creatorIds.size() > 0'>",
"AND o.`creator` IN ",
"<foreach item='id' collection='pageVO.creatorIds' open='(' close=')' separator=','> #{id} </foreach>",
"</when>",
"<when test = 'pageVO.statusList != null and pageVO.statusList.size() > 0'>", "<when test = 'pageVO.statusList != null and pageVO.statusList.size() > 0'>",
"AND o.`status` IN ", "AND o.`status` IN ",
"<foreach item='it' collection='pageVO.statusList' open='(' close=')' separator=','> #{it} </foreach>", "<foreach item='it' collection='pageVO.statusList' open='(' close=')' separator=','> #{it} </foreach>",
...@@ -426,6 +439,8 @@ public interface OfferMapper extends BaseMapperX<OfferDO> { ...@@ -426,6 +439,8 @@ public interface OfferMapper extends BaseMapperX<OfferDO> {
"<script>", "<script>",
"SELECT", "SELECT",
"o.*,", "o.*,",
"(SELECT su.nickname FROM system_user as su WHERE su.id = o.creator AND su.deleted = 0 ) as creator_name,",
"(SELECT su.nickname FROM system_user as su WHERE su.id = o.updater AND su.deleted = 0 ) as updater_name,",
"d.name as dept_name,", "d.name as dept_name,",
"u.nickname as business_manager_name,", "u.nickname as business_manager_name,",
"if(#{lang} = 0, c.name_zh, c.name_en) as channel_name, ", "if(#{lang} = 0, c.name_zh, c.name_en) as channel_name, ",
......
...@@ -189,6 +189,9 @@ public class OfferPageReqVO extends PageParam { ...@@ -189,6 +189,9 @@ public class OfferPageReqVO extends PageParam {
@ApiModelProperty(value = "客户经理列表") @ApiModelProperty(value = "客户经理列表")
private List<Long> salesmanIds; private List<Long> salesmanIds;
@ApiModelProperty(value = "创建人列表")
private List<Long> creatorIds;
@ApiModelProperty(value = "阶段列表") @ApiModelProperty(value = "阶段列表")
private List<Integer> statusList; private List<Integer> statusList;
......
...@@ -49,10 +49,14 @@ public class OfferRespVO extends OfferBaseVO { ...@@ -49,10 +49,14 @@ public class OfferRespVO extends OfferBaseVO {
@ApiModelProperty(value = "业务员名称") @ApiModelProperty(value = "业务员名称")
private String creatorName; private String creatorName;
@ApiModelProperty(value = "更新业务员名称")
private String updaterName;
@ApiModelProperty(value = "跟进业务员") @ApiModelProperty(value = "跟进业务员")
private String followUpSalesmanId; private String followUpSalesmanId;
@ApiModelProperty(value = "跟进业务员名称")
private String followUpSalesmanName;
@ApiModelProperty(value = "关联客户名称") @ApiModelProperty(value = "关联客户名称")
private String relationName; private String relationName;
......
...@@ -33,7 +33,7 @@ spring: ...@@ -33,7 +33,7 @@ spring:
druid: # Druid 【连接池】相关的全局配置 druid: # Druid 【连接池】相关的全局配置
initial-size: 5 # 初始连接数 initial-size: 5 # 初始连接数
min-idle: 10 # 最小连接池数量 min-idle: 10 # 最小连接池数量
max-active: 50 # 最大连接池数量 max-active: 20 # 最大连接池数量
max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒
time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
...@@ -46,31 +46,33 @@ spring: ...@@ -46,31 +46,33 @@ spring:
datasource: datasource:
master: master:
name: jiedao name: jiedao
url: jdbc:mysql://172.16.0.3:3306/${spring.datasource.dynamic.datasource.master.name}?useUnicode=true&useSSL=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&rewriteBatchedStatements=TRUE&connectTimeout=60000 # name: ruoyi-vue-pro-flowable
url: jdbc:mysql://172.18.96.67:2795/${spring.datasource.dynamic.datasource.master.name}?useUnicode=true&useSSL=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&rewriteBatchedStatements=TRUE
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
username: jiedao username: jiedaodb
password: Jiedao2024 password: pcn49&&1nh@086tr
slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改 slave: # 模拟从库,可根据自己需要修改
name: jiedao name: jiedao
url: jdbc:mysql://172.16.0.3:3306/${spring.datasource.dynamic.datasource.slave.name}?useUnicode=true&useSSL=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&rewriteBatchedStatements=TRUE&connectTimeout=60000 # name: ruoyi-vue-pro-flowable
url: jdbc:mysql://172.18.96.67:2795/${spring.datasource.dynamic.datasource.slave.name}?useUnicode=true&useSSL=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&rewriteBatchedStatements=TRUE
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
username: jiedao username: jiedaodb
password: Jiedao2024 password: pcn49&&1nh@086tr
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
redis: redis:
host: 172.16.0.3 # 地址 host: 172.18.96.67 # 地址
port: 6379 # 端口 port: 2796 # 端口
password: c32sW2c86
database: 0 # 数据库索引 database: 0 # 数据库索引
password: Redis2024
timeout: 60s timeout: 60s
connect-timeout: 60s connect-timeout: 60s
redis-limiter: redis-limiter:
redis-host: 172.16.0.3 # redis server IP 默认值:127.0.0.1 redis-host: 172.18.96.67 # redis server IP 默认值:127.0.0.1
redis-port: 6379 # redis service 端口 默认值:6379 redis-port: 2796 # redis service 端口 默认值:6379
redis-db: 4 # redis service 数据库 默认值:6379 redis-db: 4 # redis service 数据库 默认值:6379
redis-password: Redis2024 # redis 访问密码 默认值:null redis-password: c32sW2c86 # redis 访问密码 默认值:null
redis-connection-timeout: 2000 # redis 连接超时时间 默认值:2000 redis-connection-timeout: 2000 # redis 连接超时时间 默认值:2000
redis-pool-max-idle: 50 # redis 连接池最大空闲连接数 默认值:50 redis-pool-max-idle: 50 # redis 连接池最大空闲连接数 默认值:50
redis-pool-min-idle: 10 # redis 连接池最小空闲连接数 默认值: 10 redis-pool-min-idle: 10 # redis 连接池最小空闲连接数 默认值: 10
...@@ -87,7 +89,7 @@ spring: ...@@ -87,7 +89,7 @@ spring:
# Quartz 配置项,对应 QuartzProperties 配置类 # Quartz 配置项,对应 QuartzProperties 配置类
spring: spring:
quartz: quartz:
auto-startup: true # 测试环境,需要开启 Job auto-startup: true # 本地开发环境,尽量不要开启 Job
scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName
job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。 job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。
wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true
...@@ -170,7 +172,7 @@ spring: ...@@ -170,7 +172,7 @@ spring:
logging: logging:
level: level:
root: INFO root: INFO
cn.iocoder.yudao: INFO cn.iocoder.yudao: DEBUG
--- #################### 微信公众号相关配置 #################### --- #################### 微信公众号相关配置 ####################
wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档
...@@ -187,10 +189,12 @@ wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-sta ...@@ -187,10 +189,12 @@ wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-sta
--- #################### 捷道相关配置 #################### --- #################### 捷道相关配置 ####################
web: web:
resource: D:/temp/cms/ resource: /app/cms/
# 捷道配置项,设置当前项目所有自定义的配置 # 捷道配置项,设置当前项目所有自定义的配置
yudao: yudao:
captcha:
enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试
security: security:
token-header: Authorization token-header: Authorization
token-timeout: 30d token-timeout: 30d
...@@ -206,7 +210,7 @@ yudao: ...@@ -206,7 +210,7 @@ yudao:
pay-notify-url: http://niubi.natapp1.cc/api/pay/order/notify pay-notify-url: http://niubi.natapp1.cc/api/pay/order/notify
pay-return-url: http://niubi.natapp1.cc/api/pay/order/return pay-return-url: http://niubi.natapp1.cc/api/pay/order/return
refund-notify-url: http://niubi.natapp1.cc/api/pay/refund/notify refund-notify-url: http://niubi.natapp1.cc/api/pay/refund/notify
demo: false # 开启演示模式 demo: false # 关闭演示模式
business: # 业务运行配置 business: # 业务运行配置
debug: false # 开启debug模式 debug: false # 开启debug模式
sms-code: # 短信验证码相关的配置项 sms-code: # 短信验证码相关的配置项
...@@ -222,8 +226,8 @@ yudao: ...@@ -222,8 +226,8 @@ yudao:
begin-code: 9999 # 验证码最小值 begin-code: 9999 # 验证码最小值
end-code: 9999 # 验证码最大值。 end-code: 9999 # 验证码最大值。
member: # 会员相关配置 member: # 会员相关配置
register-url: https://apptest.groupage.cn/#/pages/register/shareRegister?code= register-url: https://applocal.groupage.cn/#/pages/register/shareRegister?code=
share-url: https://apptest.groupage.cn/# share-url: https://applocal.groupage.cn/#
justauth: justauth:
enabled: true enabled: true
...@@ -246,7 +250,7 @@ justauth: ...@@ -246,7 +250,7 @@ justauth:
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
ue: ue:
root-path: /app/static/uploads #文件存储根目录(可选配置),默认为[classpath:/static] root-path: classpath:/static #文件存储根目录(可选配置),默认为[classpath:/static]
server-url: /ueditor/jsp/controller #服务器统一请求接口路径(可选配置),默认为[/ueditor/jsp/controller] upload: cn.jasonone.ueditor.upload.LocationFileStorage #文件持久化处理类(可选配置),默认为[cn.jasonone.ueditor.upload.LocationFileStorage] server-url: /ueditor/jsp/controller #服务器统一请求接口路径(可选配置),默认为[/ueditor/jsp/controller] upload: cn.jasonone.ueditor.upload.LocationFileStorage #文件持久化处理类(可选配置),默认为[cn.jasonone.ueditor.upload.LocationFileStorage]
templates-url: templates templates-url: templates
temp-dir: temp temp-dir: temp
...@@ -45,9 +45,9 @@ spring: ...@@ -45,9 +45,9 @@ spring:
primary: master primary: master
datasource: datasource:
master: master:
name: jiedao name: jiedaodb
# name: ruoyi-vue-pro-flowable # name: ruoyi-vue-pro-flowable
url: jdbc:mysql://159.75.224.138:2292/${spring.datasource.dynamic.datasource.master.name}?useUnicode=true&useSSL=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&rewriteBatchedStatements=TRUE url: jdbc:mysql://117.72.42.41:2290/${spring.datasource.dynamic.datasource.master.name}?useUnicode=true&useSSL=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&rewriteBatchedStatements=TRUE
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
username: root username: root
password: mysql@2022 password: mysql@2022
......
...@@ -2,7 +2,7 @@ spring: ...@@ -2,7 +2,7 @@ spring:
application: application:
name: yudao-admin-server name: yudao-admin-server
profiles: profiles:
active: local active: dev
mvc: mvc:
static-path-pattern: /** static-path-pattern: /**
web: web:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment