博主主页:一季春秋
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题库、技术咨询。🍅文末获取联系🍅
精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟
SpringBoot+Vue项目持续更新中
目录
系统阐述的是使用科研管理系统,对于Java、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了springboot框架和MySql数据库技术搭建系统的整体架构。利用这些技术结合实际需求开发了具有个人中心、用户管理、科研队伍管理、队伍信息管理、加入队伍管理、队伍申请管理、科研成果管理、项目成果申报管理、公告信息管理、资源文件管理、信息交流、系统管理等功能的系统,最后对系统进行相应的测试,测试系统有无存在问题以及测试用户权限来优化系统,最后系统达到预期目标。
- 开发语言:Java
-
- 使用框架:spring boot
-
- 前端技术:JavaScript、Vue 、css3
-
- 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
-
- 数据库:MySQL 5.7/8.0
-
- 数据库管理工具:phpstudy/Navicat
-
- JDK版本:jdk1.8
-
- Maven: apache-maven 3.8.1-bin
科研管理系统分三大部分,即管理员管理、科研队伍管理和用户管理。系统按照用户的实际需求开发而来,贴近生活。从管理员出拿到分配好的账号密码可以进入系统,使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。
系统整体模块设计:系统分为管理员、科研队伍和用户三大用户角色,系统管理员有最大的权限,整体功能展示如图所示。
打开系统的网址后,首先看到的就是首页界面。在这里能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图所示:
系统注册:在系统注册页面的输入栏中输入用户注册信息进行注册操作,系统注册页面如图所示:
队伍信息:在队伍信息页面的输入栏中输入队伍名称和组长姓名进行查询,可以查看到队伍详细信息,并根据需要进行加入申请、评论或收藏操作;队伍信息页面如图所示:
队伍详细信息
科研成果:在科研成果页面的输入栏中输入成果名称、选择队伍名称和成果类型进行查询,可以查看到科研成果详细信息,并根据需要进行评论或收藏操作;科研成果页面如图所示:
资源文件:在资源文件页面的输入栏中输入资源名称、资源类型和发布人进行查询,可以查看到资源文件详细信息,并根据需要进行评论或收藏操作;资源文件页面如图所示:
个人中心:在个人中心页面输入个人信息可以进行更新操作,并根据需要对我的发布和我的收藏进行详细操作;如图所示:
后台登录,在登录页面选择角色,正确输入用户名和密码后,点击登录进入操作系统进行操作;如图所示。
管理员进入主页面,主要功能包括对个人中心、用户管理、科研队伍管理、队伍信息管理、加入队伍管理、队伍申请管理、科研成果管理、项目成果申报管理、公告信息管理、资源文件管理、信息交流、系统管理等进行操作。管理员主页面如图所示:
管理员点击用户管理。在用户页面输入账号、姓名和选择性别进行查询、新增、用户人数和删除用户列表,并根据需要对用户详情信息进行详情、修改或删除操作;如图所示:
管理员点击科研队伍管理。在科研队伍页面输入队伍账号进行查询、队长人数、新增或删除科研队伍列表,并根据需要对科研队伍详情信息进行详情、修改或删除操作;如图所示:
管理员点击科研成果管理。在科研成果页面输入成果名称、选择队伍名称和成果类型进行查询、导出、成果类型或删除科研成果列表,并根据需要对科研成果详情信息进行详情、查看评论或删除操作;如图所示:
管理员点击资源文件管理。在资源文件页面输入资源名称、资源类型和发布人进行查询、导出或删除资源文件列表,并根据需要对资源文件详情信息进行详情、修改、查看评论或删除操作;如图所示:
科研队伍进入主页面,主要功能包括对个人中心、队伍信息管理、加入队伍管理、科研成果管理、项目成果申报管理、公告信息管理、资源文件管理等进行操作。科研队伍主页面如图所示:
科研队伍点击队伍信息管理。在队伍信息页面输入队伍名称和组长姓名进行查询、新增或删除队伍信息列表,并根据需要对队伍详情信息进行详情、修改或删除操作;如图所示:
科研队伍点击科研成果管理。在科研成果页面输入成果名称、选择队伍名称和成果类型进行查询、导出、新增或删除科研成果列表,并根据需要对科研成果详情信息进行详情、修改、查看评论或删除操作;如图所示:
用户进入主页面,主要功能包括对个人中心、加入队伍管理、队伍申请管理等进行操作。用户主页面如图所示:
用户点击队伍申请管理。在队伍申请页面输入标题、账号、姓名和选择是否通过进行查询、新增或删除队伍申请列表,并根据需要对队伍申请详情信息进行详情、修改或删除操作;如图所示:
队伍信息
- /**
- * 队伍信息
- * 后端接口
- * @author
- * @email
- * @date 2023-04-25 10:50:40
- */
- @RestController
- @RequestMapping("/duiwuxinxi")
- public class DuiwuxinxiController {
- @Autowired
- private DuiwuxinxiService duiwuxinxiService;
-
- @Autowired
- private StoreupService storeupService;
-
-
-
-
- /**
- * 后端列表
- */
- @RequestMapping("/page")
- public R page(@RequestParam Map
params,DuiwuxinxiEntity duiwuxinxi, - HttpServletRequest request){
- String tableName = request.getSession().getAttribute("tableName").toString();
- if(tableName.equals("keyanduiwu")) {
- duiwuxinxi.setDuiwuzhanghao((String)request.getSession().getAttribute("username"));
- }
- EntityWrapper
ew = new EntityWrapper(); -
- PageUtils page = duiwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, duiwuxinxi), params), params));
-
- return R.ok().put("data", page);
- }
-
- /**
- * 前端列表
- */
- @IgnoreAuth
- @RequestMapping("/list")
- public R list(@RequestParam Map
params,DuiwuxinxiEntity duiwuxinxi, - HttpServletRequest request){
- EntityWrapper
ew = new EntityWrapper(); -
- PageUtils page = duiwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, duiwuxinxi), params), params));
- return R.ok().put("data", page);
- }
-
- /**
- * 列表
- */
- @RequestMapping("/lists")
- public R list( DuiwuxinxiEntity duiwuxinxi){
- EntityWrapper
ew = new EntityWrapper(); - ew.allEq(MPUtil.allEQMapPre( duiwuxinxi, "duiwuxinxi"));
- return R.ok().put("data", duiwuxinxiService.selectListView(ew));
- }
-
- /**
- * 查询
- */
- @RequestMapping("/query")
- public R query(DuiwuxinxiEntity duiwuxinxi){
- EntityWrapper< DuiwuxinxiEntity> ew = new EntityWrapper< DuiwuxinxiEntity>();
- ew.allEq(MPUtil.allEQMapPre( duiwuxinxi, "duiwuxinxi"));
- DuiwuxinxiView duiwuxinxiView = duiwuxinxiService.selectView(ew);
- return R.ok("查询队伍信息成功").put("data", duiwuxinxiView);
- }
-
- /**
- * 后端详情
- */
- @RequestMapping("/info/{id}")
- public R info(@PathVariable("id") Long id){
- DuiwuxinxiEntity duiwuxinxi = duiwuxinxiService.selectById(id);
- duiwuxinxi.setClicknum(duiwuxinxi.getClicknum()+1);
- duiwuxinxi.setClicktime(new Date());
- duiwuxinxiService.updateById(duiwuxinxi);
- return R.ok().put("data", duiwuxinxi);
- }
-
- /**
- * 前端详情
- */
- @IgnoreAuth
- @RequestMapping("/detail/{id}")
- public R detail(@PathVariable("id") Long id){
- DuiwuxinxiEntity duiwuxinxi = duiwuxinxiService.selectById(id);
- duiwuxinxi.setClicknum(duiwuxinxi.getClicknum()+1);
- duiwuxinxi.setClicktime(new Date());
- duiwuxinxiService.updateById(duiwuxinxi);
- return R.ok().put("data", duiwuxinxi);
- }
-
-
-
-
- /**
- * 后端保存
- */
- @RequestMapping("/save")
- public R save(@RequestBody DuiwuxinxiEntity duiwuxinxi, HttpServletRequest request){
- duiwuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
- //ValidatorUtils.validateEntity(duiwuxinxi);
- duiwuxinxiService.insert(duiwuxinxi);
- return R.ok();
- }
-
- /**
- * 前端保存
- */
- @RequestMapping("/add")
- public R add(@RequestBody DuiwuxinxiEntity duiwuxinxi, HttpServletRequest request){
- duiwuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
- //ValidatorUtils.validateEntity(duiwuxinxi);
- duiwuxinxiService.insert(duiwuxinxi);
- return R.ok();
- }
-
-
-
- /**
- * 修改
- */
- @RequestMapping("/update")
- @Transactional
- public R update(@RequestBody DuiwuxinxiEntity duiwuxinxi, HttpServletRequest request){
- //ValidatorUtils.validateEntity(duiwuxinxi);
- duiwuxinxiService.updateById(duiwuxinxi);//全部更新
- return R.ok();
- }
-
-
-
-
- /**
- * 删除
- */
- @RequestMapping("/delete")
- public R delete(@RequestBody Long[] ids){
- duiwuxinxiService.deleteBatchIds(Arrays.asList(ids));
- return R.ok();
- }
-
-
- /**
- * 前端智能排序
- */
- @IgnoreAuth
- @RequestMapping("/autoSort")
- public R autoSort(@RequestParam Map
params,DuiwuxinxiEntity duiwuxinxi, HttpServletRequest request,String pre) { - EntityWrapper
ew = new EntityWrapper(); - Map
newMap = new HashMap(); - Map
param = new HashMap(); - Iterator
> it = param.entrySet().iterator(); - while (it.hasNext()) {
- Map.Entry
entry = it.next(); - String key = entry.getKey();
- String newKey = entry.getKey();
- if (pre.endsWith(".")) {
- newMap.put(pre + newKey, entry.getValue());
- } else if (StringUtils.isEmpty(pre)) {
- newMap.put(newKey, entry.getValue());
- } else {
- newMap.put(pre + "." + newKey, entry.getValue());
- }
- }
- params.put("sort", "clicknum");
- params.put("order", "desc");
- PageUtils page = duiwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, duiwuxinxi), params), params));
- return R.ok().put("data", page);
- }
-
-
-
- }