首页 > 编程语言 >基于SpringBoot+Vue的毕业设计成绩管理系统设计与实现毕设(文档+源码)

基于SpringBoot+Vue的毕业设计成绩管理系统设计与实现毕设(文档+源码)

时间:2024-09-25 20:55:00浏览次数:10  
标签:Vue return request biyeluenwen 源码 role 毕业设计 biyeluenwenEntity id

        大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是 一款基于SpringBoot+Vue的毕业设计成绩管理系统,项目源码请点击文章末尾联系我哦~目前有各类成品 毕设 JavaWeb  SSM SpringBoot等等项目框架,源码丰富,欢迎咨询。 

一、项目介绍

        传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装毕业设计成绩管理系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,毕业设计成绩管理系统的有效运用可以帮助管理人员准确快速地处理信息。

        毕业设计成绩管理系统是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和统计,以及数据查询等处理要求,毕业设计成绩管理系统都可以轻松应对。

关键词:毕业设计成绩管理系统;SpringBoot框架,系统分析,数据库设计

二、开发环境

开发系统:Windows
JDK版本:Java JDK1.8(推荐)
开发工具:IDEA/MyEclipse(推荐IDEA)
数据库版本: mysql8.0(推荐)
数据库可视化工具: navicat
服务器:SpringBoot自带 apache tomcat
框架:springboot,vue

三、功能介绍

        户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息。毕业论文管理页面,此页面提供给管理员的功能有:查看已发布的毕业论文数据,修改毕业论文,毕业论文作废,即可删除,还进行了对毕业论文名称的模糊查询 毕业论文信息的类型查询等等一些条件。公告类型管理页面,此页面提供给管理员的功能有:根据公告类型进行条件查询,还可以对公告类型进行新增、修改、查询操作等等。公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。

四、核心代码

/**
 * 毕业论文
 * 后端接口
 * @author
 * @email
*/
@RestController
@Controller
@RequestMapping("/biyeluenwen")
public class BiyeluenwenController {
    private static final Logger logger = LoggerFactory.getLogger(BiyeluenwenController.class);

    @Autowired
    private BiyeluenwenService biyeluenwenService;


    @Autowired
    private TokenService tokenService;
    @Autowired
    private DictionaryService dictionaryService;

    //级联表service
    @Autowired
    private YonghuService yonghuService;

    @Autowired
    private PingyuejiaoshiService pingyuejiaoshiService;
    @Autowired
    private DabianmishuService dabianmishuService;
    @Autowired
    private ZhidaojiaoshiService zhidaojiaoshiService;


    /**
    * 后端列表
    */
    @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("yonghuId",request.getSession().getAttribute("userId"));
        else if("评阅教师".equals(role))
            params.put("pingyuejiaoshiId",request.getSession().getAttribute("userId"));
        else if("答辩秘书".equals(role))
            params.put("dabianmishuId",request.getSession().getAttribute("userId"));
        else if("指导教师".equals(role))
            params.put("zhidaojiaoshiId",request.getSession().getAttribute("userId"));
        if(params.get("orderBy")==null || params.get("orderBy")==""){
            params.put("orderBy","id");
        }
        PageUtils page = biyeluenwenService.queryPage(params);

        //字典表数据转换
        List<BiyeluenwenView> list =(List<BiyeluenwenView>)page.getList();
        for(BiyeluenwenView 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);
        BiyeluenwenEntity biyeluenwen = biyeluenwenService.selectById(id);
        if(biyeluenwen !=null){
            //entity转view
            BiyeluenwenView view = new BiyeluenwenView();
            BeanUtils.copyProperties( biyeluenwen , view );//把实体数据重构到view中

                //级联表
                YonghuEntity yonghu = yonghuService.selectById(biyeluenwen.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody BiyeluenwenEntity biyeluenwen, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,biyeluenwen:{}",this.getClass().getName(),biyeluenwen.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("用户".equals(role))
            biyeluenwen.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<BiyeluenwenEntity> queryWrapper = new EntityWrapper<BiyeluenwenEntity>()
            .eq("yonghu_id", biyeluenwen.getYonghuId())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        BiyeluenwenEntity biyeluenwenEntity = biyeluenwenService.selectOne(queryWrapper);
        if(biyeluenwenEntity==null){
            biyeluenwen.setBiyeluenwenYesnoTypes(1);
            biyeluenwen.setCreateTime(new Date());
            biyeluenwenService.insert(biyeluenwen);
            return R.ok();
        }else {
            return R.error(511,"只能添加一条数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody BiyeluenwenEntity biyeluenwen, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,biyeluenwen:{}",this.getClass().getName(),biyeluenwen.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("用户".equals(role))
//            biyeluenwen.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        //根据字段查询是否有相同数据
        Wrapper<BiyeluenwenEntity> queryWrapper = new EntityWrapper<BiyeluenwenEntity>()
            .notIn("id",biyeluenwen.getId())
            .andNew()
            .eq("zhonggaoshenhe_name", biyeluenwen.getZhonggaoshenheName())
            .eq("yonghu_id", biyeluenwen.getYonghuId())
            .eq("biyeluenwen_yesno_types", biyeluenwen.getBiyeluenwenYesnoTypes())
            .eq("biyeluenwen_num", biyeluenwen.getBiyeluenwenNum())
            .eq("biyeluenwen_yesno_text", biyeluenwen.getBiyeluenwenYesnoText())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        BiyeluenwenEntity biyeluenwenEntity = biyeluenwenService.selectOne(queryWrapper);
        if("".equals(biyeluenwen.getZhonggaoshenheFile()) || "null".equals(biyeluenwen.getZhonggaoshenheFile())){
                biyeluenwen.setZhonggaoshenheFile(null);
        }
        if(biyeluenwenEntity==null){
            BiyeluenwenEntity biyeluenwenEntity1 = biyeluenwenService.selectById(biyeluenwen.getId());
            if(biyeluenwenEntity1.getBiyeluenwenYesnoTypes() == 3){
                biyeluenwen.setBiyeluenwenYesnoTypes(1);
            }
            biyeluenwenService.updateById(biyeluenwen);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }


    /**
    * 审核
    */
    @RequestMapping("/shenhe")
    public R shenhe(@RequestBody BiyeluenwenEntity biyeluenwenEntity, HttpServletRequest request){
        logger.debug("shenhe方法:,,Controller:{},,biyeluenwenEntity:{}",this.getClass().getName(),biyeluenwenEntity.toString());

//        if(biyeluenwenEntity.getBiyeluenwenYesnoTypes() == 2){//通过
//            biyeluenwenEntity.setBiyeluenwenTypes();
//        }else if(biyeluenwenEntity.getBiyeluenwenYesnoTypes() == 3){//拒绝
//            biyeluenwenEntity.setBiyeluenwenTypes();
//        }
        biyeluenwenService.updateById(biyeluenwenEntity);//审核
        return R.ok();
    }

    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        biyeluenwenService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

五、效果图

六、源码获取:

标签:Vue,return,request,biyeluenwen,源码,role,毕业设计,biyeluenwenEntity,id
From: https://blog.csdn.net/m0_48205251/article/details/142317969

相关文章

  • Java毕业设计:基于Springboo律师事务所预约网站毕业设计源代码作品和开题报告怎么写
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • Java毕业设计:基于Springboot网球场地预约网站管理系统毕业设计源代码作品和开题报告怎
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • 大数据毕业设计选题推荐-手机销售数据分析系统-Hive-Hadoop-Spark
    ✨作者主页:IT毕设梦工厂✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项......
  • vue的发展历程
    Vue.js的发展历程:2013年底:Vue.js由尤雨溪作为个人实验项目开始开发。2014年2月:Vue.js公开发布。2014年11月:发布0.11版本。2016年10月:发布2.0版本,引入了虚拟DOM,提高了渲染效率,并实现了数据的双向绑定。2020年9月:Vue3发布,带来了CompositionAPI、更好的TypeScript支持等新特性......
  • springboot+vue杂志销售系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网应用的普及,传统杂志销售模式正面临着前所未有的挑战与机遇。传统纸质杂志的销售依赖于实体书店、报刊亭等渠道,不仅成本高、效率低,且难以精准触达目标读者群体。同时,数字化阅读趋势的兴起,使得读者对于杂......
  • springboot+vue优选社区电商平台【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着互联网的飞速发展和智能手机的普及,电子商务已成为人们日常生活不可或缺的一部分。近年来,社区电商作为一种新兴的电商模式,凭借其贴近消费者、快速响应需求、降低物流成本等优势,迅速崛起并受到广泛关注。特别是在新冠疫情的影响下,社......
  • springboot+vue在线图书分享与交易平台【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和数字化阅读的普及,传统的图书借阅与交易模式正逐步向线上转移。在线图书分享与交易平台应运而生,旨在打破地域限制,促进图书资源的有效流通与共享。当前,虽然市场上已存在多个图书电商平台和数字图书馆,但专注于......
  • springboot+vue租房网站【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着城市化进程的加速,人口流动日益频繁,租房已成为许多城市居民解决居住需求的重要方式。然而,传统的租房模式往往面临着信息不对称、中介费用高昂、房源真实性难以验证等问题,给租房者带来了诸多不便。随着互联网技术的飞速发展,网络租房......
  • Java毕业设计-基于SSM框架的校园失物招领平台系统项目实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • Java毕业设计-基于SSM框架的网上奶茶店系统项目实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......