├── README.md ├── mysql数据库脚本 └── ssm_trackstacking.sql ├── trackstacking ├── .classpath ├── .project ├── .settings │ ├── .jsdtscope │ ├── org.eclipse.jdt.core.prefs │ ├── org.eclipse.wst.common.component │ ├── org.eclipse.wst.common.project.facet.core.xml │ ├── org.eclipse.wst.jsdt.ui.superType.container │ └── org.eclipse.wst.jsdt.ui.superType.name ├── WebContent │ ├── META-INF │ │ ├── MANIFEST.MF │ │ └── maven │ │ │ └── top.wangruns │ │ │ └── track-stacking │ │ │ ├── pom.properties │ │ │ └── pom.xml │ ├── WEB-INF │ │ ├── jsp │ │ │ ├── collectedFrame.jsp │ │ │ ├── headerFrame.jsp │ │ │ ├── index.jsp │ │ │ ├── newReviewFrame.jsp │ │ │ ├── recentFrame.jsp │ │ │ ├── reviewFrame.jsp │ │ │ ├── reviewManageSearchFrame.jsp │ │ │ ├── songManageSearchFrame.jsp │ │ │ └── userManageSearchFrame.jsp │ │ ├── lib │ │ │ ├── activation-1.1.jar │ │ │ ├── aspectjweaver-1.8.10.jar │ │ │ ├── c3p0-0.9.1.2.jar │ │ │ ├── commons-codec-1.10.jar │ │ │ ├── commons-fileupload-1.3.3.jar │ │ │ ├── commons-io-2.5.jar │ │ │ ├── commons-logging-1.2.jar │ │ │ ├── fastjson-1.2.35.jar │ │ │ ├── jackson-core-asl-1.9.13.jar │ │ │ ├── jackson-mapper-asl-1.9.13.jar │ │ │ ├── javax.mail-1.5.6.jar │ │ │ ├── jstl-1.2.jar │ │ │ ├── log4j-1.2.17.jar │ │ │ ├── mybatis-3.2.8.jar │ │ │ ├── mybatis-spring-1.3.1.jar │ │ │ ├── mysql-connector-java-5.1.7-bin.jar │ │ │ ├── slf4j-api-1.7.25.jar │ │ │ ├── slf4j-log4j12-1.7.25.jar │ │ │ ├── spring-aop-4.3.10.RELEASE.jar │ │ │ ├── spring-beans-4.3.10.RELEASE.jar │ │ │ ├── spring-context-4.3.10.RELEASE.jar │ │ │ ├── spring-context-support-4.3.10.RELEASE.jar │ │ │ ├── spring-core-4.3.10.RELEASE.jar │ │ │ ├── spring-expression-4.3.10.RELEASE.jar │ │ │ ├── spring-jdbc-4.3.10.RELEASE.jar │ │ │ ├── spring-oxm-4.3.10.RELEASE.jar │ │ │ ├── spring-test-4.3.10.RELEASE.jar │ │ │ ├── spring-tx-4.3.10.RELEASE.jar │ │ │ ├── spring-web-4.3.10.RELEASE.jar │ │ │ └── spring-webmvc-4.3.10.RELEASE.jar │ │ └── web.xml │ ├── css │ │ ├── animate.css │ │ ├── audio.css │ │ ├── bootstrap.min.css │ │ ├── carousel.css │ │ ├── cool.css │ │ ├── iconfont │ │ │ ├── demo.css │ │ │ ├── demo.html │ │ │ ├── iconfont.css │ │ │ ├── iconfont.eot │ │ │ ├── iconfont.svg │ │ │ ├── iconfont.ttf │ │ │ └── iconfont.woff │ │ └── simple-line-icons.css │ ├── fonts │ │ ├── Simple-Line-Icons.eot │ │ ├── Simple-Line-Icons.svg │ │ ├── Simple-Line-Icons.ttf │ │ ├── Simple-Line-Icons.woff │ │ └── Simple-Line-Icons.woff2 │ ├── image │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 5.jpeg │ │ ├── defaultUserLogo.jpg │ │ ├── slide1.jpg │ │ ├── slide2.jpg │ │ └── slide3.jpg │ ├── images │ │ ├── cover.jpg │ │ ├── cover1.jpg │ │ ├── cover2.jpg │ │ ├── cover3.jpg │ │ ├── cover4.jpg │ │ ├── cover5.jpg │ │ ├── cover6.jpg │ │ ├── menu.png │ │ ├── next.png │ │ ├── pause.png │ │ ├── play.png │ │ ├── prev.png │ │ └── volume.png │ ├── js │ │ ├── add2list.js │ │ ├── audio.js │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.min.js │ │ ├── jquery-3.3.1.min.js │ │ └── navbar.js │ └── track │ │ ├── lyric │ │ └── README.txt │ │ └── song │ │ ├── README.txt │ │ ├── 冷漠 - 这条街.lrc │ │ └── 冷漠 - 这条街.mp3 ├── build │ └── classes │ │ ├── bean.xml │ │ ├── jdbc.properties │ │ ├── spring-mvc.xml │ │ ├── top │ │ └── wangruns │ │ │ └── trackstacking │ │ │ ├── algorithm │ │ │ ├── CollaborativeFiltering$1.class │ │ │ ├── CollaborativeFiltering.class │ │ │ ├── DailyAction$1.class │ │ │ ├── DailyAction.class │ │ │ ├── DataTranslate$1.class │ │ │ ├── DataTranslate$2.class │ │ │ ├── DataTranslate.class │ │ │ ├── Edge.class │ │ │ ├── Hybrid$1.class │ │ │ ├── Hybrid$2$1.class │ │ │ ├── Hybrid$2.class │ │ │ ├── Hybrid$3.class │ │ │ ├── Hybrid$4.class │ │ │ ├── Hybrid$5.class │ │ │ ├── Hybrid$6.class │ │ │ ├── Hybrid.class │ │ │ ├── Listener.class │ │ │ ├── MininumHeap.class │ │ │ ├── Operator.class │ │ │ ├── SGD.class │ │ │ ├── Sample$1.class │ │ │ ├── Sample$2.class │ │ │ ├── Sample.class │ │ │ ├── Similarity.class │ │ │ ├── Training$1.class │ │ │ ├── Training$2$1.class │ │ │ ├── Training$2.class │ │ │ ├── Training.class │ │ │ ├── TreeNode.class │ │ │ ├── UpdateTask.class │ │ │ ├── UserKNN$1$1.class │ │ │ ├── UserKNN$1.class │ │ │ ├── UserKNN.class │ │ │ ├── W2DNetwork.class │ │ │ └── W2WNetwork.class │ │ │ ├── controller │ │ │ ├── CollectionController.class │ │ │ ├── DownloadController.class │ │ │ ├── IndexController.class │ │ │ ├── LoginController.class │ │ │ ├── MyMusicPageController.class │ │ │ ├── NewTrackOnShelfController.class │ │ │ ├── PersonalRecController.class │ │ │ ├── RankingPageCotroller.class │ │ │ ├── RecordPlayController.class │ │ │ ├── RegisterController.class │ │ │ ├── ReviewController.class │ │ │ ├── SearchController.class │ │ │ ├── SongController.class │ │ │ ├── TrendingRecController.class │ │ │ └── UserController.class │ │ │ ├── dao │ │ │ ├── CollectionDao.class │ │ │ ├── MyMusicDao.class │ │ │ ├── NewTrackOnShelfDao.class │ │ │ ├── PersonalRecDao.class │ │ │ ├── RankingPageDao.class │ │ │ ├── RecordDownloadDao.class │ │ │ ├── RecordPlayDao.class │ │ │ ├── ReviewDao.class │ │ │ ├── SearchDao.class │ │ │ ├── SongDao.class │ │ │ ├── TrendingRecDao.class │ │ │ ├── UserDao.class │ │ │ └── impl │ │ │ │ ├── CollectionDaoImpl.xml │ │ │ │ ├── MyMusicDaoImpl.xml │ │ │ │ ├── NewTrackOnShelfDaoImlp.xml │ │ │ │ ├── PersonalRecDaoImpl.xml │ │ │ │ ├── RankingPageDaoImpl.xml │ │ │ │ ├── RecordDownloadDaoImpl.xml │ │ │ │ ├── RecordPlayDaoImpl.xml │ │ │ │ ├── ReviewDaoImpl.xml │ │ │ │ ├── SearchDaoImpl.xml │ │ │ │ ├── SongDaoImpl.xml │ │ │ │ ├── TrendingRecDaoImpl.xml │ │ │ │ └── UserDaoImpl.xml │ │ │ ├── model │ │ │ ├── Collection.class │ │ │ ├── DownloadRecord.class │ │ │ ├── Like.class │ │ │ ├── PlayRecord.class │ │ │ ├── Review.class │ │ │ ├── Role.class │ │ │ ├── Song.class │ │ │ └── User.class │ │ │ ├── service │ │ │ ├── CollectionService.class │ │ │ ├── MyMusicService.class │ │ │ ├── NewTrackOnShelfService.class │ │ │ ├── PersonalRecService.class │ │ │ ├── RankingPageService.class │ │ │ ├── RecordDownloadService.class │ │ │ ├── RecordPlayService.class │ │ │ ├── ReviewService.class │ │ │ ├── SearchService.class │ │ │ ├── SongService.class │ │ │ ├── TrendingRecService.class │ │ │ ├── UserService.class │ │ │ └── impl │ │ │ │ ├── CollectionServiceImpl.class │ │ │ │ ├── MyMusicServiceImpl.class │ │ │ │ ├── NewTrackOnShelfServiceImpl.class │ │ │ │ ├── PersonalRecServiceImpl$1.class │ │ │ │ ├── PersonalRecServiceImpl$2.class │ │ │ │ ├── PersonalRecServiceImpl$3.class │ │ │ │ ├── PersonalRecServiceImpl$4.class │ │ │ │ ├── PersonalRecServiceImpl.class │ │ │ │ ├── RankingPageServiceImpl.class │ │ │ │ ├── RecordDownloadServiceImpl.class │ │ │ │ ├── RecordPlayServiceImpl.class │ │ │ │ ├── ReviewServiceImpl.class │ │ │ │ ├── SearchServiceImpl.class │ │ │ │ ├── SongServiceImpl.class │ │ │ │ ├── TrendingRecServiceImpl.class │ │ │ │ └── UserServiceImpl.class │ │ │ └── utils │ │ │ ├── MD5Util.class │ │ │ ├── OneDayOneWord.class │ │ │ ├── Request.class │ │ │ ├── ReturnMsg.class │ │ │ ├── SendEmail.class │ │ │ └── Static.class │ │ └── trackstacking │ │ ├── DataTranslateTest.class │ │ └── MininumHeapTest.class └── src │ ├── bean.xml │ ├── jdbc.properties │ ├── spring-mvc.xml │ ├── top │ └── wangruns │ │ └── trackstacking │ │ ├── algorithm │ │ ├── CollaborativeFiltering.java │ │ ├── DailyAction.java │ │ ├── DataTranslate.java │ │ ├── Edge.java │ │ ├── Hybrid.java │ │ ├── Listener.java │ │ ├── MininumHeap.java │ │ ├── Operator.java │ │ ├── SGD.java │ │ ├── Sample.java │ │ ├── Similarity.java │ │ ├── Training.java │ │ ├── TreeNode.java │ │ ├── UpdateTask.java │ │ ├── UserKNN.java │ │ ├── W2DNetwork.java │ │ └── W2WNetwork.java │ │ ├── controller │ │ ├── CollectionController.java │ │ ├── DownloadController.java │ │ ├── IndexController.java │ │ ├── LoginController.java │ │ ├── MyMusicPageController.java │ │ ├── NewTrackOnShelfController.java │ │ ├── PersonalRecController.java │ │ ├── RankingPageCotroller.java │ │ ├── RecordPlayController.java │ │ ├── RegisterController.java │ │ ├── ReviewController.java │ │ ├── SearchController.java │ │ ├── SongController.java │ │ ├── TrendingRecController.java │ │ └── UserController.java │ │ ├── dao │ │ ├── CollectionDao.java │ │ ├── MyMusicDao.java │ │ ├── NewTrackOnShelfDao.java │ │ ├── PersonalRecDao.java │ │ ├── RankingPageDao.java │ │ ├── RecordDownloadDao.java │ │ ├── RecordPlayDao.java │ │ ├── ReviewDao.java │ │ ├── SearchDao.java │ │ ├── SongDao.java │ │ ├── TrendingRecDao.java │ │ ├── UserDao.java │ │ └── impl │ │ │ ├── CollectionDaoImpl.xml │ │ │ ├── MyMusicDaoImpl.xml │ │ │ ├── NewTrackOnShelfDaoImlp.xml │ │ │ ├── PersonalRecDaoImpl.xml │ │ │ ├── RankingPageDaoImpl.xml │ │ │ ├── RecordDownloadDaoImpl.xml │ │ │ ├── RecordPlayDaoImpl.xml │ │ │ ├── ReviewDaoImpl.xml │ │ │ ├── SearchDaoImpl.xml │ │ │ ├── SongDaoImpl.xml │ │ │ ├── TrendingRecDaoImpl.xml │ │ │ └── UserDaoImpl.xml │ │ ├── model │ │ ├── Collection.java │ │ ├── DownloadRecord.java │ │ ├── Like.java │ │ ├── PlayRecord.java │ │ ├── Review.java │ │ ├── Role.java │ │ ├── Song.java │ │ └── User.java │ │ ├── service │ │ ├── CollectionService.java │ │ ├── MyMusicService.java │ │ ├── NewTrackOnShelfService.java │ │ ├── PersonalRecService.java │ │ ├── RankingPageService.java │ │ ├── RecordDownloadService.java │ │ ├── RecordPlayService.java │ │ ├── ReviewService.java │ │ ├── SearchService.java │ │ ├── SongService.java │ │ ├── TrendingRecService.java │ │ ├── UserService.java │ │ └── impl │ │ │ ├── CollectionServiceImpl.java │ │ │ ├── MyMusicServiceImpl.java │ │ │ ├── NewTrackOnShelfServiceImpl.java │ │ │ ├── PersonalRecServiceImpl.java │ │ │ ├── RankingPageServiceImpl.java │ │ │ ├── RecordDownloadServiceImpl.java │ │ │ ├── RecordPlayServiceImpl.java │ │ │ ├── ReviewServiceImpl.java │ │ │ ├── SearchServiceImpl.java │ │ │ ├── SongServiceImpl.java │ │ │ ├── TrendingRecServiceImpl.java │ │ │ └── UserServiceImpl.java │ │ └── utils │ │ ├── MD5Util.java │ │ ├── OneDayOneWord.java │ │ ├── Request.java │ │ ├── ReturnMsg.java │ │ ├── SendEmail.java │ │ └── Static.java │ └── trackstacking │ ├── DataTranslateTest.java │ └── MininumHeapTest.java └── 关于系统.txt /README.md: -------------------------------------------------------------------------------- 1 | # JSP_SSM_Music_recommendations 2 | JSP基于SSM协同过滤音乐推荐管理系统设计毕业源码案例设计 3 | 4 | ## 功能实现: 5 | 管理员角色包含以下功能:管理员登录,音乐管理,添加音乐,评论管理,用户管理等功能。 6 | 用户角色包含以下功能:首页,发现音乐,注册用户,验证码,收藏音乐,评价音乐,查看收藏,个性化推荐,新碟上架等功能。 7 | 用了技术框架: HTML+CSS+JavaScript+jsp+mysql+Spring+mybatis 8 | 9 | 管理员账号/密码:1347845688@qq.com /123456 10 | 用户账号/密码: 1357845688@qq.com /123456 11 | 12 | ## 运行环境:jdk1.8/jdk1.9 13 | ## IDE环境: Eclipse,Myeclipse,IDEA都可以 14 | ## tomcat环境: Tomcat8.x/9.x 15 | -------------------------------------------------------------------------------- /trackstacking/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /trackstacking/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | trackstacking 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.wst.jsdt.core.javascriptValidator 10 | 11 | 12 | 13 | 14 | org.eclipse.jdt.core.javabuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.wst.common.project.facet.core.builder 20 | 21 | 22 | 23 | 24 | org.eclipse.wst.validation.validationbuilder 25 | 26 | 27 | 28 | 29 | 30 | org.eclipse.jem.workbench.JavaEMFNature 31 | org.eclipse.wst.common.modulecore.ModuleCoreNature 32 | org.eclipse.wst.common.project.facet.core.nature 33 | org.eclipse.jdt.core.javanature 34 | org.eclipse.wst.jsdt.core.jsNature 35 | 36 | 37 | -------------------------------------------------------------------------------- /trackstacking/.settings/.jsdtscope: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /trackstacking/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 4 | org.eclipse.jdt.core.compiler.compliance=1.8 5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 7 | org.eclipse.jdt.core.compiler.source=1.8 8 | -------------------------------------------------------------------------------- /trackstacking/.settings/org.eclipse.wst.common.component: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /trackstacking/.settings/org.eclipse.wst.common.project.facet.core.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /trackstacking/.settings/org.eclipse.wst.jsdt.ui.superType.container: -------------------------------------------------------------------------------- 1 | org.eclipse.wst.jsdt.launching.baseBrowserLibrary -------------------------------------------------------------------------------- /trackstacking/.settings/org.eclipse.wst.jsdt.ui.superType.name: -------------------------------------------------------------------------------- 1 | Window -------------------------------------------------------------------------------- /trackstacking/WebContent/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Built-By: 13578 3 | Build-Jdk: 1.8.0_201 4 | Created-By: Maven Integration for Eclipse 5 | 6 | -------------------------------------------------------------------------------- /trackstacking/WebContent/META-INF/maven/top.wangruns/track-stacking/pom.properties: -------------------------------------------------------------------------------- 1 | #Generated by Maven Integration for Eclipse 2 | #Thu Aug 01 17:14:27 CST 2019 3 | version=0.0.1-SNAPSHOT 4 | groupId=top.wangruns 5 | m2e.projectName=trackstacking 6 | m2e.projectLocation=C\:\\Users\\13578\\Documents\\SVN\\WORK\\JAVAEE\\\u534F\u540C\u8FC7\u6EE4\u97F3\u4E50\u63A8\u8350\u7BA1\u7406\u7CFB\u7EDF\\SSM\u534F\u540C\u8FC7\u6EE4\u97F3\u4E50\u63A8\u8350\u7BA1\u7406\u7CFB\u7EDF\\\u6E90\u7801\\trackstacking 7 | artifactId=track-stacking 8 | -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/jsp/collectedFrame.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4 | 5 | 6 | 7 | 8 | Insert title here 9 | 10 | 11 |
border"> 12 | 13 | 41 | 42 |
43 | 44 | -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/jsp/newReviewFrame.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Track Stacking 13 | 14 | 15 | 16 | 17 |
18 |
19 | 44 |
45 |
46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/jsp/recentFrame.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4 | 5 | 6 | 7 | 8 | Track Stacking 9 | 10 | 11 |
border"> 12 | 13 | 40 |
41 | 42 | -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/activation-1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/activation-1.1.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/aspectjweaver-1.8.10.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/aspectjweaver-1.8.10.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/c3p0-0.9.1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/c3p0-0.9.1.2.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/commons-codec-1.10.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/commons-codec-1.10.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/commons-fileupload-1.3.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/commons-fileupload-1.3.3.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/commons-io-2.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/commons-io-2.5.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/commons-logging-1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/commons-logging-1.2.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/fastjson-1.2.35.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/fastjson-1.2.35.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/jackson-core-asl-1.9.13.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/jackson-core-asl-1.9.13.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/jackson-mapper-asl-1.9.13.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/jackson-mapper-asl-1.9.13.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/javax.mail-1.5.6.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/javax.mail-1.5.6.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/jstl-1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/jstl-1.2.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/log4j-1.2.17.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/log4j-1.2.17.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/mybatis-3.2.8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/mybatis-3.2.8.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/mybatis-spring-1.3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/mybatis-spring-1.3.1.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/mysql-connector-java-5.1.7-bin.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/mysql-connector-java-5.1.7-bin.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/slf4j-api-1.7.25.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/slf4j-api-1.7.25.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/slf4j-log4j12-1.7.25.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/slf4j-log4j12-1.7.25.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-aop-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-aop-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-beans-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-beans-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-context-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-context-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-context-support-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-context-support-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-core-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-core-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-expression-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-expression-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-jdbc-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-jdbc-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-oxm-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-oxm-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-test-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-test-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-tx-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-tx-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-web-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-web-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/lib/spring-webmvc-4.3.10.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/WEB-INF/lib/spring-webmvc-4.3.10.RELEASE.jar -------------------------------------------------------------------------------- /trackstacking/WebContent/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | Archetype Created Web Application 7 | 8 | 9 | contextConfigLocation 10 | classpath:bean.xml 11 | 12 | 13 | org.springframework.web.context.ContextLoaderListener 14 | 15 | 16 | 17 | 18 | CharacterEncodingFilter 19 | org.springframework.web.filter.CharacterEncodingFilter 20 | 21 | encoding 22 | utf-8 23 | 24 | 25 | 26 | CharacterEncodingFilter 27 | /* 28 | 29 | 30 | 31 | 32 | springmvc 33 | org.springframework.web.servlet.DispatcherServlet 34 | 35 | 36 | contextConfigLocation 37 | classpath:spring-mvc.xml 38 | 39 | 40 | 41 | springmvc 42 | *.do 43 | 44 | 45 | 46 | index.do 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /trackstacking/WebContent/css/carousel.css: -------------------------------------------------------------------------------- 1 | /* GLOBAL STYLES 2 | -------------------------------------------------- */ 3 | /* Padding below the footer and lighter body text */ 4 | 5 | body { 6 | padding-top: 3rem; 7 | padding-bottom: 3rem; 8 | color: #5a5a5a; 9 | } 10 | 11 | 12 | /* CUSTOMIZE THE CAROUSEL 13 | -------------------------------------------------- */ 14 | 15 | /* Carousel base class */ 16 | .carousel { 17 | margin-bottom: 4rem; 18 | } 19 | /* Since positioning the image, we need to help out the caption */ 20 | .carousel-caption { 21 | bottom: 3rem; 22 | z-index: 10; 23 | } 24 | 25 | /* Declare heights because of positioning of img element */ 26 | .carousel-item { 27 | height: 32rem; 28 | background-color: #777; 29 | } 30 | .carousel-item > img { 31 | position: absolute; 32 | top: 0; 33 | left: 0; 34 | min-width: 100%; 35 | height: 32rem; 36 | } 37 | 38 | 39 | /* MARKETING CONTENT 40 | -------------------------------------------------- */ 41 | 42 | /* Center align the text within the three columns below the carousel */ 43 | .marketing .col-lg-4 { 44 | margin-bottom: 1.5rem; 45 | text-align: center; 46 | } 47 | .marketing h2 { 48 | font-weight: 400; 49 | } 50 | .marketing .col-lg-4 p { 51 | margin-right: .75rem; 52 | margin-left: .75rem; 53 | } 54 | 55 | 56 | /* Featurettes 57 | ------------------------- */ 58 | 59 | .featurette-divider { 60 | margin: 5rem 0; /* Space out the Bootstrap
more */ 61 | } 62 | 63 | /* Thin out the marketing headings */ 64 | .featurette-heading { 65 | font-weight: 300; 66 | line-height: 1; 67 | letter-spacing: -.05rem; 68 | } 69 | 70 | 71 | /* RESPONSIVE CSS 72 | -------------------------------------------------- */ 73 | 74 | @media (min-width: 40em) { 75 | /* Bump up size of carousel content */ 76 | .carousel-caption p { 77 | margin-bottom: 1.25rem; 78 | font-size: 1.25rem; 79 | line-height: 1.4; 80 | } 81 | 82 | .featurette-heading { 83 | font-size: 50px; 84 | } 85 | } 86 | 87 | @media (min-width: 62em) { 88 | .featurette-heading { 89 | margin-top: 7rem; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /trackstacking/WebContent/css/iconfont/demo.css: -------------------------------------------------------------------------------- 1 | *{margin: 0;padding: 0;list-style: none;} 2 | /* 3 | KISSY CSS Reset 4 | 理念:1. reset 的目的不是清除浏览器的默认样式,这仅是部分工作。清除和重置是紧密不可分的。 5 | 2. reset 的目的不是让默认样式在所有浏览器下一致,而是减少默认样式有可能带来的问题。 6 | 3. reset 期望提供一套普适通用的基础样式。但没有银弹,推荐根据具体需求,裁剪和修改后再使用。 7 | 特色:1. 适应中文;2. 基于最新主流浏览器。 8 | 维护:玉伯, 正淳 9 | */ 10 | 11 | /** 清除内外边距 **/ 12 | body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */ 13 | dl, dt, dd, ul, ol, li, /* list elements 列表元素 */ 14 | pre, /* text formatting elements 文本格式元素 */ 15 | form, fieldset, legend, button, input, textarea, /* form elements 表单元素 */ 16 | th, td /* table elements 表格元素 */ { 17 | margin: 0; 18 | padding: 0; 19 | } 20 | 21 | /** 设置默认字体 **/ 22 | body, 23 | button, input, select, textarea /* for ie */ { 24 | font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif; 25 | } 26 | h1, h2, h3, h4, h5, h6 { font-size: 100%; } 27 | address, cite, dfn, em, var { font-style: normal; } /* 将斜体扶正 */ 28 | code, kbd, pre, samp { font-family: courier new, courier, monospace; } /* 统一等宽字体 */ 29 | small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */ 30 | 31 | /** 重置列表元素 **/ 32 | ul, ol { list-style: none; } 33 | 34 | /** 重置文本格式元素 **/ 35 | a { text-decoration: none; } 36 | a:hover { text-decoration: underline; } 37 | 38 | 39 | /** 重置表单元素 **/ 40 | legend { color: #000; } /* for ie6 */ 41 | fieldset, img { border: 0; } /* img 搭车:让链接里的 img 无边框 */ 42 | button, input, select, textarea { font-size: 100%; } /* 使得表单元素在 ie 下能继承字体大小 */ 43 | /* 注:optgroup 无法扶正 */ 44 | 45 | /** 重置表格元素 **/ 46 | table { border-collapse: collapse; border-spacing: 0; } 47 | 48 | /* 清除浮动 */ 49 | .ks-clear:after, .clear:after { 50 | content: '\20'; 51 | display: block; 52 | height: 0; 53 | clear: both; 54 | } 55 | .ks-clear, .clear { 56 | *zoom: 1; 57 | } 58 | 59 | .main {padding: 30px 100px;} 60 | .main h1{font-size:36px; color:#333; text-align:left;margin-bottom:30px; border-bottom: 1px solid #eee;} 61 | 62 | .helps{margin-top:40px;} 63 | .helps pre{ 64 | padding:20px; 65 | margin:10px 0; 66 | border:solid 1px #e7e1cd; 67 | background-color: #fffdef; 68 | overflow: auto; 69 | } 70 | 71 | .icon_lists li{ 72 | float:left; 73 | width: 100px; 74 | height:180px; 75 | text-align: center; 76 | } 77 | .icon_lists .icon{ 78 | font-size: 42px; 79 | line-height: 100px; 80 | margin: 10px 0; 81 | color:#333; 82 | -webkit-transition: font-size 0.25s ease-out 0s; 83 | -moz-transition: font-size 0.25s ease-out 0s; 84 | transition: font-size 0.25s ease-out 0s; 85 | 86 | } 87 | .icon_lists .icon:hover{ 88 | font-size: 100px; 89 | } 90 | -------------------------------------------------------------------------------- /trackstacking/WebContent/css/iconfont/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/css/iconfont/iconfont.eot -------------------------------------------------------------------------------- /trackstacking/WebContent/css/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/css/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /trackstacking/WebContent/css/iconfont/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/css/iconfont/iconfont.woff -------------------------------------------------------------------------------- /trackstacking/WebContent/fonts/Simple-Line-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/fonts/Simple-Line-Icons.eot -------------------------------------------------------------------------------- /trackstacking/WebContent/fonts/Simple-Line-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/fonts/Simple-Line-Icons.ttf -------------------------------------------------------------------------------- /trackstacking/WebContent/fonts/Simple-Line-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/fonts/Simple-Line-Icons.woff -------------------------------------------------------------------------------- /trackstacking/WebContent/fonts/Simple-Line-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/fonts/Simple-Line-Icons.woff2 -------------------------------------------------------------------------------- /trackstacking/WebContent/image/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/image/1.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/image/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/image/2.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/image/5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/image/5.jpeg -------------------------------------------------------------------------------- /trackstacking/WebContent/image/defaultUserLogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/image/defaultUserLogo.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/image/slide1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/image/slide1.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/image/slide2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/image/slide2.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/image/slide3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/image/slide3.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/images/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/cover.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/images/cover1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/cover1.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/images/cover2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/cover2.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/images/cover3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/cover3.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/images/cover4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/cover4.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/images/cover5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/cover5.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/images/cover6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/cover6.jpg -------------------------------------------------------------------------------- /trackstacking/WebContent/images/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/menu.png -------------------------------------------------------------------------------- /trackstacking/WebContent/images/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/next.png -------------------------------------------------------------------------------- /trackstacking/WebContent/images/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/pause.png -------------------------------------------------------------------------------- /trackstacking/WebContent/images/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/play.png -------------------------------------------------------------------------------- /trackstacking/WebContent/images/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/prev.png -------------------------------------------------------------------------------- /trackstacking/WebContent/images/volume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/images/volume.png -------------------------------------------------------------------------------- /trackstacking/WebContent/track/lyric/README.txt: -------------------------------------------------------------------------------- 1 | your lyrics here and do not forget to keep them in the database. 2 | (because of the time limit, only the English lyrics are supported by the embedding algorithm) 3 | e.g. 4 | | songId | songName | lyricAddress 5 | | 1 | As Long As You Love Me | track/song/As Long As You Love Me.lrc 6 | -------------------------------------------------------------------------------- /trackstacking/WebContent/track/song/README.txt: -------------------------------------------------------------------------------- 1 | your tracks here and do not forget to keep them in the database. 2 | e.g. 3 | | songId | songName | songAddress 4 | | 1 | 一生所爱(Live) | track/song/一生所爱(Live).mp3 5 | -------------------------------------------------------------------------------- /trackstacking/WebContent/track/song/冷漠 - 这条街.lrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/track/song/冷漠 - 这条街.lrc -------------------------------------------------------------------------------- /trackstacking/WebContent/track/song/冷漠 - 这条街.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/WebContent/track/song/冷漠 - 这条街.mp3 -------------------------------------------------------------------------------- /trackstacking/build/classes/jdbc.properties: -------------------------------------------------------------------------------- 1 | #\u8FDE\u63A5\u8FDC\u7A0B\u6570\u636E\u5E93 2 | jdbc.driver=com.mysql.jdbc.Driver 3 | jdbc.url=jdbc:mysql://localhost:3306/ssm_trackstacking?useUnicode=true&characterEncoding=utf8 4 | jdbc.username=root 5 | jdbc.password=123456 6 | 7 | #\u5B9A\u4E49\u521D\u59CB\u8FDE\u63A5\u6570 8 | initialPoolSize=10 9 | #\u5B9A\u4E49\u6700\u5927\u8FDE\u63A5\u6570 10 | acquireIncrement=2 11 | #\u5B9A\u4E49\u6700\u5927\u7A7A\u95F2 12 | maxPoolSize=20 13 | #\u5B9A\u4E49\u6700\u5C0F\u7A7A\u95F2 14 | minPoolSize=3 -------------------------------------------------------------------------------- /trackstacking/build/classes/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/CollaborativeFiltering$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/CollaborativeFiltering$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/CollaborativeFiltering.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/CollaborativeFiltering.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DailyAction$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DailyAction$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DailyAction.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DailyAction.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DataTranslate$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DataTranslate$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DataTranslate$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DataTranslate$2.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DataTranslate.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/DataTranslate.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Edge.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Edge.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$2$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$2$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$2.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$3.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$4.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$5.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid$6.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Hybrid.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Listener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Listener.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/MininumHeap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/MininumHeap.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Operator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Operator.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/SGD.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/SGD.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Sample$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Sample$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Sample$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Sample$2.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Sample.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Sample.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Similarity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Similarity.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Training$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Training$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Training$2$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Training$2$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Training$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Training$2.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Training.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/Training.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/TreeNode.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/TreeNode.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/UpdateTask.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/UpdateTask.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/UserKNN$1$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/UserKNN$1$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/UserKNN$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/UserKNN$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/UserKNN.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/UserKNN.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/W2DNetwork.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/W2DNetwork.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/algorithm/W2WNetwork.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/algorithm/W2WNetwork.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/CollectionController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/CollectionController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/DownloadController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/DownloadController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/IndexController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/IndexController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/LoginController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/LoginController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/MyMusicPageController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/MyMusicPageController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/NewTrackOnShelfController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/NewTrackOnShelfController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/PersonalRecController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/PersonalRecController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/RankingPageCotroller.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/RankingPageCotroller.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/RecordPlayController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/RecordPlayController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/RegisterController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/RegisterController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/ReviewController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/ReviewController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/SearchController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/SearchController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/SongController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/SongController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/TrendingRecController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/TrendingRecController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/controller/UserController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/controller/UserController.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/CollectionDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/CollectionDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/MyMusicDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/MyMusicDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/NewTrackOnShelfDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/NewTrackOnShelfDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/PersonalRecDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/PersonalRecDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/RankingPageDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/RankingPageDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/RecordDownloadDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/RecordDownloadDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/RecordPlayDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/RecordPlayDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/ReviewDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/ReviewDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/SearchDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/SearchDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/SongDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/SongDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/TrendingRecDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/TrendingRecDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/UserDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/dao/UserDao.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/CollectionDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | insert into collection(userId,songId) values(#{userId},#{songId}) 8 | 9 | 10 | 11 | delete from collection where collectionId=#{collectionId} 12 | 13 | 14 | 18 | 19 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/MyMusicDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/NewTrackOnShelfDaoImlp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/PersonalRecDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 16 | 17 | 18 | insert into reca(userId,songId) values(#{0},#{1}) 19 | 20 | 21 | 22 | insert into recb(userId,songId) values(#{0},#{1}) 23 | 24 | 25 | 26 | delete from recb where userId=#{userId} 27 | 28 | 29 | 30 | delete from reca where userId=#{userId} 31 | 32 | 33 | 34 | 37 | 38 | insert into reca(userId,songId) values 39 | 40 | (#{param2},#{song.songId}) 41 | 42 | 43 | 44 | 45 | insert into recb(userId,songId) values 46 | 47 | (#{param2},#{song.songId}) 48 | 49 | 50 | 51 | 52 | insert into recb(userId,songId) values 53 | 54 | (#{param2},#{songId}) 55 | 56 | 57 | 58 | 59 | insert into reca(userId,songId) values 60 | 61 | (#{param2},#{songId}) 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/RankingPageDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 16 | 17 | 23 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/RecordDownloadDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | insert into download (userId,songId) values(#{userId},#{songId}) 8 | 9 | 10 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/RecordPlayDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | insert into play(userId,songId) values(#{userId},#{songId}) 8 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/SearchDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 17 | 18 | 19 | 20 | 27 | 28 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/SongDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 15 | 16 | 21 | 22 | 28 | 29 | delete from song where songId in 30 | 31 | #{songId} 32 | 33 | 34 | 35 | 36 | insert into song(songName,songAddress) values( #{songName},#{songAddress} ) 37 | 38 | 39 | 40 | insert into song(songName,songAddress,lyricName,lyricAddress) 41 | values( #{songName},#{songAddress},#{lyricName} ,#{lyricAddress} ) 42 | 43 | 44 | 48 | 49 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/TrendingRecDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 15 | 16 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/dao/impl/UserDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 15 | 16 | 17 | insert into user(email,password) select #{email},#{password} 18 | from dual where #{email} not in (select email from user) 19 | 20 | 21 | 25 | 26 | 30 | 31 | 37 | 38 | delete from user where userId in 39 | 40 | #{userId} 41 | 42 | 43 | 44 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/model/Collection.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/model/Collection.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/model/DownloadRecord.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/model/DownloadRecord.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/model/Like.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/model/Like.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/model/PlayRecord.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/model/PlayRecord.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/model/Review.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/model/Review.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/model/Role.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/model/Role.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/model/Song.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/model/Song.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/model/User.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/model/User.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/CollectionService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/CollectionService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/MyMusicService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/MyMusicService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/NewTrackOnShelfService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/NewTrackOnShelfService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/PersonalRecService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/PersonalRecService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/RankingPageService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/RankingPageService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/RecordDownloadService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/RecordDownloadService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/RecordPlayService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/RecordPlayService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/ReviewService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/ReviewService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/SearchService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/SearchService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/SongService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/SongService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/TrendingRecService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/TrendingRecService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/UserService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/UserService.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/CollectionServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/CollectionServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/MyMusicServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/MyMusicServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/NewTrackOnShelfServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/NewTrackOnShelfServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl$1.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl$2.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl$3.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl$4.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/PersonalRecServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/RankingPageServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/RankingPageServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/RecordDownloadServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/RecordDownloadServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/RecordPlayServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/RecordPlayServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/ReviewServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/ReviewServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/SearchServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/SearchServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/SongServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/SongServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/TrendingRecServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/TrendingRecServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/service/impl/UserServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/service/impl/UserServiceImpl.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/utils/MD5Util.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/utils/MD5Util.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/utils/OneDayOneWord.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/utils/OneDayOneWord.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/utils/Request.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/utils/Request.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/utils/ReturnMsg.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/utils/ReturnMsg.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/utils/SendEmail.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/utils/SendEmail.class -------------------------------------------------------------------------------- /trackstacking/build/classes/top/wangruns/trackstacking/utils/Static.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/top/wangruns/trackstacking/utils/Static.class -------------------------------------------------------------------------------- /trackstacking/build/classes/trackstacking/DataTranslateTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/trackstacking/DataTranslateTest.class -------------------------------------------------------------------------------- /trackstacking/build/classes/trackstacking/MininumHeapTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/trackstacking/build/classes/trackstacking/MininumHeapTest.class -------------------------------------------------------------------------------- /trackstacking/src/jdbc.properties: -------------------------------------------------------------------------------- 1 | #\u8FDE\u63A5\u8FDC\u7A0B\u6570\u636E\u5E93 2 | jdbc.driver=com.mysql.jdbc.Driver 3 | jdbc.url=jdbc:mysql://localhost:3306/ssm_trackstacking?useUnicode=true&characterEncoding=utf8 4 | jdbc.username=root 5 | jdbc.password=123456 6 | 7 | #\u5B9A\u4E49\u521D\u59CB\u8FDE\u63A5\u6570 8 | initialPoolSize=10 9 | #\u5B9A\u4E49\u6700\u5927\u8FDE\u63A5\u6570 10 | acquireIncrement=2 11 | #\u5B9A\u4E49\u6700\u5927\u7A7A\u95F2 12 | maxPoolSize=20 13 | #\u5B9A\u4E49\u6700\u5C0F\u7A7A\u95F2 14 | minPoolSize=3 -------------------------------------------------------------------------------- /trackstacking/src/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/CollaborativeFiltering.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | import java.util.function.Consumer; 8 | import java.util.HashMap; 9 | import java.util.Map; 10 | import java.util.List; 11 | 12 | public class CollaborativeFiltering 13 | { 14 | public static Map userKNNBasedCF(final List userIdList, final Map userKNNMatrix, final Map user2songRatingMatrix, final List songIdList, final int n) { 15 | final Map user2songRecMatrix = new HashMap(); 16 | userIdList.forEach(new Consumer() { 17 | public void accept(final Integer curUserId) { 18 | final Integer[] knnIdArray = userKNNMatrix.get(curUserId); 19 | final float[] curUserRatings = user2songRatingMatrix.get(curUserId); 20 | final MininumHeap mininumHeap = new MininumHeap(n); 21 | for (int i = 0; i < curUserRatings.length; ++i) { 22 | if (curUserRatings[i] < 0.01f) { 23 | for (int knnIndex = 0; knnIndex < knnIdArray.length; ++knnIndex) { 24 | final int knnId = knnIdArray[knnIndex]; 25 | final float[] knnUserRatings = user2songRatingMatrix.get(knnId); 26 | final float[] array = curUserRatings; 27 | final int n = i; 28 | array[n] += knnUserRatings[i]; 29 | } 30 | final float[] array2 = curUserRatings; 31 | final int n2 = i; 32 | array2[n2] /= knnIdArray.length; 33 | final int curSongId = songIdList.get(i); 34 | mininumHeap.addElement(new TreeNode(curSongId, curUserRatings[i])); 35 | } 36 | } 37 | int trueNumber = n; 38 | if (mininumHeap.getCurHeapSize() < n) { 39 | trueNumber = mininumHeap.getCurHeapSize(); 40 | } 41 | final Integer[] curUserRecSongId = new Integer[trueNumber]; 42 | for (int j = 0; j < trueNumber; ++j) { 43 | final int recSongId = mininumHeap.getArray()[j].id; 44 | curUserRecSongId[j] = recSongId; 45 | } 46 | user2songRecMatrix.put(curUserId, curUserRecSongId); 47 | } 48 | }); 49 | return user2songRecMatrix; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/Edge.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | public class Edge 8 | { 9 | private S sourceNode; 10 | private D destinateNode; 11 | private int weight; 12 | 13 | public Edge() { 14 | } 15 | 16 | public Edge(final S sourceNode, final D destinateNode, final int weight) { 17 | this.sourceNode = sourceNode; 18 | this.destinateNode = destinateNode; 19 | this.weight = weight; 20 | } 21 | 22 | public Edge(final S sourceNode, final D destinateNode) { 23 | this.sourceNode = sourceNode; 24 | this.destinateNode = destinateNode; 25 | } 26 | 27 | public S getSourceNode() { 28 | return this.sourceNode; 29 | } 30 | 31 | public void setSourceNode(final S sourceNode) { 32 | this.sourceNode = sourceNode; 33 | } 34 | 35 | public D getDestinateNode() { 36 | return this.destinateNode; 37 | } 38 | 39 | public void setDestinateNode(final D destinateNode) { 40 | this.destinateNode = destinateNode; 41 | } 42 | 43 | public int getWeight() { 44 | return this.weight; 45 | } 46 | 47 | public void setWeight(final int weight) { 48 | this.weight = weight; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/Listener.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | import java.util.Date; 8 | import java.util.Calendar; 9 | import java.util.TimerTask; 10 | import java.util.Timer; 11 | 12 | public class Listener 13 | { 14 | private Timer timer; 15 | private TimerTask timerTask; 16 | 17 | public Listener() { 18 | } 19 | 20 | public Listener(final TimerTask timerTask) { 21 | this.timerTask = timerTask; 22 | } 23 | 24 | public void listen(final int startHour, final int startMinute, final int startSecond, final long period, final boolean isStartTomorrow) { 25 | this.timer = new Timer(); 26 | final Calendar calendar = Calendar.getInstance(); 27 | calendar.set(11, startHour); 28 | calendar.set(12, startMinute); 29 | calendar.set(13, startSecond); 30 | if (isStartTomorrow) { 31 | calendar.add(5, 1); 32 | } 33 | final Date date = calendar.getTime(); 34 | this.timer.schedule(this.timerTask, date, period); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/MininumHeap.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | public class MininumHeap 8 | { 9 | private int curHeapSize; 10 | private TreeNode[] array; 11 | private boolean isFirstTime; 12 | 13 | public MininumHeap() { 14 | this.isFirstTime = true; 15 | } 16 | 17 | public MininumHeap(final int heapSize) { 18 | this.isFirstTime = true; 19 | this.array = new TreeNode[heapSize]; 20 | } 21 | 22 | public void addElement(final TreeNode treeNode) { 23 | if (this.curHeapSize < this.array.length) { 24 | this.array[this.curHeapSize++] = treeNode; 25 | } 26 | else { 27 | if (this.isFirstTime) { 28 | for (int i = this.curHeapSize / 2 - 1; i >= 0; --i) { 29 | this.shiftdown(this.array, i, this.curHeapSize); 30 | } 31 | this.isFirstTime = false; 32 | } 33 | if (treeNode.val <= this.array[0].val) { 34 | return; 35 | } 36 | this.array[0] = treeNode; 37 | this.shiftdown(this.array, 0, this.curHeapSize); 38 | } 39 | } 40 | 41 | private void shiftdown(final TreeNode[] array, int position, final int len) { 42 | while (position <= len / 2 - 1) { 43 | int l = 2 * position + 1; 44 | final int r = 2 * position + 2; 45 | if (r < len && array[l].val > array[r].val) { 46 | l = r; 47 | } 48 | if (array[l].val >= array[position].val) { 49 | return; 50 | } 51 | this.swap(array, l, position); 52 | position = l; 53 | } 54 | } 55 | 56 | private void swap(final TreeNode[] array, final int i, final int j) { 57 | final TreeNode temp = array[i]; 58 | array[i] = array[j]; 59 | array[j] = temp; 60 | } 61 | 62 | public TreeNode[] getArray() { 63 | return this.array; 64 | } 65 | 66 | public int getCurHeapSize() { 67 | return this.curHeapSize; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/Operator.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | public class Operator 8 | { 9 | public static void assign(final float[] leftV, final float[] rightV) { 10 | for (int len = leftV.length, i = 0; i < len; ++i) { 11 | leftV[i] = rightV[i]; 12 | } 13 | } 14 | 15 | public static float[] dotTimes(final float realNumber, final float[] array) { 16 | final int len = array.length; 17 | final float[] res = new float[len]; 18 | for (int i = 0; i < len; ++i) { 19 | res[i] = array[i] * realNumber; 20 | } 21 | return res; 22 | } 23 | 24 | public static float[] dotTimes(final float[] array1, final float[] array2) { 25 | final int len = array1.length; 26 | final float[] res = new float[len]; 27 | for (int i = 0; i < len; ++i) { 28 | res[i] = array1[i] * array2[i]; 29 | } 30 | return res; 31 | } 32 | 33 | public static float[] dotMinus(final float[] array1, final float[] array2) { 34 | final int len = array1.length; 35 | final float[] res = new float[len]; 36 | for (int i = 0; i < len; ++i) { 37 | res[i] = array1[i] - array2[i]; 38 | } 39 | return res; 40 | } 41 | 42 | public static float times(final float[] e1, final float[] e2) { 43 | float res = 0.0f; 44 | for (int len = e1.length, i = 0; i < len; ++i) { 45 | res += e1[i] * e2[2]; 46 | } 47 | return res; 48 | } 49 | 50 | public static void add(final float[] e1, final float[] e2) { 51 | for (int len = e1.length, i = 0; i < len; ++i) { 52 | final int n = i; 53 | e1[n] += e2[i]; 54 | } 55 | } 56 | 57 | public static float[] divide(final float[] e, final float realNumber) { 58 | final int len = e.length; 59 | final float[] res = new float[len]; 60 | for (int i = 0; i < len; ++i) { 61 | res[i] = e[i] / realNumber; 62 | } 63 | return res; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/Similarity.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | public class Similarity 8 | { 9 | public static float calculateSimilarity(final float[] curRating, final float[] otherRating) { 10 | float similarity = 0.0f; 11 | final int len = curRating.length; 12 | int cnt = 0; 13 | for (int i = 0; i < len; ++i) { 14 | if (curRating[i] > 0.01f) { 15 | similarity += (float)Math.pow(curRating[i] - otherRating[i], 2.0); 16 | ++cnt; 17 | } 18 | } 19 | similarity /= ((cnt > 0) ? cnt : 1); 20 | return similarity; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/TreeNode.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | public class TreeNode 8 | { 9 | public float val; 10 | int id; 11 | TreeNode left; 12 | TreeNode right; 13 | 14 | TreeNode() { 15 | } 16 | 17 | public TreeNode(final int id, final float similarity) { 18 | this.id = id; 19 | this.val = similarity; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/UpdateTask.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | import top.wangruns.trackstacking.model.Collection; 8 | import top.wangruns.trackstacking.model.PlayRecord; 9 | import top.wangruns.trackstacking.model.DownloadRecord; 10 | import java.util.List; 11 | import java.util.Map; 12 | import java.util.HashMap; 13 | import top.wangruns.trackstacking.utils.Static; 14 | import java.util.concurrent.TimeUnit; 15 | import top.wangruns.trackstacking.service.SongService; 16 | import top.wangruns.trackstacking.service.UserService; 17 | import top.wangruns.trackstacking.service.CollectionService; 18 | import top.wangruns.trackstacking.service.RecordPlayService; 19 | import top.wangruns.trackstacking.service.RecordDownloadService; 20 | import org.springframework.beans.factory.annotation.Autowired; 21 | import top.wangruns.trackstacking.service.PersonalRecService; 22 | import org.springframework.stereotype.Component; 23 | import java.util.TimerTask; 24 | 25 | @Component 26 | public class UpdateTask extends TimerTask 27 | { 28 | @Autowired 29 | private PersonalRecService personalRecService; 30 | @Autowired 31 | private RecordDownloadService recordDownloadService; 32 | @Autowired 33 | private RecordPlayService recordPlayService; 34 | @Autowired 35 | private CollectionService collectionService; 36 | @Autowired 37 | private UserService userService; 38 | @Autowired 39 | private SongService songService; 40 | 41 | public void run() { 42 | System.out.println("------------\u5f00\u59cb\u6267\u884c\u4efb\u52a1-------------"); 43 | try { 44 | TimeUnit.SECONDS.sleep(10L); 45 | } 46 | catch (InterruptedException e) { 47 | e.printStackTrace(); 48 | } 49 | this.userService.getAllRecords(); 50 | Static.isFromA = !Static.isFromA; 51 | Map user2songRecMatrix = new HashMap(); 52 | final List downloadList = this.recordDownloadService.getAllRecords(); 53 | final List playList = this.recordPlayService.getAllRecords(); 54 | final List collectionList = this.collectionService.getAllRecords(); 55 | final List userIdList = this.userService.getAllUserIdRecords(); 56 | final List songIdList = this.songService.getAllSongIdRecords(); 57 | final Map user2songRatingMatrix = DataTranslate.getFrequencyMatrix(userIdList, songIdList, downloadList, playList, collectionList); 58 | final Map userKNNMatrix = UserKNN.getKNN(userIdList, user2songRatingMatrix, 2); 59 | user2songRecMatrix = CollaborativeFiltering.userKNNBasedCF(userIdList, userKNNMatrix, user2songRatingMatrix, songIdList, 10); 60 | System.out.println("------------\u6267\u884c\u4efb\u52a1\u5b8c\u6210-------------"); 61 | if (Static.isFromA) { 62 | this.personalRecService.updatePersonalRecIntoB(user2songRecMatrix); 63 | } 64 | else { 65 | this.personalRecService.updatePersonalRecIntoA(user2songRecMatrix); 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/UserKNN.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | import java.util.function.BiConsumer; 8 | import java.util.function.Consumer; 9 | import java.util.HashMap; 10 | import java.util.Map; 11 | import java.util.List; 12 | 13 | public class UserKNN 14 | { 15 | public static Map getKNN(final List userIdList, final Map user2songRatingMatrix, final int k) { 16 | final Map userKNNMatrix = new HashMap(); 17 | userIdList.forEach(new Consumer() { 18 | public void accept(final Integer curUserId) { 19 | final Integer[] knnId = new Integer[k]; 20 | final MininumHeap mininumHeap = new MininumHeap(k); 21 | user2songRatingMatrix.forEach(new BiConsumer() { 22 | public void accept(final Integer otherUserId, final float[] userRatingArray) { 23 | if (otherUserId != curUserId) { 24 | final float similarity = Similarity.calculateSimilarity(user2songRatingMatrix.get(curUserId), user2songRatingMatrix.get(otherUserId)); 25 | mininumHeap.addElement(new TreeNode(otherUserId, similarity)); 26 | } 27 | } 28 | }); 29 | for (int i = 0; i < k; ++i) { 30 | knnId[i] = mininumHeap.getArray()[i].id; 31 | } 32 | userKNNMatrix.put(curUserId, knnId); 33 | } 34 | }); 35 | return userKNNMatrix; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/W2DNetwork.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | import java.io.IOException; 8 | import java.io.Reader; 9 | import java.io.BufferedReader; 10 | import java.io.FileReader; 11 | import java.io.File; 12 | import java.util.Iterator; 13 | import java.util.HashMap; 14 | import java.util.Map; 15 | import javax.servlet.ServletContext; 16 | import java.util.Set; 17 | import top.wangruns.trackstacking.model.Song; 18 | import java.util.List; 19 | 20 | public class W2DNetwork 21 | { 22 | public static int getW2DNode(final int index, final List songList) { 23 | return songList.get(index).getSongId(); 24 | } 25 | 26 | public static Map constructW2DN(final Set wordSet, final List engSongList, final ServletContext servletContext) { 27 | final Map w2dNetwork = new HashMap(); 28 | for (final String curWord : wordSet) { 29 | final int[] weightArray = new int[engSongList.size()]; 30 | int arrayIndex = 0; 31 | final int curWordLen = curWord.length(); 32 | for (final Song song : engSongList) { 33 | int cnt = 0; 34 | final StringBuilder documentSb = readContentSb(servletContext.getRealPath(song.getLyricAddress())); 35 | int indexOfCurWord = 0; 36 | while (true) { 37 | indexOfCurWord = documentSb.indexOf(curWord, indexOfCurWord); 38 | if (indexOfCurWord == -1) { 39 | break; 40 | } 41 | ++cnt; 42 | indexOfCurWord += curWordLen; 43 | } 44 | weightArray[arrayIndex++] = cnt; 45 | } 46 | w2dNetwork.put(curWord, weightArray); 47 | } 48 | return w2dNetwork; 49 | } 50 | 51 | private static StringBuilder readContentSb(final String realPath) { 52 | final StringBuilder wordSb = new StringBuilder(); 53 | try { 54 | final BufferedReader in = new BufferedReader(new FileReader(new File(realPath))); 55 | try { 56 | String s; 57 | while ((s = in.readLine()) != null) { 58 | if (s.trim().length() != 0) { 59 | s = s.substring(s.lastIndexOf("]") + 1); 60 | final String[] strArray = s.split(" "); 61 | String[] array; 62 | for (int length = (array = strArray).length, i = 0; i < length; ++i) { 63 | final String str = array[i]; 64 | if (str.length() != 0) { 65 | wordSb.append(str); 66 | } 67 | } 68 | } 69 | } 70 | } 71 | finally { 72 | in.close(); 73 | } 74 | in.close(); 75 | } 76 | catch (IOException e) { 77 | e.printStackTrace(); 78 | } 79 | return wordSb; 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/algorithm/W2WNetwork.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.algorithm; 6 | 7 | import java.util.HashMap; 8 | import java.util.Map; 9 | import java.util.Iterator; 10 | import java.util.Set; 11 | 12 | public class W2WNetwork 13 | { 14 | public static int getW2WIndex(final String node, final Set wordSet) { 15 | final Iterator iterator = wordSet.iterator(); 16 | int index = 0; 17 | while (iterator.hasNext() && !iterator.next().equals(node)) { 18 | ++index; 19 | } 20 | return index; 21 | } 22 | 23 | public static String getW2WNode(final int index, final Set wordSet) { 24 | final Iterator iterator = wordSet.iterator(); 25 | int i = 0; 26 | String node = null; 27 | while (iterator.hasNext()) { 28 | if (i == index) { 29 | node = iterator.next(); 30 | break; 31 | } 32 | ++i; 33 | } 34 | return node; 35 | } 36 | 37 | public static Map constructW2WN(final Set wordSet, final StringBuilder wordSb) { 38 | final Map w2wNetwork = new HashMap(); 39 | final String wordStr = wordSb.toString(); 40 | final Iterator curIterator = wordSet.iterator(); 41 | final int setSize = wordSet.size(); 42 | while (curIterator.hasNext()) { 43 | final String curWord = curIterator.next(); 44 | final int curWordLen = curWord.length(); 45 | final int[] weightArray = new int[setSize]; 46 | int arrayIndex = 0; 47 | for (final String word : wordSet) { 48 | if (!word.equals(curWord)) { 49 | int cnt = 0; 50 | int indexOfCurWord = 0; 51 | while (true) { 52 | indexOfCurWord = wordStr.indexOf(curWord, indexOfCurWord); 53 | if (indexOfCurWord == -1) { 54 | break; 55 | } 56 | final int wordLen = word.length(); 57 | if (indexOfCurWord - wordLen >= 0 && wordStr.substring(indexOfCurWord - wordLen, indexOfCurWord).equals(word)) { 58 | ++cnt; 59 | } 60 | if (indexOfCurWord + curWordLen + wordLen <= wordStr.length() && wordStr.substring(indexOfCurWord + curWordLen, indexOfCurWord + curWordLen + wordLen).equals(word)) { 61 | ++cnt; 62 | } 63 | indexOfCurWord += curWordLen; 64 | } 65 | weightArray[arrayIndex] = cnt; 66 | } 67 | ++arrayIndex; 68 | } 69 | w2wNetwork.put(curWord, weightArray); 70 | } 71 | return w2wNetwork; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/CollectionController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.ResponseBody; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import top.wangruns.trackstacking.utils.ReturnMsg; 10 | import javax.servlet.http.HttpServletRequest; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | import top.wangruns.trackstacking.service.CollectionService; 13 | import org.springframework.stereotype.Controller; 14 | 15 | @Controller 16 | public class CollectionController 17 | { 18 | @Autowired 19 | private CollectionService collectionService; 20 | 21 | @PostMapping(value = { "collectSong.do" }, produces = { "text/html;charset=UTF-8" }) 22 | @ResponseBody 23 | public String collectSong(final HttpServletRequest request, final int songId) { 24 | final boolean isCollected = this.collectionService.collectionChange(request, songId); 25 | return ReturnMsg.msg(200, new StringBuilder(String.valueOf(isCollected)).toString()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/DownloadController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.RequestMethod; 8 | import org.springframework.web.bind.annotation.RequestMapping; 9 | import java.io.IOException; 10 | import java.net.URLConnection; 11 | import java.io.InputStream; 12 | import java.io.FileInputStream; 13 | import java.io.File; 14 | import java.io.BufferedInputStream; 15 | import java.net.URL; 16 | import java.io.OutputStream; 17 | import java.io.BufferedOutputStream; 18 | import java.net.URLEncoder; 19 | import javax.servlet.http.HttpServletResponse; 20 | import javax.servlet.http.HttpServletRequest; 21 | import org.springframework.beans.factory.annotation.Autowired; 22 | import top.wangruns.trackstacking.service.RecordDownloadService; 23 | import org.springframework.stereotype.Controller; 24 | 25 | @Controller 26 | public class DownloadController 27 | { 28 | @Autowired 29 | private RecordDownloadService recordDownloadService; 30 | 31 | @RequestMapping(value = { "download.do" }, method = { RequestMethod.GET }) 32 | public void download(final HttpServletRequest request, final HttpServletResponse response, String songAddress, final int songId) throws IOException { 33 | this.recordDownloadService.recordDownload(request, songId); 34 | response.setContentType("audio/mp3"); 35 | response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(String.valueOf(System.currentTimeMillis()) + "\u5982\u679c\u4e0d\u60f3\u8fd4\u56de\u540d\u79f0\u7684\u8bdd.mp3", "utf8")); 36 | final BufferedOutputStream out = new BufferedOutputStream((OutputStream)response.getOutputStream()); 37 | InputStream bis = null; 38 | if (songAddress.contains("http")) { 39 | final URL url = new URL(songAddress); 40 | final URLConnection uc = url.openConnection(); 41 | bis = new BufferedInputStream(uc.getInputStream()); 42 | } 43 | else { 44 | songAddress = request.getServletContext().getRealPath(songAddress); 45 | bis = new BufferedInputStream(new FileInputStream(new File(songAddress))); 46 | } 47 | int len = 0; 48 | while ((len = bis.read()) != -1) { 49 | out.write(len); 50 | out.flush(); 51 | } 52 | out.close(); 53 | bis.close(); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/IndexController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.RequestMethod; 8 | import org.springframework.web.servlet.ModelAndView; 9 | import javax.servlet.http.HttpServletRequest; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | import org.springframework.stereotype.Controller; 12 | 13 | @Controller 14 | public class IndexController 15 | { 16 | @RequestMapping({ "index.do" }) 17 | public String index() { 18 | return "index"; 19 | } 20 | 21 | @RequestMapping({ "logout.do" }) 22 | public String logout(final HttpServletRequest request) { 23 | request.getSession().invalidate(); 24 | System.out.println("logout success"); 25 | return "redirect:index.do"; 26 | } 27 | 28 | @RequestMapping(value = { "headerFrameLoad.do" }, method = { RequestMethod.GET }) 29 | public ModelAndView headerFrameLoad(final HttpServletRequest request) { 30 | final ModelAndView modelAndView = new ModelAndView(); 31 | modelAndView.setViewName("headerFrame"); 32 | return modelAndView; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/LoginController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.ResponseBody; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import com.alibaba.fastjson.JSONObject; 10 | import top.wangruns.trackstacking.utils.ReturnMsg; 11 | import top.wangruns.trackstacking.model.User; 12 | import javax.servlet.http.HttpServletRequest; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import top.wangruns.trackstacking.service.UserService; 15 | import org.springframework.stereotype.Controller; 16 | 17 | @Controller 18 | public class LoginController 19 | { 20 | @Autowired 21 | private UserService userService; 22 | 23 | @PostMapping(value = { "login.do" }, produces = { "text/html;charset=UTF-8" }) 24 | @ResponseBody 25 | public String login(final HttpServletRequest request, final User u) { 26 | final boolean isUserExisted = this.userService.findLogin(u); 27 | if (!isUserExisted) { 28 | return ReturnMsg.msg(400, "\u5e10\u53f7\u6216\u5bc6\u7801\u9519\u8bef"); 29 | } 30 | request.getSession().setAttribute("user", (Object)u); 31 | request.getSession().setAttribute("isHasPrivilege", (Object)this.userService.isHasPrivilege(request)); 32 | return ReturnMsg.msg(200, JSONObject.toJSON((Object)u).toString()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/MyMusicPageController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | import org.springframework.web.bind.annotation.GetMapping; 10 | import top.wangruns.trackstacking.utils.OneDayOneWord; 11 | import top.wangruns.trackstacking.utils.Static; 12 | import org.springframework.web.servlet.ModelAndView; 13 | import javax.servlet.http.HttpServletRequest; 14 | import org.springframework.beans.factory.annotation.Autowired; 15 | import top.wangruns.trackstacking.service.MyMusicService; 16 | import org.springframework.stereotype.Controller; 17 | 18 | @Controller 19 | public class MyMusicPageController 20 | { 21 | @Autowired 22 | private MyMusicService myMusicService; 23 | 24 | @GetMapping({ "myMusicFrameLoad.do" }) 25 | public ModelAndView myMusicFrameLoad(final HttpServletRequest request) { 26 | final ModelAndView modelAndView = new ModelAndView(); 27 | modelAndView.setViewName("myMusicFrame"); 28 | modelAndView.addObject("oneDayOneWord", (Object)OneDayOneWord.getOneDayOneWord(Static.MY_MUSIC_WORD_ARRAY)); 29 | return modelAndView; 30 | } 31 | 32 | @GetMapping({ "recentFrameLoad.do" }) 33 | public ModelAndView recentFrameLoad(final HttpServletRequest request) { 34 | final ModelAndView modelAndView = new ModelAndView(); 35 | modelAndView.setViewName("recentFrame"); 36 | final List myRecentPlayList = this.myMusicService.getMyRecentPlayListWithCollectionFlag(request); 37 | modelAndView.addObject("myRecentPlayList", (Object)myRecentPlayList); 38 | modelAndView.addObject("oneDayOneWord", (Object)OneDayOneWord.getOneDayOneWord(Static.MY_MUSIC_WORD_ARRAY)); 39 | return modelAndView; 40 | } 41 | 42 | @GetMapping({ "collectedFrameLoad.do" }) 43 | public ModelAndView collectedFrameLoad(final HttpServletRequest request) { 44 | final ModelAndView modelAndView = new ModelAndView(); 45 | modelAndView.setViewName("collectedFrame"); 46 | final List myCollectionList = this.myMusicService.getMyCollectionWithCollectionFlag(request); 47 | modelAndView.addObject("myCollectionList", (Object)myCollectionList); 48 | modelAndView.addObject("oneDayOneWord", (Object)OneDayOneWord.getOneDayOneWord(Static.MY_MUSIC_WORD_ARRAY)); 49 | return modelAndView; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/NewTrackOnShelfController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.RequestMethod; 8 | import org.springframework.web.bind.annotation.RequestMapping; 9 | import top.wangruns.trackstacking.model.Song; 10 | import java.util.List; 11 | import org.springframework.web.servlet.ModelAndView; 12 | import javax.servlet.http.HttpServletRequest; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import top.wangruns.trackstacking.service.NewTrackOnShelfService; 15 | import org.springframework.stereotype.Controller; 16 | 17 | @Controller 18 | public class NewTrackOnShelfController 19 | { 20 | @Autowired 21 | private NewTrackOnShelfService newTrackOnShelfService; 22 | 23 | @RequestMapping(value = { "newTrackOnShelfFrameLoad.do" }, method = { RequestMethod.GET }) 24 | public ModelAndView newTrackOnShelfFrameLoad(final HttpServletRequest request) { 25 | final ModelAndView modelAndView = new ModelAndView(); 26 | modelAndView.setViewName("newTrackOnShelfFrame"); 27 | final List newTrackSongList = this.newTrackOnShelfService.getNewTrackWithCollectionFlag(request); 28 | modelAndView.addObject("newTrackSongList", (Object)newTrackSongList); 29 | modelAndView.addObject("test", (Object)"Name"); 30 | return modelAndView; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/PersonalRecController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.RequestMethod; 8 | import org.springframework.web.bind.annotation.RequestMapping; 9 | import top.wangruns.trackstacking.model.Song; 10 | import java.util.List; 11 | import org.springframework.web.servlet.ModelAndView; 12 | import javax.servlet.http.HttpServletRequest; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import top.wangruns.trackstacking.service.PersonalRecService; 15 | import org.springframework.stereotype.Controller; 16 | 17 | @Controller 18 | public class PersonalRecController 19 | { 20 | @Autowired 21 | private PersonalRecService personalRecService; 22 | 23 | @RequestMapping(value = { "personalizedRecFrameLoad.do" }, method = { RequestMethod.GET }) 24 | public ModelAndView personalizedRecFrameLoad(final HttpServletRequest request) { 25 | final ModelAndView modelAndView = new ModelAndView(); 26 | modelAndView.setViewName("personalizedRecFrame"); 27 | final List personalRecSongList = this.personalRecService.getPersonalDailyRecWithCollectionFlag(request); 28 | modelAndView.addObject("personalRecSongList", (Object)personalRecSongList); 29 | if (personalRecSongList == null) { 30 | modelAndView.addObject("oneDayOneWord", (Object)"\u767b\u5f55\u5373\u4eab\u2014\u2014\u9047\u89c1\u4e0d\u4e00\u6837\u7684\u81ea\u5df1"); 31 | } 32 | else { 33 | modelAndView.addObject("oneDayOneWord", (Object)"\u66f4\u61c2\u4f60\u7684\u5fc3"); 34 | } 35 | return modelAndView; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/RankingPageCotroller.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.GetMapping; 8 | import top.wangruns.trackstacking.model.Song; 9 | import java.util.List; 10 | import top.wangruns.trackstacking.utils.OneDayOneWord; 11 | import top.wangruns.trackstacking.utils.Static; 12 | import org.springframework.web.servlet.ModelAndView; 13 | import javax.servlet.http.HttpServletRequest; 14 | import org.springframework.beans.factory.annotation.Autowired; 15 | import top.wangruns.trackstacking.service.RankingPageService; 16 | import org.springframework.stereotype.Controller; 17 | 18 | @Controller 19 | public class RankingPageCotroller 20 | { 21 | @Autowired 22 | private RankingPageService rankingPageService; 23 | 24 | @GetMapping({ "rankingFrameLoad.do" }) 25 | public ModelAndView rankingFrameLoad(final HttpServletRequest request) { 26 | final ModelAndView modelAndView = new ModelAndView(); 27 | modelAndView.setViewName("rankingFrame"); 28 | final List weekRankingList = this.rankingPageService.getRankWithCollectionFlag(request, 1); 29 | final List monthRankingList = this.rankingPageService.getRankWithCollectionFlag(request, 2); 30 | modelAndView.addObject("weekRankingList", (Object)weekRankingList); 31 | modelAndView.addObject("monthRankingList", (Object)monthRankingList); 32 | modelAndView.addObject("oneDayOneWord", (Object)OneDayOneWord.getOneDayOneWord(Static.RANKING_WORD_ARRAY)); 33 | return modelAndView; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/RecordPlayController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.GetMapping; 8 | import javax.servlet.http.HttpServletRequest; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import top.wangruns.trackstacking.service.RecordPlayService; 11 | import org.springframework.stereotype.Controller; 12 | 13 | @Controller 14 | public class RecordPlayController 15 | { 16 | @Autowired 17 | private RecordPlayService recordPlayService; 18 | 19 | @GetMapping({ "recordPlay.do" }) 20 | public void recordPlay(final HttpServletRequest request, final int songId) { 21 | this.recordPlayService.recordPlay(request, songId); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/RegisterController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import com.alibaba.fastjson.JSONObject; 8 | import top.wangruns.trackstacking.model.User; 9 | import org.springframework.web.bind.annotation.ResponseBody; 10 | import org.springframework.web.bind.annotation.PostMapping; 11 | import top.wangruns.trackstacking.utils.SendEmail; 12 | import top.wangruns.trackstacking.utils.ReturnMsg; 13 | import javax.servlet.http.HttpServletRequest; 14 | import top.wangruns.trackstacking.service.PersonalRecService; 15 | import org.springframework.beans.factory.annotation.Autowired; 16 | import top.wangruns.trackstacking.service.UserService; 17 | import org.springframework.stereotype.Controller; 18 | 19 | @Controller 20 | public class RegisterController 21 | { 22 | @Autowired 23 | private UserService userService; 24 | @Autowired 25 | private PersonalRecService personalRecService; 26 | 27 | @PostMapping(value = { "getValidateCode.do" }, produces = { "text/html;charset=UTF-8" }) 28 | @ResponseBody 29 | public String getValidateCode(final HttpServletRequest request, final String email) { 30 | final boolean isExisted = this.userService.isEmailExisted(email); 31 | if (isExisted) { 32 | return ReturnMsg.msg(400, "\u8be5\u7528\u6237\u5df2\u5b58\u5728"); 33 | } 34 | if (this.userService.tooQuickly(request, 1)) { 35 | return ReturnMsg.msg(400, "\u53d1\u9001\u9891\u7387\u592a\u5feb"); 36 | } 37 | final String code = new StringBuilder(String.valueOf((int)(Math.random() * 10000.0))).toString(); 38 | final String content = "Welcome to Track Stacking, your email verified code is\uff1a" + code + "\n\n" + "Sincerely,"; 39 | final boolean isSuccessful = SendEmail.sendemail("Email Validation", content, email); 40 | if (isSuccessful) { 41 | request.getSession().setAttribute("code", (Object)code); 42 | return ReturnMsg.msg(200, "\u53d1\u9001\u6210\u529f"); 43 | } 44 | return ReturnMsg.msg(400, "\u53d1\u9001\u5931\u8d25"); 45 | } 46 | 47 | @PostMapping(value = { "register.do" }, produces = { "text/html;charset=UTF-8" }) 48 | @ResponseBody 49 | public String register(final HttpServletRequest request, final User u) { 50 | final String code = (String)request.getSession().getAttribute("code"); 51 | if (code == null || !code.equals(u.getValidateCode())) { 52 | return ReturnMsg.msg(400, "\u9a8c\u8bc1\u7801\u9519\u8bef"); 53 | } 54 | final boolean isInserted = this.userService.insert(u); 55 | if (isInserted) { 56 | request.getSession().setAttribute("user", (Object)u); 57 | this.personalRecService.initializePersonalRecList(request); 58 | return ReturnMsg.msg(200, JSONObject.toJSON((Object)u).toString()); 59 | } 60 | return ReturnMsg.msg(400, "\u6ce8\u518c\u5931\u8d25"); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/SongController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.ResponseBody; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import top.wangruns.trackstacking.utils.ReturnMsg; 10 | import org.springframework.web.multipart.MultipartFile; 11 | import org.springframework.web.bind.annotation.RequestMethod; 12 | import org.springframework.web.bind.annotation.RequestMapping; 13 | import javax.servlet.http.HttpServletRequest; 14 | import top.wangruns.trackstacking.service.SongService; 15 | import org.springframework.beans.factory.annotation.Autowired; 16 | import top.wangruns.trackstacking.service.UserService; 17 | import org.springframework.stereotype.Controller; 18 | 19 | @Controller 20 | public class SongController 21 | { 22 | @Autowired 23 | private UserService userService; 24 | @Autowired 25 | private SongService songService; 26 | 27 | @RequestMapping(value = { "deleteSong.do" }, method = { RequestMethod.POST }) 28 | public void deleteSong(final HttpServletRequest request, final int[] songIds) { 29 | if (this.userService.isHasPrivilege(request)) { 30 | this.songService.batchDeleteById(request, songIds); 31 | } 32 | } 33 | 34 | @PostMapping({ "addSong.do" }) 35 | @ResponseBody 36 | public String addSong(final HttpServletRequest request, final MultipartFile song, final MultipartFile lyric) { 37 | if (!this.userService.isHasPrivilege(request) || !this.songService.checkFormat(song, lyric)) { 38 | return ReturnMsg.msg(400, "\u683c\u5f0f\u9519\u8bef"); 39 | } 40 | final boolean isSuccessful = this.songService.addSong(request, song, lyric); 41 | if (isSuccessful) { 42 | return ReturnMsg.msg(200, "\u4e0a\u4f20\u6210\u529f"); 43 | } 44 | return ReturnMsg.msg(400, "\u4e0a\u4f20\u5931\u8d25"); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/TrendingRecController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.RequestMethod; 8 | import org.springframework.web.bind.annotation.RequestMapping; 9 | import top.wangruns.trackstacking.model.Song; 10 | import java.util.List; 11 | import org.springframework.web.servlet.ModelAndView; 12 | import javax.servlet.http.HttpServletRequest; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import top.wangruns.trackstacking.service.TrendingRecService; 15 | import org.springframework.stereotype.Controller; 16 | 17 | @Controller 18 | public class TrendingRecController 19 | { 20 | @Autowired 21 | private TrendingRecService trendingRecService; 22 | 23 | @RequestMapping(value = { "trendingRecFrameLoad.do" }, method = { RequestMethod.GET }) 24 | public ModelAndView trendingRecFrameLoad(final HttpServletRequest request) { 25 | final ModelAndView modelAndView = new ModelAndView(); 26 | modelAndView.setViewName("trendingRecFrame"); 27 | final List trendingSongList = this.trendingRecService.getSongWithCollectionFlag(request); 28 | modelAndView.addObject("trendingSongList", (Object)trendingSongList); 29 | modelAndView.addObject("test", (Object)"Name"); 30 | return modelAndView; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/controller/UserController.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.controller; 6 | 7 | import org.springframework.web.bind.annotation.RequestMethod; 8 | import org.springframework.web.bind.annotation.RequestMapping; 9 | import javax.servlet.http.HttpServletRequest; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import top.wangruns.trackstacking.service.UserService; 12 | import org.springframework.stereotype.Controller; 13 | 14 | @Controller 15 | public class UserController 16 | { 17 | @Autowired 18 | private UserService userService; 19 | 20 | @RequestMapping(value = { "deleteUser.do" }, method = { RequestMethod.POST }) 21 | public void deleteUser(final HttpServletRequest request, final int[] userIds) { 22 | if (this.userService.isHasPrivilege(request)) { 23 | this.userService.batchDeleteById(userIds); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/CollectionDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import java.util.List; 8 | import top.wangruns.trackstacking.model.Collection; 9 | 10 | public interface CollectionDao 11 | { 12 | Collection selectByCollection(Collection p0); 13 | 14 | void deleteById(int p0); 15 | 16 | void insert(Collection p0); 17 | 18 | List selectAll(); 19 | } 20 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/MyMusicDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | import top.wangruns.trackstacking.model.User; 10 | 11 | public interface MyMusicDao 12 | { 13 | List selectCollectedSong(User p0); 14 | 15 | List selectMyRecentSong(User p0); 16 | } 17 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/NewTrackOnShelfDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | 10 | public interface NewTrackOnShelfDao 11 | { 12 | List selecNewSong(); 13 | } 14 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/PersonalRecDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | import top.wangruns.trackstacking.model.User; 10 | 11 | public interface PersonalRecDao 12 | { 13 | List selectPersonalRecFromA(User p0); 14 | 15 | List selectPersonalRecFromB(User p0); 16 | 17 | void insertRecA(int p0, int p1); 18 | 19 | void insertRecB(int p0, int p1); 20 | 21 | void deleteBByUserId(int p0); 22 | 23 | void deleteAByUserId(int p0); 24 | 25 | void insertListIntoRecA(List p0, int p1); 26 | 27 | void insertListIntoRecB(List p0, int p1); 28 | 29 | void insertArrayIntoRecB(Integer[] p0, Integer p1); 30 | 31 | void insertArrayIntoRecA(Integer[] p0, Integer p1); 32 | } 33 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/RankingPageDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | 10 | public interface RankingPageDao 11 | { 12 | List selectRecentWeekRanking(); 13 | 14 | List selectRecentMonthRanking(); 15 | } 16 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/RecordDownloadDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import java.util.List; 8 | import top.wangruns.trackstacking.model.DownloadRecord; 9 | 10 | public interface RecordDownloadDao 11 | { 12 | void insert(DownloadRecord p0); 13 | 14 | List selectAll(); 15 | } 16 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/RecordPlayDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import java.util.List; 8 | import top.wangruns.trackstacking.model.PlayRecord; 9 | 10 | public interface RecordPlayDao 11 | { 12 | void insert(PlayRecord p0); 13 | 14 | List selectAll(); 15 | } 16 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/ReviewDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.Like; 8 | import java.util.List; 9 | import top.wangruns.trackstacking.model.Review; 10 | 11 | public interface ReviewDao 12 | { 13 | int insert(Review p0); 14 | 15 | List selectLikeByUserId(int p0); 16 | 17 | List selectHotReviewWithLikeNumber(int p0); 18 | 19 | Like selectByLike(Like p0); 20 | 21 | void insertLikeRecord(Like p0); 22 | 23 | void deleteLikeRecordById(int p0); 24 | 25 | List selectNewReviewWithLikeNumber(int p0); 26 | 27 | void deleteByIds(int[] p0); 28 | } 29 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/SearchDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.User; 8 | import top.wangruns.trackstacking.model.Review; 9 | import top.wangruns.trackstacking.model.Song; 10 | import java.util.List; 11 | 12 | public interface SearchDao 13 | { 14 | List selectSongLikeKeyword(String p0); 15 | 16 | List selectReviewLikeKeyword(String p0); 17 | 18 | List selectUserLikeKeyword(String p0, int p1); 19 | } 20 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/SongDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | 10 | public interface SongDao 11 | { 12 | List selectAllSongId(); 13 | 14 | Song selectSongById(int p0); 15 | 16 | int selectCoefficientById(int p0); 17 | 18 | void deleteByIds(int[] p0); 19 | 20 | int insertOnlySong(Song p0); 21 | 22 | int insertSongWithLyric(Song p0); 23 | 24 | List selectAllSongsWithLyric(); 25 | } 26 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/TrendingRecDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.Collection; 8 | import top.wangruns.trackstacking.model.User; 9 | import top.wangruns.trackstacking.model.Song; 10 | import java.util.List; 11 | 12 | public interface TrendingRecDao 13 | { 14 | List getTrendingSong(); 15 | 16 | List getCollection(User p0); 17 | } 18 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.dao; 6 | 7 | import top.wangruns.trackstacking.model.Role; 8 | import java.util.List; 9 | import top.wangruns.trackstacking.model.User; 10 | 11 | public interface UserDao 12 | { 13 | User selectByUser(User p0); 14 | 15 | User selectByEmail(String p0); 16 | 17 | int insert(User p0); 18 | 19 | List selectAll(); 20 | 21 | List selectAllUserId(); 22 | 23 | void deleteByIds(int[] p0); 24 | 25 | Role selectRoleByUserId(int p0); 26 | } 27 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/CollectionDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | insert into collection(userId,songId) values(#{userId},#{songId}) 8 | 9 | 10 | 11 | delete from collection where collectionId=#{collectionId} 12 | 13 | 14 | 18 | 19 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/MyMusicDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/NewTrackOnShelfDaoImlp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/PersonalRecDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 16 | 17 | 18 | insert into reca(userId,songId) values(#{0},#{1}) 19 | 20 | 21 | 22 | insert into recb(userId,songId) values(#{0},#{1}) 23 | 24 | 25 | 26 | delete from recb where userId=#{userId} 27 | 28 | 29 | 30 | delete from reca where userId=#{userId} 31 | 32 | 33 | 34 | 37 | 38 | insert into reca(userId,songId) values 39 | 40 | (#{param2},#{song.songId}) 41 | 42 | 43 | 44 | 45 | insert into recb(userId,songId) values 46 | 47 | (#{param2},#{song.songId}) 48 | 49 | 50 | 51 | 52 | insert into recb(userId,songId) values 53 | 54 | (#{param2},#{songId}) 55 | 56 | 57 | 58 | 59 | insert into reca(userId,songId) values 60 | 61 | (#{param2},#{songId}) 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/RankingPageDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 16 | 17 | 23 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/RecordDownloadDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | insert into download (userId,songId) values(#{userId},#{songId}) 8 | 9 | 10 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/RecordPlayDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | insert into play(userId,songId) values(#{userId},#{songId}) 8 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/SearchDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 17 | 18 | 19 | 20 | 27 | 28 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/SongDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 15 | 16 | 21 | 22 | 28 | 29 | delete from song where songId in 30 | 31 | #{songId} 32 | 33 | 34 | 35 | 36 | insert into song(songName,songAddress) values( #{songName},#{songAddress} ) 37 | 38 | 39 | 40 | insert into song(songName,songAddress,lyricName,lyricAddress) 41 | values( #{songName},#{songAddress},#{lyricName} ,#{lyricAddress} ) 42 | 43 | 44 | 48 | 49 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/TrendingRecDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 15 | 16 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/dao/impl/UserDaoImpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 15 | 16 | 17 | insert into user(email,password) select #{email},#{password} 18 | from dual where #{email} not in (select email from user) 19 | 20 | 21 | 25 | 26 | 30 | 31 | 37 | 38 | delete from user where userId in 39 | 40 | #{userId} 41 | 42 | 43 | 44 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/model/Collection.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.model; 6 | 7 | public class Collection 8 | { 9 | private int collectionId; 10 | private int userId; 11 | private int songId; 12 | 13 | public Collection() { 14 | } 15 | 16 | public Collection(final int userId, final int songId) { 17 | this.userId = userId; 18 | this.songId = songId; 19 | } 20 | 21 | public int getCollectionId() { 22 | return this.collectionId; 23 | } 24 | 25 | public void setCollectionId(final int collectionId) { 26 | this.collectionId = collectionId; 27 | } 28 | 29 | public int getUserId() { 30 | return this.userId; 31 | } 32 | 33 | public void setUserId(final int userId) { 34 | this.userId = userId; 35 | } 36 | 37 | public int getSongId() { 38 | return this.songId; 39 | } 40 | 41 | public void setSongId(final int songId) { 42 | this.songId = songId; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/model/DownloadRecord.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.model; 6 | 7 | public class DownloadRecord 8 | { 9 | private int downloadId; 10 | private int userId; 11 | private int songId; 12 | 13 | public DownloadRecord() { 14 | } 15 | 16 | public DownloadRecord(final int userId, final int songId) { 17 | this.userId = userId; 18 | this.songId = songId; 19 | } 20 | 21 | public int getDownloadId() { 22 | return this.downloadId; 23 | } 24 | 25 | public void setDownloadId(final int downloadId) { 26 | this.downloadId = downloadId; 27 | } 28 | 29 | public int getUserId() { 30 | return this.userId; 31 | } 32 | 33 | public void setUserId(final int userId) { 34 | this.userId = userId; 35 | } 36 | 37 | public int getSongId() { 38 | return this.songId; 39 | } 40 | 41 | public void setSongId(final int songId) { 42 | this.songId = songId; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/model/Like.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.model; 6 | 7 | public class Like 8 | { 9 | private int likeId; 10 | private int userId; 11 | private int reviewId; 12 | 13 | public Like() { 14 | } 15 | 16 | public Like(final int userId, final int reviewId) { 17 | this.userId = userId; 18 | this.reviewId = reviewId; 19 | } 20 | 21 | public int getLikeId() { 22 | return this.likeId; 23 | } 24 | 25 | public void setLikeId(final int likeId) { 26 | this.likeId = likeId; 27 | } 28 | 29 | public int getUserId() { 30 | return this.userId; 31 | } 32 | 33 | public void setUserId(final int userId) { 34 | this.userId = userId; 35 | } 36 | 37 | public int getReviewId() { 38 | return this.reviewId; 39 | } 40 | 41 | public void setReviewId(final int reviewId) { 42 | this.reviewId = reviewId; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/model/PlayRecord.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.model; 6 | 7 | public class PlayRecord 8 | { 9 | private int playId; 10 | private int userId; 11 | private int songId; 12 | 13 | public PlayRecord() { 14 | } 15 | 16 | public PlayRecord(final int userId, final int songId) { 17 | this.userId = userId; 18 | this.songId = songId; 19 | } 20 | 21 | public int getPlayId() { 22 | return this.playId; 23 | } 24 | 25 | public void setPlayId(final int playId) { 26 | this.playId = playId; 27 | } 28 | 29 | public int getUserId() { 30 | return this.userId; 31 | } 32 | 33 | public void setUserId(final int userId) { 34 | this.userId = userId; 35 | } 36 | 37 | public int getSongId() { 38 | return this.songId; 39 | } 40 | 41 | public void setSongId(final int songId) { 42 | this.songId = songId; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/model/Review.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.model; 6 | 7 | public class Review 8 | { 9 | private int reviewId; 10 | private int userId; 11 | private int songId; 12 | private String review; 13 | private String reviewTime; 14 | private int likeCoefficient; 15 | private String userName; 16 | private boolean whetherLiked; 17 | 18 | public int getLikeCoefficient() { 19 | return this.likeCoefficient; 20 | } 21 | 22 | public void setLikeCoefficient(final int likeCoefficient) { 23 | this.likeCoefficient = likeCoefficient; 24 | } 25 | 26 | public String getUserName() { 27 | return this.userName; 28 | } 29 | 30 | public void setUserName(final String userName) { 31 | this.userName = userName; 32 | } 33 | 34 | public boolean isWhetherLiked() { 35 | return this.whetherLiked; 36 | } 37 | 38 | public void setWhetherLiked(final boolean whetherLiked) { 39 | this.whetherLiked = whetherLiked; 40 | } 41 | 42 | public Review(final int userId, final int songId, final String review) { 43 | this.userId = userId; 44 | this.songId = songId; 45 | this.review = review; 46 | } 47 | 48 | public String getReview() { 49 | return this.review; 50 | } 51 | 52 | public void setReview(final String review) { 53 | this.review = review; 54 | } 55 | 56 | public Review() { 57 | } 58 | 59 | public int getReviewId() { 60 | return this.reviewId; 61 | } 62 | 63 | public void setReviewId(final int reviewId) { 64 | this.reviewId = reviewId; 65 | } 66 | 67 | public int getUserId() { 68 | return this.userId; 69 | } 70 | 71 | public void setUserId(final int userId) { 72 | this.userId = userId; 73 | } 74 | 75 | public int getSongId() { 76 | return this.songId; 77 | } 78 | 79 | public void setSongId(final int songId) { 80 | this.songId = songId; 81 | } 82 | 83 | public String getReviewTime() { 84 | return this.reviewTime; 85 | } 86 | 87 | public void setReviewTime(final String reviewTime) { 88 | this.reviewTime = reviewTime; 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/model/Role.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.model; 6 | 7 | public class Role 8 | { 9 | private int roleId; 10 | private String roleName; 11 | 12 | public int getRoleId() { 13 | return this.roleId; 14 | } 15 | 16 | public void setRoleId(final int roleId) { 17 | this.roleId = roleId; 18 | } 19 | 20 | public String getRoleName() { 21 | return this.roleName; 22 | } 23 | 24 | public void setRoleName(final String roleName) { 25 | this.roleName = roleName; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/model/Song.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.model; 6 | 7 | public class Song 8 | { 9 | private int songId; 10 | private String songName; 11 | private String songAddress; 12 | private String songCoverAddress; 13 | private String songType; 14 | private int songLength; 15 | private String lyricName; 16 | private String lyricAddress; 17 | private int trendingCoefficient; 18 | private boolean whetherCollected; 19 | 20 | public Song(final String songName, final String songAddress) { 21 | this.songName = songName; 22 | this.songAddress = songAddress; 23 | } 24 | 25 | public Song(final String songName, final String songAddress, final String lyricName, final String lyricAddress) { 26 | this.songName = songName; 27 | this.songAddress = songAddress; 28 | this.lyricName = lyricName; 29 | this.lyricAddress = lyricAddress; 30 | } 31 | 32 | public Song() { 33 | } 34 | 35 | public int getTrendingCoefficient() { 36 | return this.trendingCoefficient; 37 | } 38 | 39 | public void setTrendingCoefficient(final int trendingCoefficient) { 40 | this.trendingCoefficient = trendingCoefficient; 41 | } 42 | 43 | public boolean isWhetherCollected() { 44 | return this.whetherCollected; 45 | } 46 | 47 | public void setWhetherCollected(final boolean whetherCollected) { 48 | this.whetherCollected = whetherCollected; 49 | } 50 | 51 | public String getLyricName() { 52 | return this.lyricName; 53 | } 54 | 55 | public void setLyricName(final String lyricName) { 56 | this.lyricName = lyricName; 57 | } 58 | 59 | public String getLyricAddress() { 60 | return this.lyricAddress; 61 | } 62 | 63 | public void setLyricAddress(final String lyricAddress) { 64 | this.lyricAddress = lyricAddress; 65 | } 66 | 67 | public String getSongCoverAddress() { 68 | return this.songCoverAddress; 69 | } 70 | 71 | public void setSongCoverAddress(final String songCoverAddress) { 72 | this.songCoverAddress = songCoverAddress; 73 | } 74 | 75 | public String getSongType() { 76 | return this.songType; 77 | } 78 | 79 | public void setSongType(final String songType) { 80 | this.songType = songType; 81 | } 82 | 83 | public int getSongLength() { 84 | return this.songLength; 85 | } 86 | 87 | public void setSongLength(final int songLength) { 88 | this.songLength = songLength; 89 | } 90 | 91 | public int getSongId() { 92 | return this.songId; 93 | } 94 | 95 | public void setSongId(final int songId) { 96 | this.songId = songId; 97 | } 98 | 99 | public String getSongName() { 100 | return this.songName; 101 | } 102 | 103 | public void setSongName(final String songName) { 104 | this.songName = songName; 105 | } 106 | 107 | public String getSongAddress() { 108 | return this.songAddress; 109 | } 110 | 111 | public void setSongAddress(final String songAddress) { 112 | this.songAddress = songAddress; 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/model/User.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.model; 6 | 7 | import top.wangruns.trackstacking.utils.MD5Util; 8 | 9 | public class User 10 | { 11 | private int userId; 12 | private String email; 13 | private String password; 14 | private String validateCode; 15 | private String userName; 16 | 17 | public String getUserName() { 18 | return this.userName; 19 | } 20 | 21 | public void setUserName(final String userName) { 22 | this.userName = userName; 23 | } 24 | 25 | public String getValidateCode() { 26 | return this.validateCode; 27 | } 28 | 29 | public void setValidateCode(final String validateCode) { 30 | this.validateCode = validateCode; 31 | } 32 | 33 | public String getPassword() { 34 | return this.password; 35 | } 36 | 37 | public void setPassword(final String password) { 38 | this.password = MD5Util.string2MD5(password); 39 | } 40 | 41 | public int getUserId() { 42 | return this.userId; 43 | } 44 | 45 | public void setUserId(final int userId) { 46 | this.userId = userId; 47 | } 48 | 49 | public String getEmail() { 50 | return this.email; 51 | } 52 | 53 | public void setEmail(final String email) { 54 | this.email = email; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/CollectionService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.Collection; 8 | import java.util.List; 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | public interface CollectionService 12 | { 13 | boolean collectionChange(HttpServletRequest p0, int p1); 14 | 15 | List getAllRecords(); 16 | } 17 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/MyMusicService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | public interface MyMusicService 12 | { 13 | List getMyCollectionWithCollectionFlag(HttpServletRequest p0); 14 | 15 | List getMyRecentPlayListWithCollectionFlag(HttpServletRequest p0); 16 | } 17 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/NewTrackOnShelfService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | public interface NewTrackOnShelfService 12 | { 13 | List getNewTrackWithCollectionFlag(HttpServletRequest p0); 14 | } 15 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/PersonalRecService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import java.util.Map; 8 | import top.wangruns.trackstacking.model.Song; 9 | import java.util.List; 10 | import javax.servlet.http.HttpServletRequest; 11 | 12 | public interface PersonalRecService 13 | { 14 | List getPersonalDailyRecWithCollectionFlag(HttpServletRequest p0); 15 | 16 | void initializePersonalRecList(HttpServletRequest p0); 17 | 18 | void updatePersonalRecIntoB(Map p0); 19 | 20 | void updatePersonalRecIntoA(Map p0); 21 | 22 | void addHybridRecIntoA(Map p0); 23 | 24 | void addHybridRecIntoB(Map p0); 25 | } 26 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/RankingPageService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | public interface RankingPageService 12 | { 13 | List getRankWithCollectionFlag(HttpServletRequest p0, int p1); 14 | } 15 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/RecordDownloadService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.DownloadRecord; 8 | import java.util.List; 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | public interface RecordDownloadService 12 | { 13 | void recordDownload(HttpServletRequest p0, int p1); 14 | 15 | List getAllRecords(); 16 | } 17 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/RecordPlayService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.PlayRecord; 8 | import java.util.List; 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | public interface RecordPlayService 12 | { 13 | void recordPlay(HttpServletRequest p0, int p1); 14 | 15 | List getAllRecords(); 16 | } 17 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/ReviewService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.Review; 8 | import java.util.List; 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | public interface ReviewService 12 | { 13 | boolean addReview(HttpServletRequest p0, int p1, String p2); 14 | 15 | List getHotReviewBySongIdWithLikeFlag(HttpServletRequest p0, int p1); 16 | 17 | boolean reviewLikeChange(HttpServletRequest p0, int p1); 18 | 19 | List getNewReviewBySongIdWithLikeFlag(HttpServletRequest p0, int p1); 20 | 21 | void batchDeleteById(int[] p0); 22 | } 23 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/SearchService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.User; 8 | import top.wangruns.trackstacking.model.Review; 9 | import top.wangruns.trackstacking.model.Song; 10 | import java.util.List; 11 | import javax.servlet.http.HttpServletRequest; 12 | 13 | public interface SearchService 14 | { 15 | List getSearchSongWithCollectionFlag(HttpServletRequest p0, String p1); 16 | 17 | List getSearchReview(String p0); 18 | 19 | List getSearchUser(HttpServletRequest p0, String p1); 20 | 21 | List getSearchSong(String p0); 22 | } 23 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/SongService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import org.springframework.web.multipart.MultipartFile; 8 | import javax.servlet.http.HttpServletRequest; 9 | import top.wangruns.trackstacking.model.Song; 10 | import java.util.List; 11 | 12 | public interface SongService 13 | { 14 | List getAllSongIdRecords(); 15 | 16 | Song getSongById(int p0); 17 | 18 | Song getSongByIdWithCollectionFlag(HttpServletRequest p0, int p1); 19 | 20 | void batchDeleteById(HttpServletRequest p0, int[] p1); 21 | 22 | boolean checkFormat(MultipartFile p0, MultipartFile p1); 23 | 24 | boolean addSong(HttpServletRequest p0, MultipartFile p1, MultipartFile p2); 25 | 26 | List getAllSongRecordsWithLyric(); 27 | } 28 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/TrendingRecService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import top.wangruns.trackstacking.model.Song; 8 | import java.util.List; 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | public interface TrendingRecService 12 | { 13 | List getSongWithCollectionFlag(HttpServletRequest p0); 14 | } 15 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/UserService.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | import java.util.List; 9 | import top.wangruns.trackstacking.model.User; 10 | 11 | public interface UserService 12 | { 13 | boolean findLogin(User p0); 14 | 15 | boolean isEmailExisted(String p0); 16 | 17 | boolean insert(User p0); 18 | 19 | List getAllRecords(); 20 | 21 | List getAllUserIdRecords(); 22 | 23 | boolean isHasPrivilege(HttpServletRequest p0); 24 | 25 | void batchDeleteById(int[] p0); 26 | 27 | boolean tooQuickly(HttpServletRequest p0, int p1); 28 | } 29 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/CollectionServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import java.util.List; 8 | import top.wangruns.trackstacking.model.User; 9 | import top.wangruns.trackstacking.model.Collection; 10 | import top.wangruns.trackstacking.utils.Request; 11 | import javax.servlet.http.HttpServletRequest; 12 | import top.wangruns.trackstacking.dao.UserDao; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import top.wangruns.trackstacking.dao.CollectionDao; 15 | import org.springframework.stereotype.Service; 16 | import top.wangruns.trackstacking.service.CollectionService; 17 | 18 | @Service("collectionService") 19 | public class CollectionServiceImpl implements CollectionService 20 | { 21 | @Autowired 22 | private CollectionDao collectionDao; 23 | @Autowired 24 | private UserDao userDao; 25 | 26 | public boolean collectionChange(final HttpServletRequest request, final int songId) { 27 | boolean isCurCollected = true; 28 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 29 | final Collection collection = this.collectionDao.selectByCollection(new Collection(user.getUserId(), songId)); 30 | if (collection == null) { 31 | isCurCollected = false; 32 | this.collectionDao.insert(new Collection(user.getUserId(), songId)); 33 | } 34 | else { 35 | this.collectionDao.deleteById(collection.getCollectionId()); 36 | } 37 | return !isCurCollected; 38 | } 39 | 40 | public List getAllRecords() { 41 | return this.collectionDao.selectAll(); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/MyMusicServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import top.wangruns.trackstacking.model.Collection; 8 | import java.util.Iterator; 9 | import top.wangruns.trackstacking.model.User; 10 | import top.wangruns.trackstacking.utils.Request; 11 | import java.util.ArrayList; 12 | import top.wangruns.trackstacking.model.Song; 13 | import java.util.List; 14 | import javax.servlet.http.HttpServletRequest; 15 | import top.wangruns.trackstacking.dao.TrendingRecDao; 16 | import top.wangruns.trackstacking.dao.UserDao; 17 | import org.springframework.beans.factory.annotation.Autowired; 18 | import top.wangruns.trackstacking.dao.MyMusicDao; 19 | import org.springframework.stereotype.Service; 20 | import top.wangruns.trackstacking.service.MyMusicService; 21 | 22 | @Service("myMusicService") 23 | public class MyMusicServiceImpl implements MyMusicService 24 | { 25 | @Autowired 26 | private MyMusicDao myMusicDao; 27 | @Autowired 28 | private UserDao userDao; 29 | @Autowired 30 | private TrendingRecDao trendingRecDao; 31 | 32 | public List getMyCollectionWithCollectionFlag(final HttpServletRequest request) { 33 | List myCollectionList = new ArrayList(); 34 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 35 | myCollectionList = this.myMusicDao.selectCollectedSong(user); 36 | if (myCollectionList != null) { 37 | for (final Song t : myCollectionList) { 38 | t.setWhetherCollected(true); 39 | } 40 | } 41 | return myCollectionList; 42 | } 43 | 44 | public List getMyRecentPlayListWithCollectionFlag(final HttpServletRequest request) { 45 | List myRecentPalyList = new ArrayList(); 46 | List collectionList = new ArrayList(); 47 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 48 | myRecentPalyList = this.myMusicDao.selectMyRecentSong(user); 49 | collectionList = this.trendingRecDao.getCollection(user); 50 | if (collectionList != null && myRecentPalyList != null) { 51 | for (final Collection c : collectionList) { 52 | for (final Song t : myRecentPalyList) { 53 | if (c.getSongId() == t.getSongId()) { 54 | t.setWhetherCollected(true); 55 | } 56 | } 57 | } 58 | } 59 | return myRecentPalyList; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/NewTrackOnShelfServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import java.util.Iterator; 8 | import top.wangruns.trackstacking.model.User; 9 | import top.wangruns.trackstacking.utils.Request; 10 | import top.wangruns.trackstacking.model.Collection; 11 | import java.util.ArrayList; 12 | import top.wangruns.trackstacking.model.Song; 13 | import java.util.List; 14 | import javax.servlet.http.HttpServletRequest; 15 | import top.wangruns.trackstacking.dao.TrendingRecDao; 16 | import top.wangruns.trackstacking.dao.UserDao; 17 | import org.springframework.beans.factory.annotation.Autowired; 18 | import top.wangruns.trackstacking.dao.NewTrackOnShelfDao; 19 | import org.springframework.stereotype.Service; 20 | import top.wangruns.trackstacking.service.NewTrackOnShelfService; 21 | 22 | @Service("newTrackOnShelfService") 23 | public class NewTrackOnShelfServiceImpl implements NewTrackOnShelfService 24 | { 25 | @Autowired 26 | private NewTrackOnShelfDao newTrackOnShelfDao; 27 | @Autowired 28 | private UserDao userDao; 29 | @Autowired 30 | private TrendingRecDao trendingRecDao; 31 | 32 | public List getNewTrackWithCollectionFlag(final HttpServletRequest request) { 33 | List newTackOnShelList = new ArrayList(); 34 | List collectionList = new ArrayList(); 35 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 36 | collectionList = this.trendingRecDao.getCollection(user); 37 | newTackOnShelList = this.newTrackOnShelfDao.selecNewSong(); 38 | if (collectionList != null && newTackOnShelList != null) { 39 | for (final Collection c : collectionList) { 40 | for (final Song t : newTackOnShelList) { 41 | if (c.getSongId() == t.getSongId()) { 42 | t.setWhetherCollected(true); 43 | } 44 | } 45 | } 46 | } 47 | return newTackOnShelList; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/RankingPageServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import java.util.Iterator; 8 | import top.wangruns.trackstacking.model.User; 9 | import top.wangruns.trackstacking.utils.Request; 10 | import top.wangruns.trackstacking.model.Collection; 11 | import java.util.ArrayList; 12 | import top.wangruns.trackstacking.model.Song; 13 | import java.util.List; 14 | import javax.servlet.http.HttpServletRequest; 15 | import top.wangruns.trackstacking.dao.TrendingRecDao; 16 | import top.wangruns.trackstacking.dao.UserDao; 17 | import org.springframework.beans.factory.annotation.Autowired; 18 | import top.wangruns.trackstacking.dao.RankingPageDao; 19 | import org.springframework.stereotype.Service; 20 | import top.wangruns.trackstacking.service.RankingPageService; 21 | 22 | @Service("rankingPageService") 23 | public class RankingPageServiceImpl implements RankingPageService 24 | { 25 | @Autowired 26 | private RankingPageDao rankingPageDao; 27 | @Autowired 28 | private UserDao userDao; 29 | @Autowired 30 | private TrendingRecDao trendingRecDao; 31 | 32 | public List getRankWithCollectionFlag(final HttpServletRequest request, final int mode) { 33 | List rankingPageList = new ArrayList(); 34 | List collectionList = new ArrayList(); 35 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 36 | collectionList = this.trendingRecDao.getCollection(user); 37 | if (mode == 1) { 38 | rankingPageList = this.rankingPageDao.selectRecentWeekRanking(); 39 | } 40 | else if (mode == 2) { 41 | rankingPageList = this.rankingPageDao.selectRecentMonthRanking(); 42 | } 43 | else { 44 | rankingPageList = this.rankingPageDao.selectRecentMonthRanking(); 45 | } 46 | if (collectionList != null && rankingPageList != null) { 47 | for (final Collection c : collectionList) { 48 | for (final Song t : rankingPageList) { 49 | if (c.getSongId() == t.getSongId()) { 50 | t.setWhetherCollected(true); 51 | } 52 | } 53 | } 54 | } 55 | return rankingPageList; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/RecordDownloadServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import java.util.List; 8 | import top.wangruns.trackstacking.model.User; 9 | import top.wangruns.trackstacking.model.DownloadRecord; 10 | import top.wangruns.trackstacking.utils.Request; 11 | import javax.servlet.http.HttpServletRequest; 12 | import top.wangruns.trackstacking.dao.RecordDownloadDao; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import top.wangruns.trackstacking.dao.UserDao; 15 | import org.springframework.stereotype.Service; 16 | import top.wangruns.trackstacking.service.RecordDownloadService; 17 | 18 | @Service("recordDownloadService") 19 | public class RecordDownloadServiceImpl implements RecordDownloadService 20 | { 21 | @Autowired 22 | private UserDao userDao; 23 | @Autowired 24 | private RecordDownloadDao recordDownloadDao; 25 | 26 | public void recordDownload(final HttpServletRequest request, final int songId) { 27 | User user = Request.getUserFromHttpServletRequest(request); 28 | if (user == null) { 29 | return; 30 | } 31 | user = this.userDao.selectByUser(user); 32 | this.recordDownloadDao.insert(new DownloadRecord(user.getUserId(), songId)); 33 | } 34 | 35 | public List getAllRecords() { 36 | return this.recordDownloadDao.selectAll(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/RecordPlayServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import java.util.List; 8 | import top.wangruns.trackstacking.model.User; 9 | import top.wangruns.trackstacking.model.PlayRecord; 10 | import top.wangruns.trackstacking.utils.Request; 11 | import javax.servlet.http.HttpServletRequest; 12 | import top.wangruns.trackstacking.dao.RecordPlayDao; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import top.wangruns.trackstacking.dao.UserDao; 15 | import org.springframework.stereotype.Service; 16 | import top.wangruns.trackstacking.service.RecordPlayService; 17 | 18 | @Service("recordPlayService") 19 | public class RecordPlayServiceImpl implements RecordPlayService 20 | { 21 | @Autowired 22 | private UserDao userDao; 23 | @Autowired 24 | private RecordPlayDao recordPlayDao; 25 | 26 | public void recordPlay(final HttpServletRequest request, final int songId) { 27 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 28 | this.recordPlayDao.insert(new PlayRecord(user.getUserId(), songId)); 29 | } 30 | 31 | public List getAllRecords() { 32 | return this.recordPlayDao.selectAll(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/SearchServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import top.wangruns.trackstacking.model.Review; 8 | import java.util.Iterator; 9 | import top.wangruns.trackstacking.model.User; 10 | import top.wangruns.trackstacking.utils.Request; 11 | import top.wangruns.trackstacking.model.Collection; 12 | import java.util.ArrayList; 13 | import top.wangruns.trackstacking.model.Song; 14 | import java.util.List; 15 | import javax.servlet.http.HttpServletRequest; 16 | import top.wangruns.trackstacking.dao.TrendingRecDao; 17 | import top.wangruns.trackstacking.dao.UserDao; 18 | import org.springframework.beans.factory.annotation.Autowired; 19 | import top.wangruns.trackstacking.dao.SearchDao; 20 | import org.springframework.stereotype.Service; 21 | import top.wangruns.trackstacking.service.SearchService; 22 | 23 | @Service("searchService") 24 | public class SearchServiceImpl implements SearchService 25 | { 26 | @Autowired 27 | private SearchDao searchDao; 28 | @Autowired 29 | private UserDao userDao; 30 | @Autowired 31 | private TrendingRecDao trendingRecDao; 32 | 33 | public List getSearchSongWithCollectionFlag(final HttpServletRequest request, final String keyword) { 34 | List searchSongList = new ArrayList(); 35 | List collectionList = new ArrayList(); 36 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 37 | collectionList = this.trendingRecDao.getCollection(user); 38 | searchSongList = this.searchDao.selectSongLikeKeyword(keyword); 39 | if (collectionList != null && searchSongList != null) { 40 | for (final Collection c : collectionList) { 41 | for (final Song t : searchSongList) { 42 | if (c.getSongId() == t.getSongId()) { 43 | t.setWhetherCollected(true); 44 | } 45 | } 46 | } 47 | } 48 | return searchSongList; 49 | } 50 | 51 | public List getSearchReview(final String keyword) { 52 | List searchReviewList = new ArrayList(); 53 | searchReviewList = this.searchDao.selectReviewLikeKeyword(keyword); 54 | return searchReviewList; 55 | } 56 | 57 | public List getSearchUser(final HttpServletRequest request, final String keyword) { 58 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 59 | List searchUserList = new ArrayList(); 60 | searchUserList = this.searchDao.selectUserLikeKeyword(keyword, user.getUserId()); 61 | return searchUserList; 62 | } 63 | 64 | public List getSearchSong(final String keyword) { 65 | List searchSongList = new ArrayList(); 66 | searchSongList = this.searchDao.selectSongLikeKeyword(keyword); 67 | return searchSongList; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/TrendingRecServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import java.util.Iterator; 8 | import top.wangruns.trackstacking.model.User; 9 | import top.wangruns.trackstacking.utils.Request; 10 | import top.wangruns.trackstacking.model.Collection; 11 | import java.util.ArrayList; 12 | import top.wangruns.trackstacking.model.Song; 13 | import java.util.List; 14 | import javax.servlet.http.HttpServletRequest; 15 | import top.wangruns.trackstacking.dao.UserDao; 16 | import org.springframework.beans.factory.annotation.Autowired; 17 | import top.wangruns.trackstacking.dao.TrendingRecDao; 18 | import org.springframework.stereotype.Service; 19 | import top.wangruns.trackstacking.service.TrendingRecService; 20 | 21 | @Service("trendingService") 22 | public class TrendingRecServiceImpl implements TrendingRecService 23 | { 24 | @Autowired 25 | private TrendingRecDao trendingRecDao; 26 | @Autowired 27 | private UserDao userDao; 28 | 29 | public List getSongWithCollectionFlag(final HttpServletRequest request) { 30 | List trendingRecList = new ArrayList(); 31 | List collectionList = new ArrayList(); 32 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 33 | collectionList = this.trendingRecDao.getCollection(user); 34 | trendingRecList = this.trendingRecDao.getTrendingSong(); 35 | if (collectionList != null && trendingRecList != null) { 36 | for (final Collection c : collectionList) { 37 | for (final Song t : trendingRecList) { 38 | if (c.getSongId() == t.getSongId()) { 39 | t.setWhetherCollected(true); 40 | } 41 | } 42 | } 43 | } 44 | return trendingRecList; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.service.impl; 6 | 7 | import java.util.Date; 8 | import java.text.SimpleDateFormat; 9 | import top.wangruns.trackstacking.model.Role; 10 | import top.wangruns.trackstacking.utils.Request; 11 | import javax.servlet.http.HttpServletRequest; 12 | import java.util.List; 13 | import top.wangruns.trackstacking.model.User; 14 | import org.springframework.beans.factory.annotation.Autowired; 15 | import top.wangruns.trackstacking.dao.UserDao; 16 | import org.springframework.stereotype.Service; 17 | import top.wangruns.trackstacking.service.UserService; 18 | 19 | @Service("userService") 20 | public class UserServiceImpl implements UserService 21 | { 22 | @Autowired 23 | private UserDao userDao; 24 | 25 | public boolean findLogin(final User u) { 26 | boolean isUserExisted = false; 27 | final User result = this.userDao.selectByUser(u); 28 | if (result != null) { 29 | isUserExisted = true; 30 | } 31 | return isUserExisted; 32 | } 33 | 34 | public boolean isEmailExisted(final String email) { 35 | boolean isEmailExisted = false; 36 | final User result = this.userDao.selectByEmail(email); 37 | if (result != null) { 38 | isEmailExisted = true; 39 | } 40 | return isEmailExisted; 41 | } 42 | 43 | public boolean insert(final User u) { 44 | boolean isInsertSuccessful = false; 45 | final int affectedRows = this.userDao.insert(u); 46 | if (affectedRows > 0) { 47 | isInsertSuccessful = true; 48 | } 49 | return isInsertSuccessful; 50 | } 51 | 52 | public List getAllRecords() { 53 | return this.userDao.selectAll(); 54 | } 55 | 56 | public List getAllUserIdRecords() { 57 | return this.userDao.selectAllUserId(); 58 | } 59 | 60 | public boolean isHasPrivilege(final HttpServletRequest request) { 61 | boolean isHasPrivilege = false; 62 | final User user = this.userDao.selectByUser(Request.getUserFromHttpServletRequest(request)); 63 | if (user == null) { 64 | return isHasPrivilege; 65 | } 66 | final Role role = this.userDao.selectRoleByUserId(user.getUserId()); 67 | if (role != null) { 68 | isHasPrivilege = true; 69 | } 70 | return isHasPrivilege; 71 | } 72 | 73 | public void batchDeleteById(final int[] userIds) { 74 | if (userIds == null) { 75 | return; 76 | } 77 | this.userDao.deleteByIds(userIds); 78 | } 79 | 80 | public boolean tooQuickly(final HttpServletRequest request, final int minutes) { 81 | if (request.getSession().getAttribute("lastTime") == null) { 82 | request.getSession().setAttribute("lastTime", (Object)new SimpleDateFormat("mm").format(new Date())); 83 | return false; 84 | } 85 | final String lastMinute = (String)request.getSession().getAttribute("lastTime"); 86 | final String curMinute = new SimpleDateFormat("mm").format(new Date()); 87 | if (Math.abs(Integer.valueOf(curMinute) - Integer.valueOf(lastMinute)) <= minutes) { 88 | return true; 89 | } 90 | request.getSession().setAttribute("lastTime", (Object)curMinute); 91 | return false; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/utils/MD5Util.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.utils; 6 | 7 | import java.security.MessageDigest; 8 | 9 | public class MD5Util 10 | { 11 | public static String string2MD5(final String inStr) { 12 | MessageDigest md5 = null; 13 | try { 14 | md5 = MessageDigest.getInstance("MD5"); 15 | } 16 | catch (Exception e) { 17 | System.out.println(e.toString()); 18 | e.printStackTrace(); 19 | return ""; 20 | } 21 | final char[] charArray = inStr.toCharArray(); 22 | final byte[] byteArray = new byte[charArray.length]; 23 | for (int i = 0; i < charArray.length; ++i) { 24 | byteArray[i] = (byte)charArray[i]; 25 | } 26 | final byte[] md5Bytes = md5.digest(byteArray); 27 | final StringBuffer hexValue = new StringBuffer(); 28 | for (int j = 0; j < md5Bytes.length; ++j) { 29 | final int val = md5Bytes[j] & 0xFF; 30 | if (val < 16) { 31 | hexValue.append("0"); 32 | } 33 | hexValue.append(Integer.toHexString(val)); 34 | } 35 | return hexValue.toString(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/utils/OneDayOneWord.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.utils; 6 | 7 | import java.util.Random; 8 | 9 | public class OneDayOneWord 10 | { 11 | public static String getOneDayOneWord(final String[] wordArray) { 12 | if (wordArray == null) { 13 | return " "; 14 | } 15 | final Random random = new Random(); 16 | final String oneDayOneWord = wordArray[random.nextInt(wordArray.length)]; 17 | return oneDayOneWord; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/utils/Request.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.utils; 6 | 7 | import top.wangruns.trackstacking.model.User; 8 | import javax.servlet.http.HttpServletRequest; 9 | 10 | public class Request 11 | { 12 | public static User getUserFromHttpServletRequest(final HttpServletRequest request) { 13 | return (User)request.getSession().getAttribute("user"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/utils/ReturnMsg.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.utils; 6 | 7 | import com.alibaba.fastjson.JSONObject; 8 | 9 | public class ReturnMsg 10 | { 11 | public static String msg(final int status, final String detail) { 12 | final JSONObject jSONObject = new JSONObject(); 13 | jSONObject.put("status", (Object)status); 14 | jSONObject.put("msg", (Object)detail); 15 | final String res = jSONObject.toJSONString(); 16 | System.out.println(res); 17 | return res; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/utils/SendEmail.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.utils; 6 | 7 | import java.util.Hashtable; 8 | import javax.mail.Address; 9 | import javax.mail.internet.InternetAddress; 10 | import javax.mail.internet.MimeMessage; 11 | import javax.mail.Transport; 12 | import javax.mail.Message; 13 | import javax.mail.Session; 14 | import java.util.Properties; 15 | 16 | public class SendEmail 17 | { 18 | public static boolean sendemail(final String theme, final String messages, final String email) { 19 | final Properties prop = new Properties(); 20 | //((Hashtable)prop).put("mail.transport.protocol", "smtp"); 21 | //((Hashtable)prop).put("mail.host", "smtp.163.com"); 22 | //((Hashtable)prop).put("mail.smtp.auth", "true"); 23 | 24 | prop.put("mail.transport.protocol", "smtp"); 25 | prop.put("mail.host", "smtp.163.com"); 26 | prop.put("mail.smtp.auth", "true"); 27 | 28 | 29 | final Session session = Session.getInstance(prop); 30 | session.setDebug(true); 31 | try { 32 | final Message message = (Message)createSimpleMail(session, theme, messages, email); 33 | final Transport ts = session.getTransport(); 34 | ts.connect("yuanmamatouemail@163.com", "yuanmamatou1234"); 35 | ts.sendMessage(message, message.getAllRecipients()); 36 | ts.close(); 37 | return true; 38 | } 39 | catch (Exception e) { 40 | return false; 41 | } 42 | } 43 | 44 | private static MimeMessage createSimpleMail(final Session session, final String theme, final String messages, final String email) throws Exception { 45 | final MimeMessage message = new MimeMessage(session); 46 | message.setFrom((Address)new InternetAddress("yuanmamatouemail@163.com")); 47 | message.addRecipients(Message.RecipientType.TO, email); 48 | message.setSubject(theme); 49 | message.setText(messages); 50 | message.saveChanges(); 51 | return message; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /trackstacking/src/top/wangruns/trackstacking/utils/Static.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package top.wangruns.trackstacking.utils; 6 | 7 | public class Static 8 | { 9 | public static volatile boolean isFromA; 10 | public static final long PERIOD_DAY = 86400000L; 11 | public static final int START_HOUR = 6; 12 | public static final int START_MINUTE = 0; 13 | public static final int START_SECOND = 0; 14 | public static final boolean IS_START_TOMORROW = false; 15 | public static final int K = 2; 16 | public static final int N = 10; 17 | public static final String[] RANKING_WORD_ARRAY; 18 | public static final String[] MY_MUSIC_WORD_ARRAY; 19 | public static final String[] SEARCH_WORD_ARRAY; 20 | public static final boolean IS_HYBRID = false; 21 | public static final int N_HYBRID = 1; 22 | 23 | static { 24 | Static.isFromA = true; 25 | RANKING_WORD_ARRAY = new String[] { "\u767e\u5c3a\u7aff\u5934", "\u6b65\u6b65\u9ad8\u5347", "\u7cbe\u76ca\u6c42\u7cbe", "\u767b\u5802\u5165\u5ba4", "\u767b\u5cf0\u9020\u6781", "\u6cf0\u5c71\u5317\u6597", "\u529f\u6210\u540d\u5c31", "\u5927\u5c55\u9e3f\u56fe", "\u7089\u706b\u7eaf\u9752" }; 26 | MY_MUSIC_WORD_ARRAY = new String[] { "\u56db\u9762\u695a\u6b4c", "\u4f59\u97f3\u7ed5\u6881", "\u9761\u9761\u4e4b\u97f3", "\u6263\u4eba\u5fc3\u5f26", "\u9ad8\u5c71\u6d41\u6c34", "\u56db\u9762\u695a\u6b4c", "\u66f2\u9ad8\u548c\u5be1", "\u4f59\u97f3\u8885\u8885", "\u4e00\u5531\u4e09\u53f9", "\u56db\u9762\u695a\u6b4c", "\u7ed5\u6881\u4e09\u65e5", "\u6e38\u9c7c\u51fa\u542c" }; 27 | SEARCH_WORD_ARRAY = new String[] { "\u4f17\u91cc\u5bfb\u4ed6", "\u8ba1\u83b7\u4e8b\u8db3", "\u671b\u773c\u6b32\u7a7f", "\u8e0f\u7834\u94c1\u978b", "\u5982\u613f\u4ee5\u507f", "\u4e1c\u5bfb\u897f\u89c5", "\u6478\u7d22\u95e8\u5f84", "\u5bfb\u8e2a\u89c5\u8ff9" }; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /trackstacking/src/trackstacking/DataTranslateTest.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package trackstacking; 6 | 7 | import java.lang.reflect.Field; 8 | import top.wangruns.trackstacking.model.DownloadRecord; 9 | 10 | public class DataTranslateTest 11 | { 12 | public static void main(final String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { 13 | final DownloadRecord dr = new DownloadRecord(); 14 | dr.setUserId(1); 15 | dr.setSongId(100); 16 | final Field f = dr.getClass().getDeclaredField("userId"); 17 | f.setAccessible(true); 18 | System.out.println(f.getInt(dr)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /trackstacking/src/trackstacking/MininumHeapTest.java: -------------------------------------------------------------------------------- 1 | // 2 | // Decompiled by Procyon v0.5.29 3 | // 4 | 5 | package trackstacking; 6 | 7 | import top.wangruns.trackstacking.algorithm.TreeNode; 8 | import top.wangruns.trackstacking.algorithm.MininumHeap; 9 | 10 | public class MininumHeapTest 11 | { 12 | public static void main(final String[] args) { 13 | final int k = 5; 14 | final MininumHeap mininumHeap = new MininumHeap(k); 15 | for (int i = 0; i < 10; ++i) { 16 | final TreeNode node = new TreeNode(i, i); 17 | mininumHeap.addElement(node); 18 | } 19 | for (int i = 0; i < k; ++i) { 20 | System.out.println(mininumHeap.getArray()[i].val); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /关于系统.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/JSP_SSM_Music_recommendations/b1e44f0843555d5b31636ef170d634eae8a2b5c4/关于系统.txt --------------------------------------------------------------------------------