Java毕业设计实战之生活旅行分享平台的实现

 更新时间:2022年02月05日 12:49:19   作者:qq_1334611189  
这是一个使用了java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql开发的生活旅行分享平台,是一个毕业设计的实战练习,具有分享发布平台该有的所有功能,感兴趣的朋友快来看看吧

一、项目运行

环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

Springboot+ SpringMVC + JPA+ Jsp + Html+ JavaScript + JQuery + Ajax + maven等等

评论业务控制器:

/**
 * 评论控制器
 * @author yy
 *
 */
@RestController
@RequestMapping("/comment")
public class CommentController {
 
  @Resource
  private CommentService commentService;
 
  @Resource
  private ArticleService articleService;
 
  @Resource
  private ReplyService replyService;
 
  /**
   * 分页查询评论
   * @param comment
   * @param page
   * @param pageSize
   * @return
   */
  @RequestMapping("/list")
  public Map<String, Object> commentList(Comment comment, @RequestParam(value = "page", required = false) Integer page,
                                         @RequestParam(value = "pageSize", required = false) Integer pageSize) {
    List<Comment> commentList = commentService.list(comment, null, null, page - 1, pageSize, null);
    Long total = commentService.getCount(comment, null, null, null);
    int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
    Map<String, Object> resultMap = new HashMap<String, Object>();
    resultMap.put("totalPage", totalPage);
    resultMap.put("data", commentList);
    return resultMap;
  }
 
  /**
   * 分页查询评论
   * @param page
   * @param pageSize
   * @return
   */
  @RequestMapping("/massageList")
  public Map<String, Object> massageList(@RequestParam(value = "page", required = false) Integer page,
                                         @RequestParam(value = "pageSize", required = false) Integer pageSize) {
    List<Comment> commentList = commentService.massageList(page - 1, pageSize);
    Long total = commentService.getCount2();
    int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
    Map<String, Object> resultMap = new HashMap<String, Object>();
    resultMap.put("totalPage", totalPage);
    resultMap.put("data", commentList);
    return resultMap;
  }
 
  /**
   * 添加评论
   * @Title: add
   * @param comment  评论实体
   * @return  参数说明
   * @return Map<String,Object>    返回类型
   * @throws
   */
  @RequestMapping("/add")
  public Map<String, Object> add(Comment comment, HttpSession session) {
    User currentUser = (User) session.getAttribute("user");
    Map<String, Object> resultMap = new HashMap<String, Object>();
    comment.setCommentDate(new Date());
    comment.setUser(currentUser);
    commentService.add(comment);
    if (comment.getArticle() != null) {
      articleService.increaseComment(comment.getArticle().getArticleId());
    }
    resultMap.put("comment", comment);
    resultMap.put("success", true);
    return resultMap;
  }
 
}

回复业务控制器:

/**
 * 回复控制器
 * @author yy
 *
 */
@RestController
@RequestMapping("/reply")
public class ReplyController {
 
  @Resource
  private ReplyService replyService;
 
  /**
   * 获取回复
   * @param reply
   * @return
   */
  @RequestMapping("/list")
  public Map<String, Object> replyList(Reply reply) {
    List<Reply> replyList = replyService.list(reply);
    Map<String, Object> resultMap = new HashMap<String, Object>();
    resultMap.put("data", replyList);
    return resultMap;
  }
 
  /**
   * 添加回复
   * @param reply
   * @return
   */
  @RequestMapping("/add")
  public Map<String, Object> add(Reply reply, HttpSession session) {
    User currentUser = (User) session.getAttribute("user");
    Map<String, Object> resultMap = new HashMap<String, Object>();
    reply.setReplyDate(new Date());
    reply.setUser(currentUser);
    replyService.add(reply);
    resultMap.put("reply", reply);
    resultMap.put("success", true);
    return resultMap;
  }
 
}

管理员业务控制器:

/**
 * 管理员控制器
 * @author yy
 *
 */
@RestController
@RequestMapping("/admin")
public class AdminController {
 
  @Value("${MD5Salt}")
  private String salt; // md5加密盐
 
  @Resource
  private AdminService adminService;
  @Resource
  private UserService userService;
  @Resource
  private ArticleService articleService;
  @Resource
  private ClassifyService classifyService;
 
  /**
   * 后台管理员登录验证
   * @param admin
   * @param request
   * @return
   */
  @RequestMapping("/login")
  public ModelAndView login(Admin admin, HttpServletRequest request) {
    ModelAndView mav = new ModelAndView();
    HttpSession session = request.getSession();
    try {
      Admin resultUser = adminService.findByUserNameAndPassword(admin.getUserName(), admin.getPassword());
      if (resultUser == null) {
        mav.addObject("errorInfo", "用户名或者密码错误!");
        mav.setViewName("/login");
      } else {
        session.setAttribute("adminUser", resultUser);
        // 统计用户总数
        Long userCount = userService.getCount();
        // 统计今天注册
        Long userRegCount = userService.getTodayRegistCount(new User(), "1", "1");
        // 统计今日登录
        Long userLogCount = userService.getCount(new User(), "1", "1");
        // 统计笔记总数
        Long artCount = articleService.getCount();
        // 统计笔记分类
        Long classCount = classifyService.getCount();
 
        session.setAttribute("userCount", userCount);
        session.setAttribute("userRegCount", userRegCount);
        session.setAttribute("userLogCount", userLogCount);
        session.setAttribute("artCount", artCount);
        session.setAttribute("classCount", classCount);
 
        mav.addObject("success", true);
        mav.setViewName("/admin/index");
      }
    } catch (Exception e) { // 用户名密码错误
      e.printStackTrace();
      mav.addObject("admin", admin);
      mav.addObject("errorInfo", "用户名或者密码错误!");
      mav.setViewName("/login");
    }
    return mav;
  }
 
  /**
   * 查看个人信息
   * 
   * @return
   */
  @RequestMapping("viewPerson")
  public ModelAndView viewPerson(HttpServletRequest request) {
    Admin admin = (Admin) request.getSession().getAttribute("adminUser");
    ModelAndView mav = new ModelAndView();
    Admin u = adminService.findById(admin.getAdminId());
    mav.addObject("user", u);
    mav.setViewName("/admin/adminViewPerson");
    return mav;
  }
 
  /**
   * 保存用户信息
   * 
   * @param user
   * @return
   */
  @RequestMapping("/save")
  public ModelAndView save(Admin user) {
    ModelAndView mav = new ModelAndView();
    adminService.save(user);
    mav.setViewName("/admin/index");
    return mav;
  }
}

用户业务控制器:

/**
 * 用户控制器
 *
 */
@RestController
@RequestMapping("/admin/user")
public class UserAdminController {
 
  @Resource
  private UserService userService;
 
  @Value("${MD5Salt}")
  private String salt; // md5加密盐
 
  /**
   * 根据ID查找用户
   * @param userId
   * @return
   */
  @RequestMapping("/findById")
  public Map<String, Object> findById(Integer userId) {
    Map<String, Object> resultMap = new HashMap<String, Object>();
    User user = userService.findById(userId);
    resultMap.put("errorNo", 0);
    resultMap.put("data", user);
    return resultMap;
  }
 
  /**
   * 分页查询用户
   * @param user
   * @param registrationDates
   * @param page
   * @param limit
   * @return
   */
  @RequestMapping("/list")
  public Map<String, Object> list(User user,
      @RequestParam(value = "latelyLoginTimes", required = false) String latelyLoginTimes,
      @RequestParam(value = "page", required = false) Integer page,
      @RequestParam(value = "pageSize", required = false) Integer pageSize) {
    String s_bregistrationDate = null; // 开始时间
    String s_eregistrationDate = null; // 结束时间
    if (StringUtil.isNotEmpty(latelyLoginTimes)) {
      String[] strs = latelyLoginTimes.split(" - "); // 拆分时间段
      s_bregistrationDate = strs[0];
      s_eregistrationDate = strs[1];
    }
    List<User> userList = userService.list(user, s_bregistrationDate, s_eregistrationDate, page - 1, pageSize);
    Long total = userService.getCount(user, s_bregistrationDate, s_eregistrationDate);
    Map<String, Object> resultMap = new HashMap<String, Object>();
    resultMap.put("errorNo", 0);
    resultMap.put("data", userList);
    resultMap.put("total", total);
    return resultMap;
  }
 
  @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;
  }
 
  /**
   * 取消关注
   * @param request
   * @param userId
   * @return
   */
  @RequestMapping("/removeFocusUser")
  public ModelAndView removeFocusUser(HttpServletRequest request, String userId) {
    ModelAndView mav = new ModelAndView();
    User user = (User) request.getSession().getAttribute("user");// 当前登录用户
 
    String userIds = user.getUserIds();
    List<String> tempList = Arrays.asList(userIds.split(","));
    List<String> lineIdList = new ArrayList<>(tempList);
    lineIdList.remove(userId);
    String ret = StringUtils.join(lineIdList, ",");
 
    user.setUserIds(ret);
 
    userService.save(user);
    mav.setViewName("redirect:/viewFocusUser");
    return mav;
  }
 
  /**
   * 关注用户
   * @param request
   * @param userId
   * @return
   */
  @RequestMapping("/addFocusUser")
  public ModelAndView addFocusUser(HttpServletRequest request, String userId) {
    ModelAndView mav = new ModelAndView();
    User user = (User) request.getSession().getAttribute("user");// 当前登录用户
 
    String userIds = user.getUserIds();
    List<String> tempList = Arrays.asList(userIds.split(","));
    List<String> lineIdList = new ArrayList<>(tempList);
    lineIdList.add(userId);
    String ret = StringUtils.join(lineIdList, ",");
 
    user.setUserIds(ret);
 
    userService.save(user);
    mav.setViewName("redirect:/viewFocusUser");
    return mav;
  }
 
  @RequestMapping("/addFocusUser/{userId}")
  public ModelAndView addFocusUser(@PathVariable(value = "userId", required = false) Integer userId,
      HttpSession session) {
    ModelAndView mav = new ModelAndView();
    User user = (User) session.getAttribute("user");// 当前登录用户
 
    String userIds = user.getUserIds();
    List<String> tempList = new ArrayList<>();
    if (userIds != null) {
      tempList = Arrays.asList(userIds.split(","));
    }
    List<String> lineIdList = new ArrayList<>(tempList);
    lineIdList.add(userId.toString());
    String ret = StringUtils.join(lineIdList, ",");
 
    user.setUserIds(ret);
 
    userService.save(user);
    mav.setViewName("redirect:/viewFocusUser");
    return mav;
  }
 
  /**
   * 取消收藏
   * @param request
   * @param userId
   * @return
   */
  @RequestMapping("/removeCollection")
  public ModelAndView removeCollection(HttpServletRequest request, String artId) {
    ModelAndView mav = new ModelAndView();
    User user = (User) request.getSession().getAttribute("user");// 当前登录用户
 
    String artIds = user.getArticleIds();
    List<String> tempList = Arrays.asList(artIds.split(","));
    List<String> lineIdList = new ArrayList<>(tempList);
    lineIdList.remove(artId);
    String ret = StringUtils.join(lineIdList, ",");
 
    user.setArticleIds(ret);
 
    userService.save(user);
    mav.setViewName("redirect:/viewCollection");
    return mav;
  }
 
  /**
   * 收藏
   * @param request
   * @param userId
   * @return
   */
  @RequestMapping("/addCollection")
  public ModelAndView addCollection(HttpServletRequest request, String artId) {
    ModelAndView mav = new ModelAndView();
    User user = (User) request.getSession().getAttribute("user");// 当前登录用户
 
    String artIds = user.getArticleIds();
    List<String> tempList = Arrays.asList(artIds.split(","));
    List<String> lineIdList = new ArrayList<>(tempList);
    lineIdList.add(artId);
    String ret = StringUtils.join(lineIdList, ",");
 
    user.setArticleIds(ret);
 
    userService.save(user);
    mav.setViewName("redirect:/viewCollection");
    return mav;
  }
}

到此这篇关于Java毕业设计实战之生活旅行分享平台的实现的文章就介绍到这了,更多相关Java 生活旅行分享平台内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解SpringBoot依赖注入和使用配置文件

    详解SpringBoot依赖注入和使用配置文件

    这篇文章主要介绍了SpringBoot依赖注入和使用配置文件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • Java多线程中的互斥锁解析

    Java多线程中的互斥锁解析

    这篇文章主要介绍了Java多线程中的互斥锁解析,Java语言中,引入了对象互斥锁的概念,来保证共享数据操作的完整性,每个对象都对应于一个可称为互斥锁的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象,需要的朋友可以参考下
    2023-09-09
  • tk-mybatis整合springBoot使用两个数据源的方法

    tk-mybatis整合springBoot使用两个数据源的方法

    单纯的使用mybaits进行多数据配置网上资料很多,但是关于tk-mybaits多数据源配置没有相关材料,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-12-12
  • java sqlserver text 类型字段读取方法

    java sqlserver text 类型字段读取方法

    有这样一个需求,需要将原本存储在数据库中的文档转存至文件系统中,于是写了一个简单的程序完成此功能
    2012-11-11
  • Java 判断线程池所有任务是否执行完毕的操作

    Java 判断线程池所有任务是否执行完毕的操作

    这篇文章主要介绍了Java 判断线程池所有任务是否执行完毕的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 解析mybatis-plus中的resultMap简单使用

    解析mybatis-plus中的resultMap简单使用

    mybatis-plus也只是听过,可是终究没有使用过。于是自己花几天晚上的时间研究mybatis-plus的使用。这篇文章主要介绍了mybatis-plus的resultMap简单使用,需要的朋友可以参考下
    2021-11-11
  • SpringCloud集成zookeeper实现服务注册并访问功能

    SpringCloud集成zookeeper实现服务注册并访问功能

    zookeeper和eureka一样,是用于充当服务注册功能服务器的一个springcloud插件,这篇文章主要介绍了SpringCloud集成zookeeper实现服务注册并访问,需要的朋友可以参考下
    2022-06-06
  • 详解SpringBoot如何创建自定义Starter

    详解SpringBoot如何创建自定义Starter

    Spring Boot的自动配置机制为开发人员提供了一种轻松集成和配置各种功能的便捷方式,本文将深入探讨在Spring Boot中如何创建自定义Starter,为构建模块化且易维护的应用提供有力的支持,需要的朋友可以参考下
    2024-02-02
  • 高内聚低耦合原则_动力节点Java学院整理

    高内聚低耦合原则_动力节点Java学院整理

    耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准
    2017-08-08
  • springboot中将日志信息存储在catalina.base中过程解析

    springboot中将日志信息存储在catalina.base中过程解析

    这篇文章主要介绍了springboot中将日志信息存储在catalina.base中过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09

最新评论