• 基于springboot的教师科研信息管理系统(含ssm版本)


    博主主页猫头鹰源码

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

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

    文末联系获取

    项目介绍:

    该系统创作于2022年3月,分为两个版本,springboot和ssm整合,数据库设计详细。数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:教师、科研、论文管理、科研管理等。

    项目功能:

    1. 开发完成一个涉及教师基本信息、学习经历、承担的科研项目以及论文、著作等成果的管理信息系统,满足对项目、成果信息的查询、汇总等需求。系统分为教师和管理员两个角色
    2. 教师
    3. 登录注册,修改密码,退出系统
    4. 查看修改个人基本信息
    5. 增删改自己的学习经历,科研项目和论文、著作成果并提交管理员进行审核
    6. 管理员
    7. 人才管理:显示所有教师的信息,统计教师的人数,增删改查教师信息
    8. 科研管理:显示所有的科研项目以及论文、著作等成果信息,并进行统计,增删改查信息
    9. 科研审核:审核通过,审核不通过;审核不通过,退回教师那,教师可以进行编辑修改,重新提交审核
    10. 可以看到所有教师的科研项目和论文、著作成果并进行查询

    模型:

     

    数据库表结构文档:

    系统包含技术:

    后端:SSM/springboot
    前端:layui,js,css等,html页面
    开发工具:idea
    数据库:mysql 5.7
    JDK版本:jdk1.8
    tomcat版本:tomcat8

    部分截图说明:

    下面是登录

    管理员-首页

    管理员-人才管理

     

     管理员-科研项目管理

     管理员-著作成果管理

     管理员-论文管理

    教师-论文维护

    教师-新增科研项目

    部分代码:

    拦截器

    1. @Override
    2. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    3. HttpSession session = request.getSession();
    4. if(session.getAttribute("userInfo") != null){
    5. return true;
    6. }
    7. // 不符合条件的给出提示信息,并转发到主页面
    8. request.setAttribute("msg", "您还没有登录,请先登录!");
    9. request.getRequestDispatcher("/logout").forward(request, response);
    10. //返回true通过,返回false拦截
    11. return false;
    12. }

    登录

    1. /**
    2. * 进入首页
    3. */
    4. @RequestMapping(value = "/index")
    5. public String index(HttpSession session) {
    6. String type = (String)session.getAttribute("type");
    7. if(type==null || type.equals("")){
    8. return "login";
    9. }
    10. if(type.equals("01")){
    11. Admin admin = (Admin)session.getAttribute("userInfo");
    12. if(admin==null){
    13. return "login";
    14. }
    15. }
    16. if(type.equals("02")){
    17. Teacher teacher = (Teacher)session.getAttribute("userInfo");
    18. if(teacher==null){
    19. return "login";
    20. }
    21. }
    22. return "index";
    23. }
    24. /**
    25. * 进入个人中心
    26. */
    27. @RequestMapping(value = "/profile")
    28. public String profile() {
    29. return "profile";
    30. }
    31. /**
    32. * 登录
    33. * 将提交数据(username,password)写入Admin对象
    34. */
    35. @RequestMapping(value = "/login")
    36. @ResponseBody
    37. public String login(String username, String password, String type, Model model, HttpSession session) {
    38. Map mp = new HashMap();
    39. mp.put("username",username);
    40. mp.put("password",password);
    41. if(username.equals("") || password.equals("")){
    42. return "202";
    43. }
    44. if(type.equals("01")){
    45. List<Admin> admins = adminService.queryFilter(mp);
    46. if(admins!=null && admins.size()==1){
    47. session.setAttribute("userInfo", admins.get(0));
    48. session.setAttribute("type", "01");
    49. }else{
    50. return "201";
    51. }
    52. }else{
    53. List<Teacher> teachers = teacherService.queryFilter(mp);
    54. if(teachers!=null && teachers.size()==1){
    55. session.setAttribute("userInfo", teachers.get(0));
    56. session.setAttribute("type", "02");
    57. }else{
    58. return "201";
    59. }
    60. }
    61. return "200";
    62. }

    论文操作

    1. /**进入列表页面*/
    2. @GetMapping("/paper")
    3. public String userIframe(Model model, HttpServletRequest request){
    4. HttpSession session = request.getSession();
    5. String type = (String)session.getAttribute("type");
    6. if(type.equals("02")){
    7. Teacher teacher = (Teacher)session.getAttribute("userInfo");
    8. Map mps = new HashMap();
    9. mps.put("id",teacher.getId());
    10. List<Teacher> teacherList = teacherService.queryFilter(mps);
    11. model.addAttribute("teacherList",teacherList);
    12. }else{
    13. List<Teacher> teacherList = teacherService.findAll();
    14. model.addAttribute("teacherList",teacherList);
    15. }
    16. return "PaperList";
    17. }
    18. /**列表数据*/
    19. @GetMapping("/list")
    20. @ResponseBody
    21. public PageResultVo findPaper(Paper paper, Integer limit, Integer page, HttpServletRequest request){
    22. HttpSession session = request.getSession();
    23. String type = (String)session.getAttribute("type");
    24. if(type.equals("02")){
    25. Teacher teacher = (Teacher)session.getAttribute("userInfo");
    26. paper.setTid(String.valueOf(teacher.getId()));
    27. }
    28. PageHelper.startPage(page,limit);
    29. List<Paper> paperList = paperService.selectByCondition(paper);
    30. PageInfo<Paper> pages = new PageInfo<>(paperList);
    31. return JsonData.table(paperList,pages.getTotal());
    32. }
    33. /**
    34. * 文件上传
    35. */
    36. @RequestMapping(value = "/uploadFile")
    37. @ResponseBody
    38. public JSONObject uploadFile(HttpServletRequest request) throws IOException {
    39. JSONObject jsonObject = new JSONObject();
    40. try {
    41. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    42. //使用UUID给图片重命名,并去掉四个“-”
    43. // 获取上传的文件
    44. MultipartFile multiFile = multipartRequest.getFile("file");
    45. SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
    46. String name = sf.format(new Date());
    47. //获取文件的扩展名
    48. String ext = FilenameUtils.getExtension(multiFile.getOriginalFilename());
    49. //以绝对路径保存重名命后的图片
    50. multiFile.transferTo(new File(fileUpload+"/"+name + "." + ext));
    51. jsonObject.put("code",name + "." + ext);
    52. return jsonObject;
    53. } catch (Exception e) {
    54. e.printStackTrace();
    55. jsonObject.put("code", 0);
    56. return jsonObject;
    57. }
    58. }

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

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

  • 相关阅读:
    C++11新特性(一)
    备战2023高企申报?先准备这些,通过率更高
    【SpringBoot框架篇】29.Jpa+vue实现单模型的低代码平台
    S5的未来:即将到来的协议改进和可能性
    C++函数重载和重写
    这些好看的皮肤,这不嗖的一下,统统都到电脑里了~
    Web3中文|马斯克也疯狂?网红AI “ChatGPT”有多火?
    Python数据可视化:如何选择合适的图表可视化?
    编译miracl
    linux操作sshd
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/127038083