著者のホームページ:千羽鶴のプログラミング
著者について: Java、フロントエンド、Python は長年にわたって開発されており、シニア エンジニア、プロジェクト マネージャー、アーキテクトとして働いてきました。
主な内容:Javaプロジェクト開発、Pythonプロジェクト開発、大学データ・AIプロジェクト開発、MCUプロジェクト設計、インタビュー技術整理、最新技術共有
お気に入り、いいね、迷わず作者フォローすると良いです
記事の最後にあるソースコードを入手してください
商品番号:BS-PT-068
1. 環境紹介
ロケール: Java: jdk1.8
データベース: MySQL: mysql5.7
アプリケーションサーバー: Tomcat: tomcat8.5.31
開発ツール: IDEA または eclipse
開発技術:SSMフレームワーク+JSP
2. プロジェクト紹介
大学院雇用管理システムは、主に企業ユーザー、学生ユーザー、管理者プラットフォームユーザーを含む大学院生雇用情報の管理と運用を実現し、企業採用情報管理、学生雇用情報管理、履歴書情報管理、雇用政策管理を完了します。オンラインメッセージ情報。フロントエンドユーザーは、求人および採用情報のオンライン閲覧、雇用政策の閲覧、ニュースおよび読み物情報、プレゼンテーション情報、オンラインディスカッションおよびその他の機能を実現できます。フロントエンド機能メニューは、管理者がバックグラウンドで独立して追加および保守できます。このシステムは、完全なフロントエンドおよびバックエンド機能と、卒業プロジェクトに適した美しくデザインされたインターフェイスを備えています。
システム全体は 3 層アーキテクチャを使用して開発および設計されており、設計には MVC 設計パターンを使用しており、構造が明確で、システムの保守が容易です。
三、システム表示
システムフロントエンド機能ページ
仕事探し
仕事の詳細
エンタープライズユーザーのログイン管理
4番目、コアコード表示
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);
}
}
5. 関連作品の展示
Java開発、Python開発、PHP開発、C#開発、その他関連言語開発をベースにした実践的なプロジェクト
Nodejs、Vue等のフロントエンド技術をベースに開発されたフロントエンド実践プロジェクト
WeChatアプレットおよびAndroid APPアプリケーション開発に基づく関連作品
51個のシングルチップマイコンをベースとした組み込みIoTの開発と応用
さまざまなアルゴリズムに基づくAIインテリジェントアプリケーション
ビッグデータを活用した各種データ管理・レコメンドシステム