gpt4 book ai didi

基于java ssm springboot实现选课推荐交流平台系统

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章基于java ssm springboot实现选课推荐交流平台系统由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

夏天到了、小雪来给大家降降温 。

基于java ssm springboot实现选课推荐交流平台系统

话不多说、直接进入主题 。

  。

主要功能模块设计:

登录注册、首页信息浏览、选课分类查看、选课详情查看、评论交流、收藏、浏览量、以及后台数据管理、用户管理、选课类别管理、选课信息详情管理、评论交流和回复管理、以及公告信息管理等 。

  。

主要技术:

Java、springmvc、mybatis、mysql、tomcat、jquery、layui、JavaScript、html、css、jsp、log4j等一些常见的基本技术.

  。

主要功能实现前端:

选课平台首页:

输入http://localhost/访问选课推荐交流平台首页、可以查看轮播图以及各类信息、点击进入详情页面 。

基于java ssm springboot实现选课推荐交流平台系统

基于java ssm springboot实现选课推荐交流平台系统

登录注册管理:

基于java ssm springboot实现选课推荐交流平台系统

选课推荐分类:

点击查看分类课程推荐信息、按照类别查看课程信息、管理员可以在后台添加课程分类信息 。

以及根据访问量来进行点击排行、 。

基于java ssm springboot实现选课推荐交流平台系统

课程详情信息:

课程详情可以查看课程详情信息以及作者信息和浏览量等具体数据、也可以进行评论和收藏等操作 。

基于java ssm springboot实现选课推荐交流平台系统

基于java ssm springboot实现选课推荐交流平台系统

我的个人中心:

包括我的个人信息和收藏夹信息、 。

基于java ssm springboot实现选课推荐交流平台系统

主要功能实现后台:

系统主页设计:

主要功能模块有首页的信息统计、选课类型管理、选课详情管理、用户管理、评论和公告管理等数据维护.

基于java ssm springboot实现选课推荐交流平台系统

选课类型管理:

基于java ssm springboot实现选课推荐交流平台系统

选课信息详情管理:

列表信息查看添加修改删除以及检索等操作 。

基于java ssm springboot实现选课推荐交流平台系统

详情信息 。

基于java ssm springboot实现选课推荐交流平台系统

通知公告信息:

数据列表查看和添加修改删除等操作 。

基于java ssm springboot实现选课推荐交流平台系统

用户信息管理:

基于java ssm springboot实现选课推荐交流平台系统

评论交流回复管理:

评论和回复的数据管理 。

基于java ssm springboot实现选课推荐交流平台系统

  。

部分关键代码展示:

登录模块:

package com.longwang.controller;import com.longwang.entity.Article;import com.longwang.entity.Classify;import com.longwang.entity.User;import com.longwang.service.ArticleService;import com.longwang.service.ClassifyService;import com.longwang.service.NoticeService;import com.longwang.service.UserService;import com.longwang.util.DateUtil;import com.longwang.util.StringUtil;import org.apache.commons.io.FileUtils;import org.apache.commons.lang.StringUtils;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.servlet.ModelAndView;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.io.File;import java.util.*;/*** 根路径以及其他请求处理* * @author 李杨勇**/@Controllerpublic class IndexController {@Value("${imageFilePath}")private String imageFilePath; // 文件路径@Resourceprivate NoticeService noticeService;@Resourceprivate UserService userService;@Resourceprivate ArticleService articleService;@Resourceprivate ClassifyService classifyService;@RequestMapping("/")public String index(HttpSession session) {  // 查询公告  session.setAttribute("noticeList", noticeService.list(0, 5));  return "index";// 跳转到index.html}@RequestMapping("/delete")public Map<String, Object> delete(Integer userId) {  Map<String, Object> resultMap = new HashMap<String, Object>();  userService.delete(userId);  resultMap.put("errorNo", 0);  return resultMap;}/** * 登录页面 *  * @return */@RequestMapping("/login")public String login() {  return "login";}/** * 前台登录页面 *  * @return */@RequestMapping("/webLogin")public String webLogin() {  return "webLogin";}/** * 注册 *  * @return */@RequestMapping("/regist")public String regist() {  return "regist";}/** * 保存注册信息 *  * @param user * @return */@RequestMapping("/saveUser")public String saveUser(User user) {    List<Article> randomArticle = articleService.getRandomArticle(3);    String ids="";    for (int i = 0; i < randomArticle.size(); i++) {        Integer articleId = randomArticle.get(i).getArticleId();        ids+=articleId+",";    }    ids = ids.substring(0, ids.length() -1);    user.setArticleIds(ids);    userService.save(user);  return "webLogin";}/** * 退出登录 *  * @param request * @return */@RequestMapping("/quit")public String quit(HttpServletRequest request) {  HttpSession session = request.getSession();  session.removeAttribute("user");  return "index";}/** * 退出登录 *  * @param request * @return */@RequestMapping("/quitAdmin")public String quitAdmin(HttpServletRequest request) {  HttpSession session = request.getSession();  session.removeAttribute("user");  return "login";}/** * 验证登录 * * @param user * @param request * @return */@RequestMapping("/checkLogin")public ModelAndView checkLogin(User user, HttpServletRequest request) {  ModelAndView mav = new ModelAndView();  HttpSession session = request.getSession();  User u = userService.findByUsernameAndPassword(user.getUsername(), user.getPassword());  if (u == null) {    mav.addObject("user", user);    mav.addObject("errorInfo", "用户名或者密码错误!");    mav.setViewName("webLogin");  } else {    u.setLatelyLoginTime(new Date());    userService.save(u);    session.setAttribute("user", u);    mav.addObject("username", u.getUsername());    mav.addObject("user", u);    mav.addObject("success", true);    mav.setViewName("/index");  }  return mav;}/** * 查看个人信息 *  * @return */@RequestMapping("viewPerson")public ModelAndView viewPerson(HttpServletRequest request) {  User user = (User) request.getSession().getAttribute("user");  ModelAndView mav = new ModelAndView();  User u = userService.findById(user.getUserId());  mav.addObject("user", u);  mav.setViewName("/viewPerson");  return mav;}/** * 查看个人课程收藏夹 *  * @return */@RequestMapping("viewCollection")public ModelAndView viewCollection(HttpServletRequest request, HttpSession session) {  User user = (User) request.getSession().getAttribute("user");  ModelAndView mav = new ModelAndView();  User u = userService.findById(user.getUserId());  String artIds = u.getArticleIds();  List<String> result = new ArrayList<>();  if (StringUtils.isNotBlank(artIds)) {    result = Arrays.asList(StringUtils.split(artIds, ","));  }  List<Integer> retIds = new ArrayList<>();  for (String temp : result) {    retIds.add(Integer.valueOf(temp).intValue());  }  List<Article> retArt = articleService.findByListId(retIds);  session.setAttribute("noticeList", noticeService.list(0, 5));  mav.addObject("retArt", retArt);  mav.addObject("user", u);  mav.setViewName("/viewCollection");  return mav;}/** * 查看个人关注用户 *  * @return */@RequestMapping("viewFocusUser")public ModelAndView viewFocusUser(HttpServletRequest request, HttpSession session) {  User user = (User) request.getSession().getAttribute("user");  ModelAndView mav = new ModelAndView();  User u = userService.findById(user.getUserId());  String userIds = u.getUserIds();  List<String> result = new ArrayList<>();  if (StringUtils.isNotBlank(userIds)) {    result = Arrays.asList(StringUtils.split(userIds, ","));  }  List<Integer> retIds = new ArrayList<>();  for (String temp : result) {    retIds.add(Integer.valueOf(temp).intValue());  }  List<User> retArt = userService.findByListId(retIds);  session.setAttribute("noticeList", noticeService.list(0, 5));  mav.addObject("retArt", retArt);  mav.addObject("user", u);  mav.setViewName("/viewFocusUser");  return mav;}/** * 保存用户信息 *  * @param user * @return */@RequestMapping("/save")public ModelAndView save(User user) {  ModelAndView mav = new ModelAndView();  userService.save(user);  mav.setViewName("/index");  return mav;}/** * 写笔记页面 *  * @param request * @return */// @RequestMapping("notePage")// public String notePage(HttpServletRequest request, Model model) {// User user = (User) request.getSession().getAttribute("user");// if (user == null) {// return "webLogin";// }// List<Classify> list = classifyService.findAll();// model.addAttribute("list", list);// return "one";// }@RequestMapping("notePage")public ModelAndView notePage(HttpServletRequest request) {  ModelAndView mav = new ModelAndView();  User user = (User) request.getSession().getAttribute("user");  if (user == null) {    mav.setViewName("/webLogin");    return mav;  }  List<Classify> list = classifyService.findAll();  mav.addObject("list", list);  mav.setViewName("/one");  return mav;}/** * 保存笔记 *  * @param article * @param request * @return */@RequestMapping("addNote")public ModelAndView addNote(Article article, HttpServletRequest request) {  ModelAndView mav = new ModelAndView();  // 获取当前用户信息  User user = (User) request.getSession().getAttribute("user");  article.setUserId(user.getUserId());  article.setPublishDate(new Date());  article.setClick(0);  article.setCommentNum(0);  article.setContentNoTag(StringUtil.Html2Text(article.getContent()));  articleService.save(article);  mav.setViewName("/index");  return mav;}@RequestMapping("saveNote")public ModelAndView saveNote(Article article, HttpServletRequest request) {  ModelAndView mav = new ModelAndView();  Article a = articleService.findById(article.getArticleId());  article.setPublishDate(a.getPublishDate());  // 获取当前用户信息  articleService.save(article);  mav.setViewName("/index");  return mav;}/** * 查看笔记 *  * @return */@RequestMapping("viewNote")public String viewNote(HttpSession session) {  session.setAttribute("noticeList", noticeService.list(0, 5));  return "mylist";}@RequestMapping("/delete/{id}")public String delete(@PathVariable(value = "id") String id) throws Exception {  articleService.delete(Integer.parseInt(id));  return "mylist";}/** * 查看个人笔记加载数据列表 *  * @param article * @param publishDates * @param page * @param pageSize * @return */@RequestMapping("/mylist")public Map<String, Object> list(Article article,    @RequestParam(value = "publishDates", required = false) String publishDates,    @RequestParam(value = "page", required = false) Integer page,    @RequestParam(value = "pageSize", required = false) Integer pageSize, HttpServletRequest request) {  Map<String, Object> resultMap = new HashMap<String, Object>();  // User user = (User) request.getSession().getAttribute("user");  // article.setUserId(user.getUserId());  String s_bPublishDate = null; // 开始时间  String s_ePublishDate = null; // 结束时间  if (StringUtil.isNotEmpty(publishDates)) {    String[] strs = publishDates.split(" - "); // 拆分时间段    s_bPublishDate = strs[0];    s_ePublishDate = strs[1];  }  Long total = articleService.getCount(article, s_bPublishDate, s_ePublishDate);  int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1); // 总页数  resultMap.put("totalPage", totalPage);  resultMap.put("errorNo", 0);  resultMap.put("data", articleService.list(article, s_bPublishDate, s_ePublishDate, page - 1, pageSize));  resultMap.put("total", total);  return resultMap;}/** * 后台默认首页 *  * @return */@RequestMapping("/index")public String root() {  return "/common/index";}/** * 博主信息页面 *  * @return */@RequestMapping("/blogger")public String blogger() {  return "/blogger/index";}/** * 图片上传处理 @Title: ckeditorUpload @param file 图片文件 @return 参数说明 @return * Map<String,Object> 返回类型 @throws */@ResponseBody@RequestMapping("/upload")public Map<String, Object> ckeditorUpload(@RequestParam("file") MultipartFile file) {  Map<String, Object> resultMap = new HashMap<String, Object>();  Map<String, Object> resultMap1 = new HashMap<String, Object>();  String fileName = file.getOriginalFilename(); // 获取文件名  String suffixName = fileName.substring(fileName.lastIndexOf(".")); // 获取文件的后缀  String newFileName = "";  try {    newFileName = DateUtil.getCurrentDateStr() + suffixName; // 新文件名    FileUtils.copyInputStreamToFile(file.getInputStream(), new File(imageFilePath + newFileName)); // 上传  } catch (Exception e) {    // TODO Auto-generated catch block    e.printStackTrace();  }  resultMap.put("code", 0);  resultMap1.put("filePath", newFileName);  resultMap.put("data", resultMap1);  return resultMap;}}

配置模块:

server: port: 80servlet:  context-path: /spring: datasource:   driver-class-name: com.mysql.jdbc.Driver  url: jdbc:mysql://localhost:3306/choosing_courses?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai  username: root  password: 123456jpa:  hibernate:    ddl-auto: update  show-sql: true  database-platform: org.hibernate.dialect.MySQLDialectthymeleaf:  cache: falsethymeleaf:  prefix: classpath:/templates/MD5Salt: longwangimageFilePath: C:\\Users\\Administrator\\Desktop\\choosingCourses\\src\\main\\webapp\\static\\images\\downloadImagePath:  C:\\Users\\Administrator\\Desktop\\choosingCourses\\src\\main\\webapplucenePath: C:\\Users\\Administrator\\Desktop\\choosingCourses\\lucene

  。

主要表设计:

用户表:

CREATE TABLE `NewTable` (`user_id`  int(11) NOT NULL AUTO_INCREMENT ,`head_portrait`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`lately_login_time`  datetime NULL DEFAULT NULL ,`nickname`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`registration_date`  datetime NULL DEFAULT NULL ,`sex`  varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`open_id`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`password`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`username`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`article_ids`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`birthday`  date NULL DEFAULT NULL ,`momo`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`phone`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`user_ids`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,PRIMARY KEY (`user_id`))ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=20ROW_FORMAT=COMPACT;

选课类型表:

CREATE TABLE `NewTable` (`classify_id`  int(11) NOT NULL AUTO_INCREMENT ,`classify_name`  varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ,PRIMARY KEY (`classify_id`))ENGINE=InnoDBDEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ciAUTO_INCREMENT=27ROW_FORMAT=COMPACT;

选课详情表:

CREATE TABLE `NewTable` (`article_id`  int(11) NOT NULL AUTO_INCREMENT ,`author`  varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ,`click`  int(11) NULL DEFAULT NULL ,`comment_num`  int(11) NULL DEFAULT NULL ,`content`  text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL ,`image_name`  varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL ,`is_original`  int(11) NULL DEFAULT NULL ,`is_top`  int(11) NULL DEFAULT NULL ,`publish_date`  datetime NULL DEFAULT NULL ,`title`  varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ,`classify_id`  int(11) NULL DEFAULT NULL ,`user_id`  int(11) NULL DEFAULT NULL ,PRIMARY KEY (`article_id`),FOREIGN KEY (`classify_id`) REFERENCES `t_classify` (`classify_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,INDEX `FKo4fros4yfq1m9ay7sgtlcvbc4` (`classify_id`) USING BTREE )ENGINE=InnoDBDEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ciAUTO_INCREMENT=58ROW_FORMAT=COMPACT;

评论交流表:

CREATE TABLE `NewTable` (`comment_id`  int(11) NOT NULL AUTO_INCREMENT ,`comment_date`  datetime NULL DEFAULT NULL ,`content`  varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL ,`article_id`  int(11) NULL DEFAULT NULL ,`user_id`  int(11) NULL DEFAULT NULL ,PRIMARY KEY (`comment_id`),FOREIGN KEY (`article_id`) REFERENCES `t_article` (`article_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,FOREIGN KEY (`user_id`) REFERENCES `t_user` (`user_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,INDEX `FKlsvvc2ob8lxg2m9qqry15ru0y` (`article_id`) USING BTREE ,INDEX `FKtamaoacctq4qpko6bvtv0ke1p` (`user_id`) USING BTREE )ENGINE=InnoDBDEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ciAUTO_INCREMENT=15ROW_FORMAT=COMPACT;

回复信息表:

CREATE TABLE `NewTable` (`reply_id`  int(11) NOT NULL AUTO_INCREMENT ,`content`  varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL ,`reply_date`  datetime NULL DEFAULT NULL ,`comment_id`  int(11) NULL DEFAULT NULL ,`user_id`  int(11) NULL DEFAULT NULL ,PRIMARY KEY (`reply_id`),FOREIGN KEY (`comment_id`) REFERENCES `t_comment` (`comment_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,FOREIGN KEY (`user_id`) REFERENCES `t_user` (`user_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,INDEX `FKk4ydp71wampdbnguly8iks4rf` (`comment_id`) USING BTREE ,INDEX `FKslt6r79iw1p9cbxns09erjv6v` (`user_id`) USING BTREE )ENGINE=InnoDBDEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ciAUTO_INCREMENT=6ROW_FORMAT=COMPACT;

到此这篇关于选课推荐交流平台系统基于java ssm springboot实现的文章就介绍到这了,更多相关交流平台系统内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://lyyong.blog.csdn.net/article/details/118344279 。

最后此篇关于基于java ssm springboot实现选课推荐交流平台系统的文章就讲到这里了,如果你想了解更多关于基于java ssm springboot实现选课推荐交流平台系统的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com