更新部署文档
This commit is contained in:
parent
b56aeb7d1d
commit
9a76587d5f
|
@ -101,11 +101,11 @@
|
|||
|
||||
**登陆后,点击添加**
|
||||
|
||||
![在这里插入图片描述](https://gitee.com/himitzh0730/hoj/tree/master/docs/img/nacos1.jpg)
|
||||
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210512175956665.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70#pic_center)
|
||||
|
||||
**依次添加后台服务的配置文件和判题服务的配置文件**
|
||||
|
||||
![在这里插入图片描述](https://gitee.com/himitzh0730/hoj/tree/master/docs/img/nacos2.jpg)
|
||||
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210512180020650.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70#pic_center)
|
||||
|
||||
5. hoj-data-backup-prod.yml的配置如下,请自行修改
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 83 KiB |
Binary file not shown.
Before Width: | Height: | Size: 55 KiB |
|
@ -1,99 +0,0 @@
|
|||
spring:
|
||||
profiles:
|
||||
active: prod
|
||||
|
||||
---
|
||||
# 消费者将要去访问的微服务名称(注册成功进入nacos的微服务提供者)
|
||||
service-url:
|
||||
hoj-judge-server: http://hoj-judge-server # 服务访问base_url
|
||||
name: hoj-judge-server # 服务名
|
||||
|
||||
spring:
|
||||
profiles: prod
|
||||
# 配置文件上传限制
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 50MB
|
||||
max-request-size: 50MB
|
||||
mail:
|
||||
properties.mail.smtp.ssl.enable: ${hoj.mail.ssl}
|
||||
properties.mail.smtp.starttls.enable: true
|
||||
properties.mail.smtp.starttls.required: true
|
||||
username: ${hoj.mail.username}
|
||||
password: ${hoj.mail.password}
|
||||
host: ${hoj.mail.host}
|
||||
port: ${hoj.mail.port}
|
||||
redis:
|
||||
host: ${hoj.redis.host}
|
||||
port: ${hoj.redis.port}
|
||||
timeout: 60000
|
||||
jedis:
|
||||
pool:
|
||||
min-idle: 50 #连接池中的最小空闲连接
|
||||
max-idle: 200 #连接池中的最大空闲连接
|
||||
max-active: 500 #连接池最大连接数(使用负值表示没有限制)
|
||||
max-wait: -1 #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
password: ${hoj.redis.password}
|
||||
datasource:
|
||||
username: ${hoj.db.username}
|
||||
password: ${hoj.db.password}
|
||||
url: jdbc:mysql://${hoj.db.host}:${hoj.db.port}/${hoj.db.name}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
initial-size: 20 # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
|
||||
min-idle: 50 # 最小连接池数量
|
||||
maxActive: 400 # 最大连接池数量
|
||||
maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置
|
||||
timeBetweenEvictionRunsMillis: 60000 # 关闭空闲连接的检测时间间隔.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。
|
||||
minEvictableIdleTimeMillis: 300000 # 连接的最小生存时间.连接保持空闲而不被驱逐的最小时间
|
||||
validationQuery: SELECT 1 FROM DUAL # 验证数据库服务可用性的sql.用来检测连接是否有效的sql 因数据库方言而差, 例如 oracle 应该写成 SELECT 1 FROM DUAL
|
||||
testWhileIdle: true # 申请连接时检测空闲时间,根据空闲时间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRun
|
||||
testOnBorrow: false # 申请连接时直接检测连接是否有效.申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
|
||||
testOnReturn: false # 归还连接时检测连接是否有效.归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
|
||||
poolPreparedStatements: true # 开启PSCache
|
||||
maxPoolPreparedStatementPerConnectionSize: 20 #设置PSCache值
|
||||
connectionErrorRetryAttempts: 3 # 连接出错后再尝试连接三次
|
||||
breakAfterAcquireFailure: true # 数据库服务宕机自动重连机制
|
||||
timeBetweenConnectErrorMillis: 300000 # 连接出错后重试时间间隔
|
||||
asyncInit: true # 异步初始化策略
|
||||
remove-abandoned: true # 是否自动回收超时连接
|
||||
remove-abandoned-timeout: 1800 # 超时时间(以秒数为单位)
|
||||
transaction-query-timeout: 6000 # 事务超时时间
|
||||
filters: stat,wall,log4j #数据库日志
|
||||
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
|
||||
|
||||
|
||||
|
||||
|
||||
mybatis-plus:
|
||||
mapper-locations: classpath*:top/hcode/hoj/dao/xml/**Mapper.xml
|
||||
type-aliases-package: top.hcode.hoj.pojo.entity
|
||||
|
||||
shiro-redis:
|
||||
enabled: true
|
||||
redis-manager:
|
||||
host: ${hoj.redis.host}:${hoj.redis.port}
|
||||
password: ${hoj.redis.password}
|
||||
|
||||
ribbon:
|
||||
# 指的是建立连接所用的时间,适用于网络状况正常的情况下,俩端连接所用的时间 单位是秒
|
||||
ReadTimeout: 10000
|
||||
# 指的是建立连接后从服务器读取到可用资源的时间
|
||||
ConnectTimeout: 30000
|
||||
|
||||
logging:
|
||||
level:
|
||||
com:
|
||||
alibaba:
|
||||
nacos:
|
||||
client:
|
||||
naming: error
|
||||
root: error
|
||||
|
||||
hystrix:
|
||||
command:
|
||||
default:
|
||||
execution:
|
||||
isolation:
|
||||
thread:
|
||||
timeoutInMilliseconds: 60000
|
|
@ -1,27 +0,0 @@
|
|||
hoj-backstage:
|
||||
port: 6688 # 本服务器启动的端口号
|
||||
nacos-url: 172.18.0.3:8848 # nacos的地址
|
||||
|
||||
server:
|
||||
port: ${hoj-backstage.port}
|
||||
spring:
|
||||
profiles:
|
||||
active: prod
|
||||
application:
|
||||
name: hoj-data-backup
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: ${hoj-backstage.nacos-url} # Nacos 作为服务注册中心 nacos的地址
|
||||
config:
|
||||
server-addr: ${hoj-backstage.nacos-url} #Nacos 作为配置中心地址 nacos的地址
|
||||
file-extension: yml #指定yaml格式的配置
|
||||
group: DEFAULT_GROUP # 指定分组
|
||||
data-id: hoj-data-backup-prod.yml
|
||||
type: yaml
|
||||
#namespace:命名空间ID 默认为public
|
||||
url: http://${hoj-backstage.nacos-url}
|
||||
|
||||
|
||||
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.naces.config.file-extension}
|
||||
# hoj-data-backup-prod.yml
|
|
@ -1,74 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th=http://www.thymeleaf.org>
|
||||
<head>
|
||||
<meta charset=UTF-8>
|
||||
<title>用户注册验证码</title>
|
||||
</head>
|
||||
<body>
|
||||
<div style="background: white;
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
margin: auto auto;
|
||||
border-radius: 5px;
|
||||
border:#1bc3fb 1px solid;
|
||||
overflow: hidden;
|
||||
-webkit-box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.12);
|
||||
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.18);">
|
||||
<header style="overflow: hidden;">
|
||||
<center>
|
||||
<img style="width:100%;z-index: 666;"
|
||||
th:src="${EMAIL_BACKGROUND_IMG}">
|
||||
</center>
|
||||
</header>
|
||||
<div style="padding: 5px 20px; ">
|
||||
<p style=" position: relative;
|
||||
color: white;
|
||||
float: left;
|
||||
z-index: 999;
|
||||
background: #1bc3fb;
|
||||
padding: 5px 30px;
|
||||
margin: -25px auto 0 ;
|
||||
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.30) ">
|
||||
Dear New HOJer
|
||||
</p>
|
||||
<br>
|
||||
<center>
|
||||
<h3>
|
||||
来自 <span style=" text-decoration: none;color: #FF779A;" th:text="${OJ_SHORT_NAME}"></span> 邮件提醒
|
||||
</h3>
|
||||
<p style="text-indent:2em;">
|
||||
您收到这封电子邮件是因为您 (也可能是某人冒充您的名义) 在<a style=" text-decoration: none;color: #1bc3fb "
|
||||
target="_blank" th:href="${OJ_URL}" rel="noopener"> HOJ </a>上进行注册。假如这不是您本人所申请,
|
||||
请不用理会这封电子邮件, 但是如果您持续收到这类的信件骚扰, 请您尽快联络管理员。
|
||||
</p>
|
||||
<div style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;text-align: center; ">
|
||||
请使用以下验证码完成后续注册流程:<br>
|
||||
<span style=" color: #FF779A;font-weight: bolder;font-size: 25px;" th:text="${CODE}"></span><br>
|
||||
注意:请您在收到邮件10分钟内([[${EXPIRE_TIME}]]前)使用,否则该验证码将会失效。
|
||||
</div>
|
||||
|
||||
|
||||
<br>
|
||||
<div style=" text-align: center; ">
|
||||
<a style="text-transform: uppercase;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
background: #FF779A;
|
||||
color: #FFFFFF;
|
||||
padding: 10px;
|
||||
display: inline-block;
|
||||
border-radius: 5px;
|
||||
margin: 10px auto 0;"
|
||||
target="_blank" th:href="${OJ_URL}" rel="noopener" th:text="${OJ_SHORT_NAME}+'|传送门🚪'"></a>
|
||||
</div>
|
||||
<p style="font-size: 12px;text-align: center;color: #999; ">
|
||||
欢迎常来访问!<br>
|
||||
© 2021 <a style="text-decoration:none; color:#1bc3fb " th:href="${OJ_URL}" rel="noopener"
|
||||
target="_blank" th:text="${OJ_NAME}"></a>
|
||||
</p>
|
||||
<p></p>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,72 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th=http://www.thymeleaf.org>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>HOJ的重置密码邮件</title>
|
||||
</head>
|
||||
<body>
|
||||
<div style="background: white;
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
margin: auto auto;
|
||||
border-radius: 5px;
|
||||
border:#1bc3fb 1px solid;
|
||||
overflow: hidden;
|
||||
-webkit-box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.12);
|
||||
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.18);">
|
||||
<header style="overflow: hidden;">
|
||||
<center>
|
||||
<img style="width:100%;z-index: 666;"
|
||||
th:src="${EMAIL_BACKGROUND_IMG}">
|
||||
</center>
|
||||
</header>
|
||||
<div style="padding: 5px 20px; ">
|
||||
<p style=" position: relative;
|
||||
color: white;
|
||||
float: left;
|
||||
z-index: 999;
|
||||
background: #1bc3fb;
|
||||
padding: 5px 30px;
|
||||
margin: -25px auto 0 ;
|
||||
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.30) " th:text="'Dear '+${USERNAME}">
|
||||
</p>
|
||||
<br>
|
||||
<center>
|
||||
<h3>
|
||||
来自 <span style=" text-decoration: none;color: #FF779A;" th:text="${OJ_SHORT_NAME}"></span> 邮件提醒
|
||||
</h3>
|
||||
<p style="text-indent:2em;">
|
||||
您收到这封电子邮件是因为您 (也可能是某人冒充您的名义) 在<a style=" text-decoration: none;color: #1bc3fb "
|
||||
target="_blank" th:href="${OJ_URL}" rel="noopener"> HOJ </a>上进行密码重置操作。假如这不是您本人所申请, 请不用理会这封电子邮件, 但是如果您持续收到这类的信件骚扰, 请您尽快联络管理员。
|
||||
</p>
|
||||
<div style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;text-align: center; ">
|
||||
请点击下面的链接完成后续重置密码的流程:<br>
|
||||
<a th:href="${RESET_URL}" style="color: #FF779A;font-weight: bolder;font-size: 25px;text-decoration: none;">CLICK HERE</a><br>
|
||||
注意:请您在收到邮件10分钟内([[${EXPIRE_TIME}]]前)使用,否则该重置密码链接将会失效。
|
||||
</div>
|
||||
|
||||
|
||||
<br>
|
||||
<div style=" text-align: center; ">
|
||||
<a style="text-transform: uppercase;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
background: #FF779A;
|
||||
color: #FFFFFF;
|
||||
padding: 10px;
|
||||
display: inline-block;
|
||||
border-radius: 5px;
|
||||
margin: 10px auto 0;"
|
||||
target="_blank" th:href="${OJ_URL}" rel="noopener" th:text="${OJ_SHORT_NAME}+'|传送门🚪'"></a>
|
||||
</div>
|
||||
<p style="font-size: 12px;text-align: center;color: #999; ">
|
||||
欢迎常来访问!<br>
|
||||
© 2021 <a style="text-decoration:none; color:#1bc3fb " th:href="${OJ_URL}" rel="noopener"
|
||||
target="_blank" th:text="${OJ_NAME}"></a>
|
||||
</p>
|
||||
<p></p>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,72 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th=http://www.thymeleaf.org>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>超级管理员测试邮箱可用性邮件</title>
|
||||
</head>
|
||||
<body>
|
||||
<div style="background: white;
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
margin: auto auto;
|
||||
border-radius: 5px;
|
||||
border:#1bc3fb 1px solid;
|
||||
overflow: hidden;
|
||||
-webkit-box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.12);
|
||||
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.18);">
|
||||
<header style="overflow: hidden;">
|
||||
<center>
|
||||
<img style="width:100%;z-index: 666;"
|
||||
th:src="${EMAIL_BACKGROUND_IMG}">
|
||||
</center>
|
||||
</header>
|
||||
<div style="padding: 5px 20px; ">
|
||||
<p style=" position: relative;
|
||||
color: white;
|
||||
float: left;
|
||||
z-index: 999;
|
||||
background: #1bc3fb;
|
||||
padding: 5px 30px;
|
||||
margin: -25px auto 0 ;
|
||||
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.30) ">
|
||||
Dear Super Admin
|
||||
</p>
|
||||
<br>
|
||||
<center>
|
||||
<h3>
|
||||
来自 <span style=" text-decoration: none;color: #FF779A;" th:text="${OJ_SHORT_NAME}"></span> 邮件提醒
|
||||
</h3>
|
||||
<p style="text-indent:2em;">
|
||||
您收到这封电子邮件是因为您在<a style=" text-decoration: none;color: #1bc3fb "
|
||||
target="_blank" th:href="${OJ_URL}" rel="noopener"> HOJ </a>上进行邮箱配置更新,然后进行邮箱可行性的测试。
|
||||
</p>
|
||||
<div style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;text-align: center; ">
|
||||
经过本邮件的接收,可证实:<br>
|
||||
<a style="color: #FF779A;font-weight: bolder;font-size: 25px;text-decoration: none;">Test Success</a><br>
|
||||
</div>
|
||||
|
||||
|
||||
<br>
|
||||
<div style=" text-align: center; ">
|
||||
<a style="text-transform: uppercase;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
background: #FF779A;
|
||||
color: #FFFFFF;
|
||||
padding: 10px;
|
||||
display: inline-block;
|
||||
border-radius: 5px;
|
||||
margin: 10px auto 0;"
|
||||
target="_blank" th:href="${OJ_URL}" rel="noopener" th:text="${OJ_SHORT_NAME}+'|传送门🚪'"></a>
|
||||
</div>
|
||||
<p style="font-size: 12px;text-align: center;color: #999; ">
|
||||
欢迎常来访问!<br>
|
||||
© 2021 <a style="text-decoration:none; color:#1bc3fb " th:href="${OJ_URL}" rel="noopener"
|
||||
target="_blank" th:text="${OJ_NAME}"></a>
|
||||
</p>
|
||||
<p></p>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,35 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.AnnouncementMapper">
|
||||
|
||||
<select id="getAnnouncementList" resultMap="map_AnnouncementVo">
|
||||
SELECT a.*,u.username FROM user_info u,announcement a where a.uid = u.uuid
|
||||
<if test="notAdmin">
|
||||
and a.status = 0
|
||||
</if>
|
||||
order by a.gmt_create desc
|
||||
</select>
|
||||
|
||||
<select id="getContestAnnouncement" resultMap="map_AnnouncementVo">
|
||||
SELECT a.*,u.username FROM user_info u,announcement a,contest_announcement ca
|
||||
where a.uid = u.uuid and ca.cid =#{cid} and ca.aid = a.id
|
||||
<if test="notAdmin">
|
||||
and a.status = 0
|
||||
</if>
|
||||
order by a.gmt_create desc
|
||||
</select>
|
||||
|
||||
<resultMap id="map_AnnouncementVo" type="top.hcode.hoj.pojo.vo.AnnouncementVo">
|
||||
<id column="id" property="id"></id>
|
||||
<result column="title" property="title"></result>
|
||||
<result column="content" property="content"></result>
|
||||
<result column="uid" property="uid"></result>
|
||||
<result column="username" property="username"></result>
|
||||
<result column="status" property="status"></result>
|
||||
<result column="gmt_create" property="gmtCreate"></result>
|
||||
<result column="gmt_modified" property="gmtModified"></result>
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.AuthMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,40 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.CommentMapper">
|
||||
|
||||
<resultMap id="map_CommentList" type="top.hcode.hoj.pojo.vo.CommentsVo">
|
||||
<id column="id" property="id"></id>
|
||||
<result column="content" property="content"></result>
|
||||
<result column="from_uid" property="fromUid"></result>
|
||||
<result column="from_name" property="fromName"></result>
|
||||
<result column="from_avatar" property="fromAvatar"></result>
|
||||
<result column="from_role" property="fromRole"></result>
|
||||
<result column="like_num" property="likeNum"></result>
|
||||
<result column="total_reply_num" property="totalReplyNum"></result>
|
||||
<result column="gmt_create" property="gmtCreate"></result>
|
||||
<collection property="replyList" ofType="top.hcode.hoj.pojo.entity.Reply" select="getCommentListReply" column="id">
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<!-- 主查询 -->
|
||||
<select id="getCommentList" resultMap="map_CommentList" resultType="list">
|
||||
SELECT c.*,(SELECT COUNT(1) FROM reply WHERE comment_id=c.id and status=0) as total_reply_num FROM comment c
|
||||
<where>
|
||||
c.status=0
|
||||
<if test="cid!=null">
|
||||
AND c.cid=#{cid}
|
||||
</if>
|
||||
<if test="did!=null">
|
||||
AND c.did=#{did}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
order by c.like_num desc,c.gmt_create desc
|
||||
</select>
|
||||
|
||||
<!-- 子查询 -->
|
||||
<select id="getCommentListReply" resultType="top.hcode.hoj.pojo.entity.Reply">
|
||||
select r.* from reply r where r.comment_id=#{id} and r.status=0 order by r.gmt_create desc LIMIT 3
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.ContestExplanationMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,29 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.ContestMapper">
|
||||
<select id="getContestList" resultType="top.hcode.hoj.pojo.vo.ContestVo" useCache="true">
|
||||
select c.id,c.author,c.title,c.description,c.type,c.status,c.source,c.auth,c.start_time,c.end_time,c.duration
|
||||
from contest c
|
||||
<where>
|
||||
<if test="keyword!=null and keyword!=''">
|
||||
c.title like concat('%',#{keyword},'%')
|
||||
</if>
|
||||
<if test="status!=null">
|
||||
and c.status = #{status}
|
||||
</if>
|
||||
<if test="type!=null">
|
||||
and c.type = #{type}
|
||||
</if>
|
||||
</where>
|
||||
order by c.start_time DESC,c.id DESC
|
||||
</select>
|
||||
<select id="getContestInfoById" resultType="top.hcode.hoj.pojo.vo.ContestVo" useCache="true">
|
||||
select c.id,c.author,c.title,c.type,c.status,c.description,c.seal_rank,c.seal_rank_time,c.source,c.auth,c.start_time,c.end_time,c.duration
|
||||
from contest c where c.id = #{cid}
|
||||
</select>
|
||||
<select id="getWithinNext14DaysContests" resultType="top.hcode.hoj.pojo.vo.ContestVo">
|
||||
SELECT c.id,c.author,c.title,c.type,c.source,c.auth,c.status,c.description,c.start_time,c.end_time,c.duration
|
||||
FROM contest c WHERE DATE_ADD(CURDATE(), INTERVAL 14 DAY) >= DATE(start_time) AND c.status != 1
|
||||
order by c.start_time ASC
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,13 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.ContestProblemMapper">
|
||||
<select id="getContestProblemList" resultType="top.hcode.hoj.pojo.vo.ContestProblemVo">
|
||||
select cp.id,cp.display_id,cp.cid,cp.pid,cp.display_title,
|
||||
(select count(*) from judge where cpid=cp.id and cid=cp.cid and pid =cp.pid and
|
||||
submit_time >= #{startTime}) as total,
|
||||
(select count(*) from judge where cpid=cp.id and cid=cp.cid and pid =cp.pid and
|
||||
status=0 and submit_time >= #{startTime}) as ac
|
||||
from contest_problem cp
|
||||
where cp.cid = #{cid} order by cp.display_id asc
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,41 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.ContestRecordMapper">
|
||||
|
||||
<select id="getACInfo" resultType="top.hcode.hoj.pojo.entity.ContestRecord">
|
||||
SELECT id,uid,username,display_id,cid,realname,pid,time,status,checked,
|
||||
MIN(submit_id) AS submit_id,
|
||||
MIN(submit_time) AS submit_time,
|
||||
MAX(first_blood) AS first_blood
|
||||
FROM contest_record
|
||||
<where>
|
||||
<if test="status!=null">
|
||||
status=#{status}
|
||||
</if>
|
||||
<if test="cid!=null">
|
||||
and cid = #{cid}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY status,uid,pid,cpid
|
||||
ORDER BY checked ASC,submit_time DESC
|
||||
</select>
|
||||
|
||||
<select id="getOIContestRecord" resultType="top.hcode.hoj.pojo.entity.ContestRecord">
|
||||
SELECT cr.* FROM
|
||||
(SELECT uid,pid,cpid,MAX(time) AS time FROM contest_record
|
||||
<where>
|
||||
cid=#{cid} AND status IS NOT NULL
|
||||
<choose>
|
||||
<when test="isOpenSealRank">
|
||||
AND submit_time BETWEEN #{startTime} AND #{sealTime}
|
||||
</when>
|
||||
<otherwise>
|
||||
AND submit_time BETWEEN #{startTime} AND #{endTime}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</where>
|
||||
GROUP BY uid,pid,cpid) t
|
||||
LEFT JOIN contest_record cr ON t.uid = cr.uid AND t.pid =cr.pid
|
||||
AND t.cpid = cr.cpid AND t.time = cr.time
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.ContestRegisterMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.ContestScoreMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,40 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.DiscussionMapper">
|
||||
|
||||
<resultMap id="map_DiscussionVo" type="top.hcode.hoj.pojo.vo.DiscussionVo">
|
||||
<id column="id" property="id"></id>
|
||||
<result column="content" property="content"></result>
|
||||
<result column="description" property="description"></result>
|
||||
<result column="title" property="title"></result>
|
||||
<result column="category_id" property="categoryId"></result>
|
||||
<result column="category_name" property="categoryName"></result>
|
||||
<result column="pid" property="pid"></result>
|
||||
<result column="uid" property="uid"></result>
|
||||
<result column="author" property="author"></result>
|
||||
<result column="avatar" property="avatar"></result>
|
||||
<result column="role" property="role"></result>
|
||||
<result column="view_num" property="viewNum"></result>
|
||||
<result column="like_num" property="likeNum"></result>
|
||||
<result column="has_like" property="hasLike"></result>
|
||||
<result column="top_priority" property="topPriority"></result>
|
||||
<result column="status" property="status"></result>
|
||||
<result column="gmt_modified" property="gmtModified"></result>
|
||||
<result column="gmt_create" property="gmtCreate"></result>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<!-- 主查询 -->
|
||||
<select id="getDiscussion" resultMap="map_DiscussionVo" resultType="top.hcode.hoj.pojo.vo.DiscussionVo">
|
||||
SELECT d.*,c.id as category_id,c.name as category_name,
|
||||
(SELECT 1 FROM discussion_like dl WHERE dl.uid = #{uid} AND dl.did = #{did} LIMIT 1) as has_like
|
||||
FROM discussion d,category c
|
||||
<where>
|
||||
c.id = d.category_id
|
||||
<if test="did!=null">
|
||||
and d.id=#{did}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.JudgeCaseMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,65 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.JudgeMapper">
|
||||
<select id="getCommonJudgeList" resultType="top.hcode.hoj.pojo.vo.JudgeVo" useCache="false">
|
||||
select j.uid,j.submit_id,j.submit_time,j.uid,j.username,j.uid,j.pid,j.display_pid,j.status,j.share,
|
||||
j.time,j.memory,j.length,j.language,j.cid,j.cpid,j.judger
|
||||
from judge j
|
||||
<where>
|
||||
j.cid = 0 AND j.cpid = 0
|
||||
<if test="searchPid!=null">
|
||||
AND j.display_pid like concat('%',#{searchPid},'%')
|
||||
</if>
|
||||
<if test="username!='' and username!=null">
|
||||
AND j.username like concat('%',#{username},'%')
|
||||
</if>
|
||||
<if test="status!=null">
|
||||
AND (j.status = #{status}
|
||||
<if test="status==1">
|
||||
OR j.status = 2
|
||||
</if>
|
||||
)
|
||||
</if>
|
||||
<if test="uid!=null and uid!=''">
|
||||
AND j.uid = #{uid}
|
||||
</if>
|
||||
</where>
|
||||
order by j.submit_time DESC,j.submit_id DESC
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getContestJudgeList" resultType="top.hcode.hoj.pojo.vo.JudgeVo" useCache="false">
|
||||
select j.uid,j.submit_id,j.submit_time,j.uid,j.username,j.uid,cp.display_id,
|
||||
j.status,j.share,j.time,j.memory,j.length,j.language,j.cid,j.cpid,j.judger
|
||||
from judge j,contest_problem cp
|
||||
<where>
|
||||
j.pid=cp.pid AND j.cid = cp.cid
|
||||
<if test="cid!=null">
|
||||
AND j.cid = #{cid}
|
||||
</if>
|
||||
<if test="displayId!=null and displayId!=''">
|
||||
AND cp.display_id like concat('%',#{displayId},'%')
|
||||
</if>
|
||||
<if test="username!='' and username!=null">
|
||||
AND j.username like concat('%',#{username},'%')
|
||||
</if>
|
||||
<if test="status!=null">
|
||||
AND j.status = #{status}
|
||||
</if>
|
||||
<if test="uid!=null and uid!=''">
|
||||
AND j.uid = #{uid}
|
||||
</if>
|
||||
<if test="beforeContestSubmit!=null and beforeContestSubmit==true">
|
||||
AND (select start_time from contest where id = #{cid}) > j.submit_time
|
||||
</if>
|
||||
<if test="beforeContestSubmit!=null and beforeContestSubmit==false">
|
||||
AND j.submit_time >= (select start_time from contest where id = #{cid})
|
||||
</if>
|
||||
</where>
|
||||
order by j.submit_time DESC,j.submit_id DESC
|
||||
</select>
|
||||
|
||||
<select id="getTodayJudgeNum" resultType="int">
|
||||
SELECT count(*) FROM judge WHERE DATE(gmt_create) = CURDATE();
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,6 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.LanguageMapper">
|
||||
|
||||
|
||||
</mapper>
|
|
@ -1,17 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.ProblemCountMapper">
|
||||
<select id="getContestProblemCount" resultType="top.hcode.hoj.pojo.entity.ProblemCount">
|
||||
SELECT COUNT(IF(status=-3,status,NULL)) AS pe,
|
||||
COUNT(IF(status=-2,status,NULL)) AS ce,
|
||||
COUNT(IF(status=-1,status,NULL)) AS wa,
|
||||
COUNT(IF(status=0,status,NULL)) AS ac,
|
||||
COUNT(IF(status=1,status,NULL)) AS tle,
|
||||
COUNT(IF(status=2,status,NULL)) AS mle,
|
||||
COUNT(IF(status=3,status,NULL)) AS re,
|
||||
COUNT(IF(status=4,status,NULL)) AS se,
|
||||
COUNT(IF(status=8,status,NULL)) AS pa,
|
||||
COUNT(*) AS total
|
||||
FROM judge where pid=#{pid} and cpid = #{cpid} and cid = #{cid}
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,60 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.ProblemMapper">
|
||||
|
||||
<resultMap id="map_ProblemList" type="top.hcode.hoj.pojo.vo.ProblemVo">
|
||||
<id column="pid" property="pid"></id>
|
||||
<result column="problem_id" property="problemId"></result>
|
||||
<result column="title" property="title"></result>
|
||||
<result column="difficulty" property="difficulty"></result>
|
||||
<result column="type" property="type"></result>
|
||||
<result column="total" property="total"></result>
|
||||
<result column="ac" property="ac"></result>
|
||||
<result column="mle" property="mle"></result>
|
||||
<result column="tle" property="tle"></result>
|
||||
<result column="re" property="re"></result>
|
||||
<result column="pe" property="pe"></result>
|
||||
<result column="ce" property="ce"></result>
|
||||
<result column="wa" property="wa"></result>
|
||||
<result column="se" property="se"></result>
|
||||
<result column="pa" property="pa"></result>
|
||||
<collection property="tags" ofType="top.hcode.hoj.pojo.entity.Tag" select="getProblemTag" column="pid">
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<!-- 主查询 -->
|
||||
<select id="getProblemList" resultMap="map_ProblemList">
|
||||
SELECT distinct p.id as pid,p.problem_id,p.title,p.difficulty,p.type,pc.total,pc.ac,pc.mle,pc.tle,pc.re,
|
||||
pc.pe,pc.ce,pc.wa,pc.se,pc.pa FROM problem p
|
||||
LEFT JOIN problem_count pc ON p.id = pc.pid
|
||||
LEFT JOIN problem_tag pt ON p.id = pt.pid
|
||||
<where>
|
||||
p.auth = 1
|
||||
<if test="keyword != null and keyword != ''">
|
||||
and (
|
||||
p.title like concat('%',#{keyword},'%') or p.problem_id like concat('%',#{keyword},'%')
|
||||
<if test="pid != null and pid != ''">
|
||||
or p.id = #{pid}
|
||||
</if>
|
||||
)
|
||||
</if>
|
||||
<if test="difficulty != null">
|
||||
and p.difficulty = #{difficulty}
|
||||
</if>
|
||||
<if test="tid != null">
|
||||
and pt.tid = #{tid}
|
||||
</if>
|
||||
<if test="oj != null">
|
||||
and p.problem_id like concat(#{oj},'%')
|
||||
</if>
|
||||
</where>
|
||||
order by length(p.problem_id) asc,p.problem_id asc
|
||||
</select>
|
||||
|
||||
<!-- 子查询 :为了防止分页总数据数出错-->
|
||||
<select id="getProblemTag" resultType="top.hcode.hoj.pojo.entity.Tag">
|
||||
select t.* from tag t,problem_tag pt where t.id = pt.tid and pt.pid = #{pid}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
|
@ -1,24 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.RoleAuthMapper">
|
||||
<resultMap id="map_RoleAuths" type="top.hcode.hoj.pojo.vo.RoleAuthsVo">
|
||||
<id column="id" property="id"></id>
|
||||
<result column="role" property="role"></result>
|
||||
<result column="description" property="description"></result>
|
||||
<result column="status" property="status"></result>
|
||||
<result column="gmt_create" property="gmtCreate"></result>
|
||||
<result column="gmt_modified" property="gmtModified"></result>
|
||||
<collection property="auths" ofType="top.hcode.hoj.pojo.entity.Auth">
|
||||
<id column="auth_id" property="id"></id>
|
||||
<result column="name" property="name"></result>
|
||||
<result column="permission" property="permission"></result>
|
||||
<result column="auth_status" property="status"></result>
|
||||
<result column="gmt_create" property="gmtCreate"></result>
|
||||
<result column="gmt_modified" property="gmtModified"></result>
|
||||
</collection>
|
||||
</resultMap>
|
||||
<select id="getRoleAuths" resultMap="map_RoleAuths">
|
||||
SELECT r.*,a.id as auth_id,a.name,a.permission,a.status as auth_status FROM role r
|
||||
LEFT OUTER JOIN role_auth ra ON r.id=ra.role_id LEFT JOIN auth a ON ra.auth_id = a.id WHERE r.id= #{rid}
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.RoleMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.SessionMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.TagMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,5 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.UserAcproblemMapper">
|
||||
|
||||
</mapper>
|
|
@ -1,9 +0,0 @@
|
|||
<?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="top.hcode.hoj.dao.UserInfoMapper">
|
||||
<insert id="addUser" parameterType="top.hcode.hoj.pojo.dto.RegisterDto">
|
||||
insert into user_info(uuid,username,password,email) values (
|
||||
#{uuid}, #{username},#{password},#{email}
|
||||
)
|
||||
</insert>
|
||||
</mapper>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue