项目介绍
该项目是一个大学生校园兼职讨论平台,分为前台和后台功能,主要用户有三种角色:分别是商家、学生、管理员。商家可以发布兼职信息,发布后,管理员进入后台确认信息是否有效,并且审核该兼职信息。学生登录平台后,可以查看兼职信息,并且,可以在线和商家聊天,聊天的内容持久化到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版本;
技术栈
后端:Spring SpringMVC MyBatis前端:JSP+jQuery+Layui
使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;将项目中yml配置文件中的数据库配置改为自己的配置使用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
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
/*** 更新任务** @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*/
}return "添加技能";}/*** 删除技能** @param skillId* @return*/@PostMapping("skill/delete")@ResponseBodypublic String deleteSkill(Long skillId) {employeeService.deleteSkill(skillId);return "删除技能";}}管理员控制器:/*** 管理员控制器*
* @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
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("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());// 任务提交完成
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);
// 查询雇主信息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);
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
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());
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");
}/*** 跳转到任务发布页面** @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);
public String deleteSkill(Long skillId) {employerService.deleteSkill(skillId);return "删除技能";}/*** 更新任务** @param task 任务* @return*/@PostMapping("task/update")public String updateTask(Task task, String upload, RedirectAttributes redirectAttributes) {// 修改任务