├── .gitignore
├── .idea
├── .gitignore
├── compiler.xml
├── dataSources.xml
├── dataSources
│ ├── 2dd687ee-dd8e-45e2-b896-6f02280d6a5b.xml
│ └── 2dd687ee-dd8e-45e2-b896-6f02280d6a5b
│ │ └── storage_v2
│ │ └── _src_
│ │ └── schema
│ │ └── information_schema.FNRwLQ.meta
├── encodings.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── jarRepositories.xml
├── jsLibraryMappings.xml
├── misc.xml
├── modules.xml
├── sqldialects.xml
├── uiDesigner.xml
└── vcs.xml
├── .mvn
└── wrapper
│ ├── MavenWrapperDownloader.java
│ └── maven-wrapper.properties
├── README.md
├── git.sql
├── ima
├── %U5)2{~R7$9BR`JCFXTK0{5.png
├── .keep
├── 15FU820NVR40MUALKHS4%JM.png
├── 19@FB]1D_K]_}Q7UUCCZ3N1.png
├── @@3RZLOBF_5%J{Q{VD%OX7E.png
├── @O9_AN}A22YBZZJ]7C%K%%C.png
├── EERF}[5DR[%@XL)ID@IYHKM.png
├── Z~T5`C~A7%Y$(`LU@00~([M.png
├── ]8QG$D3_O4Q%1$EHD}G~I35.png
├── _3H$Q1_DJ}D91NBHHG@EZEA.png
├── admin.png
├── comment.png
├── commitTopic.png
├── index.png
├── login.png
├── myFans.png
├── myFollow.png
├── notic.png
├── onlyTopic.png
├── otherPersonal.png
├── personal.png
├── selectUser.png
├── setting1.png
├── setting2.png
└── topic.png
├── layui.iml
├── pom.xml
└── src
├── main
├── java
│ └── com
│ │ └── chen
│ │ ├── LayuiApplication.java
│ │ ├── MyUtils
│ │ ├── AppraiseUtil.java
│ │ ├── CheckUtil.java
│ │ ├── ControlTrie.java
│ │ ├── CutPage.java
│ │ ├── CutPageIntegration.java
│ │ ├── MyStringUtil.java
│ │ ├── NotificationUtil.java
│ │ ├── PinYinUtils.java
│ │ ├── RandomCode.java
│ │ ├── SendEmail.java
│ │ ├── TimeUtil.java
│ │ └── UnreadUtil.java
│ │ ├── Service
│ │ ├── RegisterService.java
│ │ ├── adminService
│ │ │ ├── AppraiseServise.java
│ │ │ ├── CommentService.java
│ │ │ ├── FansService.java
│ │ │ ├── IpService.java
│ │ │ ├── NotificationService.java
│ │ │ ├── SensitiveService.java
│ │ │ ├── TagService.java
│ │ │ ├── TopicService.java
│ │ │ └── UserService.java
│ │ └── uploadService
│ │ │ └── UploadService.java
│ │ ├── config
│ │ ├── AdminInterceptor.java
│ │ ├── AdminInterceptorAspect.java
│ │ ├── CommandLineRunnerBean.java
│ │ ├── GetIp.java
│ │ ├── LoginHandlerInterceptor.java
│ │ ├── MyMvcConfig.java
│ │ ├── MyStaticProperties.java
│ │ └── Trie.java
│ │ ├── controller
│ │ ├── UserController
│ │ │ ├── AppraiseController.java
│ │ │ ├── ArticleController.java
│ │ │ ├── CommentController.java
│ │ │ ├── ContactAdminController.java
│ │ │ ├── DetailController.java
│ │ │ ├── FansController.java
│ │ │ ├── NotificationController.java
│ │ │ ├── OtherPersonalController.java
│ │ │ ├── PersonalController.java
│ │ │ ├── SelectUserController.java
│ │ │ ├── SetUpController.java
│ │ │ ├── SimpleUserController.java
│ │ │ ├── TrieSearchController.java
│ │ │ └── WriteController.java
│ │ ├── adminController
│ │ │ ├── AdminCommentController.java
│ │ │ ├── AdminController.java
│ │ │ ├── AdminTagController.java
│ │ │ ├── TopicController.java
│ │ │ └── UserController.java
│ │ ├── loginController
│ │ │ └── LoginController.java
│ │ ├── registerController
│ │ │ └── RegisterController.java
│ │ └── test.java
│ │ ├── mapper
│ │ ├── AppraiseMapper.java
│ │ ├── AppraiseMapper.xml
│ │ ├── CommentMapper.java
│ │ ├── CommentMapper.xml
│ │ ├── FansMapper.java
│ │ ├── FansMapper.xml
│ │ ├── IpMapper.java
│ │ ├── IpMapper.xml
│ │ ├── NotificationMapper.java
│ │ ├── NotificationMapper.xml
│ │ ├── SensitiveMapper.java
│ │ ├── SensitiveMapper.xml
│ │ ├── TagMapper.java
│ │ ├── TagMapper.xml
│ │ ├── TopicMapper.java
│ │ ├── TopicMapper.xml
│ │ ├── UserMapper.java
│ │ └── UserMapper.xml
│ │ └── pojo
│ │ ├── Appraise.java
│ │ ├── Comment.java
│ │ ├── Fans.java
│ │ ├── Notification.java
│ │ ├── RegisterUser.java
│ │ ├── ResultJson.java
│ │ ├── Select.java
│ │ ├── Tag.java
│ │ ├── Topic.java
│ │ ├── UploadResp.java
│ │ └── User.java
└── resources
│ ├── application-dev.yaml
│ ├── application-prod.yaml
│ ├── application.properties
│ ├── static
│ ├── css
│ │ ├── 500.css
│ │ ├── about.css
│ │ ├── animate.min.css
│ │ ├── article.css
│ │ ├── blog.css
│ │ ├── comment.css
│ │ ├── detail.css
│ │ ├── error.css
│ │ ├── font.css
│ │ ├── gloable.css
│ │ ├── global.css
│ │ ├── index.css
│ │ ├── login.css
│ │ ├── master.css
│ │ ├── me.css
│ │ ├── message.css
│ │ ├── mixed.css
│ │ ├── nprogress.css
│ │ ├── prettify.css
│ │ ├── public.css
│ │ ├── semantic.min.css
│ │ ├── theme1.css
│ │ ├── theme2.css
│ │ ├── theme3.css
│ │ ├── theme4.css
│ │ ├── theme5.css
│ │ ├── timeline.css
│ │ ├── trie.css
│ │ ├── user.css
│ │ └── xadmin.css
│ ├── font-awesome
│ │ ├── css
│ │ │ ├── font-awesome.css
│ │ │ └── font-awesome.min.css
│ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── less
│ │ │ ├── animated.less
│ │ │ ├── bordered-pulled.less
│ │ │ ├── core.less
│ │ │ ├── fixed-width.less
│ │ │ ├── font-awesome.less
│ │ │ ├── icons.less
│ │ │ ├── larger.less
│ │ │ ├── list.less
│ │ │ ├── mixins.less
│ │ │ ├── path.less
│ │ │ ├── rotated-flipped.less
│ │ │ ├── screen-reader.less
│ │ │ ├── stacked.less
│ │ │ └── variables.less
│ │ └── scss
│ │ │ ├── _animated.scss
│ │ │ ├── _bordered-pulled.scss
│ │ │ ├── _core.scss
│ │ │ ├── _fixed-width.scss
│ │ │ ├── _icons.scss
│ │ │ ├── _larger.scss
│ │ │ ├── _list.scss
│ │ │ ├── _mixins.scss
│ │ │ ├── _path.scss
│ │ │ ├── _rotated-flipped.scss
│ │ │ ├── _screen-reader.scss
│ │ │ ├── _stacked.scss
│ │ │ ├── _variables.scss
│ │ │ └── font-awesome.scss
│ ├── fonts
│ │ ├── iconfont.eot
│ │ ├── iconfont.svg
│ │ ├── iconfont.ttf
│ │ └── iconfont.woff
│ ├── images
│ │ ├── 404.gif
│ │ ├── 500.gif
│ │ ├── avatar
│ │ │ ├── 1.png
│ │ │ ├── 1667548946800.jpg
│ │ │ ├── 1667548971530.jpg
│ │ │ ├── 1667746118317.jpeg
│ │ │ ├── 1668164368257.jpg
│ │ │ ├── 1668318538996.jpg
│ │ │ ├── 1669220965186.jpg
│ │ │ ├── 1669276685855.jpg
│ │ │ ├── 1669293156078.jpg
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 404.gif
│ │ │ ├── 500.gif
│ │ │ ├── dapao.png
│ │ │ ├── defaultAvatar.jpg
│ │ │ ├── whiteCat.jpg
│ │ │ ├── xiaosan.png
│ │ │ └── zhuge.png
│ │ ├── login.jpg
│ │ └── topicPicture
│ │ │ ├── 1.jpg
│ │ │ ├── 1669276951107.jpg
│ │ │ ├── 1669276974784.jpg
│ │ │ ├── 1669277059671.jpg
│ │ │ ├── 1669277181490.jpg
│ │ │ ├── 1669277234642.jpg
│ │ │ ├── 1669277297811.jpg
│ │ │ ├── 1669277343490.jpg
│ │ │ ├── 1669277391908.jpg
│ │ │ ├── 1669277447039.jpg
│ │ │ ├── 1669277798480.jpg
│ │ │ ├── 1669277853998.jpg
│ │ │ ├── 1669277910439.jpg
│ │ │ ├── 1669278028519.jpg
│ │ │ ├── 1669293179604.jpg
│ │ │ ├── 1685862798345.jpg
│ │ │ ├── 1685866745259.jpg
│ │ │ ├── 1685867120900.jpg
│ │ │ ├── 1685867146179.jpg
│ │ │ ├── 1686062673846.jpg
│ │ │ ├── 1686062719827.jpg
│ │ │ └── 2.jpg
│ ├── js
│ │ ├── about.js
│ │ ├── article.js
│ │ ├── cache.js
│ │ ├── check.js
│ │ ├── detail.js
│ │ ├── global.js
│ │ ├── index.js
│ │ ├── jquery-3.2.1.js
│ │ ├── jquery-3.6.1.min.js
│ │ ├── jquery.marquee.min.js
│ │ ├── jquery.min.js
│ │ ├── login.js
│ │ ├── mixed_pic.js
│ │ ├── pagecomment.js
│ │ ├── pagemessage.js
│ │ ├── prettify.js
│ │ ├── register.js
│ │ ├── timeline.js
│ │ ├── trie.js
│ │ ├── xadmin.js
│ │ └── xcity.js
│ ├── layui
│ │ ├── css
│ │ │ ├── layui.css
│ │ │ ├── layui.mobile.css
│ │ │ └── modules
│ │ │ │ ├── code.css
│ │ │ │ ├── laydate
│ │ │ │ └── default
│ │ │ │ │ └── laydate.css
│ │ │ │ └── layer
│ │ │ │ └── default
│ │ │ │ ├── icon-ext.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── layer.css
│ │ │ │ ├── loading-0.gif
│ │ │ │ ├── loading-1.gif
│ │ │ │ └── loading-2.gif
│ │ ├── font
│ │ │ ├── iconfont.eot
│ │ │ ├── iconfont.svg
│ │ │ ├── iconfont.ttf
│ │ │ ├── iconfont.woff
│ │ │ └── iconfont.woff2
│ │ ├── images
│ │ │ └── face
│ │ │ │ ├── 0.gif
│ │ │ │ ├── 1.gif
│ │ │ │ ├── 10.gif
│ │ │ │ ├── 11.gif
│ │ │ │ ├── 12.gif
│ │ │ │ ├── 13.gif
│ │ │ │ ├── 14.gif
│ │ │ │ ├── 15.gif
│ │ │ │ ├── 16.gif
│ │ │ │ ├── 17.gif
│ │ │ │ ├── 18.gif
│ │ │ │ ├── 19.gif
│ │ │ │ ├── 2.gif
│ │ │ │ ├── 20.gif
│ │ │ │ ├── 21.gif
│ │ │ │ ├── 22.gif
│ │ │ │ ├── 23.gif
│ │ │ │ ├── 24.gif
│ │ │ │ ├── 25.gif
│ │ │ │ ├── 26.gif
│ │ │ │ ├── 27.gif
│ │ │ │ ├── 28.gif
│ │ │ │ ├── 29.gif
│ │ │ │ ├── 3.gif
│ │ │ │ ├── 30.gif
│ │ │ │ ├── 31.gif
│ │ │ │ ├── 32.gif
│ │ │ │ ├── 33.gif
│ │ │ │ ├── 34.gif
│ │ │ │ ├── 35.gif
│ │ │ │ ├── 36.gif
│ │ │ │ ├── 37.gif
│ │ │ │ ├── 38.gif
│ │ │ │ ├── 39.gif
│ │ │ │ ├── 4.gif
│ │ │ │ ├── 40.gif
│ │ │ │ ├── 41.gif
│ │ │ │ ├── 42.gif
│ │ │ │ ├── 43.gif
│ │ │ │ ├── 44.gif
│ │ │ │ ├── 45.gif
│ │ │ │ ├── 46.gif
│ │ │ │ ├── 47.gif
│ │ │ │ ├── 48.gif
│ │ │ │ ├── 49.gif
│ │ │ │ ├── 5.gif
│ │ │ │ ├── 50.gif
│ │ │ │ ├── 51.gif
│ │ │ │ ├── 52.gif
│ │ │ │ ├── 53.gif
│ │ │ │ ├── 54.gif
│ │ │ │ ├── 55.gif
│ │ │ │ ├── 56.gif
│ │ │ │ ├── 57.gif
│ │ │ │ ├── 58.gif
│ │ │ │ ├── 59.gif
│ │ │ │ ├── 6.gif
│ │ │ │ ├── 60.gif
│ │ │ │ ├── 61.gif
│ │ │ │ ├── 62.gif
│ │ │ │ ├── 63.gif
│ │ │ │ ├── 64.gif
│ │ │ │ ├── 65.gif
│ │ │ │ ├── 66.gif
│ │ │ │ ├── 67.gif
│ │ │ │ ├── 68.gif
│ │ │ │ ├── 69.gif
│ │ │ │ ├── 7.gif
│ │ │ │ ├── 70.gif
│ │ │ │ ├── 71.gif
│ │ │ │ ├── 8.gif
│ │ │ │ └── 9.gif
│ │ ├── lay
│ │ │ └── modules
│ │ │ │ ├── carousel.js
│ │ │ │ ├── code.js
│ │ │ │ ├── element.js
│ │ │ │ ├── flow.js
│ │ │ │ ├── form.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── laydate.js
│ │ │ │ ├── layedit.js
│ │ │ │ ├── layer.js
│ │ │ │ ├── laypage.js
│ │ │ │ ├── laytpl.js
│ │ │ │ ├── mobile.js
│ │ │ │ ├── rate.js
│ │ │ │ ├── table.js
│ │ │ │ ├── tree.js
│ │ │ │ ├── upload.js
│ │ │ │ └── util.js
│ │ ├── layui.all.js
│ │ └── layui.js
│ └── lib
│ │ └── layui
│ │ ├── css
│ │ ├── layui.css
│ │ ├── layui.mobile.css
│ │ └── modules
│ │ │ ├── code.css
│ │ │ ├── laydate
│ │ │ └── default
│ │ │ │ └── laydate.css
│ │ │ └── layer
│ │ │ └── default
│ │ │ ├── icon-ext.png
│ │ │ ├── icon.png
│ │ │ ├── layer.css
│ │ │ ├── loading-0.gif
│ │ │ ├── loading-1.gif
│ │ │ └── loading-2.gif
│ │ ├── font
│ │ ├── iconfont.eot
│ │ ├── iconfont.svg
│ │ ├── iconfont.ttf
│ │ └── iconfont.woff
│ │ ├── images
│ │ └── face
│ │ │ ├── 0.gif
│ │ │ ├── 1.gif
│ │ │ ├── 10.gif
│ │ │ ├── 11.gif
│ │ │ ├── 12.gif
│ │ │ ├── 13.gif
│ │ │ ├── 14.gif
│ │ │ ├── 15.gif
│ │ │ ├── 16.gif
│ │ │ ├── 17.gif
│ │ │ ├── 18.gif
│ │ │ ├── 19.gif
│ │ │ ├── 2.gif
│ │ │ ├── 20.gif
│ │ │ ├── 21.gif
│ │ │ ├── 22.gif
│ │ │ ├── 23.gif
│ │ │ ├── 24.gif
│ │ │ ├── 25.gif
│ │ │ ├── 26.gif
│ │ │ ├── 27.gif
│ │ │ ├── 28.gif
│ │ │ ├── 29.gif
│ │ │ ├── 3.gif
│ │ │ ├── 30.gif
│ │ │ ├── 31.gif
│ │ │ ├── 32.gif
│ │ │ ├── 33.gif
│ │ │ ├── 34.gif
│ │ │ ├── 35.gif
│ │ │ ├── 36.gif
│ │ │ ├── 37.gif
│ │ │ ├── 38.gif
│ │ │ ├── 39.gif
│ │ │ ├── 4.gif
│ │ │ ├── 40.gif
│ │ │ ├── 41.gif
│ │ │ ├── 42.gif
│ │ │ ├── 43.gif
│ │ │ ├── 44.gif
│ │ │ ├── 45.gif
│ │ │ ├── 46.gif
│ │ │ ├── 47.gif
│ │ │ ├── 48.gif
│ │ │ ├── 49.gif
│ │ │ ├── 5.gif
│ │ │ ├── 50.gif
│ │ │ ├── 51.gif
│ │ │ ├── 52.gif
│ │ │ ├── 53.gif
│ │ │ ├── 54.gif
│ │ │ ├── 55.gif
│ │ │ ├── 56.gif
│ │ │ ├── 57.gif
│ │ │ ├── 58.gif
│ │ │ ├── 59.gif
│ │ │ ├── 6.gif
│ │ │ ├── 60.gif
│ │ │ ├── 61.gif
│ │ │ ├── 62.gif
│ │ │ ├── 63.gif
│ │ │ ├── 64.gif
│ │ │ ├── 65.gif
│ │ │ ├── 66.gif
│ │ │ ├── 67.gif
│ │ │ ├── 68.gif
│ │ │ ├── 69.gif
│ │ │ ├── 7.gif
│ │ │ ├── 70.gif
│ │ │ ├── 71.gif
│ │ │ ├── 8.gif
│ │ │ └── 9.gif
│ │ ├── lay
│ │ └── modules
│ │ │ ├── carousel.js
│ │ │ ├── code.js
│ │ │ ├── colorpicker.js
│ │ │ ├── element.js
│ │ │ ├── flow.js
│ │ │ ├── form.js
│ │ │ ├── jquery.js
│ │ │ ├── laydate.js
│ │ │ ├── layedit.js
│ │ │ ├── layer.js
│ │ │ ├── laypage.js
│ │ │ ├── laytpl.js
│ │ │ ├── mobile.js
│ │ │ ├── rate.js
│ │ │ ├── slider.js
│ │ │ ├── table.js
│ │ │ ├── tree.js
│ │ │ ├── upload.js
│ │ │ └── util.js
│ │ ├── layui.all.js
│ │ └── layui.js
│ └── templates
│ ├── 403.html
│ ├── admin
│ ├── adindex.html
│ ├── charts.html
│ └── welcome.html
│ ├── code.html
│ ├── commons
│ └── commons.html
│ ├── error
│ ├── 404.html
│ └── 500.html
│ ├── login.html
│ ├── register.html
│ ├── test.html
│ ├── trie.html
│ └── user
│ ├── article.html
│ ├── chat.html
│ ├── contact.html
│ ├── detail.html
│ ├── detailChat.html
│ ├── otherPersonal.html
│ ├── personal.html
│ ├── reply.html
│ ├── search.html
│ ├── setUp.html
│ ├── user.html
│ ├── userIndex.html
│ └── write.html
└── test
└── java
└── com
└── chen
└── LayuiApplicationTests.java
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled class file
2 | *.class
3 |
4 | # Log file
5 | *.log
6 |
7 | # BlueJ files
8 | *.ctxt
9 |
10 | # Mobile Tools for Java (J2ME)
11 | .mtj.tmp/
12 |
13 | # Package Files #
14 | *.jar
15 | *.war
16 | *.nar
17 | *.ear
18 | *.zip
19 | *.tar.gz
20 | *.rar
21 |
22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23 | hs_err_pid*
24 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # 默认忽略的文件
2 | /shelf/
3 | /workspace.xml
4 | # 数据源本地存储已忽略文件
5 | /../../../../:\github\layui\.idea/dataSources/
6 | /dataSources.local.xml
7 | # 基于编辑器的 HTTP 客户端请求
8 | /httpRequests/
9 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/dataSources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | mysql.8
6 | true
7 | com.mysql.cj.jdbc.Driver
8 | jdbc:mysql://localhost:3306/Myblog
9 | $ProjectFileDir$
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/dataSources/2dd687ee-dd8e-45e2-b896-6f02280d6a5b/storage_v2/_src_/schema/information_schema.FNRwLQ.meta:
--------------------------------------------------------------------------------
1 | #n:information_schema
2 | ! [null, 0, null, null, -2147483648, -2147483648]
3 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/jarRepositories.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/.idea/jsLibraryMappings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/sqldialects.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # whiteCat 访问地址 http://111.229.201.35:8080/chen
4 |
5 | **有问题可以发我邮箱1345305701@qq.com**
6 |
7 | whiteCat博客/论坛介绍
8 |
9 | springboot+mybatis+thymeleaf+layui实现,前端页面参考了https://gitee.com/NarraT0r/layui_Blog
10 |
11 | 这是我的一个web的课程设计的项目
12 | 实现了基本功能:
13 |
14 | - 这里是列表文本文章:发文章,删文章,文章的标签,文章的点赞,评论,以及点赞数,评论数,浏览量的统计,文章的搜索,以及文章的封面设置
15 | - 这里是列表文本评论:评论的楼层叠加,评论的点赞以及删除,评论敏感词过滤。
16 | - 这里是列表文本用户空间:设置功能:修改个人信息,头像的修改,绑定邮箱以及邮箱验证码的发送,他人以及自己的空间。
17 | - 这里是列表文本消息系统:消息的通知,目前只实现了点赞信息提醒以及私信功能,其他的消息通知大同小异就没做了。
18 | - 这里是列表文本其他功能:关注列表以及粉丝列表,前缀树实现的搜索提示跟敏感词过滤。
19 |
20 | 管理员:用户名admin 密码123456 这个账号的权限仅仅只能查看后台数据,并不能修改和删除,但是功能是完整实现了的,之前没做权限数据被人删了,就限制只能权限更高的账号才能修改数据了。
21 |
22 |
23 | 登录/注册页面
24 | 
25 |
26 | 首页
27 | 
28 |
29 | 文章详细页
30 | 
31 |
32 | 评论页
33 | 
34 |
35 | 个人主页 + 粉丝列表+ 关注列表 + 消息页
36 | 
37 | 
38 | 
39 | 
40 |
41 |
42 | 他人主页
43 | 
44 |
45 |
46 | 文章分类页
47 | 
48 |
49 | 发帖页
50 | 
51 |
52 | 用户搜索页
53 | 
54 |
55 | 设置页
56 | 
57 | 
58 |
59 |
60 |
61 | 管理员页面
62 | 
63 | #### 使用说明
64 |
65 | 需导入在文件夹中的sql文件,本地访问为:http://localhost:8080/chen
66 |
67 | 2. 配置头像以及封面存放地址
68 | 
69 | 3. 配置数据库
70 | 
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/ima/%U5)2{~R7$9BR`JCFXTK0{5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/%U5)2{~R7$9BR`JCFXTK0{5.png
--------------------------------------------------------------------------------
/ima/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/.keep
--------------------------------------------------------------------------------
/ima/15FU820NVR40MUALKHS4%JM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/15FU820NVR40MUALKHS4%JM.png
--------------------------------------------------------------------------------
/ima/19@FB]1D_K]_}Q7UUCCZ3N1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/19@FB]1D_K]_}Q7UUCCZ3N1.png
--------------------------------------------------------------------------------
/ima/@@3RZLOBF_5%J{Q{VD%OX7E.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/@@3RZLOBF_5%J{Q{VD%OX7E.png
--------------------------------------------------------------------------------
/ima/@O9_AN}A22YBZZJ]7C%K%%C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/@O9_AN}A22YBZZJ]7C%K%%C.png
--------------------------------------------------------------------------------
/ima/EERF}[5DR[%@XL)ID@IYHKM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/EERF}[5DR[%@XL)ID@IYHKM.png
--------------------------------------------------------------------------------
/ima/Z~T5`C~A7%Y$(`LU@00~([M.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/Z~T5`C~A7%Y$(`LU@00~([M.png
--------------------------------------------------------------------------------
/ima/]8QG$D3_O4Q%1$EHD}G~I35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/]8QG$D3_O4Q%1$EHD}G~I35.png
--------------------------------------------------------------------------------
/ima/_3H$Q1_DJ}D91NBHHG@EZEA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/_3H$Q1_DJ}D91NBHHG@EZEA.png
--------------------------------------------------------------------------------
/ima/admin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/admin.png
--------------------------------------------------------------------------------
/ima/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/comment.png
--------------------------------------------------------------------------------
/ima/commitTopic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/commitTopic.png
--------------------------------------------------------------------------------
/ima/index.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/index.png
--------------------------------------------------------------------------------
/ima/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/login.png
--------------------------------------------------------------------------------
/ima/myFans.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/myFans.png
--------------------------------------------------------------------------------
/ima/myFollow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/myFollow.png
--------------------------------------------------------------------------------
/ima/notic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/notic.png
--------------------------------------------------------------------------------
/ima/onlyTopic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/onlyTopic.png
--------------------------------------------------------------------------------
/ima/otherPersonal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/otherPersonal.png
--------------------------------------------------------------------------------
/ima/personal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/personal.png
--------------------------------------------------------------------------------
/ima/selectUser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/selectUser.png
--------------------------------------------------------------------------------
/ima/setting1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/setting1.png
--------------------------------------------------------------------------------
/ima/setting2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/setting2.png
--------------------------------------------------------------------------------
/ima/topic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/ima/topic.png
--------------------------------------------------------------------------------
/layui.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/LayuiApplication.java:
--------------------------------------------------------------------------------
1 | package com.chen;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.context.annotation.EnableAspectJAutoProxy;
6 |
7 | @EnableAspectJAutoProxy(proxyTargetClass = true)
8 | @SpringBootApplication
9 | public class LayuiApplication {
10 |
11 | public static void main(String[] args) {
12 | SpringApplication.run(LayuiApplication.class, args);
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/MyUtils/AppraiseUtil.java:
--------------------------------------------------------------------------------
1 | package com.chen.MyUtils;
2 |
3 | import com.chen.Service.adminService.AppraiseServise;
4 | import com.chen.Service.adminService.TopicService;
5 | import com.chen.pojo.Appraise;
6 | import com.chen.pojo.User;
7 | import org.springframework.beans.factory.annotation.Autowired;
8 |
9 | import javax.servlet.http.HttpSession;
10 | import java.util.*;
11 |
12 | public class AppraiseUtil {
13 |
14 | public static HashMap appraise(HttpSession session, Integer topicId ,HashMap appraiseMap, AppraiseServise appraiseServise, String s){
15 | User userLogin = (User)session.getAttribute("loginUser");
16 | List appraiseList;
17 | if (Objects.nonNull(appraiseMap)){
18 | appraiseMap.clear();
19 | }
20 |
21 | if (Objects.nonNull(userLogin)){
22 | if (s.equals("topic")){
23 | // 对所有文章的点赞情况
24 | appraiseList = appraiseServise.getAppraiseList(userLogin.getId(), topicId, 1);
25 |
26 | if (Objects.nonNull(appraiseList)){
27 | for (Appraise appraise : appraiseList) {//点赞Map
28 | appraiseMap.put(appraise.getTopicId(), appraise.getStatus());
29 | }
30 | }
31 | }
32 |
33 | if (s.equals("comment")){
34 | // 仅对某篇帖子的评论点赞情况
35 | appraiseList = appraiseServise.getAppraiseList(userLogin.getId(), topicId, 0);
36 |
37 | if (Objects.nonNull(appraiseList)){
38 | for (Appraise appraise : appraiseList) {//点赞Map
39 | appraiseMap.put(appraise.getCommentId(), appraise.getStatus());
40 | }
41 | }
42 | }
43 | }
44 |
45 | return appraiseMap;
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/MyUtils/ControlTrie.java:
--------------------------------------------------------------------------------
1 | package com.chen.MyUtils;
2 |
3 | import com.chen.config.Trie;
4 | import lombok.Data;
5 | import org.springframework.stereotype.Component;
6 |
7 |
8 | @Component
9 | @Data
10 | public class ControlTrie {
11 |
12 | private Trie topicTrie;
13 |
14 | private Trie userTrie;
15 |
16 | private Trie sensitiveTrie;
17 |
18 | public ControlTrie(){
19 | topicTrie = new Trie();
20 | userTrie = new Trie();
21 | sensitiveTrie = new Trie();
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/MyUtils/CutPageIntegration.java:
--------------------------------------------------------------------------------
1 | package com.chen.MyUtils;
2 |
3 | public class CutPageIntegration {
4 |
5 | public static CutPage nextPage(CutPage cutPage){
6 | if (cutPage.getNowPage() != cutPage.getPageCount()){
7 | cutPage.setNowPage(cutPage.getNowPage() + 1);
8 | }
9 | return cutPage;
10 | }
11 |
12 | public static CutPage lastPage(CutPage cutPage){
13 | if(cutPage.getNowPage() != 1){
14 | cutPage.setNowPage(cutPage.getNowPage() - 1);
15 | }
16 | return cutPage;
17 | }
18 |
19 | public static CutPage toWhichPage(Integer page,CutPage cutPage){
20 | if (page > cutPage.getPageCount()){
21 | cutPage.setNowPage(cutPage.getPageCount());
22 | } else {
23 | cutPage.setNowPage(page);
24 | }
25 |
26 | return cutPage;
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/MyUtils/MyStringUtil.java:
--------------------------------------------------------------------------------
1 | package com.chen.MyUtils;
2 |
3 | import org.springframework.util.StringUtils;
4 |
5 | public class MyStringUtil {
6 |
7 | /**
8 | * 校验字符串是否非空
9 | *
10 | * @param str 字符串组合
11 | * @return 所有字符串都非空时返回 true,否则返回 false
12 | */
13 | public static Boolean notEmpty(String... str) {
14 | for (String strIndex : str) {
15 | if (StringUtils.isEmpty(strIndex)) {
16 | return false;
17 | }
18 | }
19 | return true;
20 | }
21 |
22 | /**
23 | * 校验字符串序列是否含有空值
24 | *
25 | * @param str 字符串序列
26 | * @return 只要有一个字符串为空时就返回 true,否则返回 false
27 | */
28 | public static Boolean isEmpty(String... str) {
29 | return !notEmpty(str);
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/MyUtils/RandomCode.java:
--------------------------------------------------------------------------------
1 | package com.chen.MyUtils;
2 |
3 | import com.chen.pojo.RegisterUser;
4 |
5 | import java.util.Random;
6 | import java.util.Stack;
7 |
8 | public class RandomCode {
9 |
10 | // 获得随机的验证码
11 | public static String getRandomCode(){
12 | StringBuffer data = new StringBuffer("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
13 | StringBuffer sb = new StringBuffer();
14 | Random random = new Random();
15 | for (int i = 0; i < 4; i++) {
16 | sb.append(data.charAt(random.nextInt(62)));
17 | }
18 | return sb.toString();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/MyUtils/SendEmail.java:
--------------------------------------------------------------------------------
1 | package com.chen.MyUtils;
2 |
3 | import com.chen.config.MyStaticProperties;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.mail.MailSender;
8 | import org.springframework.mail.SimpleMailMessage;
9 | import org.springframework.stereotype.Component;
10 |
11 | @Component
12 | public class SendEmail {
13 |
14 | @Autowired
15 | private MailSender mailSender;
16 |
17 | @Getter
18 | @Setter
19 | private Boolean already = Boolean.FALSE; //判断是否发送了
20 |
21 |
22 | //重载
23 | public void send(String setTo, String content) {
24 | send(setTo, MyStaticProperties.getMyEmail(), content);
25 | }
26 |
27 | public void send(String setTo, String setFrom, String content) {
28 | SimpleMailMessage message = new SimpleMailMessage();
29 | message.setSubject("WhiteCat");
30 | message.setText(content);
31 |
32 | message.setTo(setTo);
33 | message.setFrom(setFrom);
34 |
35 | setAlready(true);
36 |
37 | mailSender.send(message);
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/MyUtils/TimeUtil.java:
--------------------------------------------------------------------------------
1 | package com.chen.MyUtils;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import org.springframework.stereotype.Component;
7 |
8 | @Component
9 | @Data
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class TimeUtil {
13 |
14 | /** 获取当前系统时间*/
15 | private long startTime;
16 |
17 | /** 获取当前的系统时间,与初始时间相减就是程序运行的毫秒数,除以1000就是秒数*/
18 | private long endTime;
19 |
20 | public void start(){
21 | setStartTime(System.currentTimeMillis());
22 | }
23 |
24 | public void end(){
25 | setEndTime(System.currentTimeMillis());
26 | }
27 |
28 | public long getCodeTime() {
29 | return (System.currentTimeMillis()-startTime)/1000;
30 | }
31 |
32 | public long setTime(){
33 | return System.currentTimeMillis();
34 | }
35 |
36 | public long getTime(long time){
37 | return (System.currentTimeMillis()-time)/1000;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/MyUtils/UnreadUtil.java:
--------------------------------------------------------------------------------
1 | package com.chen.MyUtils;
2 |
3 | import com.chen.Service.adminService.NotificationService;
4 |
5 | import java.util.HashMap;
6 |
7 | public class UnreadUtil {
8 |
9 | private int totalUnread; // 未读消息总数
10 | private int supportUnread; //未读点赞消息数
11 | private int commentUnread; //未读评论消息数
12 | private int fansUnread; //新增粉丝未读消息数
13 | private int messageUnread; //私信未读消息数
14 | private int systemUnread; //未读系统消息数
15 |
16 | public static HashMap getUnreadCount(NotificationService notificationService, Integer userId){
17 |
18 | HashMap map = new HashMap<>();
19 |
20 | map.put("totalUnread", notificationService.getTotalUnread(userId));
21 | map.put("supportUnread", notificationService.getSupportUnread(userId));
22 | map.put("chatUnread", notificationService.getTotalChatCount(userId));
23 |
24 | return map;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/Service/RegisterService.java:
--------------------------------------------------------------------------------
1 | package com.chen.Service;
2 |
3 | import com.chen.MyUtils.CheckUtil;
4 | import com.chen.pojo.RegisterUser;
5 | import com.chen.pojo.User;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.stereotype.Service;
8 | import org.springframework.util.StringUtils;
9 | import org.springframework.web.bind.annotation.GetMapping;
10 |
11 | import javax.xml.soap.SAAJResult;
12 |
13 | @Service
14 | public class RegisterService {
15 |
16 | @Autowired
17 | private CheckUtil checkUtil;
18 |
19 | public String registerCheck(RegisterUser registerUser){
20 | return checkUtil.checkReturnMessage(registerUser);
21 | }
22 |
23 | public User registerUserTurnToUser(RegisterUser registerUser){
24 | User user = new User();
25 | user.setUsername(registerUser.getUsername());
26 | user.setPassword(registerUser.getPassword());
27 | user.setEmail(registerUser.getEmail());
28 | return user;
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/Service/adminService/AppraiseServise.java:
--------------------------------------------------------------------------------
1 | package com.chen.Service.adminService;
2 |
3 | import com.chen.MyUtils.NotificationUtil;
4 | import com.chen.mapper.AppraiseMapper;
5 | import com.chen.pojo.Appraise;
6 | import com.chen.pojo.Notification;
7 | import org.apache.ibatis.annotations.Param;
8 | import org.springframework.beans.factory.annotation.Autowired;
9 | import org.springframework.stereotype.Service;
10 |
11 | import java.util.List;
12 |
13 | @Service
14 | public class AppraiseServise implements AppraiseMapper {
15 |
16 | @Autowired
17 | private AppraiseMapper appraiseMapper;
18 |
19 | @Override
20 | public void support(Appraise appraise) {
21 | appraiseMapper.support(appraise);
22 | }
23 |
24 | @Override
25 | public void criticism(Appraise appraise) {
26 | appraiseMapper.criticism(appraise);
27 | }
28 |
29 | @Override
30 | public List getAppraiseList(Integer userId, Integer topicId, int type) {
31 | return appraiseMapper.getAppraiseList(userId, topicId, type);
32 | }
33 |
34 | @Override
35 | public Appraise getAppraise(Appraise appraise) {
36 | return appraiseMapper.getAppraise(appraise);
37 | }
38 |
39 |
40 | @Override
41 | public void updateStatus(Integer id, Integer status) {
42 | appraiseMapper.updateStatus(id, status);
43 | }
44 |
45 |
46 |
47 |
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/Service/adminService/FansService.java:
--------------------------------------------------------------------------------
1 | package com.chen.Service.adminService;
2 |
3 | import com.chen.mapper.FansMapper;
4 | import com.chen.pojo.Fans;
5 | import com.chen.pojo.User;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.stereotype.Service;
8 |
9 | import java.util.List;
10 | import java.util.Objects;
11 |
12 | @Service
13 | public class FansService implements FansMapper{
14 |
15 | @Autowired
16 | private FansMapper fansMapper;
17 |
18 | @Override
19 | public List getFansByIdolId(Integer idolId) {
20 | return fansMapper.getFansByIdolId(idolId);
21 | }
22 |
23 | @Override
24 | public List getIdolByFansId(Integer fansId) {
25 | return fansMapper.getIdolByFansId(fansId);
26 | }
27 |
28 | @Override
29 | public int getIdolByFansIdCount(Integer fansId) {
30 | return fansMapper.getIdolByFansIdCount(fansId);
31 | }
32 |
33 | @Override
34 | public int getFansByIdolIdCount(Integer id) {
35 | return fansMapper.getFansByIdolIdCount(id);
36 | }
37 |
38 | @Override
39 | public Fans ifIAmFans(Integer myId, Integer hisId) {
40 | return fansMapper.ifIAmFans(myId, hisId);
41 | }
42 |
43 | @Override
44 | public Fans ifEverFans(Fans fans) {
45 | return fansMapper.ifEverFans(fans);
46 | }
47 |
48 | //beFans分为firstBeFans和againBeFans
49 | @Override
50 | public void beFans(Fans fans) {
51 |
52 | if(Objects.isNull(ifEverFans(fans))){
53 | firstBeFans(fans);
54 | } else {
55 | againBeFans(fans);
56 | }
57 | }
58 |
59 | @Override
60 | public void firstBeFans(Fans fans) {
61 | fansMapper.firstBeFans(fans);
62 | }
63 |
64 | @Override
65 | public void againBeFans(Fans fans) {
66 | fansMapper.againBeFans(fans);
67 | }
68 |
69 | @Override
70 | public void everBeFans(Fans fans) {
71 | fansMapper.everBeFans(fans);
72 | }
73 |
74 |
75 | }
76 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/Service/adminService/IpService.java:
--------------------------------------------------------------------------------
1 | package com.chen.Service.adminService;
2 |
3 | import com.chen.mapper.IpMapper;
4 | import org.springframework.beans.factory.annotation.Autowired;
5 | import org.springframework.stereotype.Service;
6 |
7 | import java.text.ParseException;
8 | import java.text.SimpleDateFormat;
9 | import java.util.Date;
10 | import java.util.List;
11 |
12 | @Service
13 | public class IpService implements IpMapper {
14 |
15 | @Autowired
16 | private IpMapper ipMapper;
17 |
18 | @Override
19 | public void addIp(String ip, Date time) {
20 |
21 | List allIp = ipMapper.getAllIp();
22 |
23 | for (Object i : allIp) {
24 | if (!i.equals(ip)){
25 | continue;
26 | }else {
27 | return;
28 | }
29 | }
30 |
31 | ipMapper.addIp(ip, time);
32 |
33 | }
34 |
35 | public int getIpCount(){
36 | return ipMapper.getAllIp().size();
37 | }
38 |
39 | @Override
40 | public List getAllIp() {
41 | return null;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/Service/adminService/SensitiveService.java:
--------------------------------------------------------------------------------
1 | package com.chen.Service.adminService;
2 |
3 | import com.chen.mapper.SensitiveMapper;
4 | import org.springframework.beans.factory.annotation.Autowired;
5 | import org.springframework.stereotype.Service;
6 |
7 | import java.util.List;
8 |
9 | @Service
10 | public class SensitiveService implements SensitiveMapper {
11 |
12 | @Autowired
13 | private SensitiveMapper sensitiveMapper;
14 |
15 | @Override
16 | public List getSensitiveWord() {
17 | return sensitiveMapper.getSensitiveWord();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/Service/adminService/TagService.java:
--------------------------------------------------------------------------------
1 | package com.chen.Service.adminService;
2 |
3 | import com.chen.mapper.TagMapper;
4 | import com.chen.pojo.Select;
5 | import com.chen.pojo.Tag;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.stereotype.Service;
8 |
9 | import java.util.List;
10 |
11 | @Service
12 | public class TagService implements TagMapper{
13 |
14 | @Autowired
15 | private TagMapper tagMapper;
16 |
17 | @Override
18 | public List getTagList() {
19 | return tagMapper.getTagList();
20 | }
21 |
22 |
23 | public String getTagNameById(Integer id){
24 | return tagMapper.getTagNameById(id);
25 | }
26 |
27 | @Override
28 | public List getTagListByFuzzyName(String message) {
29 | return tagMapper.getTagListByFuzzyName(message);
30 | }
31 |
32 | @Override
33 | public Integer getTotalTagCount() {
34 | return tagMapper.getTotalTagCount();
35 | }
36 |
37 | @Override
38 | public Tag getTagById(Integer id) {
39 | return tagMapper.getTagById(id);
40 | }
41 |
42 | @Override
43 | public void insertTag(String name) {
44 | tagMapper.insertTag(name);
45 | }
46 |
47 | @Override
48 | public void deleteById(Integer id) {
49 | tagMapper.deleteById(id);
50 | }
51 |
52 | @Override
53 | public void tagCountPlus(Integer id) {
54 | tagMapper.tagCountPlus(id);
55 | }
56 |
57 | @Override
58 | public void tagCountReduce(Integer id) {
59 | tagMapper.tagCountReduce(id);
60 | }
61 |
62 | @Override
63 | public void summitUpdate(Integer id, String newName) {
64 | tagMapper.summitUpdate(id, newName);
65 | }
66 |
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/Service/uploadService/UploadService.java:
--------------------------------------------------------------------------------
1 | package com.chen.Service.uploadService;
2 |
3 | import com.chen.config.MyStaticProperties;
4 | import com.chen.pojo.UploadResp;
5 | import org.springframework.beans.factory.annotation.Value;
6 | import org.springframework.stereotype.Service;
7 | import org.springframework.web.multipart.MultipartFile;
8 | import javax.servlet.http.HttpServletRequest;
9 | import java.io.File;
10 | import java.io.IOException;
11 |
12 | @Service
13 | public class UploadService {
14 |
15 | @Value("${index.static.properties.avatar}")
16 | private String avatarPath;
17 |
18 | @Value("${index.static.properties.topicPicture}")
19 | private String topicPicturePath;
20 |
21 | public UploadResp upload(MultipartFile file, Boolean ifAvatar) { // 默认是头像,false为封面
22 | if (file.isEmpty()) {
23 | return new UploadResp("400", "文件为空");
24 | }
25 | String originalFilename = file.getOriginalFilename();
26 | String fileName = System.currentTimeMillis() + "." + originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
27 | String filePath = "";
28 | if (ifAvatar){
29 | //filePath = "D:/github/layui/src/main/resources/static/img/avatar/";
30 | //filePath = "/www/wwwroot/images/avatar/";
31 | filePath = avatarPath;
32 | } else {
33 | //filePath = "D:/github/layui/src/main/resources/static/images/topicPicture/";
34 | //filePath = "/www/wwwroot/images/topicPicture/";
35 | filePath = topicPicturePath;
36 | }
37 | File dest = new File(filePath + fileName);
38 | if (!dest.getParentFile().exists()) {
39 | dest.getParentFile().mkdirs();
40 | }
41 | try {
42 | file.transferTo(dest);
43 | } catch (IOException e) {
44 | e.printStackTrace();
45 | return new UploadResp("500", "上传失败!");
46 | }
47 | return new UploadResp("200", "上传成功!", fileName);
48 | }
49 | }
--------------------------------------------------------------------------------
/src/main/java/com/chen/config/AdminInterceptor.java:
--------------------------------------------------------------------------------
1 | package com.chen.config;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | @Retention(RetentionPolicy.RUNTIME)
9 | @Target(ElementType.TYPE)
10 | public @interface AdminInterceptor { }
--------------------------------------------------------------------------------
/src/main/java/com/chen/config/AdminInterceptorAspect.java:
--------------------------------------------------------------------------------
1 | package com.chen.config;
2 |
3 | import com.chen.pojo.User;
4 | import org.aspectj.lang.ProceedingJoinPoint;
5 | import org.aspectj.lang.annotation.Around;
6 | import org.aspectj.lang.annotation.Aspect;
7 | import org.springframework.aop.support.AopUtils;
8 | import org.springframework.beans.factory.annotation.Autowired;
9 | import org.springframework.stereotype.Component;
10 | import org.springframework.util.StringUtils;
11 |
12 | import javax.servlet.http.HttpSession;
13 |
14 | @Aspect
15 | @Component
16 | public class AdminInterceptorAspect {
17 |
18 | @Autowired
19 | private HttpSession session;
20 |
21 | @Around(" execution(* com.chen.controller.adminController.AdminCommentController.deleteComment(..))"
22 |
23 | + "|| execution(* com.chen.controller.adminController.TopicController.deleteTopic(..))"
24 |
25 | + "|| execution(* com.chen.controller.adminController.UserController.deleteUser(..))"
26 | + "|| execution(* com.chen.controller.adminController.UserController.submitUpdate(..))"
27 | + "|| execution(* com.chen.controller.adminController.UserController.submitAdd(..))"
28 | + "|| execution(* com.chen.controller.adminController.UserController.updateBan(..))"
29 |
30 | + "|| execution(* com.chen.controller.adminController.AdminTagController.deleteTag(..))"
31 | + "|| execution(* com.chen.controller.adminController.AdminTagController.submitUpdate(..))"
32 | + "|| execution(* com.chen.controller.adminController.AdminTagController.submitAdd(..))")
33 | public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
34 |
35 | User loginUser = (User)session.getAttribute("loginUser");
36 |
37 | if (!StringUtils.isEmpty(loginUser)){
38 | if (loginUser.getUsername().equals(MyStaticProperties.superAdminName)){
39 | return joinPoint.proceed();
40 | }
41 | }
42 |
43 | return "403.html";
44 | }
45 |
46 |
47 | }
--------------------------------------------------------------------------------
/src/main/java/com/chen/config/GetIp.java:
--------------------------------------------------------------------------------
1 | package com.chen.config;
2 |
3 | import org.springframework.stereotype.Component;
4 | import org.springframework.stereotype.Repository;
5 |
6 | import javax.servlet.http.HttpServletRequest;
7 |
8 | @Component
9 | public class GetIp {
10 |
11 | public static String getIpAddress(HttpServletRequest request) {
12 | String ip = request.getHeader("x-forwarded-for");
13 | if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
14 | ip = request.getHeader("Proxy-Client-IP");
15 | }
16 | if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
17 | ip = request.getHeader("WL-Proxy-Client-IP");
18 | }
19 | if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
20 | ip = request.getHeader("HTTP_CLIENT_IP");
21 | }
22 | if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
23 | ip = request.getHeader("HTTP_X_FORWARDED_FOR");
24 | }
25 | if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
26 | ip = request.getRemoteAddr();
27 | }
28 | return ip;
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/config/LoginHandlerInterceptor.java:
--------------------------------------------------------------------------------
1 | package com.chen.config;
2 |
3 | import org.springframework.web.servlet.HandlerInterceptor;
4 |
5 | import javax.servlet.http.HttpServletRequest;
6 | import javax.servlet.http.HttpServletResponse;
7 |
8 | public class LoginHandlerInterceptor implements HandlerInterceptor {
9 |
10 | @Override
11 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
12 |
13 | //得到session的值
14 | Object loginUser = request.getSession().getAttribute("loginUser");
15 |
16 | if (loginUser != null){
17 | return true;
18 | } else {
19 | request.setAttribute("msg", "没有权限,请先登录");
20 | request.getRequestDispatcher("/login.html").forward(request, response);
21 | return false;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/controller/UserController/ContactAdminController.java:
--------------------------------------------------------------------------------
1 | package com.chen.controller.UserController;
2 |
3 | import com.chen.MyUtils.NotificationUtil;
4 | import com.chen.Service.adminService.NotificationService;
5 | import com.chen.Service.adminService.UserService;
6 | import com.chen.pojo.User;
7 | import org.springframework.beans.factory.annotation.Autowired;
8 | import org.springframework.stereotype.Controller;
9 | import org.springframework.web.bind.annotation.GetMapping;
10 | import org.springframework.web.bind.annotation.ResponseBody;
11 |
12 | import javax.servlet.http.HttpSession;
13 |
14 | @Controller
15 | public class ContactAdminController {
16 |
17 | @Autowired
18 | private NotificationService notificationService;
19 |
20 | @Autowired
21 | private NotificationUtil notificationUtil;
22 |
23 | @Autowired
24 | private UserService userService;
25 |
26 | @GetMapping("/contactMe")
27 | public String toContactMe(){
28 | return "user/contact";
29 | }
30 |
31 | @GetMapping("/sendContactMe")
32 | @ResponseBody
33 | public String contactBug(String content, HttpSession session){
34 | User loginUser = (User) session.getAttribute("loginUser");
35 | int id = loginUser.getId();
36 | notificationUtil.setChatNeed(id, 1, content, userService);
37 | notificationService.insertChar(notificationUtil);
38 | return "success";
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/controller/UserController/FansController.java:
--------------------------------------------------------------------------------
1 | package com.chen.controller.UserController;
2 |
3 | import com.chen.Service.adminService.FansService;
4 | import com.chen.pojo.Fans;
5 | import com.chen.pojo.User;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.stereotype.Controller;
8 | import org.springframework.web.bind.annotation.GetMapping;
9 | import org.springframework.web.bind.annotation.PathVariable;
10 |
11 | import javax.servlet.http.HttpSession;
12 | import java.util.Date;
13 |
14 | @Controller
15 | public class FansController {
16 |
17 | @Autowired
18 | private FansService fansService;
19 |
20 | @GetMapping("/beFans/{id}")
21 | public String beFans(Fans fans, HttpSession session, @PathVariable("id") Integer id){
22 | User loginUser = (User) session.getAttribute("loginUser");
23 | fans.setUserId(id);
24 | fans.setFansId(loginUser.getId());
25 | Date date = new Date();
26 | fans.setCreatTime(date);
27 | fans.setUpdateTime(date);
28 |
29 | fansService.beFans(fans);
30 |
31 | return "redirect:/toOtherPersonal/" + id;
32 | }
33 |
34 | @GetMapping("/everBeFans/{id}")
35 | public String everBeFans(Fans fans, HttpSession session, @PathVariable("id") Integer id){
36 | User loginUser = (User) session.getAttribute("loginUser");
37 | fans.setUserId(id);
38 | fans.setFansId(loginUser.getId());
39 | fans.setUpdateTime(new Date());
40 |
41 | fansService.everBeFans(fans);
42 |
43 | return "redirect:/toOtherPersonal/" + id;
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/controller/UserController/NotificationController.java:
--------------------------------------------------------------------------------
1 | package com.chen.controller.UserController;
2 |
3 | import com.chen.MyUtils.NotificationUtil;
4 | import com.chen.Service.adminService.NotificationService;
5 | import com.chen.Service.adminService.UserService;
6 | import com.chen.pojo.User;
7 | import org.springframework.beans.factory.annotation.Autowired;
8 | import org.springframework.stereotype.Controller;
9 | import org.springframework.web.bind.annotation.GetMapping;
10 | import org.springframework.web.bind.annotation.PathVariable;
11 | import org.springframework.web.bind.annotation.ResponseBody;
12 |
13 | import javax.servlet.http.HttpSession;
14 |
15 | @Controller
16 | public class NotificationController {
17 |
18 | @Autowired
19 | private NotificationService notificationService;
20 |
21 | @Autowired
22 | private NotificationUtil notificationUtil;
23 |
24 | @Autowired
25 | private UserService userService;
26 |
27 | @GetMapping("/read/{id}/{message}")
28 | public String read(@PathVariable("id") Integer id, @PathVariable("message") String message){
29 | notificationService.updateStatus(id);
30 | return "redirect:/toPersonal/" + message;
31 | }
32 |
33 | @GetMapping("/readAllSupport")
34 | public String readAllSupport(HttpSession session){
35 | User userLogin = (User) session.getAttribute("loginUser");
36 | notificationService.updateSomeStatus(userLogin.getId(), "support");
37 | return "redirect:/toPersonal/support";
38 | }
39 |
40 | @GetMapping("/readAllChat")
41 | public String readAllChat(HttpSession session){
42 | User userLogin = (User) session.getAttribute("loginUser");
43 | notificationService.updateSomeStatus(userLogin.getId(), "chat");
44 | return "redirect:/toPersonal/chat";
45 | }
46 |
47 | @GetMapping("/submitChat/{id}")
48 | @ResponseBody
49 | public String submitChat(@PathVariable("id") Integer id, String content, HttpSession session){
50 | User loginUser = (User) session.getAttribute("loginUser");
51 | notificationUtil.setChatNeed(loginUser.getId(), id, content, userService);
52 | notificationService.insertChar(notificationUtil);
53 |
54 | return "success";
55 | }
56 |
57 | @GetMapping("/reply/{id}")
58 | public String replyChat(@PathVariable("id") Integer id, HttpSession session){
59 |
60 | return "redirect:/chat/" + id;
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/controller/UserController/SelectUserController.java:
--------------------------------------------------------------------------------
1 | package com.chen.controller.UserController;
2 |
3 | import com.chen.Service.adminService.UserService;
4 | import com.chen.pojo.User;
5 | import org.springframework.beans.factory.annotation.Autowired;
6 | import org.springframework.stereotype.Controller;
7 | import org.springframework.ui.Model;
8 | import org.springframework.web.bind.annotation.GetMapping;
9 | import org.springframework.web.bind.annotation.PathVariable;
10 | import org.springframework.web.bind.annotation.ResponseBody;
11 |
12 | import java.util.List;
13 |
14 | @Controller
15 | public class SelectUserController {
16 |
17 | @Autowired
18 | private UserService userService;
19 |
20 | private List userList;
21 |
22 | @GetMapping("/user.html")
23 | public String user(Model model){
24 | model.addAttribute("userList", userList);
25 | return "user/user";
26 | }
27 |
28 | @GetMapping("/toUserPage")
29 | public String toUserPage(){
30 | userList = userService.getUserList();
31 | return "redirect:/user.html";
32 | }
33 |
34 | @GetMapping("/searchName")
35 | @ResponseBody
36 | public String searchName(String nameMessage){
37 | System.out.println(nameMessage);
38 | List list = userService.getUserListByMessage(nameMessage);
39 | if (list.size() == 0){
40 | return "none";
41 | }
42 | userList = list;
43 | return "success";
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/controller/UserController/TrieSearchController.java:
--------------------------------------------------------------------------------
1 | package com.chen.controller.UserController;
2 |
3 | import com.chen.MyUtils.ControlTrie;
4 | import org.springframework.beans.factory.annotation.Autowired;
5 | import org.springframework.stereotype.Controller;
6 | import org.springframework.web.bind.annotation.GetMapping;
7 | import org.springframework.web.bind.annotation.PathVariable;
8 | import org.springframework.web.bind.annotation.ResponseBody;
9 |
10 | import java.util.List;
11 |
12 | @Controller
13 | public class TrieSearchController {
14 |
15 | @Autowired
16 | ControlTrie controlTrie;
17 |
18 | @GetMapping("/searchTopic/{msg}")
19 | @ResponseBody
20 | public List searchTopic(@PathVariable("msg") String q){
21 | List list = controlTrie.getTopicTrie().searchListPlus(q);
22 | return list;
23 | }
24 |
25 | @GetMapping("/searchUser/{msg}")
26 | @ResponseBody
27 | public List searchUser(@PathVariable("msg") String q){
28 | List list = controlTrie.getUserTrie().searchListPlus(q);
29 | return list;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/controller/adminController/AdminController.java:
--------------------------------------------------------------------------------
1 | package com.chen.controller.adminController;
2 |
3 | import org.springframework.stereotype.Controller;
4 | import org.springframework.web.bind.annotation.GetMapping;
5 |
6 | @Controller
7 | public class AdminController {
8 |
9 | @GetMapping("/welcome")
10 | public String welcome(){
11 | return "admin/welcome";
12 | }
13 |
14 | @GetMapping("/charts")
15 | public String charts(){
16 | return "admin/charts";
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/controller/test.java:
--------------------------------------------------------------------------------
1 | package com.chen.controller;
2 |
3 | import com.chen.MyUtils.ControlTrie;
4 | import com.chen.config.Trie;
5 | import org.springframework.beans.factory.annotation.Autowired;
6 | import org.springframework.stereotype.Controller;
7 | import org.springframework.web.bind.annotation.GetMapping;
8 | import org.springframework.web.bind.annotation.PathVariable;
9 | import org.springframework.web.bind.annotation.ResponseBody;
10 |
11 | import java.util.List;
12 |
13 | @Controller
14 | public class test {
15 |
16 | @Autowired
17 | ControlTrie controlTrie;
18 |
19 | @GetMapping("/mac")
20 | public String test(){
21 | return "mac";
22 | }
23 |
24 | @GetMapping("test")
25 | public String trie(){
26 | return "test";
27 | }
28 |
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/AppraiseMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import com.chen.pojo.Appraise;
4 | import com.chen.pojo.Notification;
5 | import org.apache.ibatis.annotations.Mapper;
6 | import org.apache.ibatis.annotations.Param;
7 | import org.springframework.stereotype.Repository;
8 |
9 | import java.util.List;
10 |
11 | @Repository
12 | @Mapper
13 | public interface AppraiseMapper {
14 |
15 | void support(Appraise appraise);
16 |
17 | void criticism(Appraise appraise);
18 |
19 | List getAppraiseList(@Param("userId") Integer userId, @Param("topicId") Integer topicId,@Param("type") int type);
20 |
21 | Appraise getAppraise(Appraise appraise);
22 |
23 | void updateStatus(@Param("id") Integer id, @Param("status") Integer status);
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/AppraiseMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 | insert into appraise (user_id, topic_id, type, comment_id)
10 | values (#{userId}, #{topicId}, #{type}, #{commentId});
11 |
12 |
13 |
14 | insert into appraise (user_id, topic_id, type, comment_id)
15 | values (#{userId}, #{topicId}, #{type}, #{commentId});
16 |
17 |
18 |
26 |
27 |
30 |
31 |
32 |
33 | update appraise set status = 0
34 |
35 |
36 | update appraise set status = 1
37 |
38 | where id = #{id};
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/CommentMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import com.chen.pojo.Comment;
4 | import com.chen.pojo.Select;
5 | import com.chen.pojo.User;
6 | import org.apache.ibatis.annotations.Mapper;
7 | import org.apache.ibatis.annotations.Param;
8 | import org.springframework.stereotype.Repository;
9 |
10 | import java.util.List;
11 |
12 | @Mapper
13 | @Repository
14 | public interface CommentMapper {
15 |
16 | List getCommentListByTopicId(@Param("topicId") Integer topicId, @Param("floor") Integer floor);
17 |
18 | List getCommentList();
19 |
20 | List getAllCommentByTopicId(Integer id);
21 |
22 | Integer getCommentByWhichCount(Select select);
23 |
24 | List getCommentByWhich(Select select);
25 |
26 | Integer getTotalCommentCount();
27 |
28 | User getUserById(Integer id);
29 |
30 | int getMaxParentCommentFloor(int commentTopicId);
31 |
32 | int getMaxChildCommentFloor(@Param("commentTopicId") int commentTopicId, @Param("parentFloor") int parentFloor);
33 |
34 | void insertComment(Comment comment);
35 |
36 | void updateSupportCount(@Param("commentId") Integer commentId, @Param("count") Integer count);
37 |
38 | Comment getCommentById(Integer id);
39 |
40 | Integer getUserIdByCommentId(@Param("commentId") Integer commentId);
41 |
42 | void deleteComment(@Param("id") Integer id);
43 |
44 | int IfMainComment(Integer parentId);
45 |
46 | int getFloor(Integer commentId);
47 |
48 | void shield(@Param("shieldWord") String shieldWord, @Param("commentId") Integer commentId);
49 |
50 | int ifExitsChild(@Param("topicId") Integer topicId,
51 | @Param("commentId") Integer commentId,
52 | @Param("parentFloor") Integer parentFloor);
53 |
54 | int getTopicId(Integer commentId);
55 | }
56 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/FansMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import com.chen.pojo.Fans;
4 | import com.chen.pojo.User;
5 | import org.apache.ibatis.annotations.Mapper;
6 | import org.apache.ibatis.annotations.Param;
7 | import org.springframework.stereotype.Repository;
8 |
9 | import java.util.List;
10 |
11 | @Repository
12 | @Mapper
13 | public interface FansMapper {
14 |
15 | List getFansByIdolId(Integer idolId);
16 |
17 | List getIdolByFansId(Integer fansId);
18 |
19 | int getIdolByFansIdCount(Integer fansId);
20 |
21 | int getFansByIdolIdCount(Integer id);
22 |
23 | Fans ifIAmFans(@Param("myId") Integer myId, @Param("hisId") Integer hisId);
24 |
25 | Fans ifEverFans(Fans fans);
26 |
27 | void beFans(Fans fans);
28 |
29 | void firstBeFans(Fans fans);
30 |
31 | void againBeFans(Fans fans);
32 |
33 | void everBeFans(Fans fans);
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/FansMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
23 |
24 |
25 | insert into fans (user_id, fans_id, status, creat_time, update_time) values (#{userId}, #{fansId}, 1, #{creatTime}, #{updateTime});
26 |
27 |
28 |
29 | update fans set status = 1, update_time = #{updateTime} where user_id = #{userId} and fans_id = #{fansId};
30 |
31 |
32 |
33 | update fans set status = 0, update_time = #{updateTime} where user_id = #{userId} and fans_id = #{fansId};
34 |
35 |
36 |
39 |
40 |
43 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/IpMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import org.apache.ibatis.annotations.Mapper;
4 | import org.apache.ibatis.annotations.Param;
5 | import org.springframework.stereotype.Repository;
6 |
7 | import java.util.Date;
8 | import java.util.List;
9 |
10 | @Repository
11 | @Mapper
12 | public interface IpMapper {
13 | void addIp(@Param("ip") String ip, @Param("time") Date time);
14 |
15 | List getAllIp();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/IpMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 | insert into ip (ip, time) values
10 | (#{ip}, #{time})
11 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/NotificationMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import com.chen.pojo.Notification;
4 | import com.chen.pojo.User;
5 | import org.apache.ibatis.annotations.Mapper;
6 | import org.apache.ibatis.annotations.Param;
7 | import org.springframework.stereotype.Repository;
8 |
9 | import java.util.List;
10 | import java.util.Map;
11 |
12 | @Mapper
13 | @Repository
14 | public interface NotificationMapper {
15 |
16 | void insertSupportNotification(Notification notification);
17 |
18 | void insertChar(Notification notification);
19 |
20 | List getSupportByToId(Integer id);
21 |
22 | Integer getSupportByToIdCount(Integer id);
23 |
24 | Integer getTotalUnread(Integer id);
25 |
26 | Integer getSupportUnread(Integer id);
27 |
28 | Integer commentUnread(Integer id);
29 |
30 | Integer fansUnread(Integer id);
31 |
32 | Integer messageUnread(Integer id);
33 |
34 | Integer systemUnread(Integer id);
35 |
36 | void updateStatus(Integer id);
37 |
38 | void updateSomeStatus(@Param("userId") Integer userId, @Param("message") String message);
39 |
40 | Integer getTotalChatCount(Integer toId); //总私信数
41 |
42 | List getChatUser(Integer toId); //有未读消息的发送人
43 |
44 | Integer getChatCountById(Integer toId); //每个用户发来的未读消息数
45 |
46 | Integer getUserChatCount(@Param("toId") Integer toId, @Param("fromId") Integer fromId);
47 |
48 | void readSomeOneChat(@Param("toId") Integer toId, @Param("fromId") Integer fromId);
49 |
50 | List getDetailChat(@Param("fromId") Integer fromId, @Param("toId") Integer toId);//详细私信内容
51 | }
52 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/SensitiveMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import org.apache.ibatis.annotations.Mapper;
4 | import org.springframework.stereotype.Repository;
5 |
6 | import java.util.List;
7 |
8 | @Repository
9 | @Mapper
10 | public interface SensitiveMapper {
11 |
12 | List getSensitiveWord();
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/SensitiveMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/TagMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import com.chen.pojo.Select;
4 | import com.chen.pojo.Tag;
5 | import org.apache.ibatis.annotations.Mapper;
6 | import org.apache.ibatis.annotations.Param;
7 | import org.apache.ibatis.annotations.Property;
8 | import org.springframework.lang.Nullable;
9 | import org.springframework.stereotype.Repository;
10 |
11 | import java.util.List;
12 |
13 | @Mapper
14 | @Repository
15 | public interface TagMapper {
16 |
17 | List getTagList();
18 |
19 | String getTagNameById(Integer id);
20 |
21 | List getTagListByFuzzyName(String message);
22 |
23 | Integer getTotalTagCount();
24 |
25 | Tag getTagById(Integer id);
26 |
27 | void insertTag(String name);
28 |
29 | void deleteById(Integer id);
30 |
31 | void tagCountPlus(@Param("id") Integer id);
32 | void tagCountReduce(@Param("id") Integer id);
33 |
34 | void summitUpdate(@Param("id") Integer id, @Param("newName") String newName);
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/TagMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 | update tag set topic_count = topic_count + 1 where id = #{id};
10 |
11 |
12 |
13 | update tag set topic_count = topic_count - 1 where id = #{id};
14 |
15 |
16 |
19 |
20 |
23 |
24 |
27 |
28 |
31 |
32 |
33 | update tag set name = #{newName} where id = #{id};
34 |
35 |
36 |
39 |
40 |
41 | insert into tag (name) values (#{newName});
42 |
43 |
44 |
45 | delete from tag where id = #{id};
46 |
47 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/TopicMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import com.chen.pojo.Select;
4 | import com.chen.pojo.Topic;
5 | import org.apache.ibatis.annotations.Mapper;
6 | import org.apache.ibatis.annotations.Param;
7 | import org.springframework.stereotype.Repository;
8 |
9 | import java.util.List;
10 |
11 | @Repository
12 | @Mapper
13 | public interface TopicMapper {
14 |
15 | List getTotalTitle();
16 |
17 | int getTotalTopicCount();
18 |
19 | List getTopicList();
20 |
21 | List getTopicAddUserList();
22 |
23 | Topic getTopicById(Integer id);
24 |
25 | List getTopicListBySelectMessage(String selectMessage);
26 |
27 | int getTopicListBySelectMessageCount(String selectMessage);
28 |
29 | List getTopicListByUserId(Integer id);
30 |
31 | int getTopicListByUserIdCount(Integer id);
32 |
33 | List getTopicByWhich(Select select);
34 |
35 | List getTopicAndUserByWhich(Select select);
36 |
37 | int getTopicByWhichCount(Select select);
38 |
39 | void deleteTopicById(@Param("id") Integer id);
40 |
41 | List getTopBrowseTopic(int count);
42 |
43 | Integer getUserIdByTopicId(Integer topicId);
44 |
45 | void insertTopic(Topic topic);
46 |
47 | List getNearTimeTopic(int count);
48 |
49 | List getTopicListByTagId(Integer id);
50 |
51 | int getTopicListByTagIdCount(Integer id);
52 |
53 | void OneParamUpdate(@Param("topicId") Integer topicId, @Param("message")String message, @Param("updateParam")int updateParam);
54 | }
55 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/mapper/UserMapper.java:
--------------------------------------------------------------------------------
1 | package com.chen.mapper;
2 |
3 | import com.chen.pojo.Select;
4 | import com.chen.pojo.User;
5 | import jdk.nashorn.internal.objects.annotations.Property;
6 | import org.apache.ibatis.annotations.Mapper;
7 | import org.apache.ibatis.annotations.Param;
8 | import org.springframework.lang.Nullable;
9 | import org.springframework.stereotype.Repository;
10 | import org.springframework.transaction.annotation.Propagation;
11 | import org.springframework.transaction.annotation.Transactional;
12 | import sun.awt.image.IntegerInterleavedRaster;
13 |
14 | import java.util.List;
15 | import java.util.Map;
16 |
17 | //记得@mapper
18 | @Repository
19 | @Mapper
20 | public interface UserMapper {
21 |
22 | @org.apache.ibatis.annotations.Select({
23 | "select * from user where username = #{username}"
24 | })
25 | User get(String username);
26 |
27 | @org.apache.ibatis.annotations.Select({
28 | "select username from user"
29 | })
30 | List getTotalName();
31 |
32 | String getAdminPassword();
33 |
34 | int getTotalUserCount();
35 |
36 | User getUserByUsername(String username);
37 |
38 | List getUserList();
39 |
40 | User getUserById(@Param("id") Integer id);
41 |
42 | List getUserByWhich(Select select);
43 |
44 | int getUserByWhichCount(Select select);
45 |
46 | void deleteUserById(@Param("id") Integer id);
47 |
48 | void updateUserBadCount(User user);
49 |
50 | void banUser(User user);
51 |
52 | void NonBanUser(User user);
53 |
54 | void updateUserById(User user);
55 |
56 | void insertUser(User user);
57 |
58 | void topicCountPlus(Integer id);
59 |
60 | void commentCountPlus(Integer id);
61 |
62 | void browseCountPlus(Integer id);
63 |
64 | void supportCountPlus(Integer id);
65 |
66 | void supportCountMinus(Integer id);
67 |
68 | void topicCountMinus(Integer id);
69 |
70 | List getHotCommentUser(int count);
71 |
72 | void updateUserLimit(User user);
73 |
74 | User getUserByEmail(String email);
75 |
76 | List getUserListByMessage(String namMessage);
77 |
78 | void updateOnlyOne(@Param("id") Integer id, @Param("value") String value, @Param("message") String message);
79 |
80 |
81 | }
82 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/Appraise.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | public class Appraise {
11 | private int id;
12 | private int userId;
13 | private int topicId;
14 | private int type;
15 | private int commentId;
16 | private int status;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/Comment.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 |
8 | import java.util.Date;
9 | import java.util.List;
10 |
11 | @Data
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | public class Comment {
15 | private int id;
16 | private String content;
17 | private int commentUserId;
18 | private int commentTopicId;
19 | private Date commentTime;
20 | private int floor;
21 | private int childFloor;
22 | private int reply;
23 | private Topic topic;
24 | private User author;
25 | private User replyTo;
26 | private int supportCount;
27 | private int criticismCount;
28 | private List childCommentList;
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/Fans.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import org.springframework.stereotype.Component;
7 |
8 | import java.util.Date;
9 |
10 | @Data
11 | @AllArgsConstructor
12 | @NoArgsConstructor
13 | public class Fans {
14 | private int id;
15 | private int userId;
16 | private int fansId;
17 | private int status;
18 | private Date creatTime;
19 | private Date updateTime;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/Notification.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.Date;
8 |
9 | @Data
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class Notification {
13 | private int id;
14 | private int toId;
15 | private int fromId;
16 | private int subject;
17 | private int status;
18 | private String title;
19 | private String content;
20 | private Date time;
21 | private int topicId;
22 | private int commentId;
23 |
24 | private User fromUser;
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/RegisterUser.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | public class RegisterUser {
11 |
12 | private String username;
13 | private String password;
14 | private String againPassword;
15 | private String email;
16 | private String code;
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/ResultJson.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @AllArgsConstructor
10 | public class ResultJson {
11 |
12 | private String status;
13 | private String message;
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/Select.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import org.springframework.boot.context.properties.ConfigurationProperties;
7 | import org.springframework.context.annotation.Scope;
8 | import org.springframework.stereotype.Component;
9 |
10 | @Component
11 | @Scope("prototype")
12 | @Data
13 | @AllArgsConstructor
14 | @NoArgsConstructor
15 | @ConfigurationProperties(prefix = "select")
16 | public class Select {
17 | private String message;
18 | private String selectMessage;
19 | private String startTime;
20 | private String endTime;
21 | private Integer showCount;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/Tag.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | public class Tag {
11 | private int id;
12 | private String name;
13 | private String topicCount;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/Topic.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.Date;
8 | import java.util.List;
9 |
10 | @Data
11 | @AllArgsConstructor
12 | @NoArgsConstructor
13 | public class Topic {
14 | private int id;
15 | private int topicUserId;
16 | private String title;
17 | // 暂定内容存储方式
18 | private String content;
19 | private String topicPicture;
20 | private Date topicTime;
21 | private int supportCount;
22 | private int CriticismCount;
23 | private int commentCount;
24 | private int browseCount;
25 | private int topicTagId;
26 | private int topicType;
27 | private String tagName;
28 | private User user;
29 | private List commentList;
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/UploadResp.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | public class UploadResp {
10 | private String code;
11 | private String message;
12 | private String fileName;
13 |
14 | public UploadResp(String code, String message) {
15 | new UploadResp(code, message, "");
16 | }
17 |
18 | public UploadResp(String code, String message, String fileName) {
19 | this.code = code;
20 | this.message = message;
21 | this.fileName = fileName;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/chen/pojo/User.java:
--------------------------------------------------------------------------------
1 | package com.chen.pojo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | @Data
10 | @NoArgsConstructor
11 | @AllArgsConstructor
12 | public class User {
13 | private int id;
14 | private String username;
15 | private String password;
16 | private String email;
17 | private String avatar;
18 | private String introduction;
19 | private int topicCount;
20 | private int commentCount;
21 | private int rankId;
22 | private int supportCount;
23 | private int rankLevel;
24 | private int sex;
25 | private int browseCount;
26 | private int secret;
27 | private int ban;
28 | private int badCount;
29 | private String secretStr;
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/resources/application-dev.yaml:
--------------------------------------------------------------------------------
1 | #修改classpath
2 | server:
3 | port: 8080
4 | servlet:
5 | context-path: /chen
6 |
7 | spring:
8 | mvc:
9 | hiddenmethod:
10 | filter:
11 | enabled: true #开启页面表单的Rest功能
12 | datasource:
13 | username: root
14 | password: 123456
15 | url: jdbc:mysql://localhost:3306/myblog?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
16 | driver-class-name: com.mysql.cj.jdbc.Driver
17 | type: com.alibaba.druid.pool.DruidDataSource # 自定义数据源
18 | hikari:
19 | auto-commit: false
20 | servlet:
21 | multipart: #文件大小限制
22 | max-file-size: 10MB
23 | max-request-size: 10MB
24 | mail:
25 | #username: 1345305701@qq.com
26 | #password: hnikomyarhtkicha
27 | #host: smtp.qq.com
28 | # qq需要配置ssl
29 | properties:
30 | mail:
31 | smtp:
32 | ssl:
33 | enable: true
34 |
35 |
36 |
37 | #别名
38 | mybatis:
39 | type-aliases-package: com.chen.pojo
40 | configuration:
41 | #下划线转驼峰
42 | map-underscore-to-camel-case: true
43 |
44 |
45 | # 日志
46 | #logging:
47 | #level:
48 | #com.chen.mapper: debug # 包名根据自己的包名来
49 |
50 | index:
51 | static:
52 | properties:
53 | shield: 该评论已被删除!
54 | simpleAdmin: 2
55 | superAdminName:
56 | adminPassword:
57 | myEmail: whitecat117@163.com #我的邮箱
58 | everyPageTopicCount: 5 # 首页每页的topic数量
59 | topicRankCount: 10 # topic热度排行的数量
60 | topicNearCount: 10 # topic最新发布榜的数量
61 | hotUserCount: 5 # 热评用户榜的数量
62 | showFansCount: 5 #一页展示的fans数量
63 | showMessageCount: 5 #展示信息的数量
64 | avatar: D:/environment/git/true/white-cat-true/src/main/resources/static/images/avatar/ # 头像路径
65 | topicPicture: D:/environment/git/true/white-cat-true/src/main/resources/static/images/topicPicture/ #帖子封面路径
66 | otherPicture: #其他图片路径
67 | tagCount: 10
68 | banCount: 5
69 |
70 |
71 |
--------------------------------------------------------------------------------
/src/main/resources/application-prod.yaml:
--------------------------------------------------------------------------------
1 | #修改classpath
2 | server:
3 | port: 8080
4 | servlet:
5 | context-path: /chen
6 |
7 | spring:
8 | mvc:
9 | hiddenmethod:
10 | filter:
11 | enabled: true #开启页面表单的Rest功能
12 | datasource:
13 | username: root
14 | password:
15 | url: jdbc:mysql://localhost:3306/myblog?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
16 | driver-class-name: com.mysql.cj.jdbc.Driver
17 | type: com.alibaba.druid.pool.DruidDataSource # 自定义数据源
18 | hikari:
19 | auto-commit: false
20 | servlet:
21 | multipart: #文件大小限制
22 | max-file-size: 10MB
23 | max-request-size: 10MB
24 | mail:
25 | #username: 1345305701@qq.com
26 | #password: hnikomyarhtkicha
27 | #host: smtp.qq.com
28 | # qq需要配置ssl
29 | properties:
30 | mail:
31 | smtp:
32 | ssl:
33 | enable: true
34 |
35 |
36 | #别名
37 | mybatis:
38 | type-aliases-package: com.chen.pojo
39 | configuration:
40 | #下划线转驼峰
41 | map-underscore-to-camel-case: true
42 |
43 | # 日志
44 | #logging:
45 | # level:
46 | # com.chen.mapper: debug # 包名根据自己的包名来
47 |
48 | index:
49 | static:
50 | properties:
51 | simpleAdmin: 2
52 | superAdminName:
53 | adminPassword:
54 | myEmail: whitecat117@163.com #我的邮箱
55 | everyPageTopicCount: 5 # 首页每页的topic数量
56 | topicRankCount: 10 # topic热度排行的数量
57 | topicNearCount: 10 # topic最新发布榜的数量
58 | hotUserCount: 5 # 热评用户榜的数量
59 | showFansCount: 10 #一页展示的fans数量
60 | showMessageCount: 5 #展示信息的数量
61 | avatar: /www/wwwroot/images/avatar/ # 头像路径
62 | topicPicture: /www/wwwroot/images/topicPicture/ #帖子封面路径
63 | otherPicture: /www/wwwroot/images/other/ #其他图片路径
64 | tagCount: 10
65 | banCount: 5
--------------------------------------------------------------------------------
/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.profiles.active=prod
2 | # 应用名称
3 | spring.application.name=layui
4 | # 应用服务 WEB 访问端口
5 | #server.port=8080
6 | spring.datasource.name=defaultDataSource
7 | spring.thymeleaf.cache=false
8 | # 检查模板是否存在,然后再呈现
9 | spring.thymeleaf.check-template=true
10 | # 检查模板位置是否正确(默认值 :true )
11 | spring.thymeleaf.check-template-location=true
12 | #Content-Type 的值(默认值: text/html )
13 | spring.thymeleaf.content-type=text/html
14 | # 开启 MVC Thymeleaf 视图解析(默认值: true )
15 | spring.thymeleaf.enabled=true
16 | # 模板编码
17 | spring.thymeleaf.encoding=UTF-8
18 | # 要被排除在解析之外的视图名称列表,⽤逗号分隔
19 | spring.thymeleaf.excluded-view-names=
20 | # 要运⽤于模板之上的模板模式。另⻅ StandardTemplate-ModeHandlers( 默认值: HTML5)
21 | spring.thymeleaf.mode=HTML
22 | # 在构建 URL 时添加到视图名称前的前缀(默认值: classpath:/templates/ )
23 | spring.thymeleaf.prefix=classpath:/templates/
24 | # 在构建 URL 时添加到视图名称后的后缀(默认值: .html )
25 | spring.thymeleaf.suffix=.html
26 | # 修改服务器的大小
27 | server.max-http-header-size=102400
28 |
29 | spring.mail.username=whitecat117@163.com
30 | spring.mail.password=
31 | spring.mail.host=smtp.163.com
32 | # qq需要配置ssl
33 | spring.mail.properties.mail.smtp.ssl.enable=true
34 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/500.css:
--------------------------------------------------------------------------------
1 | body{
2 | background-image: url("../images/500.gif");
3 | background-attachment:fixed;
4 | background-size: 100%;
5 | no-repeat: center top;
6 | height: 100%;
7 | width: 100%;
8 | }
--------------------------------------------------------------------------------
/src/main/resources/static/css/article.css:
--------------------------------------------------------------------------------
1 | /*搜索(移动端不提供此功能)*/
2 | .search-keywords,
3 | .search-submit {
4 | display: none;
5 | }
6 |
7 | @media (min-width: 992px) {
8 | .blog-search {
9 | margin-bottom: 15px;
10 | }
11 |
12 | .search-keywords,
13 | .search-submit {
14 | display: inline-block;
15 | }
16 |
17 | .search-keywords {
18 | width: 85%;
19 | float: left;
20 | }
21 |
22 | .search-keywords > input {
23 | border-radius: 0;
24 | }
25 |
26 | .search-submit {
27 | width: 14%;
28 | float: right;
29 | }
30 |
31 | .search-submit > .search-btn {
32 | display: block;
33 | width: 100%;
34 | height: 36px;
35 | background: #fff;
36 | cursor: pointer;
37 | float: right;
38 | border-radius: 1px;
39 | border: 1px solid #e2e2e2;
40 | }
41 |
42 | .search-submit > .search-btn:hover {
43 | border: 1px solid #d2d2d2;
44 | }
45 |
46 | .search-submit > .search-btn i {
47 | width: 13px;
48 | line-height: 38px;
49 | display: block;
50 | margin: 0 auto;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/detail.css:
--------------------------------------------------------------------------------
1 | .article-detail {
2 | background: #fff;
3 | padding: 15px;
4 | box-shadow: 0 1px 8px #a6a6a6;
5 | margin-bottom: 15px;
6 | }
7 |
8 | .article-detail-title {
9 | text-align: center;
10 | margin: 20px 0px;
11 | color: white;
12 | font-weight: 700;
13 | text-shadow: 0 0 8px #000000;
14 | font-size: 24px;
15 | }
16 |
17 | .article-detail-info {
18 | border: 1px dashed #808080;
19 | font-size: 13px;
20 | color: #808080;
21 | padding: 5px 0;
22 | font-family: SimSun;
23 | text-align: center;
24 | margin: 0 0 10px;
25 | }
26 |
27 | .article-detail-info span {
28 | margin: 0 5px;
29 | }
30 |
31 | .article-detail-content{
32 | padding: 10px 5px;
33 | font-size: 16px;
34 | }
35 | .article-detail-sign {
36 | font-size: 16px;
37 | }
38 | .article-detail-sign p{
39 | margin-top: 10px;
40 | }
41 |
42 | /*代码区域*/
43 | pre {
44 | background-color: #f5f5f5 !important;
45 | border-radius: 0px !important;
46 | border: 1px solid #ccc !important;
47 | font-size: 13px !important;
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/error.css:
--------------------------------------------------------------------------------
1 | body{
2 | background-image: url("../images/404.gif");
3 | background-attachment:fixed;
4 | background-size: 100%;
5 | no-repeat: center top;
6 | height: 100%;
7 | width: 100%;
8 | }
--------------------------------------------------------------------------------
/src/main/resources/static/css/font.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'iconfont';
3 | src: url('../fonts/iconfont.eot');
4 | src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'),
5 | url('../fonts/iconfont.woff') format('woff'),
6 | url('../fonts/iconfont.ttf') format('truetype'),
7 | url('../fonts/iconfont.svg#iconfont') format('svg');
8 | }
9 | .iconfont{
10 | font-family:"iconfont" !important;
11 | font-size:16px;font-style:normal;
12 | -webkit-font-smoothing: antialiased;
13 | -webkit-text-stroke-width: 0.2px;
14 | -moz-osx-font-smoothing: grayscale;
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/index.css:
--------------------------------------------------------------------------------
1 | .bg {
2 | background-position: center 0;
3 | background-repeat: no-repeat;
4 | background-size: cover;
5 | margin: 0 auto;
6 | border-radius: 10px;
7 | }
8 |
9 | .blog-bg {
10 | position: relative;
11 | margin: 0 auto;
12 | }
13 |
14 | .bg_a {background-image: url("../images/bg/carousel1.jpg");}
15 | .bg_b {background-image: url("../images/bg/carousel2.jpg");}
16 | .bg_c {background-image: url("../images/bg/carousel3.jpg");}
17 | .bg_d {background-image: url("../images/bg/carousel4.jpg");}
18 | .bg_e {background-image: url("../images/bg/carousel5.jpg");}
19 |
20 | @media (min-width: 768px) {
21 | .bg_a {background-image: url("../images/bg/a.jpg");}
22 | .bg_b {background-image: url("../images/bg/b.jpg");}
23 | .bg_c {background-image: url("../images/bg/c.jpg");}
24 | .bg_d {background-image: url("../images/bg/d.jpg");}
25 | .bg_e {background-image: url("../images/bg/e.jpg");}
26 | }
27 |
28 | /*博主信息*/
29 | .blogerinfo {
30 | text-align: center;
31 | padding: 0 15px;
32 | background: #fff;
33 | margin-bottom: 15px;
34 | }
35 |
36 | .blogerinfo-figure {
37 | display: inline-block;
38 | margin: 20px auto;
39 | }
40 |
41 | .blogerinfo-figure img {
42 | height:150px;
43 | border-radius: 80px;
44 | }
45 |
46 | .blogerinfo-nickname {
47 | font-size: 32px;
48 | font-weight: bold;
49 | margin: 0 0 15px 0;
50 | }
51 |
52 | .blogerinfo-introduce {
53 | margin: 15px auto;
54 | font-size: 18px;
55 | width: 90%;
56 | }
57 |
58 | .blogerinfo-location {
59 | color: #808080;
60 | margin: 15px;
61 | }
62 |
63 | .blogerinfo-contact {
64 | padding: 15px;
65 | padding-top: 5px;
66 | }
67 |
68 | .blogerinfo-contact > a {
69 | padding: 0 10px;
70 | }
71 | /*博主信息END*/
72 |
73 | /*友情链接*/
74 | .blogroll > li {
75 | display: inline-block;
76 | vertical-align: middle;
77 | padding: 2px 5px;
78 | }
79 | /*友情链接END*/
80 |
81 | /*一路走来和后台记录*/
82 | .footprint > dt {
83 | color: #01AAED;
84 | }
85 |
86 | .footprint > dd {
87 | text-indent: 1.3em;
88 | padding: 2px 0;
89 | }
90 | /*一路走来和后台记录END*/
--------------------------------------------------------------------------------
/src/main/resources/static/css/me.css:
--------------------------------------------------------------------------------
1 | body{
2 | background-image: url("../images/login.jpg");
3 | background-attachment:fixed;
4 | background-size: 100%;
5 | no-repeat: center top;
6 | height: 100%;
7 | width: 100%;
8 | }
9 | .search-results {
10 | background-color: #fff;
11 | border: 1px solid #ccc;
12 | box-shadow: 0 2px 6px rgba(0,0,0,0.1);
13 | padding: 10px;
14 | }
15 |
16 | .search-results div {
17 | margin-bottom: 10px;
18 | }
--------------------------------------------------------------------------------
/src/main/resources/static/css/message.css:
--------------------------------------------------------------------------------
1 | .msg-remark{background:#FFF;padding:15px;margin-top:1rem;text-align:center}
2 | .msg-remark h1{font-weight:700;font-size:2rem}
3 | .msg-remark p{font-size:1.25rem;margin:1rem 0}
4 | .textarea-wrap.message{background-color:#fff;padding:15px}
5 | .message-list{position:relative;margin-bottom:10px}
6 | .message-list img{width:22px;height:22px}
7 | .message-list li:first-child{border-top:0}
8 | .message-list li{background:#fff;padding:15px;border-top:1px dotted grey}
9 | .message-list .comment-content,.message-list .info,.message-list .replycontainer{margin-left:53px}
10 | .message-list .info-footer{font-size:13px}
11 | .message-list .info,.message-list .replycontainer{padding-top:5px}
12 | .message-list .replycontainer .layui-form-item{margin-bottom:5px}
13 | .message-list .info{overflow-x:hidden}
14 | .message-list .info span{padding-right:5px}
15 | .message-list .info img{margin-top:-2px}
16 | .message-list .info .username{color:#01AAED}
17 | .message-list .info .btn-reply{color:#009688}
18 | .message-list .comment-content{padding:2px 0 5px 0;min-height:30px;font-size:13px;word-break: break-all}
19 | .message-list hr{margin-left:53px}
20 | .comment-parent>img{width:45px;height:45px;margin:5px 5px 5px 0;position:absolute;border-radius:50px}
21 | .comment-child>img{width:40px;height:40px;margin:5px 5px 5px 0;position:absolute;border-radius:50px}
22 | .comment-child{margin-left:53px;min-height:50px}
23 | .comment-child .info{margin-left:48px;font-size:12px;line-height:20px}
24 | .areaImg{width:12px!important;height:13px!important}
25 | .fa-map-marker{margin: 0 5px;font-size: 15px;}
26 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/nprogress.css:
--------------------------------------------------------------------------------
1 | /* Make clicks pass-through */
2 | #nprogress {
3 | pointer-events: none;
4 | }
5 |
6 | #nprogress .bar {
7 | background: #29d;
8 |
9 | position: fixed;
10 | z-index: 99999;
11 | top: 0;
12 | left: 0;
13 |
14 | width: 100%;
15 | height: 2px;
16 | }
17 |
18 | /* Fancy blur effect */
19 | #nprogress .peg {
20 | display: block;
21 | position: absolute;
22 | right: 0px;
23 | width: 100px;
24 | height: 100%;
25 | box-shadow: 0 0 10px #29d, 0 0 5px #29d;
26 | opacity: 1.0;
27 |
28 | -webkit-transform: rotate(3deg) translate(0px, -4px);
29 | -ms-transform: rotate(3deg) translate(0px, -4px);
30 | transform: rotate(3deg) translate(0px, -4px);
31 | }
32 |
33 | /* Remove these to get rid of the spinner */
34 | #nprogress .spinner {
35 | display: block;
36 | position: fixed;
37 | z-index: 99999;
38 | top: 15px;
39 | right: 15px;
40 | }
41 |
42 | #nprogress .spinner-icon {
43 | width: 18px;
44 | height: 18px;
45 | box-sizing: border-box;
46 |
47 | border: solid 2px transparent;
48 | border-top-color: #29d;
49 | border-left-color: #29d;
50 | border-radius: 50%;
51 |
52 | -webkit-animation: nprogress-spinner 400ms linear infinite;
53 | animation: nprogress-spinner 400ms linear infinite;
54 | }
55 |
56 | .nprogress-custom-parent {
57 | overflow: hidden;
58 | position: relative;
59 | }
60 |
61 | .nprogress-custom-parent #nprogress .spinner,
62 | .nprogress-custom-parent #nprogress .bar {
63 | position: absolute;
64 | }
65 |
66 | @-webkit-keyframes nprogress-spinner {
67 | 0% { -webkit-transform: rotate(0deg); }
68 | 100% { -webkit-transform: rotate(360deg); }
69 | }
70 | @keyframes nprogress-spinner {
71 | 0% { transform: rotate(0deg); }
72 | 100% { transform: rotate(360deg); }
73 | }
74 |
75 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/prettify.css:
--------------------------------------------------------------------------------
1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
2 |
3 | pre.prettyprint {
4 | border: 1px solid #f2f2f2;
5 | border-radius:5px;
6 | margin-left: 2em;
7 | padding: 0.5em;
8 | font-size: 110%;
9 | display: block;
10 | font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace;
11 | margin: 1em 0px;
12 | /*white-space: pre;*/
13 | background:#f7f7f7;
14 | }
15 |
16 | /*li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:decimal !important;}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
17 |
18 | .prettyprint.linenums {
19 | -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
20 | -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
21 | box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
22 | }
23 |
24 | ol.linenums {
25 | padding: 0 0 0 33px;
26 | }
27 | ol.linenums li {
28 | padding-left: 12px;
29 | color: #bebec5;
30 | line-height: 18px;
31 | text-shadow: 0 1px 0 #fff;
32 | }*/
--------------------------------------------------------------------------------
/src/main/resources/static/css/theme1.css:
--------------------------------------------------------------------------------
1 | body{
2 | background:#F2F1F2;
3 | }
4 | .container{
5 | background:#1A1B20;
6 | }
7 | .left-nav{
8 | background:#1A1B20;
9 | }
10 |
11 | .left-nav a{
12 | color:rgba(255,255,255,.7);
13 | }
14 | ..left-nav a.active{
15 | background: #009688 !important;
16 | color: #fff;
17 | }
18 | .left-nav a:hover{
19 | background: #009688 !important;
20 | color: #fff;
21 | }
--------------------------------------------------------------------------------
/src/main/resources/static/css/theme2.css:
--------------------------------------------------------------------------------
1 | body{
2 | background:#EEF5F9;
3 | }
4 | .container{
5 | background:#323640;
6 | }
7 | .left-nav{
8 | background:#fff;
9 | }
10 |
11 | .left-nav a{
12 | color:#686a76;
13 | }
14 | .left-nav a.active{
15 | background: #786AED !important;
16 | color: #fff;
17 | }
18 | .left-nav a:hover{
19 | background: #786AED !important;
20 | color: #fff;
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/theme3.css:
--------------------------------------------------------------------------------
1 | body{
2 | background:#E8E8E8;
3 | }
4 | .container{
5 | background:#F34743;
6 | }
7 |
8 | .left-nav{
9 | background:#F4F4F4;
10 | }
11 |
12 | .left-nav a{
13 | color:#686a76;
14 | }
15 | .left-nav a.active{
16 | background: #FEFEFE !important;
17 | color: #F34743;
18 | }
19 | .left-nav a:hover{
20 | background: #FEFEFE !important;
21 | color: #F34743;
22 | }
--------------------------------------------------------------------------------
/src/main/resources/static/css/theme4.css:
--------------------------------------------------------------------------------
1 | body{
2 | background:#E4E4E4;
3 | }
4 | .container{
5 | background:#019587;
6 | }
7 | .left-nav{
8 | background:#263035;
9 | }
10 |
11 | .left-nav a{
12 | color:#fff;
13 | }
14 | .left-nav a.active{
15 | background: #212525 !important;
16 | color: #fff !important;
17 | }
18 | .left-nav a:hover{
19 | background: #212525 !important;
20 | color: #fff !important;
21 | }
--------------------------------------------------------------------------------
/src/main/resources/static/css/theme5.css:
--------------------------------------------------------------------------------
1 | body{
2 | background:#EEF5F9 !important;
3 | }
4 | .container{
5 | background:linear-gradient(to left, #7b4397, #2196f3);
6 | }
7 |
8 | .left-nav{
9 | background:#fff !important;
10 | }
11 |
12 | .left-nav a{
13 | color:#686a76 !important;
14 | }
15 | .left-nav a.active{
16 | background: linear-gradient(to left, #7c8ce4, #2196f3) !important;
17 | color: #fff !important;
18 | border-color: #7b4397 !important;
19 | }
20 | .left-nav a:hover{
21 | background: linear-gradient(to left, #7c8ce4, #2196f3) !important;
22 | color: #fff !important;
23 | border-color: #7b4397 !important;
24 | }
25 | .container .logo a{
26 | background: rgba(0,0,0,0) !important;
27 | }
--------------------------------------------------------------------------------
/src/main/resources/static/css/trie.css:
--------------------------------------------------------------------------------
1 | .search-input {
2 | width: 300px;
3 | max-width: 80%;
4 | height: 40px;
5 | padding: 4px 8px;
6 | border: 1px solid #ccc;
7 | border-radius: 4px;
8 | font-size: 16px;
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/user.css:
--------------------------------------------------------------------------------
1 | .link:hover {
2 | cursor: pointer;
3 | color: blue;
4 | }
5 | .link {
6 | font-size: 12px;
7 | color: blue
8 | }
9 |
10 | .pic {
11 | position: relative;
12 | width: 373px;
13 | height: 373px;
14 | background-color: #F2F2F5;
15 | }
16 | .pic p{
17 | position: absolute;
18 | top: 70px;
19 | width: 100%;
20 | margin-top: 10px;
21 | font-size: 12px;
22 | text-align: center;
23 | color: #999;
24 | }
25 | .pic .upload-img {
26 | position: absolute;
27 | left: 50%;
28 | top: 35px;
29 | margin: 0 0 0 -56px;
30 | }
31 | .pic img {
32 | position: absolute;
33 | left: 50%;
34 | top: 50%;
35 | width: 168px;
36 | height: 168px;
37 | margin: -50px 0 0 -84px;
38 | border-radius:100%;
39 | }
40 | .pic .layui-upload-file{
41 | display: none;
42 | }
43 |
44 | /*我的消息*/
45 | .layui-elem-quote span, .layui-elem-quote a{
46 | color: #4F99CF;
47 | }
48 | .mine-msg li {
49 | position: relative;
50 | margin-bottom: 15px;
51 | padding: 10px 0 5px;
52 | line-height: 24px;
53 | border-bottom: 1px dotted #E9E9E9;
54 | }
55 |
56 | .mine-msg li > p {
57 | position: relative;
58 | margin-top: 5px;
59 | line-height: 26px;
60 | text-align: right;
61 | }
62 |
63 | .mine-msg li > p span {
64 | position: absolute;
65 | left: 0;
66 | top: 0;
67 | color: #999;
68 | }
69 |
70 | .mine-msg li .fly-delete {
71 | position: relative;
72 | top: -3px;
73 | }
74 |
75 | .layui-btn-sm {
76 | height: 30px;
77 | line-height: 30px;
78 | padding: 0 10px;
79 | font-size: 12px;
80 | }
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 | @import "screen-reader.less";
19 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | .sr-only() {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | .sr-only-focusable() {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/screen-reader.less:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { .sr-only(); }
5 | .sr-only-focusable { .sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | @mixin sr-only {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | @mixin sr-only-focusable {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/src/main/resources/static/font-awesome/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/fonts/iconfont.eot
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/fonts/iconfont.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/fonts/iconfont.woff
--------------------------------------------------------------------------------
/src/main/resources/static/images/404.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/404.gif
--------------------------------------------------------------------------------
/src/main/resources/static/images/500.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/500.gif
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1667548946800.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1667548946800.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1667548971530.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1667548971530.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1667746118317.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1667746118317.jpeg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1668164368257.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1668164368257.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1668318538996.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1668318538996.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1669220965186.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1669220965186.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1669276685855.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1669276685855.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/1669293156078.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/1669293156078.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/2.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/3.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/404.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/404.gif
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/500.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/500.gif
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/dapao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/dapao.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/defaultAvatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/defaultAvatar.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/whiteCat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/whiteCat.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/xiaosan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/xiaosan.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/avatar/zhuge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/avatar/zhuge.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/login.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/login.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669276951107.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669276951107.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669276974784.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669276974784.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277059671.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277059671.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277181490.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277181490.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277234642.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277234642.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277297811.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277297811.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277343490.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277343490.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277391908.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277391908.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277447039.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277447039.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277798480.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277798480.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277853998.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277853998.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669277910439.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669277910439.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669278028519.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669278028519.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1669293179604.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1669293179604.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1685862798345.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1685862798345.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1685866745259.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1685866745259.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1685867120900.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1685867120900.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1685867146179.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1685867146179.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1686062673846.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1686062673846.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/1686062719827.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/1686062719827.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/topicPicture/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/images/topicPicture/2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/js/article.js:
--------------------------------------------------------------------------------
1 | layui.use('form', function(){
2 | var form = layui.form;
3 | form.on('submit(searchForm)', function(data){
4 | var keywords=$("#keywords").val();
5 | if(keywords==null || keywords==""){
6 | layer.msg('请输入要搜索的关键字');
7 | return false;
8 | }
9 | search();
10 | return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
11 | });
12 | });
13 |
14 |
15 |
16 | $(function(){
17 | $(".fa-file-text").parent().parent().addClass("layui-this");
18 | var keywords=$("#keywords").val();
19 | $("#keywords").keydown(function (event) {
20 | if (event.keyCode == 13) {
21 | var keyword=$("#keywords").val();
22 | if(keyword==null || keyword==""){
23 | layer.msg('请输入要搜索的关键字');
24 | return false;
25 | }
26 | search();
27 | }
28 | });
29 | });
30 |
31 | function search() {
32 | layer.msg('功能要自己写哦!');
33 | }
34 |
35 | function classifyList(id) {
36 | layer.msg('功能要自己写哦!');
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/resources/static/js/index.js:
--------------------------------------------------------------------------------
1 | layui.use(['jquery','carousel','flow','layer'], function () {
2 | var $ = layui.jquery;
3 | var flow = layui.flow;
4 | var layer = layui.layer;
5 |
6 | var width = width || window.innerWeight || document.documentElement.clientWidth || document.body.clientWidth;
7 | width = width>1200 ? 1170 : (width > 992 ? 962 : width);
8 | var carousel = layui.carousel;
9 | //建造实例
10 | carousel.render({
11 | elem: '#carousel'
12 | ,width: width+'px' //设置容器宽度
13 | ,height:'360px'
14 | ,indicator: 'inside'
15 | ,arrow: 'always' //始终显示箭头
16 | ,anim: 'default' //切换动画方式
17 |
18 | });
19 |
20 | $(".home-tips-container span").click(function(){
21 | layer.msg($(this).text(), {
22 | time: 20000, //20s后自动关闭
23 | btn: ['明白了']
24 | });
25 | });
26 |
27 |
28 | $(".recent-list .hotusers-list-item").mouseover(function () {
29 | var name = $(this).children(".remark-user-avator").attr("data-name");
30 | var str = "【"+name+"】的评论";
31 | layer.tips(str, this, {
32 | tips: [2,'#666666']
33 | });
34 | });
35 |
36 |
37 | $("#QQjl").mouseover(function(){
38 | layer.tips('QQ交流', this,{
39 | tips: 1
40 | });
41 | });
42 | $("#gwxx").mouseover(function(){
43 | layer.tips('消息', this,{
44 | tips: 1
45 | });
46 | });
47 | $("#xlwb").mouseover(function(){
48 | layer.tips('新浪微博', this,{
49 | tips: 1
50 | });
51 | });
52 | $("#htgl").mouseover(function(){
53 | layer.tips('设置', this,{
54 | tips: 1
55 | });
56 | });
57 |
58 | $(function () {
59 |
60 | $(".fa-home").parent().parent().addClass("layui-this");
61 | //播放公告
62 | playAnnouncement(5000);
63 | });
64 |
65 | function playAnnouncement(interval) {
66 | var index = 0;
67 | var $announcement = $('.home-tips-container>span');
68 | //自动轮换
69 | setInterval(function () {
70 | index++; //下标更新
71 | if (index >= $announcement.length) {
72 | index = 0;
73 | }
74 | $announcement.eq(index).stop(true, true).fadeIn().siblings('span').fadeOut(); //下标对应的图片显示,同辈元素隐藏
75 | }, interval);
76 | }
77 | });
78 |
79 | function classifyList(id){
80 | layer.msg('功能要自己写');
81 | }
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/src/main/resources/static/js/mixed_pic.js:
--------------------------------------------------------------------------------
1 | var pics = {
2 | "data": [
3 | {"src": "images/pic/1.jpg", "alt": "紫霞仙子和至尊宝",},
4 | {"src": "images/pic/2.jpg", "alt": "紫霞仙子"}
5 | ]};
6 | layui.use(['jquery','flow'], function () {
7 | var $ = layui.jquery;
8 | // 流加载 图片
9 | var flow = layui.flow;
10 | var count = pics.data.length-1;
11 | flow.load({
12 | elem: '.mixed-main', //流加载容器
13 | isAuto: true,
14 | end: '没有更多的图片了~QAQ',
15 | done: function(page,next) {
16 | var lis = [];
17 | for (var i=0; i<8; i++) {
18 | if (count < -1) break;
19 | if (count==-1) {
20 | lis.push(''+
21 | '
'+
22 | '

'+
23 | '
'+
24 | '
图片还在拍摄中
'+
25 | '',
29 | '
');
30 | } else {
31 | lis.push(''+
32 | '
'+
33 | '
!['+pics.data[count].alt+']('+pics.data[count].src+')
'+
34 | '
'+
35 | '
'+pics.data[count].alt+'
'+
36 | '',
40 | '
');
41 | }
42 | count--;
43 | }
44 | next(lis.join(''), page < pics.data.length/8);
45 | }
46 | });
47 | });
48 | function view(start) {
49 | pics.start = start;
50 | layer.photos({photos: pics });
51 | }
52 |
53 | $(function () {
54 | $(".fa-paper-plane-o").parent().parent().addClass("layui-this");
55 | });
--------------------------------------------------------------------------------
/src/main/resources/static/js/pagecomment.js:
--------------------------------------------------------------------------------
1 | layui.use(['element', 'jquery', 'form', 'layedit', 'flow'], function () {
2 | var element = layui.element;
3 | var form = layui.form;
4 | var $ = layui.jquery;
5 | var layedit = layui.layedit;
6 | var flow = layui.flow;
7 | //评论和留言的编辑器的验证
8 | form.verify({
9 | content: function (value) {
10 | value = $.trim(layedit.getContent(editIndex));
11 | if (value == "") return "请输入内容";
12 | layedit.sync(editIndex);
13 | },
14 | replyContent: function (value) {
15 | if (value == "") return "请输入内容";
16 | }
17 | });
18 |
19 | //回复按钮点击事件
20 | $('#blog-comment').on('click', '.btn-reply', function () {
21 | var targetId = $(this).data('targetid')
22 | , targetName = $(this).data('targetname')
23 | , $container = $(this).parent('p').parent().siblings('.replycontainer');
24 | if ($(this).text() == '回复') {
25 | $container.find('textarea').attr('placeholder', '回复【' + targetName + '】');
26 | $container.removeClass('layui-hide');
27 | $container.find('input[name="targetUserId"]').val(targetId);
28 | $(this).parents('.blog-comment li').find('.btn-reply').text('回复');
29 | $(this).text('收起');
30 | } else {
31 | $container.addClass('layui-hide');
32 | $container.find('input[name="targetUserId"]').val(0);
33 | $(this).text('回复');
34 | }
35 | });
36 | });
37 |
--------------------------------------------------------------------------------
/src/main/resources/static/js/trie.js:
--------------------------------------------------------------------------------
1 | const searchInput = document.getElementById('msg');
2 | const searchResults = document.querySelector('.search-results2');
3 |
4 | searchInput.addEventListener('input', function() {
5 | if (this.value.trim() !== '') {
6 | // 向服务器请求搜索结果
7 | fetch(`/chen/searchTopic/${this.value}`)
8 | .then(response => response.json())
9 | .then(data => {
10 | // 清空搜索结果
11 | searchResults.innerHTML = '';
12 |
13 | // 遍历搜索结果,将其添加至下拉菜单中
14 | for (const result of data) {
15 | const li = document.createElement('li');
16 | li.innerText = result;
17 | li.addEventListener('click', function() {
18 | // 选中搜索结果,将其赋值给搜索框
19 | searchInput.value = this.innerText;
20 | // 清空搜索结果
21 | searchResults.innerHTML = '';
22 | selectName()
23 | });
24 | searchResults.appendChild(li);
25 | }
26 |
27 | // 显示下拉菜单
28 | searchResults.style.display = 'block';
29 | })
30 | .catch(error => console.error(error));
31 | } else {
32 | // 清空搜索结果
33 | searchResults.innerHTML = '';
34 | // 隐藏下拉菜单
35 | searchResults.style.display = 'none';
36 | }
37 | });
38 |
39 | document.addEventListener('click', function(event) {
40 | if (!searchResults.contains(event.target)) {
41 | // 点击页面其他区域,隐藏下拉菜单
42 | searchResults.style.display = 'none';
43 | }
44 | });
--------------------------------------------------------------------------------
/src/main/resources/static/layui/css/modules/code.css:
--------------------------------------------------------------------------------
1 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #eee;border-left-width:6px;background-color:#FAFAFA;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #eee}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 10px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view .layui-code-ol li:first-child{padding-top:10px}.layui-code-view .layui-code-ol li:last-child{padding-bottom:10px}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}.layui-code-demo .layui-code{visibility:visible!important;margin:-15px;border-top:none;border-right:none;border-bottom:none}.layui-code-demo .layui-tab-content{padding:15px;border-top:none}
--------------------------------------------------------------------------------
/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png
--------------------------------------------------------------------------------
/src/main/resources/static/layui/css/modules/layer/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/css/modules/layer/default/icon.png
--------------------------------------------------------------------------------
/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/font/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/font/iconfont.eot
--------------------------------------------------------------------------------
/src/main/resources/static/layui/font/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/font/iconfont.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/layui/font/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/font/iconfont.woff
--------------------------------------------------------------------------------
/src/main/resources/static/layui/font/iconfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/font/iconfont.woff2
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/0.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/1.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/10.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/10.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/11.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/11.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/12.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/12.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/13.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/13.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/14.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/14.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/15.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/15.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/16.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/16.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/17.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/17.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/18.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/18.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/19.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/19.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/2.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/20.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/20.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/21.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/21.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/22.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/22.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/23.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/23.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/24.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/24.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/25.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/25.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/26.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/26.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/27.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/27.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/28.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/28.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/29.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/29.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/3.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/30.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/30.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/31.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/31.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/32.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/32.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/33.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/33.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/34.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/34.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/35.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/35.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/36.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/36.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/37.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/37.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/38.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/38.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/39.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/39.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/4.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/40.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/40.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/41.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/41.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/42.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/42.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/43.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/43.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/44.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/44.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/45.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/45.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/46.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/46.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/47.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/47.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/48.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/48.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/49.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/49.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/5.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/5.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/50.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/50.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/51.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/51.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/52.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/52.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/53.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/53.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/54.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/54.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/55.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/55.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/56.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/56.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/57.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/57.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/58.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/58.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/59.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/59.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/6.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/6.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/60.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/60.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/61.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/61.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/62.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/62.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/63.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/63.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/64.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/64.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/65.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/65.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/66.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/66.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/67.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/67.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/68.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/68.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/69.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/69.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/7.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/7.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/70.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/70.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/71.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/71.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/8.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/8.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/images/face/9.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/layui/images/face/9.gif
--------------------------------------------------------------------------------
/src/main/resources/static/layui/lay/modules/code.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.3.0 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('- '+o.replace(/[\r\t\n]+/g,"
- ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend(''+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"
");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
--------------------------------------------------------------------------------
/src/main/resources/static/layui/lay/modules/flow.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.3.0 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
--------------------------------------------------------------------------------
/src/main/resources/static/layui/lay/modules/laytpl.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.3.0 MIT License By https://www.layui.com */
2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/css/modules/code.css:
--------------------------------------------------------------------------------
1 | /** layui-v2.4.5 MIT License By https://www.layui.com */
2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/css/modules/layer/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/css/modules/layer/default/icon-ext.png
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/css/modules/layer/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/css/modules/layer/default/icon.png
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/css/modules/layer/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/css/modules/layer/default/loading-0.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/css/modules/layer/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/css/modules/layer/default/loading-1.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/css/modules/layer/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/css/modules/layer/default/loading-2.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/font/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/font/iconfont.eot
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/font/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/font/iconfont.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/font/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/font/iconfont.woff
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/0.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/1.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/10.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/10.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/11.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/11.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/12.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/12.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/13.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/13.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/14.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/14.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/15.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/15.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/16.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/16.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/17.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/17.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/18.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/18.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/19.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/19.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/2.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/20.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/20.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/21.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/21.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/22.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/22.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/23.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/23.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/24.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/24.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/25.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/25.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/26.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/26.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/27.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/27.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/28.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/28.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/29.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/29.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/3.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/30.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/30.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/31.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/31.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/32.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/32.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/33.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/33.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/34.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/34.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/35.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/35.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/36.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/36.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/37.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/37.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/38.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/38.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/39.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/39.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/4.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/40.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/40.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/41.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/41.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/42.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/42.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/43.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/43.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/44.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/44.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/45.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/45.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/46.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/46.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/47.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/47.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/48.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/48.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/49.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/49.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/5.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/5.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/50.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/50.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/51.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/51.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/52.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/52.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/53.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/53.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/54.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/54.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/55.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/55.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/56.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/56.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/57.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/57.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/58.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/58.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/59.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/59.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/6.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/6.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/60.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/60.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/61.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/61.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/62.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/62.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/63.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/63.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/64.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/64.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/65.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/65.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/66.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/66.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/67.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/67.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/68.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/68.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/69.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/69.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/7.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/7.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/70.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/70.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/71.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/71.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/8.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/8.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/images/face/9.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alaions/whiteCat/986639e59cb3a1ec7f921d0648032087cdb0a393/src/main/resources/static/lib/layui/images/face/9.gif
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/lay/modules/code.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.4.5 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('- '+o.replace(/[\r\t\n]+/g,"
- ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend(''+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"
");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/lay/modules/flow.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.4.5 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
--------------------------------------------------------------------------------
/src/main/resources/static/lib/layui/lay/modules/laytpl.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.4.5 MIT License By https://www.layui.com */
2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});
--------------------------------------------------------------------------------
/src/main/resources/templates/403.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Title
6 |
7 |
8 | 此账号用于用户们查看管理员系统的界面,只允许查看不允许修改信息哦
9 | 如果想验证系统修改信息的可行性可联系我获取超级账号
10 | 信息的管理功能都已实现,如需管理系统的请加qq:1345305701 有偿获取
11 |
12 |
--------------------------------------------------------------------------------
/src/main/resources/templates/admin/welcome.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 欢迎页面-X-admin2.2
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 信息的管理功能都已实现,如需管理系统的请加qq:1345305701
16 | 查看管理员页面:http://134.175.55.216:8080/chen/
17 | 用户名:admin 密码:123456
18 |
19 |
--------------------------------------------------------------------------------
/src/main/resources/templates/code.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
对你有帮助就点个星吧
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/main/resources/templates/error/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Title
6 |
7 |
8 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/src/main/resources/templates/error/500.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Title
6 |
7 |
8 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/src/main/resources/templates/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 获取客户端MAC地址
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
24 |
25 |
26 |
27 |
28 |
29 |
44 |
45 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/src/main/resources/templates/trie.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Title
6 |
7 |
8 |
9 |
13 |
14 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/src/test/java/com/chen/LayuiApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.chen;
2 |
3 | import com.chen.MyUtils.*;
4 | import com.chen.Service.adminService.*;
5 | import com.chen.mapper.*;
6 | import org.apache.ibatis.session.SqlSession;
7 | import org.junit.jupiter.api.Test;
8 | import org.springframework.beans.factory.annotation.Autowired;
9 | import org.springframework.boot.test.context.SpringBootTest;
10 | import org.springframework.util.StringUtils;
11 |
12 |
13 | @SpringBootTest
14 | class LayuiApplicationTests {
15 |
16 | @Autowired
17 | SqlSession session;
18 |
19 | @Autowired
20 | IpMapper ipMapper;
21 |
22 | @Autowired
23 | TagService tagService;
24 |
25 | @Autowired
26 | UserService userService;
27 |
28 | @Autowired
29 | TopicService topicService;
30 |
31 | @Autowired
32 | CommentService commentService;
33 |
34 | @Autowired
35 | ControlTrie controlTrie;
36 |
37 | @Test
38 | public void test(){
39 | for (String word : controlTrie.getSensitiveTrie().getList()) {
40 | if (StringUtils.hasText(word)){
41 | controlTrie.getSensitiveTrie().insert(word);
42 | }
43 | }
44 | String comment = "哈台湾哈";
45 | boolean ifBad = controlTrie.getSensitiveTrie().searchWord(comment);
46 | if (ifBad){
47 | System.out.println("此评论包含敏感词!");
48 | }else {
49 | System.out.println("无");
50 | }
51 |
52 |
53 | }
54 |
55 |
56 | }
57 |
--------------------------------------------------------------------------------