SpringBoot+Vue实现前后端分离的大学生志愿者管理系统

目录

一、前言介绍

二、系统功能 

三、系统前台模块

3.1系统登录页面

3.2志愿者社团页面

3.3社团详情页面 

3.4志愿者活动详情页面 

3.5个人中心页面 

四、管理员功能模块 

4.1用户管理页面 

4.2新闻资讯管理页面 

4.3志愿者社团管理页面 

4.4加团记录管理页面 

4.5报名记录管理页面 

五、学生功能模块 

5.1学生信誉值

5.2报名记录 

六、部分核心代码

6.1站点管理关键代码 

6.2用户管理关键代码

6.3报名记录关键代码

6.4登录系统主要代码

一、前言介绍

技术可行性指的是对于搭建框架的可行性,以及有更优秀的技术出现时系统的技术更新换代的纳新性如何,开发时间成本费用比如何。现有的Java技术能够迎合所有电子商务系统的搭建。开发这个大学生志愿者管理系统的时候我采用了Java+MYSQL用以运行整体程序。

本设计主要实现集人性化、高效率、便捷等优点于一身的大学生志愿者管理系统,主要实现功能:学生信誉值、志愿者社团、志愿者活动、加团记录、报名记录、学校劳动、参加记录、等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。

二、系统功能 

本大学生志愿者管理系统主要包括两大功能模块,即管理员、学生功能模块。

(1)前台学生:首页、留言板、公告消息、新闻资讯、志愿者社团、志愿者活动、学校劳动、我的(我的账户、个人中心、退出)。 

(2)学生后台: 学生信誉值、加团记录、报名记录、参加记录 

(3)管理员模块:系统中的核心用户是管理员,管理员登录后,通过管理员来管理后台系统。主要功能有:站点管理(轮播图、公告栏),用户管理(管理员、学生用户),内容管理(留言板、留言板分类、新闻资讯、新闻分类),更多管理(学生信誉值、志愿者社团、志愿者活动、加团记录、报名记录、学校劳动、参加记录) 

三、系统前台模块

3.1系统登录页面

3.2志愿者社团页面

3.3社团详情页面 

3.4志愿者活动详情页面 

3.5个人中心页面 

四、管理员功能模块 

4.1用户管理页面 

4.2新闻资讯管理页面 

4.3志愿者社团管理页面 

4.4加团记录管理页面 

4.5报名记录管理页面 

五、学生功能模块 

5.1学生信誉值

5.2报名记录 

六、部分核心代码

6.1站点管理关键代码 

@RequestMapping(value = "/del")
 
    @Transactional
 
    public Map<String, Object> del(HttpServletRequest request) {
 
        service.delete(service.readQuery(request), service.readConfig(request));
 
        return success(1);
 
}

6.2用户管理关键代码

public List selectBaseList(String select) {
 
        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();
 
        for (Map<String,Object> map:mapList) {
 
            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
 
        }
 
        return list;
 
}

6.3报名记录关键代码

@RequestMapping("/get_list")
 
    public Map<String, Object> getList(HttpServletRequest request) {
 
        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
 
        return success(map);
 
}

6.4登录系统主要代码

/**
 
     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")
 
    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
 
        log.info("[执行登录接口]");
 
        String username = data.get("username");
 
        String email = data.get("email");
 
        String phone = data.get("phone");
 
        String password = data.get("password");
 
        List resultList = null;
 
        QueryWrapper wrapper = new QueryWrapper<User>();
 
        Map<String, String> map = new HashMap<>();
 
        if(username != null && "".equals(username) == false){
 
            map.put("username", username);
 
            resultList = service.selectBaseList(service.select(map, new HashMap<>()));
 
        }
 
        else if(email != null && "".equals(email) == false){
 
            map.put("email", email);
 
            resultList = service.selectBaseList(service.select(map, new HashMap<>()));
 
        }
 
        else if(phone != null && "".equals(phone) == false){
 
            map.put("phone", phone);
 
            resultList = service.selectBaseList(service.select(map, new HashMap<>()));
 
        }else{
 
            return error(30000, "账号或密码不能为空");
 
        }
 
        if (resultList == null || password == null) {
 
            return error(30000, "账号或密码不能为空");
 
        }
 
        //判断是否有这个用户
 
        if (resultList.size()<=0){
 
            return error(30000,"用户不存在");
 
        }
 
        User byUsername = (User) resultList.get(0);
 
        Map<String, String> groupMap = new HashMap<>();
 
        groupMap.put("name",byUsername.getUserGroup());
 
        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
 
        if (groupList.size()<1){
 
            return error(30000,"用户组不存在");
 
        }
 
        UserGroup userGroup = (UserGroup) groupList.get(0);
 
        //查询用户审核状态
 
        if (!StringUtils.isEmpty(userGroup.getSourceTable())){
 
            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
 
            if (res==null){
 
                return error(30000,"用户不存在");
 
            }
 
            if (!res.equals("已通过")){
 
                return error(30000,"该用户审核未通过");
 
            }
 
        }
 
        //查询用户状态
 
        if (byUsername.getState()!=1){
 
            return error(30000,"用户非可用状态,不能登录");
 
        }
 
        String md5password = service.encryption(password);
 
        if (byUsername.getPassword().equals(md5password)) {
 
            // 存储Token到数据库
 
            AccessToken accessToken = new AccessToken();
 
            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
 
            accessToken.setUser_id(byUsername.getUserId());
 
            tokenService.save(accessToken);
 
            // 返回用户信息
 
            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
 
            user.put("token", accessToken.getToken());
 
            JSONObject ret = new JSONObject();
 
            ret.put("obj",user);
 
            return success(ret);
 
        } else {
 
            return error(30000, "账号或密码不正确");
 
        }
 
}
 
    public String select(Map<String,String> query,Map<String,String> config){
 
        StringBuffer sql = new StringBuffer("select ");
 
        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
 
        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
 
        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
 
            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
 
        }
 
        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
 
            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
 
        }
 
        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
 
            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
 
            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
 
            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
 
        }
 
        log.info("[{}] - 查询操作,sql: {}",table,sql);
 
        return sql.toString();
 
}
 
    public List selectBaseList(String select) {
 
        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();
 
        for (Map<String,Object> map:mapList) {
 
            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
 
        }
 
        return list;
 
}


gitCode获取源码入口icon-default.png?t=N7T8https://gitcode.com/yuanmadd/ymgg/blob/main/README.md?init=initTree

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值