【Java毕设项目】基于SpringBoot+Vue科研管理系统的设计与实现

276 篇文章 0 订阅
目录

一、项目介绍 

二、项目主要技术 

三、系统的设计

四、系统的实现

4.1 系统前台功能实现

4.2 管理员功能实现

4.3 科研队伍功能实现

4.4 用户功能实现

五、实现代码

一、项目介绍 

系统阐述的是使用科研管理系统,对于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

三、系统的设计

科研管理系统分三大部分,即管理员管理、科研队伍管理和用户管理。系统按照用户的实际需求开发而来,贴近生活。从管理员出拿到分配好的账号密码可以进入系统,使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。

系统整体模块设计:系统分为管理员、科研队伍和用户三大用户角色,系统管理员有最大的权限,整体功能展示如图所示。

四、系统的实现

4.1 系统前台功能实现

打开系统的网址后,首先看到的就是首页界面。在这里能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图所示: 

系统注册:在系统注册页面的输入栏中输入用户注册信息进行注册操作,系统注册页面如图所示: 

队伍信息:在队伍信息页面的输入栏中输入队伍名称和组长姓名进行查询,可以查看到队伍详细信息,并根据需要进行加入申请、评论或收藏操作;队伍信息页面如图所示: 

队伍详细信息

科研成果:在科研成果页面的输入栏中输入成果名称、选择队伍名称和成果类型进行查询,可以查看到科研成果详细信息,并根据需要进行评论或收藏操作;科研成果页面如图所示: 

资源文件:在资源文件页面的输入栏中输入资源名称、资源类型和发布人进行查询,可以查看到资源文件详细信息,并根据需要进行评论或收藏操作;资源文件页面如图所示: 

个人中心:在个人中心页面输入个人信息可以进行更新操作,并根据需要对我的发布和我的收藏进行详细操作;如图所示: 

4.2 管理员功能实现

后台登录,在登录页面选择角色,正确输入用户名和密码后,点击登录进入操作系统进行操作;如图所示。 

管理员进入主页面,主要功能包括对个人中心、用户管理、科研队伍管理、队伍信息管理、加入队伍管理、队伍申请管理、科研成果管理、项目成果申报管理、公告信息管理、资源文件管理、信息交流、系统管理等进行操作。管理员主页面如图所示: 

管理员点击用户管理。在用户页面输入账号、姓名和选择性别进行查询、新增、用户人数和删除用户列表,并根据需要对用户详情信息进行详情、修改或删除操作;如图所示: 

管理员点击科研队伍管理。在科研队伍页面输入队伍账号进行查询、队长人数、新增或删除科研队伍列表,并根据需要对科研队伍详情信息进行详情、修改或删除操作;如图所示: 

管理员点击科研成果管理。在科研成果页面输入成果名称、选择队伍名称和成果类型进行查询、导出、成果类型或删除科研成果列表,并根据需要对科研成果详情信息进行详情、查看评论或删除操作;如图所示: 

管理员点击资源文件管理。在资源文件页面输入资源名称、资源类型和发布人进行查询、导出或删除资源文件列表,并根据需要对资源文件详情信息进行详情、修改、查看评论或删除操作;如图所示: 

4.3 科研队伍功能实现

科研队伍进入主页面,主要功能包括对个人中心、队伍信息管理、加入队伍管理、科研成果管理、项目成果申报管理、公告信息管理、资源文件管理等进行操作。科研队伍主页面如图所示: 

科研队伍点击队伍信息管理。在队伍信息页面输入队伍名称和组长姓名进行查询、新增或删除队伍信息列表,并根据需要对队伍详情信息进行详情、修改或删除操作;如图所示: 

科研队伍点击科研成果管理。在科研成果页面输入成果名称、选择队伍名称和成果类型进行查询、导出、新增或删除科研成果列表,并根据需要对科研成果详情信息进行详情、修改、查看评论或删除操作;如图所示: 

4.4 用户功能实现

用户进入主页面,主要功能包括对个人中心、加入队伍管理、队伍申请管理等进行操作。用户主页面如图所示: 

用户点击队伍申请管理。在队伍申请页面输入标题、账号、姓名和选择是否通过进行查询、新增或删除队伍申请列表,并根据需要对队伍申请详情信息进行详情、修改或删除操作;如图所示: 

五、实现代码

队伍信息

/**
 * 队伍信息
 * 后端接口
 * @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<String, Object> params,DuiwuxinxiEntity duiwuxinxi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("keyanduiwu")) {
			duiwuxinxi.setDuiwuzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<DuiwuxinxiEntity> ew = new EntityWrapper<DuiwuxinxiEntity>();
 
		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<String, Object> params,DuiwuxinxiEntity duiwuxinxi, 
		HttpServletRequest request){
        EntityWrapper<DuiwuxinxiEntity> ew = new EntityWrapper<DuiwuxinxiEntity>();
 
		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<DuiwuxinxiEntity> ew = new EntityWrapper<DuiwuxinxiEntity>();
      	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<String, Object> params,DuiwuxinxiEntity duiwuxinxi, HttpServletRequest request,String pre){
        EntityWrapper<DuiwuxinxiEntity> ew = new EntityWrapper<DuiwuxinxiEntity>();
        Map<String, Object> newMap = new HashMap<String, Object>();
        Map<String, Object> param = new HashMap<String, Object>();
		Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, Object> 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);
    }
 
 
 
}
  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值