Java毕业设计-基于Springboot框架的校园爱心捐赠互助管理系统项目实战(附源码+论文)

大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:Java毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 安卓app毕业设计
🌎微信小程序毕业设计

开发环境

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7
数据库工具:Navicat12
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器

演示视频

springboot013校园爱心捐赠互助管理系统演示

源码下载地址:

https://download.csdn.net/download/m0_46388260/88003148

论文目录

【如需全文请按文末获取联系】

在这里插入图片描述
在这里插入图片描述

一、项目简介

校园爱心捐赠互助模式的开启需要线上平台的加持,本文结合当前在校大学生对于捐赠和互助的应用需求,通过springboot框架结构以及java编程语言实现了前端平台的搭建,利用web服务器端实现了数据信息的呈现和反馈,主要的功能模块内容包括了贫困生帮扶、校园物品义卖、在线捐赠以及校内求助等内容,系统开发设计结合了在校大学生的主要应用需求,通过系统平台的开发可以帮助在校大学生实现资源共享减少资源的浪费,同时爱心捐赠互助系统屏那台也是一种新型的电商模式也是当前的发展趋势。

二、系统设计

2.1软件功能模块设计

校园爱心捐赠互助管理系统平台的主要功能需求内容包括了在线义卖、在线捐赠以及物品求助申请,按照用角色划分包括了前端用户以及系统后台管理人员,用户可以通过系统首页实现贫困生信息的查看、义卖商品信息查看以及求助信息的查看,用户登录进入到系统平台后可以通过个人用户后台实现在线物品捐赠、义卖上平购买以及物品申请等内容,利用个人后台实现了在线购买以及在线求助的双重功能需求,系统管理员用户可以结合用户前端的捐赠内容及物品申请进行在线的管理和反馈,通过系统后台实现贫困生以及义卖商品信息的管理,为了便于理解,此次校园爱心捐助互助管理系统平台的功能模块结构图如下图所示:
在这里插入图片描述

2.2数据库设计

(1)用户注册信息主要包括了用户登录平台的用户名及密码信息,同时还涵盖了用户的个人基本信息,包括用户姓名、联系方式、身份证及照片等内容。
在这里插入图片描述

(2)义卖商品信息包括了商品编号、商品名称、对应商品类别,同时还包括了商品价格、库存以及图片介绍等信息。

三、系统项目部分截图

3.1系统主页设计

校园爱心捐赠互助管理系统平台的首页内容呈现主要包括了用户注册登录窗口,通过系统导航栏可以查看到贫困生信息、义卖商品信息、在线求助信息以及在线捐赠内容,系统管理员用户可以通过首页的后台管理界面实现后台的登录,具体校园爱心捐赠互助管理系统的首页界面呈现如下图所示:
在这里插入图片描述

3.2义卖商品购买界面

用户通过首页的义卖商品信息可以查看到商品的名称、类别、价格,通过在线购买填入对应的购买数量就可以实现在线下单,义卖商品信息、个人信息以及购买金额计算内容平台会自动显示,具体义卖商品购买界面内容如下:
在这里插入图片描述

3.3用户个人后台界面

用户登录通过个人后台界面可以实现以下内容及信息的查看和管理:个人资料管理、物品申请管理、在线捐赠管理、购买管理、求助管理以及我的收藏,通过以上功能模块的利用实现了用户的捐赠及申请购买内容的实现,同时可以通过个人后台发布相关的求助信息,真正意义上实现了爱心互助实现各取所需的目的。
在这里插入图片描述

3.4系统后台管理

校园爱心捐赠互助管理系统的后台内容呈现主要包括了用户信息管理,同时对于首页的贫困生信息内容进行发布和添加,对于义卖商品的类别及内容进行添加和管理,同时还包括了前端用户购买信息、求助信息、申请及在线捐赠的内容进行及时的审核和查看,系统后台管理界面的主要内容呈现如下:
在这里插入图片描述

四、部分核心代码

4.1 用户部分

package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.*;
import com.example.exception.CustomException;

import com.example.service.AdminInfoService;
import com.example.service.YonghuxinxiInfoService;


import org.springframework.web.bind.annotation.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import cn.hutool.json.JSONUtil;

import java.util.*;
import java.util.stream.Collectors;

@RestController
public class AccountController {

    @Value("${authority.info}")
    private String authorityStr;

    @Resource
    private AdminInfoService adminInfoService;
	@Resource
private YonghuxinxiInfoService yonghuxinxiInfoService;

	






    @PostMapping("/login")
    public Result<Account> login(@RequestBody Account account,  HttpServletRequest request) {
        if (StrUtil.isBlank(account.getUsername()) || StrUtil.isBlank(account.getMima()) || account.getLevel() == null) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        String level = account.getLevel();
        Account login = new Account();
        if (level.equals("管理员")) {
            login = adminInfoService.login(account.getUsername(), account.getMima());
        }
		
if (level.equals("注册用户")) {
            login = yonghuxinxiInfoService.login(account.getUsername(), account.getMima());
            //yoxusxhenhe if(login.getStatus().equals("否")){return Result.error("500","帐号未审核通过,请联系管理员");}
        }

		


        request.getSession().setAttribute("user", login);
        return Result.success(login);
    }

  

    @GetMapping("/logout")
    public Result logout(HttpServletRequest request) {
        request.getSession().setAttribute("user", null);
        return Result.success();
    }

    @GetMapping("/auth")
    public Result getAuth(HttpServletRequest request) {
        Object user = request.getSession().getAttribute("user");
        if(user == null) {
            return Result.error("401", "未登录");
        }
        return Result.success(user);
    }

    @GetMapping("/getAccountInfo")
    public Result<Object> getAccountInfo(HttpServletRequest request) {
        Account account = (Account) request.getSession().getAttribute("user");
        if (account == null) {
            return Result.success(new Object());
        }
        String level = account.getLevel();
        if (level.equals("管理员")) {
            return Result.success(adminInfoService.findById(account.getId()));
        }
		if (level.equals("注册用户")) { return Result.success(yonghuxinxiInfoService.findById(account.getId())); }




        return Result.success(new Object());
    }

    @GetMapping("/getSession")
    public Result<Map<String, String>> getSession(HttpServletRequest request) {
        Account account = (Account) request.getSession().getAttribute("user");
        if (account == null) {
            return Result.success(new HashMap<>(1));
        }
        Map<String, String> map = new HashMap<>(1);
        map.put("username", account.getUsername());
        return Result.success(map);
    }

    @GetMapping("/getAuthority")
    public Result<List<AuthorityInfo>> getAuthorityInfo() {
        List<AuthorityInfo> authorityInfoList = JSONUtil.toList(JSONUtil.parseArray(authorityStr), AuthorityInfo.class);
        return Result.success(authorityInfoList);
    }

    /**
     * 获取当前用户所能看到的模块信息
     * @param request
     * @return
     */
    @GetMapping("/authority")
    public Result<List<Integer>> getAuthorityInfo(HttpServletRequest request) {
        Account user = (Account) request.getSession().getAttribute("user");
        if (user == null) {
            return Result.success(new ArrayList<>());
        }
        JSONArray objects = JSONUtil.parseArray(authorityStr);
        for (Object object : objects) {
            JSONObject jsonObject = (JSONObject) object;
            if (user.getLevel().equals(jsonObject.getStr("level"))) {
                JSONArray array = JSONUtil.parseArray(jsonObject.getStr("models"));
                List<Integer> modelIdList = array.stream().map((o -> {
                    JSONObject obj = (JSONObject) o;
                    return obj.getInt("modelId");
                })).collect(Collectors.toList());
                return Result.success(modelIdList);
            }
        }
        return Result.success(new ArrayList<>());
    }

    @GetMapping("/permission/{modelId}")
    public Result<List<Integer>> getPermission(@PathVariable Integer modelId, HttpServletRequest request) {
        List<AuthorityInfo> authorityInfoList = JSONUtil.toList(JSONUtil.parseArray(authorityStr), AuthorityInfo.class);
        Account user = (Account) request.getSession().getAttribute("user");
        if (user == null) {
            return Result.success(new ArrayList<>());
        }
        Optional<AuthorityInfo> optional = authorityInfoList.stream().filter(x -> x.getLevel().equals(user.getLevel())).findFirst();
        if (optional.isPresent()) {
            Optional<AuthorityInfo.Model> firstOption = optional.get().getModels().stream().filter(x -> x.getModelId().equals(modelId)).findFirst();
            if (firstOption.isPresent()) {
                List<Integer> info = firstOption.get().getOperation();
                return Result.success(info);
            }
        }
        return Result.success(new ArrayList<>());
    }

    @PutMapping("/updateMima")
    public Result updateMima(@RequestBody Account info, HttpServletRequest request) {
        Account account = (Account) request.getSession().getAttribute("user");
        if (account == null) {
            return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);
        }
        String oldMima = SecureUtil.md5(info.getMima());
        if (!oldMima.equals(account.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewMima()));
        String level = account.getLevel();
        if (level.equals("管理员")) {
            AdminInfo adminInfo = new AdminInfo();
            BeanUtils.copyProperties(info, adminInfo);
            adminInfoService.update(adminInfo);
        }
		
if (level.equals("注册用户")) {
            YonghuxinxiInfo yonghuxinxiInfo = new YonghuxinxiInfo();
            BeanUtils.copyProperties(info, yonghuxinxiInfo);
            yonghuxinxiInfoService.update(yonghuxinxiInfo);
        }



        info.setLevel(level);
        info.setUsername(account.getUsername());
        // 清空session,让用户重新登录
        request.getSession().setAttribute("user", null);
        return Result.success();
    }
    @PostMapping("/resetMima")
    public Result resetMima(@RequestBody Account account) {
        String level = account.getLevel();
        if (level.equals("管理员")) {
            AdminInfo info = adminInfoService.findByUserName(account.getUsername());
            if (info == null) {
                return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);
            }
            info.setMima(SecureUtil.md5("123456"));
            adminInfoService.update(info);
        }


        return Result.success();
    }
}

获取源码或论文

如需对应的论文或源码,也可以下方微信联系我

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值