项目编号:BS-PT-068
一,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
开发技术:SSM框架+JSP
二,项目简介
毕业生就业管理系统,主要实现对毕业生学生就业信息进行管理操作,包含企业用户,学生用户和管理员平台用户,完成对企业的招聘信息管理,学生应聘就业信息管理,简历信息管理,就业政策的管理和在线留言信息。前端用户可以实现在线查看岗位和招聘信息,查看就业政策,新闻资读信息,宣讲会信息,在线讨论等功能。前端的功能菜单可以有管理员在后台自主的添加和维护管理。系统有前端和后端完整的功能和设计优美的界面,适合做毕业设计使用。
整个系统采用三层架构开发设计实现,使用了MVC设计模式进行设计,结构清晰明了,系统维护方便。
三,系统展示
系统前端功能页面
招聘职位查询
职位详情
企业端用户登录管理
四,核心代码展示
package com.biyeshengjiuye.controller.admin; import com.alibaba.fastjson.JSON; import com.biyeshengjiuye.entity.Menu; import com.biyeshengjiuye.service.MenuService; import com.biyeshengjiuye.utils.*; import com.biyeshengjiuye.vo.MenuVo; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.*; @RestController @RequestMapping("/admin/menu") public class FrontDeskMenuController{ //注入MenuService @Resource private MenuService menuService; /** * 加载菜单管理页面的左侧导航树 * @return */ @RequestMapping("/loadMenuTree") public DataGridViewResult loadMenuTree(){ //调用查询所有菜单列表的方法 List<Menu> menuList = menuService.findFrontDeskMenuList(); //创建集合保存节点信息 List<TreeNode> treeNodes = new ArrayList<TreeNode>(); //循环遍历菜单列表集合 for (Menu menu : menuList) { //判断当前菜单是否展开 Boolean spread = (menu.getSpread()==null || menu.getSpread()==1) ? true : false; //将菜单信息保存到treeNodes集合中 treeNodes.add(new TreeNode(menu.getId(),menu.getPid(),menu.getTitle(),spread)); } //返回数据 return new DataGridViewResult(treeNodes); } /** * 分页查询菜单列表 * @param menuVo * @return */ @RequestMapping("/list") public DataGridViewResult list(MenuVo menuVo){ //设置分页信息 PageHelper.startPage(menuVo.getPage(),menuVo.getLimit()); //调用查询菜单列表的方法 List<Menu> menuList = menuService.findMenuListByPage(menuVo); //创建分页对象 PageInfo<Menu> pageInfo = new PageInfo<Menu>(menuList); //返回数据 return new DataGridViewResult(pageInfo.getTotal(),pageInfo.getList()); } /** * 添加菜单 * @param menu * @return */ @RequestMapping("/addMenu") public String add(Menu menu){ Map<String,Object> map = new HashMap<String,Object>(); //调用新增菜单的方法 if(menuService.addMenu(menu)>0){ map.put(SystemConstant.SUCCESS,true); map.put(SystemConstant.MESSAGE,"添加成功"); }else{ map.put(SystemConstant.SUCCESS,false); map.put(SystemConstant.MESSAGE,"添加失败"); } return JSON.toJSONString(map); } /** * 修改菜单 * @param menu * @return */ @RequestMapping("/updateMenu") public String updateMenu(Menu menu){ Map<String,Object> map = new HashMap<String,Object>(); //调用修改菜单的方法 if(menuService.updateMenu(menu)>0){ map.put(SystemConstant.SUCCESS,true); map.put(SystemConstant.MESSAGE,"修改成功"); }else{ map.put(SystemConstant.SUCCESS,false); map.put(SystemConstant.MESSAGE,"修改失败"); } return JSON.toJSONString(map); } /** * 判断该菜单是否有子菜单 * @param id * @return */ @RequestMapping("/checkMenuHasChild") public String checkMenuHasChild(Integer id){ Map<String,Object> map = new HashMap<String,Object>(); //调用查询菜单的方法 if(menuService.getMenuCountByMenuId(id)>0){ map.put(SystemConstant.EXIST,true); map.put(SystemConstant.MESSAGE,"该菜单下有子菜单,无法删除"); }else{ map.put(SystemConstant.EXIST,false); } return JSON.toJSONString(map); } /** * 删除菜单 * @param id * @return */ @RequestMapping("/deleteById") public String deleteById(Integer id){ Map<String,Object> map = new HashMap<String,Object>(); //调用删除菜单的方法 if(menuService.deleteById(id)>0){ map.put(SystemConstant.SUCCESS,true); map.put(SystemConstant.MESSAGE,"删除成功"); }else{ map.put(SystemConstant.SUCCESS,false); map.put(SystemConstant.MESSAGE,"删除失败"); } return JSON.toJSONString(map); } }
package com.biyeshengjiuye.controller; import com.alibaba.fastjson.JSON; import com.biyeshengjiuye.utils.SystemConstant; import com.biyeshengjiuye.utils.UUIDUtils; import org.apache.commons.io.FilenameUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; @RestController @RequestMapping("/file") public class FileController { /** * 文件上传 * @param file * @return */ @RequestMapping("/uploadFile") public String uploadFile(MultipartFile file){ //创建Map集合保存返回的JSON数据 Map<String,Object> map = new HashMap<String,Object>(); //判断是否有选中文件 if(!file.isEmpty()){ //获取源文件的名称 String oldFileName = file.getOriginalFilename(); //获取文件的后缀名 String extension = FilenameUtils.getExtension(oldFileName); //重命名旧文件 String newFileName = UUIDUtils.randomUUID()+"."+extension; //为了解决同一个文件夹下文件过多的问题,使用日期作为文件夹管理 String datePath = new SimpleDateFormat("yyyyMMdd").format(new Date()); //组装最终的文件名 String finalName = datePath + "/" + newFileName; //创建文件对象 //参数1:文件上传的地址 参数2:文件名称 File dest = new File(SystemConstant.IMAGE_UPLOAD_PATH,finalName); //判断该文件夹是否存在,不存在则创建文件夹 if(!dest.getParentFile().exists()){ dest.getParentFile().mkdirs();//创建文件夹 } try { //进行文件上传 file.transferTo(dest); map.put("code",0);//状态码 map.put("msg","上传成功");//执行消息 Map<String,Object> dataMap = new HashMap<String,Object>(); dataMap.put("src","/hotel/show/"+finalName); map.put("data",dataMap);//文件数据 map.put("imagePath",finalName);//隐藏域的值,只保留日期文件夹+重命名后的文件名 } catch (IOException e) { e.printStackTrace(); } } return JSON.toJSONString(map); } }
package com.biyeshengjiuye.controller; import com.alibaba.fastjson.JSON; import com.biyeshengjiuye.entity.Enterprise; import com.biyeshengjiuye.entity.Menu; import com.biyeshengjiuye.service.MenuService; import com.biyeshengjiuye.utils.MenuNode; import com.biyeshengjiuye.utils.SystemConstant; import com.biyeshengjiuye.utils.TreeUtil; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("menu") public class MenuController { @Resource private MenuService menuService; @RequestMapping("/loadMenuList") public String loadMenuList(HttpSession session,String id) { //创建Map集合,保存MenuInfo菜单信息 Map<String, Object> map = new LinkedHashMap<String, Object>(); //创建Map集合,保存homeInfo信息 Map<String, Object> homeInfo = new LinkedHashMap<String, Object>(); //创建Map集合,保存logoInfo信息 Map<String, Object> logoInfo = new LinkedHashMap<String, Object>(); //调用查询所有菜单列表的方法 Enterprise enterprise = (Enterprise) session.getAttribute(SystemConstant.ENTERPRISELOGIN); List<Menu> menuList = null; if (id.equals("enterprise") && enterprise != null){ //根据当前用户的角色动态显示菜单列表 menuList = menuService.findMenuListByEnterprise(enterprise.getE_id()); //保存HomeInfo信息 homeInfo.put("title", "首页"); homeInfo.put("href", "/enterprise/desktop"); logoInfo.put("title", "企业管理系统");//logo标题 logoInfo.put("href", "/enterpriseHome.html");//首页地址 }else if (id.equals("admin")){ menuList = menuService.findMenuList();//该方法无论是哪个角色的用户登录,都能够查询所有的功能模块 //保存HomeInfo信息 homeInfo.put("title", "首页"); homeInfo.put("href", "/admin/desktop"); logoInfo.put("title", "系统管理系统");//logo标题 logoInfo.put("href", "/admin/home.html");//首页地址 } //创建集合,保存菜单关系 List<MenuNode> menuNodeList = new ArrayList<MenuNode>(); //循环遍历菜单列表,目的是创建菜单之间层级关系 for (Menu m : menuList) { //创建菜单节点对象 MenuNode menuNode = new MenuNode(); menuNode.setHref(m.getHref());//链接地址 menuNode.setIcon(m.getIcon());//菜单图标 menuNode.setId(m.getId());//菜单编号 menuNode.setPid(m.getPid());//父级菜单编号 menuNode.setSpread(m.getSpread());//是否展开 menuNode.setTarget(m.getTarget());//打开方式 menuNode.setTitle(m.getTitle());//菜单名称 //将对象添加到集合 menuNodeList.add(menuNode); } //保存logoInfo信息 logoInfo.put("image", "/statics/layui/images/logo.png");//logo图片 //将菜单信息添加到MenuInfo集合中 map.put("menuInfo", TreeUtil.toTree(menuNodeList, 0)); map.put("homeInfo", homeInfo); map.put("logoInfo", logoInfo); return JSON.toJSONString(map); } @RequestMapping("/getMenu") public String getMenu(){ Map<String, Object> map = new LinkedHashMap<String, Object>(); //调用查询所有菜单列表的方法 List<Menu> menuList = menuService.findFrontDeskMenuList(); //创建集合,保存菜单关系 List<MenuNode> menuNodeList = new ArrayList<MenuNode>(); //循环遍历菜单列表,目的是创建菜单之间层级关系 for (Menu m : menuList) { //创建菜单节点对象 MenuNode menuNode = new MenuNode(); menuNode.setHref(m.getHref());//链接地址 menuNode.setIcon(m.getIcon());//菜单图标 menuNode.setId(m.getId());//菜单编号 menuNode.setPid(m.getPid());//父级菜单编号 menuNode.setSpread(m.getSpread());//是否展开 menuNode.setTarget(m.getTarget());//打开方式 menuNode.setTitle(m.getTitle());//菜单名称 //将对象添加到集合 menuNodeList.add(menuNode); } map.put("menuInfo", TreeUtil.toTree(menuNodeList, 0)); return JSON.toJSONString(map); } }
五,相关作品展示
基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目
基于Nodejs、Vue等前端技术开发的前端实战项目
基于微信小程序和安卓APP应用开发的相关作品
基于51单片机等嵌入式物联网开发应用
基于各类算法实现的AI智能应用
基于大数据实现的各类数据管理和推荐系统