Compare commits

..

20 Commits

Author SHA1 Message Date
sh
6ad695f52d 添加面试邀约接口 2026-06-18 19:33:57 +08:00
sh
b074ae45a5 优化es查询 2026-06-18 16:08:02 +08:00
sh
7c22f78f6a 修改互联网端企业登录时查询个人账号,传入角色 2026-06-17 11:25:32 +08:00
sh
bcca13f396 修改问题判断企业和岗位时,是企业则,社会信用代码为空则返回空 2026-06-17 00:13:28 +08:00
sh
4feffc1c48 修改竞争力分析-报错问题 2026-06-12 16:40:51 +08:00
sh
133be8a181 优化es查询(薪资、jobTitle) 2026-06-10 19:29:08 +08:00
sh
b479bf8566 修改配置文件 2026-06-10 13:00:37 +08:00
sh
e4ca1bc13b 修改数据库链接为本地 2026-06-10 12:58:33 +08:00
sh
032668eb3a 修改数据库链接为本地 2026-06-10 12:56:39 +08:00
sh
4d6e4f4309 启动文件添加金蝶配置路径1 2026-06-10 12:52:49 +08:00
sh
cc85fc9614 启动文件添加金蝶配置路径 2026-06-10 12:43:24 +08:00
sh
71725e7bf9 启动文件添加金蝶配置路径 2026-06-10 12:31:50 +08:00
sh
21c1048e57 启动文件添加金蝶配置路径 2026-06-10 12:29:31 +08:00
sh
4939461402 启动文件添加金蝶配置路径 2026-06-10 11:30:56 +08:00
sh
00340fc63b 正式环境配置文件 2026-06-10 10:23:07 +08:00
马宝龙
3d1996219e 调整配置 2026-06-09 10:31:54 +08:00
马宝龙
f2cd10c73a 调整配置 2026-06-05 19:01:01 +08:00
马宝龙
8bb3c7762e 调整jar引入方式 2026-06-05 18:51:26 +08:00
马宝龙
c671b3aa1b 修改生产环境配置 2026-06-05 18:22:03 +08:00
马宝龙
c84844ea5b 使用 金蝶Apusic应用服务器 内嵌jar 启动服务 2026-06-05 18:19:53 +08:00
27 changed files with 1528 additions and 434 deletions

47
README.md Normal file
View File

@@ -0,0 +1,47 @@
## 启动设置
### 金蝶Apusic应用服务器
#### 排除tomcat已完成
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
```
#### 引入金蝶Apusic应用服务器已完成
```xml
<!-- 金蝶Apusic应用服务器 -->
<dependency>
<groupId>com.apusic</groupId>
<artifactId>aams-spring-boot-starter-all</artifactId>
<version>2.4.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/aams-spring-boot-starter-all-2.4.0.jar</systemPath>
</dependency>
```
#### 设置VM参数授权认证
**找到Run->Edit Configuretion->Spring Boot中的项目启动类在右边的VM options中输入 -
Duser.dir=xxxxxxxx xxxxxxxx 表示 license.xml 文件所在的目录例如D:xxx\rsks-boot\ruoyi-framework 其中D:\xxx为项目所在目录**
### 奇安信国密安全密码应用中间件
#### 引入奇安信国密安全密码应用中间件(已完成)
```xml
<!-- 奇安信国密安全密码应用中间件 -->
<dependency>
<groupId>org.quickssl</groupId>
<artifactId>quickapi-client-java</artifactId>
<version>1.5.11-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/quickapi-client-java-1.5.11-SNAPSHOT.jar</systemPath>
</dependency>
```

View File

@@ -8,10 +8,10 @@ LOG_PATH=${DES_PATH}/logs
LOG_FILE=${LOG_PATH}/backend.log LOG_FILE=${LOG_PATH}/backend.log
BACK_LOG=${LOG_PATH}/back/backend-info.log BACK_LOG=${LOG_PATH}/back/backend-info.log
MODEL_NAME=${JAR_PATH} MODEL_NAME=${JAR_PATH}
PROFILE=dev PROFILE=test
# JVM配置 # JVM配置
JVM_MEMORY=" -Xms2048M -Xmx2048M -XX:MaxDirectMemorySize=2048M" JVM_MEMORY=" -Xms2048M -Xmx2048M -XX:MaxDirectMemorySize=2048M -Dlicpath:/root/ks/license.xml"
# 远程调试 # 远程调试
JVM_DEBUG="" JVM_DEBUG=""
# JVM_DEBUG=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6011" # JVM_DEBUG=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6011"

View File

@@ -125,6 +125,7 @@
<version>2.5.15</version> <version>2.5.15</version>
<configuration> <configuration>
<fork>true</fork> <!-- 如果没有该配置devtools不会生效 --> <fork>true</fork> <!-- 如果没有该配置devtools不会生效 -->
<includeSystemScope>true</includeSystemScope>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>

View File

@@ -1,16 +1,78 @@
# 数据源配置
# 项目相关配置
ruoyi:
# 名称
name: RuoYi
# 版本
version: 3.8.8
# 版权年份
copyrightYear: 2024
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
captchaType: math
# 开发环境配置
server:
# 服务器的HTTP端口默认为8080
port: 9091
servlet:
# 应用的访问路径
context-path: /
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数默认为100
accept-count: 1000
threads:
# tomcat最大线程数默认为200
max: 800
# Tomcat启动初始化的线程数默认值10
min-spare: 100
# 日志配置
logging:
level:
com.ruoyi: debug
org.springframework: warn
# 用户配置
user:
password:
# 密码最大错误次数
maxRetryCount: 5
# 密码锁定时间默认10分钟
lockTime: 10
# Spring配置
spring: spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
datasource: datasource:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.highgo.jdbc.Driver driverClassName: com.highgo.jdbc.Driver
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:highgo://127.0.0.1:5866/highgo?useUnicode=true&characterEncoding=utf8&currentSchema=ks_db4&stringtype=unspecified url: jdbc:highgo://124.243.245.42:5866/highgo?useUnicode=true&characterEncoding=utf8&currentSchema=ks_db4&stringtype=unspecified
#username: syssso
username: sysdba username: sysdba
password: ZKR2024@comzkr password: ZKR2024@comzkr
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
@@ -63,7 +125,7 @@ spring:
multi-statement-allow: true multi-statement-allow: true
redis: redis:
# 地址 # 地址
host: 127.0.0.1 host: 124.243.245.42
# 端口默认为6379 # 端口默认为6379
port: 5379 port: 5379
# 数据库索引 # 数据库索引
@@ -82,15 +144,193 @@ spring:
max-active: 8 max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制) # #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms max-wait: -1ms
# redis 配置
# token配置
token:
# 令牌自定义标识
header: Authorization
# 令牌密钥
secret: Abc123!@#Def456$%^Ghi789&*()Jkl0+-=MnoPqrStuVwxYz987$%^654@#$321!@#ZyxWvu
# 令牌有效期默认30分钟
expireTime: 30
## MyBatis配置
#mybatis:
# # 搜索指定包别名
# typeAliasesPackage: com.ruoyi.**.domain
# # 配置mapper的扫描找到所有的mapper.xml映射文件
# mapperLocations: classpath*:mapper/**/*Mapper.xml
# # 加载全局的配置文件
# configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
helperDialect: oracle
supportMethodsArguments: true
params: count=countSql
# Swagger配置
swagger:
# 是否开启swagger
enabled: true
# 请求前缀
pathMapping:
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
createSqlSessionFactory:
# 选择MyBatis配置方式mybatis / mybatis-plus
use: mybatis-plus
# MyBatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# MyBatis Plus配置
mybatis-plus:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
global-config:
db-config:
# 标识逻辑删除的数据库字段名称
logic-delete-field: delFlag
# 表示已逻辑删除的值(默认也是如此)
logic-delete-value: 2
# 表示未逻辑删除的值(默认也是如此)
logic-not-delete-value: 0
file:
upload-dir: /data/file
ocr:
ocr_url: http://127.0.0.1:9001/ocr
ocr_mutipart: https://qd.zhaopinzao8dian.com/ocr-api/ocr
# ocr_mutipart: http://10.98.80.141:9000/ocr
ocr_llm_url: http://39.98.44.136:6016/inner-ai/aicoapi/gateway/v2/chatbot/api_run/1763386387_d4c07131-a047-4c0d-9623-7e3c3a45bd7e
ocr_llm_apiKey: NfzPnFRtogHlYCAh2hHIB7ra5EsrSQEM
cipher-security:
socket: 39.102.146.78:11028
path: /data/downloadmodel/certTest
# socket: 10.98.80.223:8443
# path: /data/downloadmodel/cert
#nginx节点健康检查
management:
endpoints:
web:
exposure:
include: health
#微信小程序
wx:
appid: wx4aa34488b965a331
secret: 558780ecc2750f87e556b0e5496773c9
# easy-es # easy-es
easy-es: easy-es:
enable: true enable: true
banner: false banner: false
address: 127.0.0.1:9200 address: 124.243.245.42:9200
global-config: global-config:
process-index-mode: manual process-index-mode: manual
db-config: db-config:
refresh-policy: immediate refresh-policy: immediate
username: elastic username: elastic
password: zkr2024@@.com password: zkr2024@@.com
#短信服务
sms:
#API密钥账号
# secretName: kszhjyrcjt
secretName: kszhjypthydx
#API密钥
# secretKey: Dwhc9c0IiHecvC5D
secretKey: asj1gze3BhG3QtaI
#短信模板ID
# templateId: 37446
templateId: 49566
#统一门户认证
oauth:
#客户端的ID
appid: 251112100000000015
#授权码
clientsecretkey: 2a44cb8d21dcf4b0777881ca11ea0d83ebea94bbe1ab1f405508db0873cdcc99
#内网
usptnw:
#获取访问令牌
nwGatewayGetTokenUrl: http://10.98.80.146/uspt/serviceAPI/getToken
#获取用户信息
nwGatewayGetUserInfoUrl: http://10.98.80.146/uspt/serviceAPI/getUserInfo
#外网
usptww:
#门户注册
wwRegisterPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/doWebRegister
#门户登录
wwTokenPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/doWebLogon
#查询用户信息
wwQueryWebUserInfo: http://10.98.80.50/uspt/webWhiteListServiceAPI/queryWebUserInfo
#查询个人信息
wwQueryWebPersonalInfoPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/queryWebPersonalInfo
#查询单位信息
wwQueryWebEnterpriseInfoPostUrl: http://10.98.80.50/uspt//webWhiteListServiceAPI/queryWebEnterpriseInfo
#用户新增接口
tyAddUserUrl: http://10.98.80.146/qxgl_backend/security/add_user
#获取当前用户有权系统列表
tyQueryUserSysListUrl: http://10.98.80.146/qxgl_backend/security/get_effective_app_list
#获取当前用户有权角色列表
tyQueryUserRoleListUrl: http://10.98.80.146/qxgl_backend/security/get_role_by_userid
#获取角色功能权限信息
tyQueryRoleInfoUrl: http://10.98.80.146/qxgl_backend/security/get_path_by_role
#获取用户详细信息
tyQueryUserInfo: http://10.98.80.146/qxgl_backend/security/get_user_by_userid
#获取机构详细信息
tyQueryUnitInfo: http://10.98.80.146/qxgl_backend/security/get_organization_by_organizationid
connect-timeout: 10
read-timeout: 30
write-timeout: 30
#浪潮
lc:
#获取人员标签
personTag: http://10.98.80.146/prod-api/dispatch/public/person/tag
#ai
chat:
baseUrl: http://192.168.133.200:8080
chatUrl: /v1/chat/completions
chatDetailUrl: /core/chat/getPaginationRecords
chatHistoryUrl: /core/chat/getHistories
updateNameUrl: /core/chat/updateHistory
stickChatUrl: /core/chat/updateHistory
delChatUrl: /core/chat/delHistory
delAllChatUrl: /core/chat/clearHistories
guestUrl: /v1/chat/completions
praiseUrl: /core/chat/feedback/updateUserFeedback
appId: 67cd49095e947ae0ca7fadd8
apiKey: fastgpt-qMl63276wPZvKAxEkW77bur0sSJpmuC6Ngg9lzyEjufLhsBAurjT55j
model: qd-job-turbo
audioText:
asr: http://192.168.133.200:8000/asr/file
#tts: http://192.168.133.200:19527/synthesize
tts: http://10.98.76.104:19528/synthesize

View File

@@ -1,93 +0,0 @@
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.highgo.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:highgo://124.243.245.42:5866/highgo?useUnicode=true&characterEncoding=utf8&currentSchema=ks_db4&stringtype=unspecified
username: sysdba
password: ZKR2024@comzkr
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 10
# 最小连接池数量
minIdle: 30
# 最大连接池数量
maxActive: 50
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT version()
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
redis:
# 地址
host: 124.243.245.42
# 端口默认为6379
port: 5379
# 数据库索引
database: 5
# 密码
password: ZKR2024@@.com
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# easy-es
easy-es:
enable: true
banner: false
address: 124.243.245.42:9200
global-config:
process-index-mode: manual
db-config:
refresh-policy: immediate
username: elastic
password: zkr2024@@.com

View File

@@ -0,0 +1,333 @@
# 项目相关配置
ruoyi:
# 名称
name: RuoYi
# 版本
version: 3.8.8
# 版权年份
copyrightYear: 2024
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
captchaType: math
# 开发环境配置
server:
# 服务器的HTTP端口默认为8080
port: 9096
servlet:
# 应用的访问路径
context-path: /
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数默认为100
accept-count: 1000
threads:
# tomcat最大线程数默认为200
max: 800
# Tomcat启动初始化的线程数默认值10
min-spare: 100
# 日志配置
logging:
level:
com.ruoyi: debug
org.springframework: warn
# 用户配置
user:
password:
# 密码最大错误次数
maxRetryCount: 5
# 密码锁定时间默认10分钟
lockTime: 10
# Spring配置
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.highgo.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:highgo://10.98.80.230:5866/highgo?useUnicode=true&characterEncoding=utf8&currentSchema=ks_db4&stringtype=unspecified
username: sysdba
password: ZKR2026@comzkr
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 10
# 最小连接池数量
minIdle: 30
# 最大连接池数量
maxActive: 50
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT version()
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
redis:
# 地址
host: 10.98.80.37
# 端口默认为6379
port: 16379
# 数据库索引
database: 5
# 密码
password: ZKR2024@@.com
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# token配置
token:
# 令牌自定义标识
header: Authorization
# 令牌密钥
secret: Abc123!@#Def456$%^Ghi789&*()Jkl0+-=MnoPqrStuVwxYz987$%^654@#$321!@#ZyxWvu
# 令牌有效期默认30分钟
expireTime: 30
## MyBatis配置
#mybatis:
# # 搜索指定包别名
# typeAliasesPackage: com.ruoyi.**.domain
# # 配置mapper的扫描找到所有的mapper.xml映射文件
# mapperLocations: classpath*:mapper/**/*Mapper.xml
# # 加载全局的配置文件
# configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
helperDialect: oracle
supportMethodsArguments: true
params: count=countSql
# Swagger配置
swagger:
# 是否开启swagger
enabled: true
# 请求前缀
pathMapping:
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
createSqlSessionFactory:
# 选择MyBatis配置方式mybatis / mybatis-plus
use: mybatis-plus
# MyBatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# MyBatis Plus配置
mybatis-plus:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
global-config:
db-config:
# 标识逻辑删除的数据库字段名称
logic-delete-field: delFlag
# 表示已逻辑删除的值(默认也是如此)
logic-delete-value: 2
# 表示未逻辑删除的值(默认也是如此)
logic-not-delete-value: 0
file:
upload-dir: /data/file
ocr:
ocr_url: http://127.0.0.1:9001/ocr
ocr_mutipart: https://qd.zhaopinzao8dian.com/ocr-api/ocr
# ocr_mutipart: http://10.98.80.141:9000/ocr
ocr_llm_url: http://39.98.44.136:6016/inner-ai/aicoapi/gateway/v2/chatbot/api_run/1763386387_d4c07131-a047-4c0d-9623-7e3c3a45bd7e
ocr_llm_apiKey: NfzPnFRtogHlYCAh2hHIB7ra5EsrSQEM
cipher-security:
# socket: 39.102.146.78:11028
# path: /data/downloadmodel/certTest
socket: 10.98.80.223:8443
path: /data/downloadmodel/cert
#nginx节点健康检查
management:
endpoints:
web:
exposure:
include: health
#微信小程序
wx:
appid: wx4aa34488b965a331
secret: 558780ecc2750f87e556b0e5496773c9
# easy-es
easy-es:
enable: true
banner: false
address: 10.98.80.37:19200
global-config:
process-index-mode: manual
db-config:
refresh-policy: immediate
username: elastic
password: zkr2024@@.com
#短信服务
sms:
#API密钥账号
# secretName: kszhjyrcjt
secretName: kszhjypthydx
#API密钥
# secretKey: Dwhc9c0IiHecvC5D
secretKey: asj1gze3BhG3QtaI
#短信模板ID
# templateId: 37446
templateId: 49566
#统一门户认证
oauth:
#客户端的ID
appid: 251112100000000015
#授权码
clientsecretkey: 2a44cb8d21dcf4b0777881ca11ea0d83ebea94bbe1ab1f405508db0873cdcc99
#内网
usptnw:
#获取访问令牌
nwGatewayGetTokenUrl: http://10.98.80.146/uspt/serviceAPI/getToken
#获取用户信息
nwGatewayGetUserInfoUrl: http://10.98.80.146/uspt/serviceAPI/getUserInfo
#外网
usptww:
#门户注册
wwRegisterPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/doWebRegister
#门户登录
wwTokenPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/doWebLogon
#查询用户信息
wwQueryWebUserInfo: http://10.98.80.50/uspt/webWhiteListServiceAPI/queryWebUserInfo
#查询个人信息
wwQueryWebPersonalInfoPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/queryWebPersonalInfo
#查询单位信息
wwQueryWebEnterpriseInfoPostUrl: http://10.98.80.50/uspt//webWhiteListServiceAPI/queryWebEnterpriseInfo
#用户新增接口
tyAddUserUrl: http://10.98.80.146/qxgl_backend/security/add_user
#获取当前用户有权系统列表
tyQueryUserSysListUrl: http://10.98.80.146/qxgl_backend/security/get_effective_app_list
#获取当前用户有权角色列表
tyQueryUserRoleListUrl: http://10.98.80.146/qxgl_backend/security/get_role_by_userid
#获取角色功能权限信息
tyQueryRoleInfoUrl: http://10.98.80.146/qxgl_backend/security/get_path_by_role
#获取用户详细信息
tyQueryUserInfo: http://10.98.80.146/qxgl_backend/security/get_user_by_userid
#获取机构详细信息
tyQueryUnitInfo: http://10.98.80.146/qxgl_backend/security/get_organization_by_organizationid
connect-timeout: 10
read-timeout: 30
write-timeout: 30
#浪潮
lc:
#获取人员标签
personTag: http://10.98.80.146/prod-api/dispatch/public/person/tag
#ai
chat:
baseUrl: http://192.168.133.200:8080
chatUrl: /v1/chat/completions
chatDetailUrl: /core/chat/getPaginationRecords
chatHistoryUrl: /core/chat/getHistories
updateNameUrl: /core/chat/updateHistory
stickChatUrl: /core/chat/updateHistory
delChatUrl: /core/chat/delHistory
delAllChatUrl: /core/chat/clearHistories
guestUrl: /v1/chat/completions
praiseUrl: /core/chat/feedback/updateUserFeedback
appId: 67cd49095e947ae0ca7fadd8
apiKey: fastgpt-qMl63276wPZvKAxEkW77bur0sSJpmuC6Ngg9lzyEjufLhsBAurjT55j
model: qd-job-turbo
audioText:
asr: http://192.168.133.200:8000/asr/file
#tts: http://192.168.133.200:19527/synthesize
tts: http://10.98.76.104:19528/synthesize

View File

@@ -0,0 +1,336 @@
# 项目相关配置
ruoyi:
# 名称
name: RuoYi
# 版本
version: 3.8.8
# 版权年份
copyrightYear: 2024
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
captchaType: math
# 开发环境配置
server:
# 服务器的HTTP端口默认为8080
port: 9091
servlet:
# 应用的访问路径
context-path: /
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数默认为100
accept-count: 1000
threads:
# tomcat最大线程数默认为200
max: 800
# Tomcat启动初始化的线程数默认值10
min-spare: 100
# 日志配置
logging:
level:
com.ruoyi: debug
org.springframework: warn
# 用户配置
user:
password:
# 密码最大错误次数
maxRetryCount: 5
# 密码锁定时间默认10分钟
lockTime: 10
# Spring配置
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.highgo.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:highgo://127.0.0.1:5866/highgo?useUnicode=true&characterEncoding=utf8&currentSchema=ks_db4&stringtype=unspecified
username: sysdba
password: ZKR2024@comzkr
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 10
# 最小连接池数量
minIdle: 30
# 最大连接池数量
maxActive: 50
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT version()
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
redis:
# 地址
host: 127.0.0.1
# 端口默认为6379
port: 5379
# 数据库索引
database: 5
# 密码
password: ZKR2024@@.com
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# redis 配置
# token配置
token:
# 令牌自定义标识
header: Authorization
# 令牌密钥
secret: Abc123!@#Def456$%^Ghi789&*()Jkl0+-=MnoPqrStuVwxYz987$%^654@#$321!@#ZyxWvu
# 令牌有效期默认30分钟
expireTime: 30
## MyBatis配置
#mybatis:
# # 搜索指定包别名
# typeAliasesPackage: com.ruoyi.**.domain
# # 配置mapper的扫描找到所有的mapper.xml映射文件
# mapperLocations: classpath*:mapper/**/*Mapper.xml
# # 加载全局的配置文件
# configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
helperDialect: oracle
supportMethodsArguments: true
params: count=countSql
# Swagger配置
swagger:
# 是否开启swagger
enabled: true
# 请求前缀
pathMapping:
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
createSqlSessionFactory:
# 选择MyBatis配置方式mybatis / mybatis-plus
use: mybatis-plus
# MyBatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# MyBatis Plus配置
mybatis-plus:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
global-config:
db-config:
# 标识逻辑删除的数据库字段名称
logic-delete-field: delFlag
# 表示已逻辑删除的值(默认也是如此)
logic-delete-value: 2
# 表示未逻辑删除的值(默认也是如此)
logic-not-delete-value: 0
file:
upload-dir: /data/file
ocr:
ocr_url: http://127.0.0.1:9001/ocr
ocr_mutipart: https://qd.zhaopinzao8dian.com/ocr-api/ocr
# ocr_mutipart: http://10.98.80.141:9000/ocr
ocr_llm_url: http://39.98.44.136:6016/inner-ai/aicoapi/gateway/v2/chatbot/api_run/1763386387_d4c07131-a047-4c0d-9623-7e3c3a45bd7e
ocr_llm_apiKey: NfzPnFRtogHlYCAh2hHIB7ra5EsrSQEM
cipher-security:
socket: 39.102.146.78:11028
path: /data/downloadmodel/certTest
# socket: 10.98.80.223:8443
# path: /data/downloadmodel/cert
#nginx节点健康检查
management:
endpoints:
web:
exposure:
include: health
#微信小程序
wx:
appid: wx4aa34488b965a331
secret: 558780ecc2750f87e556b0e5496773c9
# easy-es
easy-es:
enable: true
banner: false
address: 127.0.0.1:9200
global-config:
process-index-mode: manual
db-config:
refresh-policy: immediate
username: elastic
password: zkr2024@@.com
#短信服务
sms:
#API密钥账号
# secretName: kszhjyrcjt
secretName: kszhjypthydx
#API密钥
# secretKey: Dwhc9c0IiHecvC5D
secretKey: asj1gze3BhG3QtaI
#短信模板ID
# templateId: 37446
templateId: 49566
#统一门户认证
oauth:
#客户端的ID
appid: 251112100000000015
#授权码
clientsecretkey: 2a44cb8d21dcf4b0777881ca11ea0d83ebea94bbe1ab1f405508db0873cdcc99
#内网
usptnw:
#获取访问令牌
nwGatewayGetTokenUrl: http://10.98.80.146/uspt/serviceAPI/getToken
#获取用户信息
nwGatewayGetUserInfoUrl: http://10.98.80.146/uspt/serviceAPI/getUserInfo
#外网
usptww:
#门户注册
wwRegisterPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/doWebRegister
#门户登录
wwTokenPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/doWebLogon
#查询用户信息
wwQueryWebUserInfo: http://10.98.80.50/uspt/webWhiteListServiceAPI/queryWebUserInfo
#查询个人信息
wwQueryWebPersonalInfoPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/queryWebPersonalInfo
#查询单位信息
wwQueryWebEnterpriseInfoPostUrl: http://10.98.80.50/uspt//webWhiteListServiceAPI/queryWebEnterpriseInfo
#用户新增接口
tyAddUserUrl: http://10.98.80.146/qxgl_backend/security/add_user
#获取当前用户有权系统列表
tyQueryUserSysListUrl: http://10.98.80.146/qxgl_backend/security/get_effective_app_list
#获取当前用户有权角色列表
tyQueryUserRoleListUrl: http://10.98.80.146/qxgl_backend/security/get_role_by_userid
#获取角色功能权限信息
tyQueryRoleInfoUrl: http://10.98.80.146/qxgl_backend/security/get_path_by_role
#获取用户详细信息
tyQueryUserInfo: http://10.98.80.146/qxgl_backend/security/get_user_by_userid
#获取机构详细信息
tyQueryUnitInfo: http://10.98.80.146/qxgl_backend/security/get_organization_by_organizationid
connect-timeout: 10
read-timeout: 30
write-timeout: 30
#浪潮
lc:
#获取人员标签
personTag: http://10.98.80.146/prod-api/dispatch/public/person/tag
#ai
chat:
baseUrl: http://192.168.133.200:8080
chatUrl: /v1/chat/completions
chatDetailUrl: /core/chat/getPaginationRecords
chatHistoryUrl: /core/chat/getHistories
updateNameUrl: /core/chat/updateHistory
stickChatUrl: /core/chat/updateHistory
delChatUrl: /core/chat/delHistory
delAllChatUrl: /core/chat/clearHistories
guestUrl: /v1/chat/completions
praiseUrl: /core/chat/feedback/updateUserFeedback
appId: 67cd49095e947ae0ca7fadd8
apiKey: fastgpt-qMl63276wPZvKAxEkW77bur0sSJpmuC6Ngg9lzyEjufLhsBAurjT55j
model: qd-job-turbo
audioText:
asr: http://192.168.133.200:8000/asr/file
#tts: http://192.168.133.200:19527/synthesize
tts: http://10.98.76.104:19528/synthesize

View File

@@ -1,244 +1,3 @@
# 项目相关配置
ruoyi:
# 名称
name: RuoYi
# 版本
version: 3.8.8
# 版权年份
copyrightYear: 2024
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
captchaType: math
# 开发环境配置
server:
# 服务器的HTTP端口默认为8080
port: 9091
servlet:
# 应用的访问路径
context-path: /
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数默认为100
accept-count: 1000
threads:
# tomcat最大线程数默认为200
max: 800
# Tomcat启动初始化的线程数默认值10
min-spare: 100
# 日志配置
logging:
level:
com.ruoyi: debug
org.springframework: warn
# 用户配置
user:
password:
# 密码最大错误次数
maxRetryCount: 5
# 密码锁定时间默认10分钟
lockTime: 10
# Spring配置
spring: spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
profiles: profiles:
active: local active: dev
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
# redis 配置
# token配置
token:
# 令牌自定义标识
header: Authorization
# 令牌密钥
secret: Abc123!@#Def456$%^Ghi789&*()Jkl0+-=MnoPqrStuVwxYz987$%^654@#$321!@#ZyxWvu
# 令牌有效期默认30分钟
expireTime: 30
## MyBatis配置
#mybatis:
# # 搜索指定包别名
# typeAliasesPackage: com.ruoyi.**.domain
# # 配置mapper的扫描找到所有的mapper.xml映射文件
# mapperLocations: classpath*:mapper/**/*Mapper.xml
# # 加载全局的配置文件
# configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
helperDialect: oracle
supportMethodsArguments: true
params: count=countSql
# Swagger配置
swagger:
# 是否开启swagger
enabled: true
# 请求前缀
pathMapping:
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
createSqlSessionFactory:
# 选择MyBatis配置方式mybatis / mybatis-plus
use: mybatis-plus
# MyBatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# MyBatis Plus配置
mybatis-plus:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
global-config:
db-config:
# 标识逻辑删除的数据库字段名称
logic-delete-field: delFlag
# 表示已逻辑删除的值(默认也是如此)
logic-delete-value: 2
# 表示未逻辑删除的值(默认也是如此)
logic-not-delete-value: 0
file:
upload-dir: /data/file
ocr:
ocr_url: http://127.0.0.1:9001/ocr
ocr_mutipart: https://qd.zhaopinzao8dian.com/ocr-api/ocr
# ocr_mutipart: http://10.98.80.141:9000/ocr
ocr_llm_url: http://39.98.44.136:6016/inner-ai/aicoapi/gateway/v2/chatbot/api_run/1763386387_d4c07131-a047-4c0d-9623-7e3c3a45bd7e
ocr_llm_apiKey: NfzPnFRtogHlYCAh2hHIB7ra5EsrSQEM
cipher-security:
socket: 39.102.146.78:11028
path: /data/downloadmodel/certTest
# socket: 10.98.80.223:8443
# path: /data/downloadmodel/cert
#nginx节点健康检查
management:
endpoints:
web:
exposure:
include: health
#微信小程序
wx:
appid: wx4aa34488b965a331
secret: 558780ecc2750f87e556b0e5496773c9
#短信服务
sms:
#API密钥账号
# secretName: kszhjyrcjt
secretName: kszhjypthydx
#API密钥
# secretKey: Dwhc9c0IiHecvC5D
secretKey: asj1gze3BhG3QtaI
#短信模板ID
# templateId: 37446
templateId: 49566
#统一门户认证
oauth:
#客户端的ID
appid: 251112100000000015
#授权码
clientsecretkey: 2a44cb8d21dcf4b0777881ca11ea0d83ebea94bbe1ab1f405508db0873cdcc99
#内网
usptnw:
#获取访问令牌
nwGatewayGetTokenUrl: http://10.98.80.146/uspt/serviceAPI/getToken
#获取用户信息
nwGatewayGetUserInfoUrl: http://10.98.80.146/uspt/serviceAPI/getUserInfo
#外网
usptww:
#门户注册
wwRegisterPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/doWebRegister
#门户登录
wwTokenPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/doWebLogon
#查询用户信息
wwQueryWebUserInfo: http://10.98.80.50/uspt/webWhiteListServiceAPI/queryWebUserInfo
#查询个人信息
wwQueryWebPersonalInfoPostUrl: http://10.98.80.50/uspt/webWhiteListServiceAPI/queryWebPersonalInfo
#查询单位信息
wwQueryWebEnterpriseInfoPostUrl: http://10.98.80.50/uspt//webWhiteListServiceAPI/queryWebEnterpriseInfo
#用户新增接口
tyAddUserUrl: http://10.98.80.146/qxgl_backend/security/add_user
#获取当前用户有权系统列表
tyQueryUserSysListUrl: http://10.98.80.146/qxgl_backend/security/get_effective_app_list
#获取当前用户有权角色列表
tyQueryUserRoleListUrl: http://10.98.80.146/qxgl_backend/security/get_role_by_userid
#获取角色功能权限信息
tyQueryRoleInfoUrl: http://10.98.80.146/qxgl_backend/security/get_path_by_role
#获取用户详细信息
tyQueryUserInfo: http://10.98.80.146/qxgl_backend/security/get_user_by_userid
#获取机构详细信息
tyQueryUnitInfo: http://10.98.80.146/qxgl_backend/security/get_organization_by_organizationid
connect-timeout: 10
read-timeout: 30
write-timeout: 30
#浪潮
lc:
#获取人员标签
personTag: http://10.98.80.146/prod-api/dispatch/public/person/tag
#ai
chat:
baseUrl: http://192.168.133.200:8080
chatUrl: /v1/chat/completions
chatDetailUrl: /core/chat/getPaginationRecords
chatHistoryUrl: /core/chat/getHistories
updateNameUrl: /core/chat/updateHistory
stickChatUrl: /core/chat/updateHistory
delChatUrl: /core/chat/delHistory
delAllChatUrl: /core/chat/clearHistories
guestUrl: /v1/chat/completions
praiseUrl: /core/chat/feedback/updateUserFeedback
appId: 67cd49095e947ae0ca7fadd8
apiKey: fastgpt-qMl63276wPZvKAxEkW77bur0sSJpmuC6Ngg9lzyEjufLhsBAurjT55j
model: qd-job-turbo
audioText:
asr: http://192.168.133.200:8000/asr/file
#tts: http://192.168.133.200:19527/synthesize
tts: http://10.98.76.104:19528/synthesize

View File

@@ -1,31 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<!-- 日志存放路径 --> <property name="log.path" value="./logs"/>
<property name="log.path" value="/home/lapuda/logs" /> <property name="my.ip" value="${MY_IP:-127.0.0.1}"/>
<!-- 日志输出格式 --> <property name="console.log.pattern"
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %msg%n"/>
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
<!-- 控制台输出 --> <!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${console.log.pattern}</pattern>
</encoder> <charset>utf-8</charset>
</appender> </encoder>
</appender>
<!-- 系统日志输出 --> <!-- 控制台输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="file_console" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file> <file>${log.path}/sys-console.log</file>
<!-- 循环政策:基于时间创建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 --> <!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> <fileNamePattern>${log.path}/sys-console.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 --> <!-- 日志最大 15 -->
<maxHistory>60</maxHistory> <maxHistory>14</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
</encoder> <charset>utf-8</charset>
<filter class="ch.qos.logback.classic.filter.LevelFilter"> </encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- 过滤的级别 -->
<level>DEBUG</level>
</filter>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 15天 -->
<maxHistory>15</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 --> <!-- 过滤的级别 -->
<level>INFO</level> <level>INFO</level>
<!-- 匹配时的操作:接收(记录) --> <!-- 匹配时的操作:接收(记录) -->
@@ -33,10 +54,10 @@
<!-- 不匹配时的操作:拒绝(不记录) --> <!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch> <onMismatch>DENY</onMismatch>
</filter> </filter>
</appender> </appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file> <file>${log.path}/sys-error.log</file>
<!-- 循环政策:基于时间创建日志文件 --> <!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 --> <!-- 日志文件名格式 -->
@@ -50,44 +71,39 @@
<filter class="ch.qos.logback.classic.filter.LevelFilter"> <filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 --> <!-- 过滤的级别 -->
<level>ERROR</level> <level>ERROR</level>
<!-- 匹配时的操作:接收(记录) --> <!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch> <onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) --> <!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch> <onMismatch>DENY</onMismatch>
</filter> </filter>
</appender> </appender>
<!-- 用户访问日志输出 --> <!-- info异步输出 -->
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="async_info" class="ch.qos.logback.classic.AsyncAppender">
<file>${log.path}/sys-user.log</file> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <discardingThreshold>0</discardingThreshold>
<!-- 按天回滚 daily --> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> <queueSize>512</queueSize>
<!-- 日志最大的历史 60天 --> <!-- 添加附加的appender,最多只能添加一个 -->
<maxHistory>60</maxHistory> <appender-ref ref="file_info"/>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender> </appender>
<!-- 系统模块日志级别控制 --> <!-- error异步输出 -->
<logger name="com.ruoyi" level="info" /> <appender name="async_error" class="ch.qos.logback.classic.AsyncAppender">
<!-- Spring日志级别控制 --> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<logger name="org.springframework" level="warn" /> <discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>512</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="file_error"/>
</appender>
<root level="info"> <!--系统操作日志-->
<appender-ref ref="console" />
</root>
<!--系统操作日志-->
<root level="info"> <root level="info">
<appender-ref ref="file_info" /> <appender-ref ref="console"/>
<appender-ref ref="file_error" /> <appender-ref ref="async_info"/>
<appender-ref ref="async_error"/>
<appender-ref ref="file_console"/>
</root> </root>
<!--系统用户操作日志-->
<logger name="sys-user" level="info">
<appender-ref ref="sys-user"/>
</logger>
</configuration> </configuration>

View File

@@ -71,20 +71,6 @@
<artifactId>easyexcel</artifactId> <artifactId>easyexcel</artifactId>
<version>4.0.3</version> <version>4.0.3</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</exclusion>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <dependency>
<groupId>org.elasticsearch.client</groupId> <groupId>org.elasticsearch.client</groupId>

View File

@@ -88,6 +88,9 @@ public class CmsJobController extends BaseController
{ {
if (RoleUtils.isCompanyAdmin()) { if (RoleUtils.isCompanyAdmin()) {
Company company = companyService.queryCodeCompany(RoleUtils.getCurrentUseridCard()); Company company = companyService.queryCodeCompany(RoleUtils.getCurrentUseridCard());
if(company==null){
return getDataTable(new ArrayList<>());
}
job.setCompanyId(Objects.nonNull(company) ? company.getCompanyId() : null); job.setCompanyId(Objects.nonNull(company) ? company.getCompanyId() : null);
} }
startPage(); startPage();

View File

@@ -24,6 +24,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@@ -54,6 +55,9 @@ public class CompanyController extends BaseController
{ {
if (RoleUtils.isCompanyAdmin()) { if (RoleUtils.isCompanyAdmin()) {
System.out.println("企业社会信用代码============================="+RoleUtils.getCurrentUseridCard()); System.out.println("企业社会信用代码============================="+RoleUtils.getCurrentUseridCard());
if(company==null){
return getDataTable(new ArrayList<>());
}
company.setCode(RoleUtils.getCurrentUseridCard()); company.setCode(RoleUtils.getCurrentUseridCard());
} }
startPage(); startPage();

View File

@@ -0,0 +1,90 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.InterviewInvite;
import com.ruoyi.cms.service.InterviewInviteService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 面试邀约Controller
*
* @author ruoyi
*/
@RestController
@RequestMapping("/cms/interviewInvite")
@Api(tags = "后台:面试邀约")
public class InterviewInviteController extends BaseController
{
@Autowired
private InterviewInviteService interviewInviteService;
/**
* 查询面试邀约列表(分页)
*/
@ApiOperation("查询面试邀约列表")
@PreAuthorize("@ss.hasPermi('cms:interviewInvite:list')")
@GetMapping("/list")
public TableDataInfo list(InterviewInvite interviewInvite)
{
startPage();
List<InterviewInvite> list = interviewInviteService.selectInterviewInviteList(interviewInvite);
return getDataTable(list);
}
/**
* 获取面试邀约详情
*/
@ApiOperation("获取面试邀约详情")
@PreAuthorize("@ss.hasPermi('cms:interviewInvite:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(interviewInviteService.selectInterviewInviteById(id));
}
/**
* 新增面试邀约(弹窗保存接口)
*/
@ApiOperation("新增面试邀约")
@PreAuthorize("@ss.hasPermi('cms:interviewInvite:add')")
@Log(title = "面试邀约", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody InterviewInvite interviewInvite)
{
return toAjax(interviewInviteService.insertInterviewInvite(interviewInvite));
}
/**
* 修改面试邀约
*/
@ApiOperation("修改面试邀约")
@PreAuthorize("@ss.hasPermi('cms:interviewInvite:edit')")
@Log(title = "面试邀约", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody InterviewInvite interviewInvite)
{
return toAjax(interviewInviteService.updateInterviewInvite(interviewInvite));
}
/**
* 删除面试邀约(逻辑删除)
*/
@ApiOperation("面试邀约删除")
@PreAuthorize("@ss.hasPermi('cms:interviewInvite:remove')")
@Log(title = "面试邀约", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(interviewInviteService.deleteInterviewInviteByIds(ids));
}
}

View File

@@ -0,0 +1,55 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
*
* @author
*/
@Data
@ApiModel("面试邀约")
@TableName(value = "interview_invite")
public class InterviewInvite extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键ID bigint自增 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/** 岗位申请ID 关联job_apply */
@Excel(name = "投递记录ID")
private Long jobApplyId;
/** 面试时间 */
@Excel(name = "面试时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date interviewTime;
/** 面试方式 1线上 2线下 */
@Excel(name = "面试方式", readConverterExp = "1=线上,2=线下")
private Integer interviewType;
/** 会议链接/线下手机号 */
@Excel(name = "联系方式/会议链接")
private String contactInfo;
/** 邀约状态1待发送 2已发送 3候选人确认 4候选人拒绝 5面试完成 */
@Excel(name = "邀约状态", readConverterExp = "1=待发送,2=已发送,3=候选人确认,4=候选人拒绝,5=面试完成")
private Integer inviteStatus;
/** 面试轮次 1一面 2二面 3复试 */
@Excel(name = "面试轮次")
private Integer interviewRound;
}

View File

@@ -0,0 +1,21 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.InterviewInvite;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 面试邀约Mapper
*
* @author ruoyi
*/
public interface InterviewInviteMapper extends BaseMapper<InterviewInvite>
{
/**
* 查询面试邀约列表
* @param interviewInvite 查询条件
* @return 集合
*/
List<InterviewInvite> selectInterviewInviteList(@Param("entity") InterviewInvite interviewInvite);
}

View File

@@ -0,0 +1,49 @@
package com.ruoyi.cms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cms.domain.InterviewInvite;
import java.util.List;
/**
* 面试邀约Service接口
*
* @author ruoyi
*/
public interface InterviewInviteService extends IService<InterviewInvite>
{
/**
* 查询面试邀约
* @param id 主键
* @return 实体
*/
InterviewInvite selectInterviewInviteById(Long id);
/**
* 查询面试邀约列表
* @param interviewInvite 条件
* @return 集合
*/
List<InterviewInvite> selectInterviewInviteList(InterviewInvite interviewInvite);
/**
* 新增面试邀约
* @param interviewInvite 实体
* @return 行数
*/
int insertInterviewInvite(InterviewInvite interviewInvite);
/**
* 修改面试邀约
* @param interviewInvite 实体
* @return 行数
*/
int updateInterviewInvite(InterviewInvite interviewInvite);
/**
* 批量逻辑删除面试邀约
* @param ids 主键数组
* @return 行数
*/
int deleteInterviewInviteByIds(Long[] ids);
}

View File

@@ -491,12 +491,31 @@ public class ESJobSearchImpl implements IESJobSearchService
private LambdaEsQueryWrapper<ESJobDocument> getWrapper(ESJobSearch esJobSearch,List<Long> jobIds){ private LambdaEsQueryWrapper<ESJobDocument> getWrapper(ESJobSearch esJobSearch,List<Long> jobIds){
LambdaEsQueryWrapper<ESJobDocument> wrapper = new LambdaEsQueryWrapper<>(); LambdaEsQueryWrapper<ESJobDocument> wrapper = new LambdaEsQueryWrapper<>();
if(!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){ /*if(!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){
for (String keyWord:esJobSearch.getJobTitle().split(",")) { for (String keyWord:esJobSearch.getJobTitle().split(",")) {
wrapper.and(a -> a.match(ESJobDocument::getJobTitle, keyWord, 5.0f) wrapper.or(a -> a.match(ESJobDocument::getJobTitle, keyWord, 5.0f)
); );
} }
}*/
//优化岗位名称查询,只有命中岗位名称或者分类就行
String titleStr = esJobSearch.getJobTitle();
String cateStr = esJobSearch.getJobCategory();
boolean hasTitle = !StringUtil.isEmptyOrNull(titleStr);
boolean hasCate = !StringUtil.isEmptyOrNull(cateStr);
if (hasTitle || hasCate) {
wrapper.and(sub -> {
if (hasTitle) {
String[] words = titleStr.split(",");
for (String w : words) {
if (!StringUtil.isEmptyOrNull(w)) {
sub.or().match(ESJobDocument::getJobTitle, w, 5.0f);
}
}
}
if (hasCate) {
sub.or().eq(ESJobDocument::getJobCategory, cateStr);
}
});
} }
if(esJobSearch.getLongitude()!=null){ if(esJobSearch.getLongitude()!=null){
@@ -509,10 +528,10 @@ public class ESJobSearchImpl implements IESJobSearchService
wrapper.and(x->x.in(ESJobDocument::getEducation,integers)); wrapper.and(x->x.in(ESJobDocument::getEducation,integers));
} }
if(Objects.nonNull(esJobSearch.getMaxSalary())){ if(Objects.nonNull(esJobSearch.getMaxSalary())){
wrapper.and(x->x.le(ESJobDocument::getMaxSalary,esJobSearch.getMaxSalary())); wrapper.and(x->x.le(ESJobDocument::getMinSalary,esJobSearch.getMaxSalary()));
} }
if(Objects.nonNull(esJobSearch.getMinSalary())){ if(Objects.nonNull(esJobSearch.getMinSalary())){
wrapper.and(x->x.ge(ESJobDocument::getMinSalary,esJobSearch.getMinSalary())); wrapper.and(x->x.ge(ESJobDocument::getMaxSalary,esJobSearch.getMinSalary()));
} }
if(!StringUtil.isEmptyOrNull(esJobSearch.getExperience())){ if(!StringUtil.isEmptyOrNull(esJobSearch.getExperience())){
//Integer maxValue = StringUtil.findMaxValue(esJobSearch.getExperience()); //Integer maxValue = StringUtil.findMaxValue(esJobSearch.getExperience());
@@ -520,13 +539,13 @@ public class ESJobSearchImpl implements IESJobSearchService
List<Integer> integers = StringUtil.convertStringToIntegerList(esJobSearch.getExperience()); List<Integer> integers = StringUtil.convertStringToIntegerList(esJobSearch.getExperience());
wrapper.and(x->x.in(ESJobDocument::getExperience_int,integers));//精准查询 wrapper.and(x->x.in(ESJobDocument::getExperience_int,integers));//精准查询
} }
if(!StringUtil.isEmptyOrNull(esJobSearch.getJobCategory())){ /*if(!StringUtil.isEmptyOrNull(esJobSearch.getJobCategory())){
//wrapper.and(x->x.eq(ESJobDocument::getJobCategory,esJobSearch.getJobCategory())); //wrapper.and(x->x.eq(ESJobDocument::getJobCategory,esJobSearch.getJobCategory()));
String targetValue = esJobSearch.getJobCategory(); String targetValue = esJobSearch.getJobCategory();
wrapper.and(x -> x.like(ESJobDocument::getJobCategory, targetValue) wrapper.and(x -> x.like(ESJobDocument::getJobCategory, targetValue)
.or() .or()
.like(ESJobDocument::getJobTitle, targetValue)); .like(ESJobDocument::getJobTitle, targetValue));
} }*/
if(!StringUtil.isEmptyOrNull(esJobSearch.getScale())){ if(!StringUtil.isEmptyOrNull(esJobSearch.getScale())){
//Integer maxValue = StringUtil.findMaxValue(esJobSearch.getScale()); //Integer maxValue = StringUtil.findMaxValue(esJobSearch.getScale());
//wrapper.and(x->x.le(ESJobDocument::getScale,maxValue)); //wrapper.and(x->x.le(ESJobDocument::getScale,maxValue));

View File

@@ -0,0 +1,101 @@
package com.ruoyi.cms.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cms.domain.InterviewInvite;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.JobApply;
import com.ruoyi.cms.domain.Notice;
import com.ruoyi.cms.mapper.InterviewInviteMapper;
import com.ruoyi.cms.mapper.JobApplyMapper;
import com.ruoyi.cms.mapper.JobMapper;
import com.ruoyi.cms.mapper.NoticeMapper;
import com.ruoyi.cms.service.InterviewInviteService;
import com.ruoyi.cms.util.notice.NoticeUtils;
import com.ruoyi.common.constant.Constants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
/**
* 面试邀约业务层实现
*
* @author ruoyi
*/
@Service
public class InterviewInviteServiceImpl extends ServiceImpl<InterviewInviteMapper, InterviewInvite>
implements InterviewInviteService
{
@Autowired
private InterviewInviteMapper interviewInviteMapper;
@Autowired
private NoticeMapper noticeMapper;
@Autowired
private JobApplyMapper jobApplyMapper;
@Autowired
private JobMapper jobMapper;
@Override
public InterviewInvite selectInterviewInviteById(Long id)
{
return interviewInviteMapper.selectById(id);
}
@Override
public List<InterviewInvite> selectInterviewInviteList(InterviewInvite interviewInvite)
{
return interviewInviteMapper.selectInterviewInviteList(interviewInvite);
}
@Override
public int insertInterviewInvite(InterviewInvite interviewInvite)
{
int i=interviewInviteMapper.insert(interviewInvite);
createNotice(interviewInvite);
return i;
}
@Override
public int updateInterviewInvite(InterviewInvite interviewInvite)
{
createNotice(interviewInvite);
return interviewInviteMapper.updateById(interviewInvite);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int deleteInterviewInviteByIds(Long[] ids)
{
List<Long> upIds=Arrays.asList(ids);
int i=interviewInviteMapper.deleteBatchIds(upIds);
//删除通知
noticeMapper.update(null, Wrappers.<Notice>lambdaUpdate()
.in(Notice::getBussinessId, upIds)
.set(Notice::getDelFlag, Constants.Del_FLAG_DELETE));
return i;
}
/**
* 保存通知信息
* @param interviewInvite
*/
public void createNotice(InterviewInvite interviewInvite){
JobApply jobApply=jobApplyMapper.selectById(interviewInvite.getJobApplyId());
Job job=jobMapper.selectById(jobApply.getJobId());
Notice notice = new Notice();
notice.setUserId(jobApply.getUserId());
notice.setBussinessId(interviewInvite.getId());
notice.setIsRead(NoticeUtils.NOTICE_WD);
notice.setTitle(NoticeUtils.NOTICE_TYPE_MS);
notice.setSubTitle(NoticeUtils.NOTICE_TYPE_MS);
notice.setNoticeType(NoticeUtils.NOTICE_TYPE_XTLX);
notice.setRemark(NoticeUtils.NOTICE_REMARK);
String content = NoticeUtils.mstzMsg(job.getCompanyName(), job.getJobTitle(),interviewInvite.getInterviewType(),interviewInvite.getContactInfo());
notice.setNoticeContent(content);
noticeMapper.insert(notice);
}
}

View File

@@ -354,13 +354,31 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
} }
//判断薪资 //判断薪资
Integer userMinSalary = parseSalary(user.getSalaryMin()); Integer userMinSalary = parseSalary(user.getSalaryMin());
if (userMinSalary != null && userMinSalary <= job.getMaxSalary()) { Long jobMinSalary = job.getMinSalary();
Long jobMaxSalary = job.getMaxSalary();
if (userMinSalary != null) {
if (jobMinSalary == null && jobMaxSalary == null) {
matchScore += 1.0;
} else if (!(jobMaxSalary != null && userMinSalary > jobMaxSalary)) {
if (jobMinSalary == null) {
matchScore += 1.0;
} else {
double salaryThreshold = jobMinSalary * 0.8;
if (userMinSalary >= jobMinSalary) {
matchScore += 1.0;
} else if (userMinSalary >= salaryThreshold) {
matchScore += 0.5;
}
}
}
}
/*if (userMinSalary != null && userMinSalary <= job.getMaxSalary()) {
if (userMinSalary >= job.getMinSalary()) { if (userMinSalary >= job.getMinSalary()) {
matchScore += 1; matchScore += 1;
} else if (userMinSalary >= job.getMinSalary() * 0.8) { } else if (userMinSalary >= job.getMinSalary() * 0.8) {
matchScore += 0.5; matchScore += 0.5;
} }
} }*/
//判断区域 //判断区域
if (user.getArea() != null && job.getJobLocationAreaCode() != null) { if (user.getArea() != null && job.getJobLocationAreaCode() != null) {
//if(user.getArea().contains(job.getJobLocation()) || job.getJobLocation().contains(user.getArea())){ //if(user.getArea().contains(job.getJobLocation()) || job.getJobLocation().contains(user.getArea())){

View File

@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.entity.AppUser;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
public class NoticeUtils { public class NoticeUtils {
/** /**
@@ -34,6 +35,17 @@ public class NoticeUtils {
public static final String NOTICE_TYPE_SXLX="2"; public static final String NOTICE_TYPE_SXLX="2";
/*************面试start*************/
public static final String NOTICE_TYPE_MS="面试通知";
public static final String NOTICE_COMENT_MS="诚挚邀请您参加【";
public static final String INTERVIEW_NOTICE_TPL = "%s%s%s";
public static final Integer INTERVIEW_TYPE_ONLINE = 1;//线上
/*************面试end*************/
/** /**
* 拼装岗位 * 拼装岗位
*/ */
@@ -102,4 +114,23 @@ public class NoticeUtils {
}); });
return add; return add;
} }
/**
* 面试通知
* @param companyName
* @param jobName
* @return
*/
public static String mstzMsg(String companyName,String jobName,Integer lx,String message){
String compName = Optional.ofNullable(companyName).orElse("");
String jbName = Optional.ofNullable(jobName).orElse("");
String msgExtra = Optional.ofNullable(message).orElse("");
String typeText = INTERVIEW_TYPE_ONLINE.equals(lx) ? "线上面试" : "线下面试";
return String.format(INTERVIEW_NOTICE_TPL,
compName+"",
NoticeUtils.NOTICE_COMENT_MS,
jbName +NoticeUtils.NOTICE_COMENT_FF + typeText +""+ msgExtra
);
}
} }

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cms.mapper.InterviewInviteMapper">
<resultMap type="interviewInvite" id="interviewInviteResult">
<id column="id" property="id"/>
<result column="job_apply_id" property="jobApplyId"/>
<result column="interview_time" property="interviewTime"/>
<result column="interview_type" property="interviewType"/>
<result column="contact_info" property="contactInfo"/>
<result column="invite_status" property="inviteStatus"/>
<result column="interview_round" property="interviewRound"/>
<result column="del_flag" property="delFlag"/>
<result column="create_by" property="createBy"/>
<result column="create_time" property="createTime"/>
<result column="update_by" property="updateBy"/>
<result column="update_time" property="updateTime"/>
<result column="remark" property="remark"/>
</resultMap>
<sql id="selectInterviewInviteVo">
select id, job_apply_id, interview_time, interview_type, contact_info,
invite_status, interview_round, del_flag, create_by, create_time,
update_by, update_time, remark
from interview_invite
</sql>
<select id="selectInterviewInviteList" resultMap="interviewInviteResult">
<include refid="selectInterviewInviteVo"/>
where del_flag = '0'
<if test="entity.jobApplyId != null">
and job_apply_id = #{entity.jobApplyId}
</if>
<if test="entity.interviewType != null">
and interview_type = #{entity.interviewType}
</if>
<if test="entity.inviteStatus != null">
and invite_status = #{entity.inviteStatus}
</if>
<if test="entity.interviewRound != null">
and interview_round = #{entity.interviewRound}
</if>
<if test="entity.contactInfo != null and entity.contactInfo != ''">
and contact_info like '%' || #{entity.contactInfo} || '%'
</if>
order by interview_time desc
</select>
</mapper>

View File

@@ -120,15 +120,16 @@
<artifactId>UserAgentUtils</artifactId> <artifactId>UserAgentUtils</artifactId>
</dependency> </dependency>
<!--奇安信密码机--> <!-- 奇安信国密安全密码应用中间件 -->
<dependency> <dependency>
<groupId>org.quickssl</groupId> <groupId>org.quickssl</groupId>
<artifactId>quickapi-client-java</artifactId> <artifactId>quickapi-client-java</artifactId>
<version>1.5.11-SNAPSHOT</version> <version>1.5.11-SNAPSHOT</version>
<classifier>shaded</classifier> <scope>system</scope>
<scope>compile</scope> <systemPath>${project.basedir}/libs/quickapi-client-java-1.5.11-SNAPSHOT.jar</systemPath>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.bouncycastle</groupId> <groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId> <artifactId>bcprov-jdk15on</artifactId>

View File

@@ -0,0 +1 @@
{"license":"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","productId":"1662965666333905920","secretKey":"SK-YYFWQ","licenseEncodeType":"RAW","sign":"BTzbsxsDqFLOlR80N1rbQIu8VV/hVzCSgxIPFtw8pFjov1eBffl87Lg/n4MD3NS/cqnDyl9azAR1rPcFmyMXsWomFD/zI2ZJRv3z21Hxw5WXa+uSgllFqxAeGcjVVvuu7gb4kziujTA1npu48oM6OzFBWCRvLJSyKtXDcSeCmuM="}

View File

@@ -18,9 +18,32 @@
<dependencies> <dependencies>
<!-- SpringBoot Web容器 --> <!-- SpringBoot Web容器 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</exclusion>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 金蝶Apusic应用服务器 -->
<dependency>
<groupId>com.apusic</groupId>
<artifactId>aams-spring-boot-starter-all</artifactId>
<version>2.4.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/aams-spring-boot-starter-all-2.4.0.jar</systemPath>
</dependency> </dependency>
<!-- SpringBoot 拦截器 --> <!-- SpringBoot 拦截器 -->

View File

@@ -294,6 +294,7 @@ public class OauthLoginHlwService {
String code=""; String code="";
String localUsername; String localUsername;
SysUser sysUser=new SysUser(); SysUser sysUser=new SysUser();
String userType=StringUtil.IS_COMPANY_USER;
switch (wwTyInfo.getUsertype()){ switch (wwTyInfo.getUsertype()){
case "1": case "1":
sysUser.setNickName(wwTyInfo.getName()); sysUser.setNickName(wwTyInfo.getName());
@@ -306,6 +307,7 @@ public class OauthLoginHlwService {
appUserParm.setIsCompanyUser(StringUtil.IS_JOB_REQUEST_USER); appUserParm.setIsCompanyUser(StringUtil.IS_JOB_REQUEST_USER);
code=wwTyInfo.getIdno(); code=wwTyInfo.getIdno();
localUsername=StringUtil.USER_KEY+QuickValidUtils.getSm4Encrypt(code); localUsername=StringUtil.USER_KEY+QuickValidUtils.getSm4Encrypt(code);
userType=StringUtil.IS_JOB_REQUEST_USER;
break; break;
default: default:
sysUser.setNickName(wwTyInfo.getEnterprisename()); sysUser.setNickName(wwTyInfo.getEnterprisename());
@@ -330,7 +332,7 @@ public class OauthLoginHlwService {
sysUser.setPhonenumber(wwTyInfo.getPhone()); sysUser.setPhonenumber(wwTyInfo.getPhone());
sysUserService.updateUser(sysUser); sysUserService.updateUser(sysUser);
//插入app_user //插入app_user
AppUser appUser=appUserService.selectAppuserByIdcard(code); AppUser appUser=appUserService.selectAppuserByIdcard(code,userType);
if(appUser!=null){ if(appUser!=null){
appUserParm.setUserId(appUser.getUserId()); appUserParm.setUserId(appUser.getUserId());
appUserService.updateAppUser(appUserParm); appUserService.updateAppUser(appUserParm);