大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是 一款基于SpringBoot+Vue的大学生就业需求分析管理系统,项目源码请点击文章末尾联系我哦~目前有各类成品 毕设 JavaWeb SSM SpringBoot等等项目框架,源码丰富,欢迎咨询。
一、项目介绍
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的大学生就业需求分析系统实现了字典管理、公司管理、简历管理、简历投递管理、学生就业信息管理、邀请面试管理、用户管理、招聘信息管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让大学生就业需求分析系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
关键字:信息管理,时效性,安全性,MySql
二、开发环境
开发系统:Windows
JDK版本:Java JDK1.8(推荐)
开发工具:IDEA/MyEclipse(推荐IDEA)
数据库版本: mysql8.0(推荐)
数据库可视化工具: navicat
服务器:SpringBoot自带 apache tomcat
框架:springboot,vue
三、功能介绍
管理员管理学生就业信息的数据,主要实现学生就业信息的增加、修改、删除、查看的功能。招聘信息管理页面提供的功能操作有:新增招聘,修改招聘,删除招聘操作。招聘岗位类型管理页面显示所有招聘岗位类型,在此页面既可以让管理员添加新的招聘信息类型,也能对已有的招聘岗位类型信息执行编辑更新,失效的招聘岗位类型信息也能让管理员快速删除。
四、核心代码
/**
* 简历投递
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/toudi")
public class ToudiController {
private static final Logger logger = LoggerFactory.getLogger(ToudiController.class);
@Autowired
private ToudiService toudiService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
@Autowired
private JianliService jianliService;
@Autowired
private ZhaopinService zhaopinService;
@Autowired
private YonghuService yonghuService;
@Autowired
private GongsiService gongsiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"权限为空");
else if("学生".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
else if("公司".equals(role))
params.put("gongsiId",request.getSession().getAttribute("userId"));
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
PageUtils page = toudiService.queryPage(params);
//字典表数据转换
List<ToudiView> list =(List<ToudiView>)page.getList();
for(ToudiView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c, request);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
ToudiEntity toudi = toudiService.selectById(id);
if(toudi !=null){
//entity转view
ToudiView view = new ToudiView();
BeanUtils.copyProperties( toudi , view );//把实体数据重构到view中
//级联表
JianliEntity jianli = jianliService.selectById(toudi.getJianliId());
if(jianli != null){
BeanUtils.copyProperties( jianli , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setJianliId(jianli.getId());
}
//级联表
ZhaopinEntity zhaopin = zhaopinService.selectById(toudi.getZhaopinId());
if(zhaopin != null){
BeanUtils.copyProperties( zhaopin , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setZhaopinId(zhaopin.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody ToudiEntity toudi, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,toudi:{}",this.getClass().getName(),toudi.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"权限为空");
else if("学生".equals(role)){
YonghuEntity yonghuEntity = yonghuService.selectById(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
JianliEntity jianli = jianliService.selectOne(new EntityWrapper<JianliEntity>().eq("yonghu_id", yonghuEntity.getId()));
if(jianli != null ){
toudi.setJianliId(jianli.getId());
}else{
return R.error(511,"该学生没有简历,请先添加简历");
}
}
Wrapper<ToudiEntity> queryWrapper = new EntityWrapper<ToudiEntity>()
.eq("jianli_id", toudi.getJianliId())
.eq("zhaopin_id", toudi.getZhaopinId())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
ToudiEntity toudiEntity = toudiService.selectOne(queryWrapper);
if(toudiEntity==null){
toudi.setInsertTime(new Date());
toudi.setCreateTime(new Date());
toudiService.insert(toudi);
return R.ok();
}else {
return R.error(511,"该学生已经投递过该简历");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody ToudiEntity toudi, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,toudi:{}",this.getClass().getName(),toudi.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(StringUtil.isEmpty(role))
// return R.error(511,"权限为空");
//根据字段查询是否有相同数据
Wrapper<ToudiEntity> queryWrapper = new EntityWrapper<ToudiEntity>()
.notIn("id",toudi.getId())
.andNew()
.eq("jianli_id", toudi.getJianliId())
.eq("zhaopin_id", toudi.getZhaopinId())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
ToudiEntity toudiEntity = toudiService.selectOne(queryWrapper);
if(toudiEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// toudi.set
// }
toudiService.updateById(toudi);//根据id更新
return R.ok();
}else {
return R.error(511,"该学生已经投递过该简历");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
toudiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
五、效果图
六、源码获取:
👇🏻获取联系方式在文章末尾👇🏻
有需要的伙伴可以点击下方名片,与我联系哦~