目 录
摘要 I
Abstract II
1 绪论 1
1.1 课题背景 1
1.2 课题意义 1
1.3 课题内容 1
1.4 论文的组织结构 1
2 系统需求分析 3
2.1 需求分析 3
2.2 功能分析 4
2.2.1 院校新闻发布功能 4
2.2.2 班级管理功能 5
3.2.3 院校组织管理功能 6
3.2.4 校友论坛功能 6
3.2.5 院校职业招聘功能 7
3.2.6 校园服务功能 7
3.2.7 用户个人中心功能 8
2.4 技术路线 9
3 系统总体设计 11
3.1 系统总体设计 11
3.1.1 系统登录 11
3.1.2 新闻中心 11
3.1.3 班级录 11
3.1.4 校友组织 11
3.1.5 校友论坛 11
3.1.6 职位招聘 12
3.1.7 校园服务 12
3.1.8 个人中心 12
3.2 系统功能设计 12
3.2.1 新闻中心 12
3.2.2 班记录 13
3.2.3 校友组织 14
3.2.4 校友论坛 14
3.2.5 职业招聘 15
3.2.6 校园服务 16
3.2.8 个人中心 16
3.3 数据库设计 17
3.3.1 概念模型设计 17
3.3.2 逻辑结构设计 25
4 系统详细设计 37
4.1 班级录 37
4.1.1 班级首页 38
4.1.2 班级动态 40
4.1.3 班级通讯录 42
4.1.4 班级相册 43
4.2 职业招聘 44
4.2.1 发布招聘 44
4.2.2 查询招聘 45
4.2.3 招聘详情 46
4.2.4 投递简历 47
4.3 校友论坛 48
4.3.1 论坛广场 48
4.3.2 发布新帖 49
4.3.3 帖子详情 49
结论 51
致谢 52
参考文献 53
2 系统需求分析
2.1 需求分析
中国同学录网的调查显示,用户最关心的是班级信息、班级留言、同学联系方式和同学照片等。不同用户对系统的需求不同,但是基本功能需求是一致的,包括:对班级管理,用户可以查询并加入自己所在的班级;对班级留言的管理,用户可以在班级里查看、添加或修改留言;对班级通讯录的管理,用户可以查看班级成员的相关信息。考虑到网络的现况和同学们以及毕业生跟踪调查的各种需求,系统应该具有各方面的交流能力和实时的用户反馈信息,能够实现留言、上传照片、评论等功能,同时具有方便的后台管理功能。同学录系统能够实现同学们生活中的交流,拥有自己的空间,与此同时,校方管理员能够了解毕业生的就业情况,并为毕业生提供就业服务,包括向毕业生投送招聘信息,接收毕业生所在单位的招聘信息。这也有助于改善教学方案,从而更好地让本校毕业生适应社会需求。系统主要功能有:
(1)系统用户的登录、注册。注册,由管理员将历届学生的学号、姓名导入数据库,学号作为用户的用户名;登录,输入用户输入用户名(学号)和密码登录系统;
(2)校园新闻发布中心功能:新闻发布,后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息;新闻评论,用户可以对新闻信息发表评论,回复评论,动态加载地评论;新闻热度,用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息;
(3)同学交流的班级录功能。班级检索,按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;班级排名,根据班级人数、活跃时间对班级进行热度排名;班级主页,每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;班级管理,班级的新增、管理员的设置由后台管理员完成;
(4) 校友互动的团体组织功能。校友总会,院校总会;院系分会,各学院的校友组织;社团分会,院校内的各种社团、协会的组织;学生协会,院校内的各学生协会组织;组织主页,个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理;
(5)校友话题参与的论坛功能。帖子浏览,按作者、主题检索帖子,查看详情,对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;热帖推送,用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;发布新帖,用户登录后可以发布帖子;贴子管理,管理员可审核、置顶、删除帖子;
(6) 职位招聘信息推送功能。招聘广场,浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;简历投送,用户可以向喜欢的招聘信息投送个人简历;简历管理,用户可以新增简历、编辑简历、删除简历;单位管理,用户可以登记、编辑自己所在单位的信息;发布招聘,用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场;
(7)招生就业的校园服务。校内服务,包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;招生就业服务,包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息;
(8)用户个人管理中心。个人资料,基本资料、 详细资料、 工作信息、 头像设置;账户设置,密码修改、邮箱绑定;我的班级,用户加入的班级相关信息;我的论坛,用户早论坛的相关信息;我的招聘,用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。
2.2 功能分析
基于对校友录系统的需求分析,校友录系统有新闻中心功能,管理员发布管理图文信息,用户可以浏览、评论新闻信息。校友录系统设置班记录功能,给班级同学提供班级空间,班级空间内有交流平台、班级相册,这是同学比较关心的功能。同时,校友录系统具有校友组织功能,校友可以加入校内的组织和团体,组织有自己的空间给组织成员提供交流平台。为给广大校友提供更大的交流平台,校友录系统提供校友论坛功能,校友可以浏览话题并参与讨论。为满足院校对招聘信息推送的需求,校友录系统应加入职业招聘模块,院校管理员发布招聘信息,用户浏览并投递简历,用户也可以发布自己所在单位的招聘信息,经管理员审核后发不到招聘广场。本文转载自http://www.biyezuopin.vip/onews.asp?id=13645为更好地微笑有提供入学、就业服务,校友录系统设有校园服务,为校友提供校园指南和就业服务。最后,校友录系统为用户提供个人中心功能,对个人信息以及在站内的应用进行管理。
2.4 技术路线
本系统采用业内流行的SpringMVC+Spring+MyBatis框架(简称SSM),由项目构建工具Maven构建,并使用Git版本控制系统辅助项目开发。
Git是一个便捷的分布式版本控制工具,本项目用Git进行管理,可以轻松地备份项目,控制项目的版本,并且能够更安全地开发、调试。
Maven可以通过项目对象模型配置文件(pom.xml)轻松地构建项目,不用将jar包添加到项目,缩小了项目的体积。本系统使用Maven构建父模块ar-parent,并聚合了三个子模块ar-common、ar-manage、ar-portal。ar-common是项目的公共基础模块,java应用类的模型,包含实体类、工具类、数据访问对象等,依赖Spring、MyBatis等。ar-manage是本系统的后台管理模块,web应用类的模型,依赖ar-common、Spring、SpringMVC等。Ar-poratl是本系统的门户网站模块,依赖ar-common、ar-manage、Spring、SpringMVC等。Maven可以将web应用类项目打包成war并发布到tomcat服务器运行测试。
本系统充分利用Spring的IoC(控制反转)和AOP(面向切面)特性,将创建用户的SpringMVC控制器Controller、业务逻辑类Service、数据访问类Mapper交由Spring Container管理,生成对应的bean(也称组件), 并把实现类的类名作为bean的id。当控制器、业务逻辑类、数据访问类需要Spring Container中bean对应的实现类时,Spring Container通过依赖注入机制为其注入对应的bean。通过这种配置,系统实现了控制器和业务逻辑类分离,业务逻辑类和数据访问类分离。SpringMVC中的DispatcherServlet接收请求,并交由控制器Controller处理,Controller接收参数、调用业务逻辑类中的方法,通过ModelAndView视图模型返回jsp页面、json数据。
本系统的视图层采用jsp、HTML,通过事件触发机制向服务器端发送请求,并采用Bootstrap、AmazeUI、HTML5、CSS3等前台样式,通过c标签、javascript、jquery处理前台数据。

/**  * @Title: RecruitController.java* @Package com.xzit.ar.manage.controller.job* @Description: TODO* @author Mr.Black* @version V1.0  */
package com.xzit.ar.manage.controller.job;import java.util.Date;
import java.util.List;
import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;import com.xzit.ar.common.base.BaseController;
import com.xzit.ar.common.exception.ServiceException;
import com.xzit.ar.common.init.context.ARContext;
import com.xzit.ar.common.page.Page;
import com.xzit.ar.common.po.recruit.Recruit;
import com.xzit.ar.common.po.recruit.RecruitUnit;
import com.xzit.ar.common.util.CommonUtil;
import com.xzit.ar.manage.service.job.FlatService;
import com.xzit.ar.manage.service.job.JobService;/*** @ClassName: RecruitController* @Description: TODO 后台招聘管理处理* @author Mr.Black* @date 2016年2月9日 下午4:04:14*/
@Controller
@RequestMapping("/job")
public class JobController extends BaseController {@Resourceprivate JobService jobService;@Resourceprivate FlatService flatService;@RequestMapping(value = "")public String indexJob(Model model) {return "job/job-index";}@RequestMapping("/queryJobs")public String queryJobs(Model model, String queryStr, String stateStr) throws ServiceException {Page<Map<String, Object>> page = new Page<>(getPageIndex(), getPageSize());// 默认加载的数据的状态if (stateStr == null) {stateStr = "A";}jobService.queryJobs(page, queryStr, stateStr);model.addAttribute("page", page);model.addAttribute("queryStr", queryStr);model.addAttribute("stateStr", stateStr);return "job/job-query";}@RequestMapping("/detailJob")public String detailJob(Model model, @RequestParam("recruitId") Integer recruitId) throws ServiceException {// 根据 id 查询招聘信息Map<String, Object> recruit = jobService.getDetailJob(recruitId);// 解析 福利待遇String benefit = (String) recruit.get("benefit");// 传递参数if (CommonUtil.isNotEmpty(benefit)) {String[] benefits = benefit.split(",");recruit.remove("benefit");model.addAttribute("benefits", benefits);}model.addAttribute("job", recruit);return "job/job-detail";}/*** @Title: setTopJob @Description: TODO 招聘信息置顶 @return String @throws*/@RequestMapping(value = "/setTopJob", method = RequestMethod.POST)public String setTopJob(Model model, @RequestParam("recruitId") Integer recruitId) throws ServiceException {jobService.setTopJob(recruitId);return "redirect:queryJobs.action";}/*** @Title: cancelTopJob* @Description: TODO 取消置顶*/@RequestMapping(value = "/cancelTopJob", method = RequestMethod.POST)public String cancelTopJob(Model model, @RequestParam("recruitId") Integer recruitId) throws ServiceException {jobService.cancelTopJob(recruitId);return "redirect:queryJobs.action";}/*** @Title: auditJob* @Description: TODO 审核操作*/@RequestMapping(value = "/auditJob", method = RequestMethod.POST)public String auditJob(Model model, @RequestParam("recruitId") Integer recruitId) throws ServiceException {int row = jobService.auditJob(recruitId);if (row > 0) {setMessage(model, "审核成功!");}return "redirect:queryJobs.action";}@RequestMapping(value = "/auditJobs", method = RequestMethod.POST)public String auditJobs(Model model, @RequestParam("recruitIds") String recruitIds) throws ServiceException {int row = jobService.auditJobs(CommonUtil.splitIds(recruitIds));if (row > 0) {setMessage(model, "审核成功!");} else {setMessage(model, "审核失败!");}return "redirect:queryJobs.action";}/*** @Title: deleteJob* @Description: TODO 根据recruitId删除Job*/@RequestMapping(value = "/removeJob", method = RequestMethod.POST)public String removeJob(Model model, RedirectAttributes attr, @RequestParam("recruitId") Integer recruitId)throws ServiceException {int row = jobService.removeJob(recruitId);if (row > 0) {setMessage(model, "删除成功");}return "forward:queryJobs.action";}/*** @Title: removeJobs* @Description: TODO 批量删除* @param @param*            model* @param @param*            attr* @param @param*            recruitId*/@RequestMapping(value = "/removeJobs", method = RequestMethod.POST)public String removeJobs(Model model, RedirectAttributes attr, @RequestParam("recruitIds") String recruitIds)throws ServiceException {int row = jobService.removeJobs(CommonUtil.splitIds(recruitIds));if (row > 0) {setMessage(model, "删除成功");}return "forward:queryJobs.action";}/*** @Title: deleteJob* @Description: TODO 删除记录* @param @param*            model* @param @param*            recruitId*/@RequestMapping(value = "/deleteJob", method = RequestMethod.POST)public String deleteJob(Model model, @RequestParam("recruitId") Integer recruitId) throws ServiceException {int row = jobService.deleteJob(recruitId);if (row > 0) {setMessage(model, "彻底删除成功");}return "forward:queryJobs.action";}@RequestMapping(value = "/deleteJobs", method = RequestMethod.POST)public String deleteJobs(Model model, @RequestParam("recruitIds") String recruitIds) throws ServiceException {int row = jobService.deleteJobs(CommonUtil.splitIds(recruitIds));if (row > 0) {setMessage(model, "已彻底删除");}return "forward:queryJobs.action";}@RequestMapping("/createJob")public String createJob(Model model, Integer unitId) throws ServiceException {// 判断是否有单位信息,没有则选择/创建if (CommonUtil.isEmpty(unitId)) {// 判断当前用户创建公司情况List<RecruitUnit> unitList = flatService.getUnitsByUserId(getCurrentUserId());if (CommonUtil.isEmpty(unitList)) {// 创建新的return "forward:/flat/createFlat.action";} else if (unitList.size() > 0) {// 选择已经创建的model.addAttribute("flatList", unitList);return "job/flat/flat-select";}}// 加载招聘常量model.addAttribute("jobSalary", ARContext.positionSalary);model.addAttribute("jobBenefit", ARContext.positionBenefit);model.addAttribute("jobProf", ARContext.positionProf);model.addAttribute("unitId", unitId);super.setFormValid();return "job/job-add";}/*** @Title: createJobSubmit* @Description: TODO 招聘发布信息提交至后台*/@RequestMapping(value = "/createJobSubmit", method = RequestMethod.POST)public String createJobSubmit(Model model, RedirectAttributes attr, Recruit recruit) throws ServiceException {if (!validForm()) {setMessage(model, "发布失败!重复发布导致");return "job/job-result";} else {// 参数设定recruit.setCreateTime(new Date());recruit.setResumes(0);recruit.setUserId(getCurrentUserId());recruit.setState("A");recruit.setStateTime(new Date());if (jobService.createJob(recruit) > 0) {setMessage(model, "发布成功!");}}return "job/job-result";}/*** @Title: recoverJob* @Description: TODO 恢复数据*/@RequestMapping(value = "/recoverJob", method = RequestMethod.POST)public String recoverJob(Model model, @RequestParam("recruitId") Integer recruitId) throws ServiceException {int row = jobService.recoverJob(recruitId);if (row > 0) {setMessage(model, "数据成功恢复到未审核状态");}return "forward:queryJobs.action";}/*** @Title: recoverJobs* @Description: TODO 恢复数据*/@RequestMapping(value = "/recoverJobs", method = RequestMethod.POST)public String recoverJobs(Model model, RedirectAttributes attr, @RequestParam("recruitIds") String recruitIds)throws ServiceException {int row = jobService.recoverJobs(CommonUtil.splitIds(recruitIds));if (row > 0) {setMessage(model, "数据成功恢复到未审核状态");}return "forward:queryJobs.action";}
}


















基于SSM的校友录同学录系统相关推荐

  1. java 同学录校友录代码_基于jsp的校友录同学录-JavaEE实现校友录同学录 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的校友录同学录, 该项目可用各类java课程设计大作业中, 校友录同学录的系统架构分为前后台两部分, 最终实现在线上 ...

  2. 基于SSM实现校友录管理平台

    项目编号:BS-PT-019 后台开发技术:SSM框架 前端开发技术:Bootstrap+Jquery+Ajax 开发工具:IDEA / ECLIPSE 基于MAVEN开发 数据库:MYSQL5.7 ...

  3. 基于JavaWeb的校友录同学录管理系统

    文档+开题报告+外文翻译及原文+项目源码及数据库文件 [摘要] 随着社会和经济的飞速发展,人们的生活节奏越来越快,生活压力也随着增加.为了提高自己的生活质量和水平,人们把自己越来越多的时间投入到工作之 ...

  4. 基于SSM的医院挂号就诊系统

    随着计算机科技的快速发展,很多地方都实现了自动化管理,医院也不例外.在大多数医院,无论是挂号处,还是取药的窗口,都会看到有很长的队伍,很显然这样会让患者就医的过程中浪费太多的时间.其次,对于那些年长的 ...

  5. 基于Java+JSP+MySQL基于SSM的医院挂号就诊系统——计算机毕业设计

    随着计算机科技的快速发展,很多地方都实现了自动化管理,医院也不例外.在大多数医院,无论是挂号处,还是取药的窗口,都会看到有很长的队伍,很显然这样会让患者就医的过程中浪费太多的时间.其次,对于那些年长的 ...

  6. 基于Java+JSP+MySQL基于SSM的医院挂号就诊系统

    随着计算机科技的快速发展,很多地方都实现了自动化管理,医院也不例外.在大多数医院,无论是挂号处,还是取药的窗口,都会看到有很长的队伍,很显然这样会让患者就医的过程中浪费太多的时间.其次,对于那些年长的 ...

  7. Java+JSP+MySQL基于SSM的医院挂号就诊系统

    随着计算机科技的快速发展,很多地方都实现了自动化管理,医院也不例外.在大多数医院,无论是挂号处,还是取药的窗口,都会看到有很长的队伍,很显然这样会让患者就医的过程中浪费太多的时间.其次,对于那些年长的 ...

  8. 计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署 本源码技术栈: ...

  9. 基于SSM实现校园失物招领系统

    项目编号:BS-XX-046 后台技术:SSM框架 前端技术:BootStrap+Jquery+Layui 数据库:Mysql5.7 应用服务器:Tomcat8.5.31 开发工具:IDEA / Ec ...

最新文章

  1. 存储能否导致ESXi网络性能问题?
  2. where 1=1 是什么鬼?
  3. php点击字切换验证码,PHP生成图片验证码、点击切换实例 Web程序 - 贪吃蛇学院-专业IT技术平台...
  4. 统一处理jquery ajax请求过程中的异常错误信息的机制
  5. Kubernetes安全之认证
  6. Python基础知识点总结
  7. 北大青鸟ASP.NET之总结篇
  8. Spring Boot系列教程六:日志输出配置log4j2
  9. SpringBoot的注解@Qualifier用法
  10. 支持向量机SVM的学习笔记
  11. python获取文件修改时间与创建时间
  12. 按层次遍历二叉树_LeetCode | 102.二叉树的层次遍历
  13. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_7_静态同步方法...
  14. vue生成txt文件下载
  15. SpeechSynthesisUtterance 语音合成使用 文字语音播报
  16. 2020-05-08 工作中英语单词积累
  17. 简单介绍一下用加速度传感器修正角速度传感器(陀螺仪)累计误差的原理
  18. 签张回执单 保险合同就生效?
  19. 【科普】苹果ARM版Mac发布会——大人,时代变了
  20. Unable to register Log4j shutdown hook because JVM is shutting down. Using SimpleLogger 问题分析

热门文章

  1. RSA非对称加密核心算法
  2. 工业互联网不能没有“数据智能”心
  3. 湎计算机网络通讯设备有哪些,计算机网络习题集及答案.pdf
  4. cics中间件考试_CICS常用命令
  5. #萌新日志#4.使用Python定时发送微信消息
  6. 利用超级电容给系统供电真的靠谱吗?
  7. 宁波大学c语言理论考试试题科目一,c丨科目一理论考试
  8. 第四代语言计算机语言,第四代程序设计语言是什么程序语言
  9. “微课”让高中信息技术课堂“翻转”出高效率
  10. 分享一款好用的分割标注软件