├── .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 | 10 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 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 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/login.png) 25 | 26 | 首页 27 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/index.png) 28 | 29 | 文章详细页 30 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/topic.png) 31 | 32 | 评论页 33 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/comment.png) 34 | 35 | 个人主页 + 粉丝列表+ 关注列表 + 消息页 36 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/personal.png) 37 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/myFollow.png) 38 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/myFans.png) 39 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/notic.png) 40 | 41 | 42 | 他人主页 43 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/otherPersonal.png) 44 | 45 | 46 | 文章分类页 47 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/onlyTopic.png) 48 | 49 | 发帖页 50 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/commitTopic.png) 51 | 52 | 用户搜索页 53 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/selectUser.png) 54 | 55 | 设置页 56 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/setting1.png) 57 | ![输入图片说明](https://gitee.com/alaions/white-cat/raw/master/ima/setting2.png) 58 | 59 | 60 | 61 | 管理员页面 62 | ![输入图片说明](ima/admin.png) 63 | #### 使用说明 64 | 65 | 需导入在文件夹中的sql文件,本地访问为:http://localhost:8080/chen 66 | 67 | 2. 配置头像以及封面存放地址 68 | ![输入图片说明](ima/15FU820NVR40MUALKHS4%25JM.png) 69 | 3. 配置数据库 70 | ![输入图片说明](ima/@@3RZLOBF_5%25J%7BQ%7BVD%25OX7E.png) 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+''+ 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('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),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('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),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 |

github


42 |

gitee

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 |
10 |

联系站长

11 |
12 | 13 | -------------------------------------------------------------------------------- /src/main/resources/templates/error/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 |
10 |

联系站长

11 |
12 | 13 | -------------------------------------------------------------------------------- /src/main/resources/templates/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 获取客户端MAC地址 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 |
MAC地址: 18 | 19 |
IP地址: 20 | 21 |
主机名: 22 | 23 |
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 |
10 | 11 |
12 |
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 | --------------------------------------------------------------------------------