基于SSM的爱心(慈善)捐献平台

简介: 本系统采用SSM框架,数据层采用mybatis,数据库使用mysql,适合选题:爱心、慈善、捐献、捐赠等。

项目介绍:



本系统采用SSM框架,数据层采用mybatis,数据库使用mysql,适合选题:爱心、慈善、捐献、捐赠等。


项目功能:



1. 用户信息管理:管理员可对该系统的用户信息进行管理与维护。


2. 公益新闻管理:管理员进入系统对公益新闻信息进行管理与维护。


3. 求助信息管理:管理员通过系统在线管理系统的求助信息。并对求助信息进行在线审核。


4. 捐款记录管理:管理员通过系统在线管理系统用户的捐款信息。管理员及时对捐款信息做出反馈。


5. 活动管理:管理员通过系统在线管理活动信息。管理员可在线发布活动。


6. 个人信息管理:用户可对个人信息进行修改与维护,对个人基本资料进行更新,对账号密码信息进行更改。


7报名管理:管理员通过系统在线管理系统的报名信息。并对报名信息进行在线审核。


de0af0ce43bb4006ab2b02b532877ce9.png


系统包含技术:



后端:SSM整合

前端:bootstrap、js、css等

开发工具:eclipse

数据库:mysql 5.7

JDK版本:jdk1.8

服务器:tomcat8


部分截图说明:



下面是用户首页


1c8e27c8f75541f6be8eff7eb3105eb2.png


可以查看已发布的公益新闻


4a7560c41fb7412b85fafb3e083a2c64.png


活动列表,查看已发布的活动


7132f2488a6c47f2834fa6b331114f03.png


活动详情


30370e5e7a04419c89c4641238292169.png


用户可以进行登陆


2823b6e5f3e142f1a659b9ef8734c294.png


后台登录


f821ffe093ca4ab5b92a442d683fbf9a.png


登录后是管理员,可以对用户维护


e177ccead8e245cd949ffc9d876aecd8.png


对活动的报名进行维护


0acdd2ff8ed641e7afc9e8654b19dc8d.png


对捐款记录进行维护


7bca8002c3334153bf1ecb2b1ba78f31.png


对评价进行管理


2451bdc7622445d39a6ee27393f2bb93.png


求助管理


ab8c78a746eb4c26a2e26dfb6c2f4b2f.png


评价信息,管理员进行管理


965cb2aa62594f529ffb512c2b9d9649.png


部分代码:



@RequestMapping("list")
  public String list(Integer page, Integer limit,String content,Model model,
      HttpSession session) {
    PageBean pageBean=new PageBean();
    if(page==null){
      page=1;
    }
    QueryWrapper<Question> wrapper = new QueryWrapper<Question>();
    if (!StringUtils.isEmpty(content)) {
      wrapper.like("content", content);
      model.addAttribute("content", content);
    }
    Integer role=(Integer)session.getAttribute("role");
    if(role!=null && role==1){
      Users users=(Users)session.getAttribute("users");
      wrapper.eq("uid", users.getId());
    }
    wrapper.eq("isdel", 0);
    wrapper.orderByDesc("id");
    IPage<Question> pageList = new Page<Question>(pageBean.getPageNo(), pageBean.getPageSize());
    pageList = questionService.page(pageList, wrapper);
    List<Question> list = pageList.getRecords();
    // 关联对象
    for (Question m : list) {
      Users u = usersService.getById(m.getUid());
      m.setUsers(u);
    }
    // 会自动查出总条数
    int count = (int) pageList.getTotal();
    pageBean.setTotalCount(count);
    model.addAttribute("pageBean", pageBean);
    model.addAttribute("list", list);
    return "admin/question";
  }
  @RequestMapping("index")
  public String index(Integer page,String name,Integer id,Model model,HttpServletRequest request) {
    PageBean pageBean=new PageBean();
    if(page!=null){
      pageBean.setPageNo(page);
    }
    pageBean.setPageSize(4);
    QueryWrapper<Question> wrapper = new QueryWrapper<Question>();
    wrapper.eq("isdel", 0);
    wrapper.orderByDesc("id");
    IPage<Question> pageList = new Page<Question>(pageBean.getPageNo(),pageBean.getPageSize());
    pageList = questionService.page(pageList, wrapper);
    List<Question> list = pageList.getRecords();
    // 关联对象
    for (Question m : list) {
      Users u = usersService.getById(m.getUid());
      m.setUsers(u);
      //回复
      QueryWrapper<Reply> qwrapper=new QueryWrapper<Reply>();
      qwrapper.eq("pid", m.getId());
      qwrapper.eq("type", 2);
      List<Reply> replys=replyService.list(qwrapper);
      for (Reply r : replys) {
        Users ru = usersService.getById(r.getUid());
        r.setUsers(ru);
      }
      m.setReplys(replys);
    }
    // 会自动查出总条数
    int count = (int) pageList.getTotal();
    pageBean.setTotalCount(count);
    model.addAttribute("pageBean", pageBean);
    model.addAttribute("list", list);
    if(id==null){
      id=0;
    }
    model.addAttribute("id", id);
    return "questionList";
  }
  @RequestMapping("detail")
  public String detail(Integer id, Model model, HttpServletRequest request) {
    Question m = questionService.getById(id);
    Users u = usersService.getById(m.getUid());
    m.setUsers(u);
    QueryWrapper<Reply> rwrapper = new QueryWrapper<Reply>();
    rwrapper.eq("pid", m.getId());
    List<Reply> replys = replyService.list(rwrapper);
    for (Reply r : replys) {
      Users ru = usersService.getById(r.getUid());
      r.setUsers(ru);
    }
    m.setReplys(replys);
    model.addAttribute("question", m);
    return "questionDetail";
  }
  @RequestMapping("admindetail")
  public String admindetail(Integer id, Model model, HttpServletRequest request) {
    Question m = questionService.getById(id);
    Users u = usersService.getById(m.getUid());
    m.setUsers(u);
    QueryWrapper<Reply> rwrapper = new QueryWrapper<Reply>();
    rwrapper.eq("pid", m.getId());
    List<Reply> replys = replyService.list(rwrapper);
    for (Reply r : replys) {
      Users ru = usersService.getById(r.getUid());
      r.setUsers(ru);
    }
    m.setReplys(replys);
    model.addAttribute("question", m);
    return "admin/questionDetail";
  }
  @RequestMapping("add")
  @ResponseBody
  public ServerResponse<Question> add(Question question) {
      question.setIsdel(0);
      question.setOptime(Const.getFullTime());
      boolean flag=questionService.save(question);
      if(flag){
        return new ServerResponse<Question>("0", "操作成功!");
      }else{
        return new ServerResponse<Question>("1", "操作失败!");
      }
  }
  @RequestMapping("update")
  @ResponseBody
  public ServerResponse<Question> update(Question question) {
    boolean flag = questionService.updateById(question);
    if (flag) {
      return new ServerResponse<Question>("0", "操作成功!");
    } else {
      return new ServerResponse<Question>("1", "操作失败!");
    }
  }
  @RequestMapping("delete")
  @ResponseBody
  public ServerResponse<Question> delete(Question question) {
    question.setIsdel(1);
    boolean flag = questionService.updateById(question);
    if (flag) {
      return new ServerResponse<Question>("0", "删除成功!");
    } else {
      return new ServerResponse<Question>("1", "删除失败!");
    }
  }


下面是上传图片的核心代码:

@RequestMapping(value="/upload",  produces = "text/html; charset=utf-8")
    @ResponseBody
    public String upload(MultipartFile file, HttpServletRequest request,HttpServletResponse response) throws IOException { 
    //传到服务器
        //得到真实路径
        String path=request.getSession().getServletContext().getRealPath("/images");
        //目标文件
        //目标文件
    String fileName=path+"\\"+file.getOriginalFilename();
        fileName=URLDecoder.decode(fileName, "UTF-8");
        file.transferTo(new File(fileName));
        System.out.print("名字:"+file.getOriginalFilename());
        return file.getOriginalFilename();
    }
   @RequestMapping("/upfile")
      @ResponseBody
      public JSONObject upfile(MultipartFile file, HttpServletRequest request,HttpServletResponse response) throws IOException { 
          //传到服务器
          //得到真实路径
     String path=request.getSession().getServletContext().getRealPath("/images");
          //目标文件
          String fileName=path+"\\"+file.getOriginalFilename();
          fileName=URLDecoder.decode(fileName, "UTF-8");
          file.transferTo(new File(fileName));
          JSONObject result=new JSONObject();
      result.put("errno", 0);
      JSONArray data=new JSONArray();
      data.add(Const.ROOT+"images/"+file.getOriginalFilename());
      result.put("data", data);
      result.put("filename",file.getOriginalFilename());
          return result;
      }
      @RequestMapping(value="/download")
      public ResponseEntity<byte[]> download(HttpServletRequest request,
                                             @RequestParam("filename") String filename,
                                             Model model)throws Exception {
          //下载文件路径
          //String path = request.getSession().getServletContext().getRealPath("/images/");
        String path=request.getSession().getServletContext().getRealPath("/images");
          //找到服务器里面的中文文件,Tomcat8就不需要
        //filename = new String(filename.getBytes("iso-8859-1"),"UTF-8");
        String truepath=URLDecoder.decode(path + File.separator + filename, "UTF-8");
          File file = new File(truepath);
          HttpHeaders headers = new HttpHeaders();
          //通知浏览器以attachment(下载方式)打开图片,所有浏览器都会使用本地编码,即中文操作系统使用GBK
          //下载框中显示的文件名,解决中文名称乱码问题 
          headers.setContentDispositionFormData("attachment", new String(filename.getBytes("GBK"),"iso-8859-1"));
          //application/octet-stream : 二进制流数据(最常见的文件下载)。
          headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
          return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
                  headers, HttpStatus.CREATED);
      }


以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。


好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

相关文章
|
6月前
|
前端开发 Java 关系型数据库
基于ssm的考研图书电子商务平台,附源码+数据库+论文
考研图书电子商务平台是一个基于Java的B/S架构系统,适用于Windows环境。该平台设有管理员和用户权限,管理员可管理商品、用户、留言板及订单,用户可管理收货地址、订单、收藏及购买商品。技术框架包括前端Vue+HTML+JavaScript+CSS+LayUI,后端SSM,数据库为MySQL。项目包含17个数据库表,支持Maven构建。提供演示视频和详细文档,支持免费远程调试安装,确保顺利运行。
95 13
基于ssm的考研图书电子商务平台,附源码+数据库+论文
|
5月前
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
6月前
|
小程序 Java 关系型数据库
weixin116大学生就业平台微信小程序+ssm(文档+源码)_kaic
本文介绍了一款大学生就业平台微信小程序的开发过程,涵盖开发环境、系统设计、实现与测试等方面。该小程序基于微信平台特性,采用MYSQL数据库存储数据,确保系统稳定与安全,同时满足学生、企业和管理员不同权限用户的功能需求。通过简化操作流程,实现了招聘信息查看、简历投递等实用功能,旨在为用户提供便捷高效的求职体验,符合“操作简单,功能实用”的设计理念。
|
6月前
|
小程序 Java 关系型数据库
weixin025移动学习平台的设计与实现+ssm(文档+源码)_kaic
基于微信小程序的移动学习平台旨在解决传统APP占用过多手机存储空间的问题,提升用户体验。该平台使用微信开发者工具开发前端,SSM框架和Java语言开发后台,并采用MySQL数据库保存数据。系统支持管理员对教师、课程、学生信息进行管理,教师可查看及审核作业,管理课程资源;学生能提交作业、查看审核结果并收藏或评论课程资源。此平台使用户无需安装独立APP即可访问学习内容,极大提升了便捷性和管理效率。 关键词:基于微信小程序的移动学习平台;微信开发者工具;SSM框架
|
6月前
|
安全 小程序 Java
weixin027校园二手平台的设计与实现+ssm(文档+源码)_kaic
本项目基于微信小程序开发校园二手交易平台,旨在解决大学生闲置物品交易问题。系统采用Java语言和MySQL数据库设计,支持用户浏览、收藏、评价商品及发布闲置物品。管理员可审核商品和用户信息,确保交易安全。系统具备在线搜索功能,方便用户查找商品,并提供实时沟通渠道,增强平台透明度和用户体验。该平台简化了二手交易流程,满足了大学生对便捷、高效交易的需求,具有重要的实际应用价值。
|
6月前
|
前端开发 Java 关系型数据库
基于ssm的培训学校教学管理平台,附源码+数据库+论文
金旗帜文化培训学校网站项目包含管理员、教师和用户三种角色,各角色功能通过用例图展示。技术框架采用Java语言,B/S架构,前端为Vue+HTML+CSS+LayUI,后端为SSM,数据库为MySQL,运行环境为JDK8+Tomcat8.5。项目含12张数据库表,非前后端分离,支持演示视频与截图查看。购买后提供免费安装调试服务,确保顺利运行。
95 14
|
6月前
|
小程序 Java 关系型数据库
weixin049校园外卖平台设计与实现+ssm(文档+源码)_kaic
本文介绍了一款校园外卖平台的设计与实现过程。该平台采用Java的SSM框架进行后台管理开发,使用MySQL作为本地数据库,并通过微信小程序为用户提供便捷的操作界面。系统包括管理员、用户和商家三个角色,功能涵盖个人中心、用户及商家管理、菜品分类与信息管理、订单处理等。管理员可在浏览器上登录管理后台数据,用户与商家则通过微信小程序注册登录,分别实现订餐与菜品管理功能。此平台具备界面清晰、操作简单、功能齐全的特点,有助于提升校园外卖管理的效率与规范性。
|
6月前
|
前端开发 Java 关系型数据库
基于ssm的培训学校教学管理平台,附源码+数据库+论文
该项目为一培训学校教学管理平台,涵盖管理员、教师和学生三大功能模块。管理员可进行系统全面管理,包括学生、教师、课程等信息的增删改查;教师能管理个人中心、课程及选课信息;学生则可管理个人中心及选课信息。技术框架采用Java编程语言,基于B/S架构,前端使用Vue+HTML+JavaScript+CSS+LayUI,后端采用SSM框架,数据库为MySQL。项目运行环境为JDK8+MySQL5.7+Tomcat8.5,支持远程调试安装。演示视频与详细文档截图均提供下载链接。
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的跑腿平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的跑腿平台附带文章和源代码部署视频讲解等
162 10
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的洛川县苹果销售管理平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的洛川县苹果销售管理平台附带文章和源代码部署视频讲解等
78 5

热门文章

最新文章