900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Java项目:大学生兼职论坛(java+SSM+JSP+jQuery+Layui+mysql)

Java项目:大学生兼职论坛(java+SSM+JSP+jQuery+Layui+mysql)

时间:2018-12-12 17:45:38

相关推荐

Java项目:大学生兼职论坛(java+SSM+JSP+jQuery+Layui+mysql)

源码获取:博客首页 "资源" 里下载!

项目介绍

该项目是一个大学生校园兼职讨论平台,分为前台和后台功能,主要用户有三种角色:分别是商家、学生、管理员。商家可以发布兼职信息,发布后,管理员进入后台确认信息是否有效,并且审核该兼职信息。学生登录平台后,可以查看兼职信息,并且,可以在线和商家聊天,聊天的内容持久化到mysql数据库中。 该网站还有论坛交流的功能,用户可以在论坛发表贴子,并且,可以在帖子下面回复。论坛版块设置有3块广告区,管理员可以在后台对广告进行增删改查。

整体功能包括:论坛交流,帖子发布,个人中心,用户管理,聊天管理,帖子管理。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可

4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7版本;

技术栈

1. 后端:Spring SpringMVC MyBatis

2. 前端:JSP+jQuery+Layui

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 将项目中yml配置文件中的数据库配置改为自己的配置

3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

前台系统:http://localhost:8080/moonlighting/

后台系统:http://localhost:8080/moonlighting/manager/login/goServerLogin.action

管理员控制器:

/*** 管理员控制器**/@Controller@RequestMapping("admin")public class AdminController {/*** Spring 容器自动注入 AdminService*/@Resourceprivate AdminService adminService;@Resourceprivate EmployerService employerService;@Resourceprivate EmployeeService employeeService;@Resourceprivate TaskService taskService;/*** 跳转到登录页面** @return*/@GetMapping("login")public String login() {return "admin/login";}/*** 管理员登录** @param admin 管理员,在参数上使用实体类接收,可以自动接受 username,password 属性* @return*/@PostMapping("login")public String login(Admin admin, RedirectAttributes redirectAttributes, HttpSession session) {// 调用 AdminService 处理登录的业务逻辑,返回一个 Admin 对象,如果为空登录失败,如果不为空登录成功Admin currAdmin = adminService.login(admin);// 如果为空,登录失败,返回一个消息给登录页面提示, RedirectAttributes 是重定向用于把消息存放在域对象中,供页面获取if (currAdmin == null) {// 将消息放入重定向的与对象中redirectAttributes.addFlashAttribute("msg", "用户名或密码错误");// 重定向到登录页return "redirect:/admin/login";}// 如果 Admin 不为空,登录成功else {// 把管理员信息放入 session 中,保持管理员登录状态session.setAttribute("admin", admin);// 重定向到管理员首页return "redirect:/admin/index";}}/*** 跳转到管理员首页** @param model 用户将数据存放在域对象中的对象* @return*/@GetMapping("index")public String index(Model model) {// 总雇主数量Integer employerCount = employerService.getAllCount();// 总雇员数量Integer employeeCount = employeeService.getAllCount();// 总任务成交数量Integer allTaskCompleteCount = taskService.getAllCompleteCount();// 总任务成交金额Double allTaskCompletePrice = taskService.getAllCompletePrice();// 最近 10 个注册雇员List<Employee> employees = employeeService.getRecently();// 获取最近成交的 10 个任务List<TaskVo> taskVos = taskService.getRecentlyComplete();// 将查询出来的数据,放置域对象中,供页面展示model.addAttribute("employerCount", employerCount);model.addAttribute("employeeCount", employeeCount);model.addAttribute("allTaskCompleteCount", allTaskCompleteCount);model.addAttribute("allTaskCompletePrice", allTaskCompletePrice);model.addAttribute("employees", employees);model.addAttribute("taskVos", taskVos);// 跳转到管理员首页return "admin/index";}/*** 退出登录** @return*/@GetMapping("logout")public String logout(HttpSession session) {// 退出登录,只需要删除存放在 session 中的 admin 信息即可session.removeAttribute("admin");// 重定向到登录页return "redirect:/admin/login";}}

雇主控制器:

/*** 雇主控制器**/@Controller@RequestMapping("employer")public class EmployerController {@Resourceprivate TaskService taskService;@Resourceprivate TaskCategoryService taskCategoryService;@Resourceprivate BidService bidService;@Resourceprivate EmployerService employerService;/*** 雇主退出登录** @param session* @return*/@GetMapping("logout")public String logout(HttpSession session) {session.removeAttribute("employer");return "redirect:/index";}/*** 跳转到个人中心*/@GetMapping("dashboard")public String dashboard(HttpSession session, Model model) {// 获取雇主登录情况Employer employer = (Employer) session.getAttribute("employer");// 查询总发布任务数量List<TaskVo> tasks = taskService.getByEmployerId(employer.getId());Integer taskCount = tasks != null ? tasks.size() : 0;// 查询任务总投标人数Integer bidCount = taskService.getBidCount(employer.getId());// 任务提交完成List<TaskVo> taskVos = taskService.getRecentlySubmit(employer.getId());// 放置域对象中model.addAttribute("taskCount", taskCount);model.addAttribute("bidCount", bidCount);model.addAttribute("tasks", taskVos);return "employer/dashboard";}/*** 跳转到任务发布页面** @return*/@GetMapping("task/post")public String postTask(Model model) {// 查询出所有任务分类信息List<TaskCategoryVo> taskCategoryVos = taskCategoryService.getAll();model.addAttribute("taskCategories", taskCategoryVos);return "employer/post_task";}/*** 雇主发布一个任务** @param session* @return*/@PostMapping("task/post")public String postTask(HttpSession session, Task task, String skills, String upload, RedirectAttributes redirectAttributes) {// 获取雇主信息Employer employer = (Employer) session.getAttribute("employer");// 添加任务task.setEmployerId(employer.getId());taskService.postTask(task, skills, upload);// 提示消息redirectAttributes.addFlashAttribute("msg", "发布任务成功,等待管理员审核!");return "redirect:/employer/task/post";}/*** 跳转到我的任务页面** @param session* @return*/@GetMapping("myTasks")public String myTask(HttpSession session, Model model) {// 查询雇主信息Employer employer = (Employer) session.getAttribute("employer");// 查询雇主的所有任务List<TaskVo> taskVos = taskService.getByEmployerId(employer.getId());model.addAttribute("tasks", taskVos);return "employer/my_task";}/*** 跳转到雇主修改任务页面** @param taskId 任务 ID* @return*/@GetMapping("task/update")public String updateTask(Long taskId, Model model) {// 查询所有任务List<TaskCategoryVo> categorys = taskCategoryService.getAll();TaskVo taskVo = taskService.getById(taskId);model.addAttribute("task", taskVo);model.addAttribute("taskCategories", categorys);return "employer/update_task";}/*** 添加技能** @param skillName 技能名称* @return*/@PostMapping("skill/add")@ResponseBodypublic String addSkill(String skillName, Long taskId, HttpSession session) {if (!"".equals(skillName)) {employerService.addSkill(taskId, skillName);}return "添加技能";}/*** 删除技能** @param skillId* @return*/@PostMapping("skill/delete")@ResponseBodypublic String deleteSkill(Long skillId) {employerService.deleteSkill(skillId);return "删除技能";}/*** 更新任务** @param task 任务* @return*/@PostMapping("task/update")public String updateTask(Task task, String upload, RedirectAttributes redirectAttributes) {// 修改任务if (!"".equals(upload)) {task.setFilename(upload);}taskService.updateTask(task);// 提示消息redirectAttributes.addFlashAttribute("msg", "发布任务成功,等待管理员审核!");return "redirect:/employer/myTasks";}/*** 删除任务** @param taskId 任务 ID* @return*/@GetMapping("task/delete")public String deleteTask(Long taskId) {taskService.deleteById(taskId);return "redirect:/employer/myTasks";}/*** 跳转到任务竞标者管理页面** @return*/@GetMapping("taskBidders")public String manageBidders(Long taskId, Model model) {// 查询任务信息TaskVo taskVo = taskService.getById(taskId);// 放置域对象中model.addAttribute("task", taskVo);return "employer/manage_bidders";}/*** 中标:接受投标** @param taskId* @return*/@GetMapping("acceptBid")public String acceptBid(Long taskId, Long employeeId) {bidService.acceptBid(taskId, employeeId);return "redirect:/employer/myTasks";}/*** 确定完成任务** @param taskId* @return*/@GetMapping("task/success")public String successTask(Long taskId) {taskService.successTask(taskId);return "redirect:/employer/myTasks";}/*** 跳转到个人信息设置页面** @return*/@GetMapping("settings/base")public String settings(HttpSession session, Model model) {// 获取 session 中的雇员信息Employer employer = (Employer) session.getAttribute("employer");model.addAttribute("employer", employer);return "employer/settings_base";}/*** 保存个人基本信息** @param employer* @return*/@PostMapping("settings/base/save")public String saveBase(Employer employer, HttpSession session) {// 更新个人信息到数据库Employer currEmployer = employerService.save(employer);// 更新 session 中的个人信息session.setAttribute("employer", currEmployer);return "redirect:/employer/settings/base";}/*** 跳转到修改密码页** @return*/@GetMapping("settings/password")public String updatePass() {return "employer/settings_pass";}/*** 修改密码** @param password 原来的密码* @param newPassword 新密码* @return*/@PostMapping("settings/password")public String updatePass(String password, String newPassword, HttpSession session, RedirectAttributes redirectAttributes) {// 查询雇员登录信息Employer employer = (Employer) session.getAttribute("employer");String msg = employerService.updatePass(employer.getId(), password, newPassword);redirectAttributes.addFlashAttribute("msg", msg);return "redirect:/employer/settings/password";}}

雇员控制器:

/*** 雇员控制器**/@Controller@RequestMapping("employee")public class EmployeeController {@Resourceprivate EmployeeService employeeService;@Resourceprivate TaskService taskService;@Resourceprivate HomeBowerService homeBowerService;@Resourceprivate EmployeeBookmarkedService employeeBookmarkedService;@Resourceprivate BidService bidService;/*** 雇员退出登录** @param session* @return*/@GetMapping("logout")public String logout(HttpSession session) {session.removeAttribute("employee");return "redirect:/index";}/*** 跳转到个人中心** @return*/@GetMapping("dashboard")public String dashboard(HttpSession session, Model model) {// 获取雇员登录信息Employee employee = (Employee) session.getAttribute("employee");// 查询雇员任务投标总中标数Integer bidCount = taskService.getByBidEmployeeId(employee.getId());// 主页总浏览次数Integer bowerCount = employeeService.getBowerCount(employee.getId());// 最新主页浏览情况List<HomeBowerVo> homeBowerVos = homeBowerService.getByRecentlyEmployeeId(employee.getId());// 放置域对象中,供页面展示model.addAttribute("bidCount", bidCount);model.addAttribute("bowerCount", bowerCount);model.addAttribute("homeBowers", homeBowerVos);return "employee/dashboard";}/*** 收藏或取消收藏任务** @param taskId* @return*/@PostMapping("bookmarked")@ResponseBodypublic EmployeeBookmarked bookmarked(Long taskId, HttpSession session) {// 获取雇员的登录信息Employee employee = (Employee) session.getAttribute("employee");// 收藏或取消收藏任务EmployeeBookmarked employeeBookmarked = employeeBookmarkedService.bookmarked(employee.getId(), taskId);return employeeBookmarked;}/*** 跳转到我的收藏页面** @return*/@GetMapping("bookmarks")public String bookmarks(HttpSession session, Model model) {// 获取雇员登录信息Employee employee = (Employee) session.getAttribute("employee");// 获取收藏的任务集合List<EmployeeBookmarkedVo> bookMarks = employeeBookmarkedService.getByEmployeeId(employee.getId());// 放置到域对象中,方便页面展示model.addAttribute("bookMarks", bookMarks);return "employee/bookmarks";}/*** 删除收藏任务** @param taskId 任务 ID* @return*/@PostMapping("bookmarks/remove")@ResponseBodypublic String bookmarks(Long taskId, HttpSession session) {// 获取雇员登录信息Employee employee = (Employee) session.getAttribute("employee");// 删除收藏信息employeeBookmarkedService.remove(employee.getId(), taskId);return "删除收藏信息";}/*** 查询已完成任务** @param session* @return*/@GetMapping("/task/completed")public String completedTask(HttpSession session, Model model) {// 获取雇员登录信息Employee employee = (Employee) session.getAttribute("employee");// 查询出已完成的订单List<TaskVo> taskVos = taskService.getCompletedByEmployeeId(employee.getId());// 放置到域对象中model.addAttribute("tasks", taskVos);return "employee/completed_task";}/*** 跳转到待完成任务** @param session* @param model* @return*/@GetMapping("/task/uncompleted")public String unCompletedTask(HttpSession session, Model model) {// 获取雇员登录信息Employee employee = (Employee) session.getAttribute("employee");// 查询出未完成的订单List<TaskVo> taskVos = taskService.getUnCompletedByEmployeeId(employee.getId());// 放置到与对象中model.addAttribute("tasks", taskVos);// 跳转到待完成任务列表页return "employee/uncompleted_task";}/*** 雇员提交任务** @param session* @return*/@PostMapping("/task/submit")@ResponseBodypublic String submitTask(Long taskId, HttpSession session) {// 获取雇员登录信息Employee employee = (Employee) session.getAttribute("employee");// 雇员提交信息taskService.submitTask(employee.getId(), taskId);return "任务提交成功 ,等待雇主确认!";}/*** 跳转到我的竞标页面** @param session* @return*/@GetMapping("mybids")public String myBid(HttpSession session, Model model) {// 获取雇员登录信息Employee employee = (Employee) session.getAttribute("employee");// 查询所有未中标的信息List<BidVo> bidVos = bidService.getNoBitByEmployeeId(employee.getId());// 放置域对象中,供页面展示model.addAttribute("bids", bidVos);return "employee/my_bids";}/*** 删除竞标信息** @param bid* @return*/@GetMapping("bid/delete")public String deleteBid(Long bid) {bidService.deleteById(bid);return "redirect:/employee/mybids";}/*** 跳转到个人信息设置页面** @return*/@GetMapping("settings/base")public String settings(HttpSession session, Model model) {// 获取 session 中的雇员信息Employee employee = (Employee) session.getAttribute("employee");// 获取视图展示对象,主要是为了展示技能信息,因为 Employee 中只有 技能 ID 没有技能名称EmployeeVo employeeVo = employeeService.getById(employee.getId());model.addAttribute("employee", employeeVo);return "employee/settings_base";}/*** 保存个人基本信息** @param employee* @return*/@PostMapping("settings/base/save")public String saveBase(Employee employee, HttpSession session) {// 更新个人信息到数据库Employee currEmployee = employeeService.save(employee);// 更新 session 中的个人信息session.setAttribute("employee", currEmployee);return "redirect:/employee/settings/base";}/*** 跳转到修改密码页** @return*/@GetMapping("settings/password")public String updatePass() {return "employee/settings_pass";}/*** 修改密码** @param password 原来的密码* @param newPassword 新密码* @return*/@PostMapping("settings/password")public String updatePass(String password, String newPassword, HttpSession session, RedirectAttributes redirectAttributes) {// 查询雇员登录信息Employee employee = (Employee) session.getAttribute("employee");String msg = employeeService.updatePass(employee.getId(), password, newPassword);redirectAttributes.addFlashAttribute("msg", msg);return "redirect:/employee/settings/password";}/*** 跳转到雇员简介页面** @return*/@GetMapping("profile")public String profile(Long employeeId, Model model, HttpSession session) {// 查询雇员信息EmployeeVo employee = employeeService.getById(employeeId);// 查询历史完成任务List<TaskVo> taskVos = taskService.getByEmployeeId(employeeId);// 查询雇员总完成任务数Integer completeCount = taskService.getCompletedByEmployeeId(employeeId).size();// 如果雇主登录了,主页访问次数加 1Employer employer = (Employer) session.getAttribute("employer");if (employer != null) {employeeService.bower(employeeId, employer.getId());}// 主页总浏览次数Integer bowerCount = employeeService.getBowerCount(employee.getId());model.addAttribute("employee", employee);model.addAttribute("tasks", taskVos);model.addAttribute("completeCount", completeCount);model.addAttribute("bowerCount", bowerCount);return "employee_profile";}/*** 添加技能** @param skillName 技能名称* @return*/@PostMapping("skill/add")@ResponseBodypublic String addSkill(String skillName, HttpSession session) {Employee employee = (Employee) session.getAttribute("employee");if (!"".equals(skillName)) {employeeService.addSkill(employee.getId(), skillName);}return "添加技能";}/*** 删除技能** @param skillId* @return*/@PostMapping("skill/delete")@ResponseBodypublic String deleteSkill(Long skillId) {employeeService.deleteSkill(skillId);return "删除技能";}}

源码获取:博客首页 "资源" 里下载!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。