博主主页猫头鹰源码

博主简介: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

部分截图说明:

下面是用户首页

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

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

 活动详情

用户可以进行登陆

 

后台登录

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

 

对活动的报名进行维护

 

对捐款记录进行维护

对评价进行管理

 求助管理

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

 

部分代码:

@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);
	    }

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

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐