• 基于springboot+vue的大学生科创项目在线管理系统


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

    本系统适合选题:大学生、科创项目、在线管理、科创、创新创业、前后端分离等。系统采用springboot+vue整合开发,前端框架主要使用了element-ui框架、数据层采用mybatis,功能齐全,界面美观。

    功能介绍:

    系统包含技术:

    后端:springboot,mybatis
    前端:element-ui、js、css等
    开发工具:idea/vscode
    数据库:mysql 5.7
    JDK版本:jdk1.8

    部分截图说明:

    下面是首页

    公告列表

    公告详情

    论坛 

    帖子详情

    登录

    学生管理

    项目类型管理

    论坛管理

    科研项目管理

    部分代码:

    1. /**
    2. * 后端列表
    3. */
    4. @RequestMapping("/page")
    5. public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
    6. logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    7. String role = String.valueOf(request.getSession().getAttribute("role"));
    8. if(StringUtil.isEmpty(role))
    9. return R.error(511,"权限为空");
    10. else if("学生".equals(role))
    11. params.put("yonghuId",request.getSession().getAttribute("userId"));
    12. else if("教师".equals(role))
    13. params.put("jiaoshiId",request.getSession().getAttribute("userId"));
    14. if(params.get("orderBy")==null || params.get("orderBy")==""){
    15. params.put("orderBy","id");
    16. }
    17. PageUtils page = forumService.queryPage(params);
    18. //字典表数据转换
    19. List<ForumView> list =(List<ForumView>)page.getList();
    20. for(ForumView c:list){
    21. //修改对应字典表字段
    22. dictionaryService.dictionaryConvert(c, request);
    23. }
    24. return R.ok().put("data", page);
    25. }
    26. /**
    27. * 后端详情
    28. */
    29. @RequestMapping("/info/{id}")
    30. public R info(@PathVariable("id") Long id, HttpServletRequest request){
    31. logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    32. ForumEntity forum = forumService.selectById(id);
    33. if(forum !=null){
    34. //entity转view
    35. ForumView view = new ForumView();
    36. BeanUtils.copyProperties( forum , view );//把实体数据重构到view中
    37. //级联表
    38. JiaoshiEntity jiaoshi = jiaoshiService.selectById(forum.getJiaoshiId());
    39. if(jiaoshi != null){
    40. BeanUtils.copyProperties( jiaoshi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
    41. view.setJiaoshiId(jiaoshi.getId());
    42. }
    43. //级联表
    44. YonghuEntity yonghu = yonghuService.selectById(forum.getYonghuId());
    45. if(yonghu != null){
    46. BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
    47. view.setYonghuId(yonghu.getId());
    48. }
    49. //管理员用户表做特殊处理,防止和用户表账户姓名字段冲突
    50. UsersEntity users = usersService.selectById(forum.getUsersId());
    51. if(users != null){
    52. view.setUsersId(users.getId());
    53. view.setUusername(users.getUsername());
    54. view.setUpassword(users.getPassword());
    55. view.setUrole(users.getRole());
    56. view.setUaddtime(users.getAddtime());
    57. }
    58. //修改对应字典表字段
    59. dictionaryService.dictionaryConvert(view, request);
    60. return R.ok().put("data", view);
    61. }else {
    62. return R.error(511,"查不到数据");
    63. }
    64. }
    65. /**
    66. * 后端保存
    67. */
    68. @RequestMapping("/save")
    69. public R save(@RequestBody ForumEntity forum, HttpServletRequest request){
    70. logger.debug("save方法:,,Controller:{},,forum:{}",this.getClass().getName(),forum.toString());
    71. String role = String.valueOf(request.getSession().getAttribute("role"));
    72. if(StringUtil.isEmpty(role))
    73. return R.error(511,"权限为空");
    74. else if("学生".equals(role))
    75. forum.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    76. else if("教师".equals(role))
    77. forum.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    78. else if("管理员".equals(role))
    79. forum.setUsersId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    80. Wrapper<ForumEntity> queryWrapper = new EntityWrapper<ForumEntity>()
    81. .eq("forum_name", forum.getForumName())
    82. .eq("yonghu_id", forum.getYonghuId())
    83. .eq("jiaoshi_id", forum.getJiaoshiId())
    84. .eq("users_id", forum.getUsersId())
    85. .eq("super_ids", forum.getSuperIds())
    86. .eq("forum_state_types", forum.getForumStateTypes())
    87. ;
    88. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    89. ForumEntity forumEntity = forumService.selectOne(queryWrapper);
    90. if(forumEntity==null){
    91. forum.setInsertTime(new Date());
    92. forum.setCreateTime(new Date());
    93. forumService.insert(forum);
    94. return R.ok();
    95. }else {
    96. return R.error(511,"表中有相同数据");
    97. }
    98. }
    99. /**
    100. * 后端修改
    101. */
    102. @RequestMapping("/update")
    103. public R update(@RequestBody ForumEntity forum, HttpServletRequest request){
    104. logger.debug("update方法:,,Controller:{},,forum:{}",this.getClass().getName(),forum.toString());
    105. String role = String.valueOf(request.getSession().getAttribute("role"));
    106. // if(StringUtil.isEmpty(role))
    107. // return R.error(511,"权限为空");
    108. // else if("学生".equals(role))
    109. // forum.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    110. // else if("教师".equals(role))
    111. // forum.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    112. // else if("管理员".equals(role))
    113. // forum.setUsersId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    114. //根据字段查询是否有相同数据
    115. Wrapper<ForumEntity> queryWrapper = new EntityWrapper<ForumEntity>()
    116. .notIn("id",forum.getId())
    117. .andNew()
    118. .eq("forum_name", forum.getForumName())
    119. .eq("yonghu_id", forum.getYonghuId())
    120. .eq("jiaoshi_id", forum.getJiaoshiId())
    121. .eq("users_id", forum.getUsersId())
    122. .eq("super_ids", forum.getSuperIds())
    123. .eq("forum_state_types", forum.getForumStateTypes())
    124. ;
    125. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    126. ForumEntity forumEntity = forumService.selectOne(queryWrapper);
    127. forum.setUpdateTime(new Date());
    128. if(forumEntity==null){
    129. // String role = String.valueOf(request.getSession().getAttribute("role"));
    130. // if("".equals(role)){
    131. // forum.set
    132. // }
    133. forumService.updateById(forum);//根据id更新
    134. return R.ok();
    135. }else {
    136. return R.error(511,"表中有相同数据");
    137. }
    138. }

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    Anaconda中同一个虚拟环境安装pytorch和tensorflow
    latex,横线除号
    民商法领域的论文选题求推荐?
    【Springboot】事件机制发布与订阅的使用实践
    Django常见面试题总结(二)
    Linux系统中,文件类型主要分为哪几类?
    瑞吉外卖项目 基于spring Boot+mybatis-plus开发 超详细笔记,有源码链接
    204、你知道无线工程项目中无线AP有五种组网模式吗
    微前端实际应用
    [C++] 超详细分析 C++内存分布、管理(new - delete) ~ C 和 C++ 内存管理关系 ~ 内存泄漏 ~
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/133212548