目录
大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是 一款基于SpringBoot+Vue的毕业论文管理系统,项目源码请点击文章末尾联系我哦~目前有各类成品 毕设 JavaWeb SSM SpringBoot等等项目框架,源码丰富,欢迎咨询。
一、项目介绍
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本毕业论文管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此毕业论文管理系统利用当下成熟完善的springBoot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发.毕业论文管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
关键词:毕业论文管理系统;springBoot框架;Mysql;自动化
二、开发环境
开发系统:Windows
JDK版本:Java JDK1.8(推荐)
开发工具:IDEA/MyEclipse(推荐IDEA)
数据库版本: mysql8.0(推荐)
数据库可视化工具: navicat
服务器:SpringBoot自带 apache tomcat
框架:springboot,vue
三、功能介绍
用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,还进行了对用户名称的模糊查询的条件。指导教师管理页面,此页面提供给管理员的功能有:查看已发布的指导教师数据,修改指导教师,指导教师作废,即可删除。课题类型管理页面,此页面提供给管理员的功能有:根据课题类型进行条件查询,还可以对课题类型进行新增、修改、查询操作等等。公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。
四、核心代码
/**
* 课题任务
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/ketirenwu")
public class KetirenwuController {
private static final Logger logger = LoggerFactory.getLogger(KetirenwuController.class);
@Autowired
private KetirenwuService ketirenwuService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
@Autowired
private ZhidaojiaoshiService zhidaojiaoshiService;
@Autowired
private XuantishenqingService xuantishenqingService;
@Autowired
private YonghuService yonghuService;
/**
* 后端列表
*/
@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(false)
return R.error(511,"永不会进入");
else if("指导教师".equals(role))
params.put("jiaoshiId",request.getSession().getAttribute("userId"));
else if("用户".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
PageUtils page = ketirenwuService.queryPage(params);
//字典表数据转换
List<KetirenwuView> list =(List<KetirenwuView>)page.getList();
for(KetirenwuView 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);
KetirenwuEntity ketirenwu = ketirenwuService.selectById(id);
if(ketirenwu !=null){
//entity转view
KetirenwuView view = new KetirenwuView();
BeanUtils.copyProperties( ketirenwu , view );//把实体数据重构到view中
//级联表
ZhidaojiaoshiEntity jiaoshi = zhidaojiaoshiService.selectById(ketirenwu.getZhidaojiaoshiId());
if(jiaoshi != null){
BeanUtils.copyProperties( jiaoshi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setZhidaojiaoshiId(jiaoshi.getId());
}
//级联表
XuantishenqingEntity xuantishenqing = xuantishenqingService.selectById(ketirenwu.getXuantishenqingId());
if(xuantishenqing != null){
BeanUtils.copyProperties( xuantishenqing , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setXuantishenqingId(xuantishenqing.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody KetirenwuEntity ketirenwu, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,ketirenwu:{}",this.getClass().getName(),ketirenwu.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
else if("指导教师".equals(role))
ketirenwu.setZhidaojiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
Wrapper<KetirenwuEntity> queryWrapper = new EntityWrapper<KetirenwuEntity>()
.eq("zhidaojiaoshi_id", ketirenwu.getZhidaojiaoshiId())
.eq("xuantishenqing_id", ketirenwu.getXuantishenqingId())
.eq("ketirenwu_name", ketirenwu.getKetirenwuName())
.eq("ketirenwu_types", ketirenwu.getKetirenwuTypes())
.eq("ketirenwu_yesno_types", ketirenwu.getKetirenwuYesnoTypes())
.eq("ketirenwu_yesno_text", ketirenwu.getKetirenwuYesnoText())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
KetirenwuEntity ketirenwuEntity = ketirenwuService.selectOne(queryWrapper);
if(ketirenwuEntity==null){
ketirenwu.setKetirenwuYesnoTypes(1);
ketirenwu.setInsertTime(new Date());
ketirenwu.setCreateTime(new Date());
ketirenwuService.insert(ketirenwu);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody KetirenwuEntity ketirenwu, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,ketirenwu:{}",this.getClass().getName(),ketirenwu.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
// else if("指导教师".equals(role))
// ketirenwu.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
//根据字段查询是否有相同数据
Wrapper<KetirenwuEntity> queryWrapper = new EntityWrapper<KetirenwuEntity>()
.notIn("id",ketirenwu.getId())
.andNew()
.eq("zhidaojiaoshi_id", ketirenwu.getZhidaojiaoshiId())
.eq("xuantishenqing_id", ketirenwu.getXuantishenqingId())
.eq("ketirenwu_name", ketirenwu.getKetirenwuName())
.eq("ketirenwu_types", ketirenwu.getKetirenwuTypes())
.eq("ketirenwu_yesno_types", ketirenwu.getKetirenwuYesnoTypes())
.eq("ketirenwu_yesno_text", ketirenwu.getKetirenwuYesnoText())
.eq("insert_time", ketirenwu.getInsertTime())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
KetirenwuEntity ketirenwuEntity = ketirenwuService.selectOne(queryWrapper);
if("".equals(ketirenwu.getKetirenwuFile()) || "null".equals(ketirenwu.getKetirenwuFile())){
ketirenwu.setKetirenwuFile(null);
}
if("".equals(ketirenwu.getKetirenwuHuidaFile()) || "null".equals(ketirenwu.getKetirenwuHuidaFile())){
ketirenwu.setKetirenwuHuidaFile(null);
}
if(ketirenwuEntity==null){
KetirenwuEntity ketirenwuEntity1 = ketirenwuService.selectById(ketirenwu.getId());
if(ketirenwuEntity1.getKetirenwuYesnoTypes() == 3){
ketirenwu.setKetirenwuYesnoTypes(1);
}
ketirenwuService.updateById(ketirenwu);//根据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());
ketirenwuService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
五、效果图
六、源码获取:
同系统在主页搜索资源可下载~