项目介绍:
本系统采用SSM框架,数据层采用mybatis,数据库使用mysql,适合选题:爱心、慈善、捐献、捐赠等。
项目功能:
1. 用户信息管理:管理员可对该系统的用户信息进行管理与维护。
2. 公益新闻管理:管理员进入系统对公益新闻信息进行管理与维护。
3. 求助信息管理:管理员通过系统在线管理系统的求助信息。并对求助信息进行在线审核。
4. 捐款记录管理:管理员通过系统在线管理系统用户的捐款信息。管理员及时对捐款信息做出反馈。
5. 活动管理:管理员通过系统在线管理活动信息。管理员可在线发布活动。
6. 个人信息管理:用户可对个人信息进行修改与维护,对个人基本资料进行更新,对账号密码信息进行更改。
7报名管理:管理员通过系统在线管理系统的报名信息。并对报名信息进行在线审核。
系统包含技术:
后端:SSM整合
前端:bootstrap、js、css等
开发工具:eclipse
数据库:mysql 5.7
JDK版本:jdk1.8
服务器:tomcat8
部分截图说明:
下面是用户首页
可以查看已发布的公益新闻
活动列表,查看已发布的活动
活动详情
用户可以进行登陆
后台登录
登录后是管理员,可以对用户维护
对活动的报名进行维护
对捐款记录进行维护
对评价进行管理
求助管理
评价信息,管理员进行管理
部分代码:
@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); }
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~