微信小程序|Springboot+Node+Vue实现学科竞赛管理系统(二)

简介: 微信小程序|Springboot+Node+Vue实现学科竞赛管理系统

微信小程序|Springboot+Node+Vue实现学科竞赛管理系统(一)https://developer.aliyun.com/article/1423239


四,核心代码展示

1. package com.sang.subjectcompetition.controller;
2. 
3. import com.sang.subjectcompetition.entity.Comp;
4. import com.sang.subjectcompetition.entity.Project;
5. import com.sang.subjectcompetition.entity.Teacher_Project;
6. import com.sang.subjectcompetition.entity.resultInfo.CompResult;
7. import com.sang.subjectcompetition.service.CompService;
8. import com.sang.subjectcompetition.service.ProjectService;
9. import org.apache.logging.log4j.util.PropertySource;
10. import org.springframework.beans.factory.annotation.Autowired;
11. import org.springframework.web.bind.annotation.*;
12. 
13. import java.util.Comparator;
14. import java.util.List;
15. 
16. @RestController
17. @RequestMapping("/comp")
18. public class CompController {
19. 
20. @Autowired
21. private CompService compService;
22. 
23. @Autowired
24. private ProjectService projectService;
25. 
26. /**
27.      * 返回全部的竞赛信息
28.      * @return
29.      */
30. @PostMapping("/getAllComps")
31. public List<Comp> selectAllComp(){
32.         List<Comp> allComps = compService.getAllComps();
33.         allComps.sort(Comparator.naturalOrder());
34. return allComps;
35.     }
36. 
37. /**
38.      * 发布竞赛/更新
39.      * @param comp
40.      * @return
41.      */
42. @PostMapping("/addComp")
43. public String addComp(Comp comp){
44. CompResult compResult = compService.createComp(comp);
45. return compResult.getMessage();
46.     }
47. 
48. /**
49.      * 多条件模糊查询
50.      * @return
51.      */
52. @PostMapping("/moreSearch")
53. public List<Comp> moreSearch(Comp comp){
54.         String compName=comp.getCompName();
55.         String organizer=comp.getOrganizer();
56.         Integer level=comp.getLevel();
57.         String subjectType=comp.getSubjectType();
58.         String place=comp.getPlace();
59.         Integer compState=comp.getCompState();
60. return compService.getCompsBySelf(compName,organizer,level,subjectType,place,compState);
61.     }
62. 
63. /**
64.      * 根据Id返回竞赛的项目
65.      */
66. @GetMapping("/getProjectLists/{compId}")
67. public List<Project> getProjectLists(@PathVariable Integer compId){
68.         List<Project> projectsBycompId = projectService.getProjectsBycompId(compId);
69. return projectService.getProjectsBycompId(compId);
70.     }
71. 
72. }
1. package com.sang.subjectcompetition.controller;
2. 
3. import com.sang.subjectcompetition.entity.*;
4. import com.sang.subjectcompetition.entity.resultInfo.MessageResult;
5. import com.sang.subjectcompetition.respository.AdminRepository;
6. import com.sang.subjectcompetition.respository.CollegeRepository;
7. import com.sang.subjectcompetition.respository.StudentRepository;
8. import com.sang.subjectcompetition.respository.TeacherRepository;
9. import com.sang.subjectcompetition.service.MessageService;
10. import org.springframework.beans.factory.annotation.Autowired;
11. import org.springframework.web.bind.annotation.GetMapping;
12. import org.springframework.web.bind.annotation.PathVariable;
13. import org.springframework.web.bind.annotation.RequestMapping;
14. import org.springframework.web.bind.annotation.RestController;
15. 
16. import java.util.ArrayList;
17. import java.util.HashMap;
18. import java.util.List;
19. import java.util.Map;
20. 
21. @RestController
22. @RequestMapping("/msg")
23. public class MessageController {
24. 
25. @Autowired
26. private MessageService messageService;
27. 
28. @Autowired
29. private AdminRepository adminRepository;
30. 
31. @Autowired
32. private StudentRepository studentRepository;
33. 
34. @Autowired
35. private CollegeRepository collegeRepository;
36. 
37. @Autowired
38. private TeacherRepository teacherRepository;
39. 
40. @GetMapping("/getUnReadListPopup/{receiver}")
41. public List<Message> getUnReadListPopup(@PathVariable String receiver ){
42. return messageService.findUnReadMessage(receiver);
43.     }
44. 
45. @GetMapping("/getUnReadList/{receive}")
46. public List<Map<String ,Object>> getUnReadList(@PathVariable String receive){
47.         List<Map<String ,Object>> result=new ArrayList<>();
48.         List<Message> unReadMessage = messageService.findUnReadMessage(receive);
49. for (Message message : unReadMessage) {
50.             Map<String ,Object> map=new HashMap<>();
51.             map.put("id",message.getId());
52.             map.put("date",message.getMsgDate());
53.             map.put("title",message.getTitle());
54.             map.put("content",message.getContent());
55. if(message.getSenderRole()==0){
56. Student student = studentRepository.findStudentByTargetId(message.getSender());
57.                 map.put("sendUsername",student.getUsername());
58.                 map.put("sendName",student.getNickname());
59.             }else if(message.getSenderRole()==1){
60. Teacher teacher = teacherRepository.findTeacherByTargetId(message.getSender());
61.                 map.put("sendUsername",teacher.getUsername());
62.                 map.put("sendName",teacher.getNickname());
63.             }else if(message.getSenderRole()==2){
64. College college = collegeRepository.findCollegeByTargetId(message.getSender());
65.                 map.put("sendUsername",college.getUsername());
66.                 map.put("sendName",college.getNickname());
67.             }else{
68. Admin admin = adminRepository.findAdminByTargetId(message.getSender());
69.                 map.put("sendUsername",admin.getUsername());
70.                 map.put("sendName",admin.getNickname());
71.             }
72.             result.add(map);
73.         }
74. return result;
75.     }
76. 
77. @GetMapping("/getReadList/{receive}")
78. public List<Map<String ,Object>> getReadList(@PathVariable String receive){
79.         List<Map<String ,Object>> result=new ArrayList<>();
80.         List<Message> readMessage = messageService.findReadMessage(receive);
81. for (Message message : readMessage) {
82.             Map<String ,Object> map=new HashMap<>();
83.             map.put("id",message.getId());
84.             map.put("date",message.getMsgDate());
85.             map.put("title",message.getTitle());
86.             map.put("content",message.getContent());
87. if(message.getSenderRole()==0){
88. Student student = studentRepository.findStudentByTargetId(message.getSender());
89.                 map.put("sendUsername",student.getUsername());
90.                 map.put("sendName",student.getNickname());
91.             }else if(message.getSenderRole()==1){
92. Teacher teacher = teacherRepository.findTeacherByTargetId(message.getSender());
93.                 map.put("sendUsername",teacher.getUsername());
94.                 map.put("sendName",teacher.getNickname());
95.             }else if(message.getSenderRole()==2){
96. College college = collegeRepository.findCollegeByTargetId(message.getSender());
97.                 map.put("sendUsername",college.getUsername());
98.                 map.put("sendName",college.getNickname());
99.             }else{
100. Admin admin = adminRepository.findAdminByTargetId(message.getSender());
101.                 map.put("sendUsername",admin.getUsername());
102.                 map.put("sendName",admin.getNickname());
103.             }
104.             result.add(map);
105.         }
106. return result;
107.     }
108. 
109. @GetMapping("/markMessage/{messageId}")
110. public MessageResult markMessage(@PathVariable Integer messageId){
111. return messageService.markRead(messageId);
112.     }
113. 
114. @GetMapping("/deleteMessage/{messageId}")
115. public MessageResult deleteMessage(@PathVariable Integer messageId){
116. return messageService.deleteMessage(messageId);
117.     }
118. 
119. }
1. package com.sang.subjectcompetition.controller;
2. 
3. import com.sang.subjectcompetition.entity.Project;
4. import com.sang.subjectcompetition.entity.resultInfo.ProResult;
5. import com.sang.subjectcompetition.service.ProjectService;
6. import com.sang.subjectcompetition.service.StudentService;
7. import com.sang.subjectcompetition.service.TeacherService;
8. import org.springframework.beans.factory.annotation.Autowired;
9. import org.springframework.web.bind.annotation.*;
10. 
11. import java.util.Comparator;
12. import java.util.List;
13. import java.util.TreeSet;
14. 
15. /**
16.  * 项目管理
17.  */
18. @RestController
19. @RequestMapping("/project")
20. public class ProjectController {
21. @Autowired
22. private ProjectService projectService;
23. 
24. @Autowired
25. private TeacherService teacherService;
26. 
27. @Autowired
28. private StudentService studentService;
29. 
30. /**
31.      * 得到参加项目的老师
32.      * @param projectId
33.      * @return
34.      */
35. @GetMapping("/getProjectJoinTeacher/{projectId}")
36. public List getProjectJoinTeacher(@PathVariable Integer projectId){
37. return projectService.getProjectJoinTeacher(projectId);
38.     }
39. 
40. /**
41.      * 得到参加项目的学生
42.      * @param projectId
43.      * @return
44.      */
45. @GetMapping("/getProjectJoinStudent/{projectId}")
46. public List getProjectJoinStudent(@PathVariable Integer projectId){
47. return projectService.getProjectJoinStudent(projectId);
48.     }
49. 
50. /**
51.      * 根据学院id来得到模糊查询
52.      * @param project
53.      * @param collegeId
54.      * @return
55.      */
56. @PostMapping("/getMoreSearchProjectByCollege")
57. public List<Project> getMoreSearchProjectByCollege(Project project,Integer collegeId){
58.         List<Project> moreSearchProjectByCollege = projectService.getMoreSearchProjectByCollege(collegeId, project);
59.         moreSearchProjectByCollege.sort(Comparator.naturalOrder());
60. return moreSearchProjectByCollege;
61.     }
62. 
63. /**
64.      * 根据学院id来得到模糊查询
65.      * @param project
66.      * @param teacherId
67.      * @return
68.      */
69. @PostMapping("/getMoreSearchProjectByTeacher")
70. public List<Project> getMoreSearchProjectByTeacher(Project project,Integer teacherId){
71.         Integer collegeId=teacherService.getTeacherById(teacherId).getCollege().getId();
72. 
73.         List<Project> projects = projectService.getMoreSearchProjectByCollege(collegeId, project);
74.         projects.sort(Comparator.naturalOrder());
75. return projects;
76.     }
77. 
78. /**
79.      * 根据学院id来得到模糊查询
80.      * @param project
81.      * @param studentId
82.      * @return
83.      */
84. @PostMapping("/getMoreSearchProjectByStudent")
85. public List<Project> getMoreSearchProjectByStudent(Project project,Integer studentId){
86.         Integer collegeId=studentService.getStudentById(studentId).getCollege().getId();
87.         List<Project> moreSearchProjectByCollege = projectService.getMoreSearchProjectByCollege(collegeId, project);
88.         moreSearchProjectByCollege.sort(Comparator.naturalOrder());
89. return moreSearchProjectByCollege;
90.     }
91. 
92. /**
93.      * 根据学院id来得到模糊查询
94.      * @param project
95.      * @return
96.      */
97. @PostMapping("/getMoreSearchAllProjects")
98. public List<Project> getMoreSearchAllProjects(Project project){
99.         List<Project> moreSearchAllProject = projectService.getMoreSearchAllProject(project);
100.         moreSearchAllProject.sort(Comparator.naturalOrder());
101. return moreSearchAllProject;
102.     }
103. 
104. /**
105.      * 得到学生参与的项目集合
106.      * @param studentId
107.      * @return
108.      */
109. @GetMapping("/getStudentProjects/{studentId}")
110. public List<Project> getStudentProjects(@PathVariable Integer studentId){
111.         List<Project> studentProjects = projectService.getStudentProjects(studentId);
112.         studentProjects.sort(Comparator.naturalOrder());
113. return studentProjects;
114.     }
115. 
116. /**
117.      * 得到教师领队的项目
118.      * @param teacherId
119.      * @return
120.      */
121. @GetMapping("/getTeacherJoinProjects/{teacherId}")
122. public List<Project> getTeacherJoinProjects(@PathVariable Integer teacherId){
123.         List<Project> teacherJoinProjects = projectService.getTeacherJoinProjects(teacherId);
124.         teacherJoinProjects.sort(Comparator.naturalOrder());
125. return teacherJoinProjects;
126.     }
127. 
128. /**
129.      * 解散项目组
130.      * @param projectId
131.      * @return
132.      */
133. @GetMapping("/invokeProject/{projectId}")
134. public ProResult invokeProject(@PathVariable Integer projectId) {
135. return teacherService.invokeProject(projectId);
136.     }
137. 
138. }

五,项目总结

本项目设计功能丰富,所使用的技术比较符合现在毕业设计的要求,使用springboot开发后台服务接口,使用Node+Vue开发前端操作界面,并使用微信小程序开发小程序端供用户使用。项目比较适合做毕业设计使用。

相关文章
|
8天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
38 8
|
11天前
|
缓存 移动开发 小程序
uni-vue3-wetrip自创跨三端(H5+小程序+App)酒店预订app系统模板
vue3-uni-wetrip原创基于vite5+vue3+uniapp+pinia2+uni-ui等技术开发的仿去哪儿/携程预约酒店客房app系统。实现首页酒店展示、预订搜索、列表/详情、订单、聊天消息、我的等模块。支持编译H5+小程序+App端。
47 8
|
26天前
|
移动开发 小程序
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
54 3
|
1月前
|
小程序 数据挖掘 UED
开发1个上门家政小程序APP系统,都有哪些功能?
在快节奏的现代生活中,家政服务已成为许多家庭的必需品。针对传统家政服务存在的问题,如服务质量不稳定、价格不透明等,我们历时两年开发了一套全新的上门家政系统。该系统通过完善信用体系、提供奖励机制、优化复购体验、多渠道推广和多样化盈利模式,解决了私单、复购、推广和盈利四大痛点,全面提升了服务质量和用户体验,旨在成为家政行业的领导者。
|
1月前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
36 4
|
2月前
|
JavaScript Java PHP
快速对比:Django、Spring Boot、Node.js 和 PHP
快速对比:Django、Spring Boot、Node.js 和 PHP
95 7
|
2月前
|
存储 传感器 小程序
跳绳计数小程序开发系统
首先,我们需要明确跳绳计数小程序的核心功能:为用户提供跳绳计数的便捷方式。这意味着小程序需要能够准确地记录用户的跳绳次数,并为用户提供清晰、直观的计数展示。
|
4月前
|
移动开发 安全 JavaScript
SpringBoot接入微信JSSDK,看这篇妥妥的
这篇教程详细介绍了如何在Spring Boot项目中接入微信JSSDK,实现H5页面的自定义分享和调用相册选取图片等功能。文章首先通过对比理想与现实的分享效果,引出了接入微信JSSDK的必要性。接着,作者提供了GitHub和Gitee上的项目源码链接,并逐步讲解了整个接入过程的关键步骤,包括配置文件、主要类和方法的实现细节,以及必要的微信公众号设置。此外,还特别强调了几个常见问题及其解决方案,如域名绑定、IP白名单设置和签名验证等。最后,通过实际测试验证了功能的正确性。适合初学者快速上手微信JSSDK接入。
75 8
SpringBoot接入微信JSSDK,看这篇妥妥的
|
4月前
|
JavaScript 前端开发 API
全栈开发革命来临!Vue.js与Node.js联手,打造前后端无缝对接的奇迹之作!
【8月更文挑战第30天】在Web开发领域,前后端分离与协作至关重要。Vue.js以其轻量级和易用性深受前端开发者喜爱,而Node.js则以高性能和事件驱动特性在后端领域崭露头角。二者结合开启了全栈开发新篇章,通过RESTful API或GraphQL实现高效稳定通信。本文以示例说明如何使用Vue.js和Node.js构建全栈应用,从前端Vue组件到后端Express服务器,展示了数据获取与展示的全过程。这种组合提供了一种高效简洁的全栈开发方案,使开发者能更专注于业务逻辑实现。
279 1
|
4月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
本文介绍如何在Taro项目中配置深色模式。通过在`src/app.config.ts`设置`darkmode`选项和在`theme.json`中定义主题变量,可以实现跟随系统主题的界面风格切换。
113 0
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)