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


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

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

    项目功能:

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

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

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

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

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

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

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

    系统包含技术:

    后端:SSM整合
    前端:bootstrap、js、css等
    开发工具:eclipse
    数据库:mysql 5.7
    JDK版本:jdk1.8
    服务器:tomcat8

    部分截图说明:

    下面是用户首页

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

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

     活动详情

    用户可以进行登陆

     

    后台登录

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

     

    对活动的报名进行维护

     

    对捐款记录进行维护

    对评价进行管理

     求助管理

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

     

    部分代码:

    1. @RequestMapping("list")
    2. public String list(Integer page, Integer limit,String content,Model model,
    3. HttpSession session) {
    4. PageBean pageBean=new PageBean();
    5. if(page==null){
    6. page=1;
    7. }
    8. QueryWrapper<Question> wrapper = new QueryWrapper<Question>();
    9. if (!StringUtils.isEmpty(content)) {
    10. wrapper.like("content", content);
    11. model.addAttribute("content", content);
    12. }
    13. Integer role=(Integer)session.getAttribute("role");
    14. if(role!=null && role==1){
    15. Users users=(Users)session.getAttribute("users");
    16. wrapper.eq("uid", users.getId());
    17. }
    18. wrapper.eq("isdel", 0);
    19. wrapper.orderByDesc("id");
    20. IPage<Question> pageList = new Page<Question>(pageBean.getPageNo(), pageBean.getPageSize());
    21. pageList = questionService.page(pageList, wrapper);
    22. List<Question> list = pageList.getRecords();
    23. // 关联对象
    24. for (Question m : list) {
    25. Users u = usersService.getById(m.getUid());
    26. m.setUsers(u);
    27. }
    28. // 会自动查出总条数
    29. int count = (int) pageList.getTotal();
    30. pageBean.setTotalCount(count);
    31. model.addAttribute("pageBean", pageBean);
    32. model.addAttribute("list", list);
    33. return "admin/question";
    34. }
    35. @RequestMapping("index")
    36. public String index(Integer page,String name,Integer id,Model model,HttpServletRequest request) {
    37. PageBean pageBean=new PageBean();
    38. if(page!=null){
    39. pageBean.setPageNo(page);
    40. }
    41. pageBean.setPageSize(4);
    42. QueryWrapper<Question> wrapper = new QueryWrapper<Question>();
    43. wrapper.eq("isdel", 0);
    44. wrapper.orderByDesc("id");
    45. IPage<Question> pageList = new Page<Question>(pageBean.getPageNo(),pageBean.getPageSize());
    46. pageList = questionService.page(pageList, wrapper);
    47. List<Question> list = pageList.getRecords();
    48. // 关联对象
    49. for (Question m : list) {
    50. Users u = usersService.getById(m.getUid());
    51. m.setUsers(u);
    52. //回复
    53. QueryWrapper<Reply> qwrapper=new QueryWrapper<Reply>();
    54. qwrapper.eq("pid", m.getId());
    55. qwrapper.eq("type", 2);
    56. List<Reply> replys=replyService.list(qwrapper);
    57. for (Reply r : replys) {
    58. Users ru = usersService.getById(r.getUid());
    59. r.setUsers(ru);
    60. }
    61. m.setReplys(replys);
    62. }
    63. // 会自动查出总条数
    64. int count = (int) pageList.getTotal();
    65. pageBean.setTotalCount(count);
    66. model.addAttribute("pageBean", pageBean);
    67. model.addAttribute("list", list);
    68. if(id==null){
    69. id=0;
    70. }
    71. model.addAttribute("id", id);
    72. return "questionList";
    73. }
    74. @RequestMapping("detail")
    75. public String detail(Integer id, Model model, HttpServletRequest request) {
    76. Question m = questionService.getById(id);
    77. Users u = usersService.getById(m.getUid());
    78. m.setUsers(u);
    79. QueryWrapper<Reply> rwrapper = new QueryWrapper<Reply>();
    80. rwrapper.eq("pid", m.getId());
    81. List<Reply> replys = replyService.list(rwrapper);
    82. for (Reply r : replys) {
    83. Users ru = usersService.getById(r.getUid());
    84. r.setUsers(ru);
    85. }
    86. m.setReplys(replys);
    87. model.addAttribute("question", m);
    88. return "questionDetail";
    89. }
    90. @RequestMapping("admindetail")
    91. public String admindetail(Integer id, Model model, HttpServletRequest request) {
    92. Question m = questionService.getById(id);
    93. Users u = usersService.getById(m.getUid());
    94. m.setUsers(u);
    95. QueryWrapper<Reply> rwrapper = new QueryWrapper<Reply>();
    96. rwrapper.eq("pid", m.getId());
    97. List<Reply> replys = replyService.list(rwrapper);
    98. for (Reply r : replys) {
    99. Users ru = usersService.getById(r.getUid());
    100. r.setUsers(ru);
    101. }
    102. m.setReplys(replys);
    103. model.addAttribute("question", m);
    104. return "admin/questionDetail";
    105. }
    106. @RequestMapping("add")
    107. @ResponseBody
    108. public ServerResponse<Question> add(Question question) {
    109. question.setIsdel(0);
    110. question.setOptime(Const.getFullTime());
    111. boolean flag=questionService.save(question);
    112. if(flag){
    113. return new ServerResponse<Question>("0", "操作成功!");
    114. }else{
    115. return new ServerResponse<Question>("1", "操作失败!");
    116. }
    117. }
    118. @RequestMapping("update")
    119. @ResponseBody
    120. public ServerResponse<Question> update(Question question) {
    121. boolean flag = questionService.updateById(question);
    122. if (flag) {
    123. return new ServerResponse<Question>("0", "操作成功!");
    124. } else {
    125. return new ServerResponse<Question>("1", "操作失败!");
    126. }
    127. }
    128. @RequestMapping("delete")
    129. @ResponseBody
    130. public ServerResponse<Question> delete(Question question) {
    131. question.setIsdel(1);
    132. boolean flag = questionService.updateById(question);
    133. if (flag) {
    134. return new ServerResponse<Question>("0", "删除成功!");
    135. } else {
    136. return new ServerResponse<Question>("1", "删除失败!");
    137. }
    138. }

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

    1. @RequestMapping(value="/upload", produces = "text/html; charset=utf-8")
    2. @ResponseBody
    3. public String upload(MultipartFile file, HttpServletRequest request,HttpServletResponse response) throws IOException {
    4. //传到服务器
    5. //得到真实路径
    6. String path=request.getSession().getServletContext().getRealPath("/images");
    7. //目标文件
    8. //目标文件
    9. String fileName=path+"\\"+file.getOriginalFilename();
    10. fileName=URLDecoder.decode(fileName, "UTF-8");
    11. file.transferTo(new File(fileName));
    12. System.out.print("名字:"+file.getOriginalFilename());
    13. return file.getOriginalFilename();
    14. }
    15. @RequestMapping("/upfile")
    16. @ResponseBody
    17. public JSONObject upfile(MultipartFile file, HttpServletRequest request,HttpServletResponse response) throws IOException {
    18. //传到服务器
    19. //得到真实路径
    20. String path=request.getSession().getServletContext().getRealPath("/images");
    21. //目标文件
    22. String fileName=path+"\\"+file.getOriginalFilename();
    23. fileName=URLDecoder.decode(fileName, "UTF-8");
    24. file.transferTo(new File(fileName));
    25. JSONObject result=new JSONObject();
    26. result.put("errno", 0);
    27. JSONArray data=new JSONArray();
    28. data.add(Const.ROOT+"images/"+file.getOriginalFilename());
    29. result.put("data", data);
    30. result.put("filename",file.getOriginalFilename());
    31. return result;
    32. }
    33. @RequestMapping(value="/download")
    34. public ResponseEntity<byte[]> download(HttpServletRequest request,
    35. @RequestParam("filename") String filename,
    36. Model model)throws Exception {
    37. //下载文件路径
    38. //String path = request.getSession().getServletContext().getRealPath("/images/");
    39. String path=request.getSession().getServletContext().getRealPath("/images");
    40. //找到服务器里面的中文文件,Tomcat8就不需要
    41. //filename = new String(filename.getBytes("iso-8859-1"),"UTF-8");
    42. String truepath=URLDecoder.decode(path + File.separator + filename, "UTF-8");
    43. File file = new File(truepath);
    44. HttpHeaders headers = new HttpHeaders();
    45. //通知浏览器以attachment(下载方式)打开图片,所有浏览器都会使用本地编码,即中文操作系统使用GBK
    46. //下载框中显示的文件名,解决中文名称乱码问题
    47. headers.setContentDispositionFormData("attachment", new String(filename.getBytes("GBK"),"iso-8859-1"));
    48. //application/octet-stream : 二进制流数据(最常见的文件下载)。
    49. headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    50. return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
    51. headers, HttpStatus.CREATED);
    52. }

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

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

  • 相关阅读:
    【牛客刷题】二叉树的镜像
    计算机毕业设计ssm高校学生宿舍管理系统183rq系统+程序+源码+lw+远程部署
    Win10文件夹共享(有密码的安全共享)(SMB协议共享)
    死亡游戏:密室互猜硬币规则及其破解方法
    两个src案例分享
    【模型训练】YOLOv7不同颜色安全帽佩戴检测
    Win10专业版系统一键重装怎么操作?
    SQL Server教程 - SQL Server 压缩(Compression)
    【微信小程序】如何上传uniApp开发的微信小程序?
    PyTorch笔记 - Attention Is All You Need (2)
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/126514278