基于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);
      }


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


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

相关文章
|
1天前
|
前端开发 Java 关系型数据库
基于SSM的大学生兼职平台的设计与实现
基于SSM的大学生兼职平台的设计与实现
7 2
|
1天前
|
安全 开发工具 数据库
基于ssm的一汽租车辆共享平台的设计与实现
基于ssm的一汽租车辆共享平台的设计与实现
11 1
|
4月前
|
前端开发 Java 关系型数据库
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
|
2月前
|
存储 安全 前端开发
ssm656基于JAVA的校园失物招领平台的设计与实现
ssm656基于JAVA的校园失物招领平台的设计与实现
|
4月前
|
人工智能 前端开发 JavaScript
毕业设计|SSM+VUE的旅游平台系统(三)
毕业设计|SSM+VUE的旅游平台系统
|
4月前
毕业设计|SSM+VUE的旅游平台系统(二)
毕业设计|SSM+VUE的旅游平台系统
|
4月前
|
前端开发 JavaScript Java
毕业设计|SSM+VUE的旅游平台系统(一)
毕业设计|SSM+VUE的旅游平台系统
|
4月前
|
前端开发 JavaScript Java
基于SSM实现校园互助论坛平台
基于SSM实现校园互助论坛平台
|
4月前
|
Java 数据安全/隐私保护
基于SSM实现校友录管理平台(二)
基于SSM实现校友录管理平台
|
4月前
|
前端开发 Java 关系型数据库
基于SSM实现校友录管理平台(一)
基于SSM实现校友录管理平台