基于javaweb和mysql的ssm房屋租赁管理系统(java+ssm+layui+mysql+jsp)

私信源码获取及调试交流

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SSM房屋租赁管理系统(java+ssm+layui+mysql+jsp)

一、项目简述

功能包括: 房屋租赁管理系统是一款方便快捷,易操作的租房和各种物业收费的管理系统,该系统官网包含着用户和管理员分类登录,减少了为使用管理员系统的开支,用户分别支持手机网上或电脑网页快捷的查找可出租的房子,并在网上在线支付,并还包含有故障报修,缴租提醒,极大符合现代人们不想出门又快捷办事的需求,管理员也只需在网上提醒用户缴费即可,并有着查看用户信息,查看报障,租金信息,合同信息,日常提醒,添加删除或修改房屋的功能。

二、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等


@Controller
@RequestMapping("/alipaymvc")
public class PayController {

	@Resource
	private RentcollectionService rentcollectionService;
	
	@Resource
	private HeadPortraitImgService headPortraitImgService;
	
	/**
	 * 回调并缴纳租金
	 */
	@RequestMapping(value = "/returnUrl", method = RequestMethod.GET)
	public ModelAndView returnUrl(HttpServletRequest request, HttpServletResponse response,HttpSession session) throws UnsupportedEncodingException, AlipayApiException {
		session.setAttribute("user", AlipayConfig.usercall);
		headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(AlipayConfig.usercall);
		if (headportraitimg.getHeadportraitimgaddress() != null) {
			session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());
		}
		ModelAndView mav = new ModelAndView("redirect:/jsp/personacenter.jsp");
	    // 获取支付宝GET过来反馈信息
	    Map<String, String> params = new HashMap<String, String>();
	    Map<String, String[]> requestParams = request.getParameterMap();
	    for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
	        String name = (String) iter.next();
	        String[] values = (String[]) requestParams.get(name);
	        String valueStr = "";
	        for (int i = 0; i < values.length; i++) {
	            valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
	        }
		// 引用PageHelper分页插件
		PageHelper.startPage(pn, 10);
		List<fault> faultdone = faultService.repairselect(vo);
		for (fault temp : faultdone) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String date = sdf.format(temp.getFdate());
			temp.setFdatetemp(date);
		}
		PageInfo<fault> page = new PageInfo<fault>(faultdone, 3);
		model.addAttribute("p", page);
		model.addAttribute("vo", vo);
		return "repairdone";
	}

	/**
	 * 我要收租
	 */
	@RequestMapping("/adminrentshou")
	public String rentshou(@RequestParam(value = "pn", defaultValue = "1") Integer pn, Model model) {
		// 引用PageHelper分页插件
		PageHelper.startPage(pn, 10);
		List<userlist> userlists = userlistService.rentSelectAll();
		PageInfo<userlist> page = new PageInfo<userlist>(userlists, 3);
		model.addAttribute("rent", page);
		return "rentshou";
	}

	/**
	 * 获取收租信息
	 */
	@RequestMapping("/adminrentselect")
	public String rentadd(String housecall, Model model) {
		userlist userlist = userlistService.selectUserCallWith(housecall);
		model.addAttribute("addrent", userlist);
		return "rentadd";
	}

	/**
	 * 添加代缴租金
	 */
	@RequestMapping("/adminrentadd")
	public String rentaddwait(rentcollection rentcollection) {
		rentcollectionService.insert(rentcollection);
	
	/**
	 * 回调并缴纳租金
	 */
	@RequestMapping(value = "/returnUrl", method = RequestMethod.GET)
	public ModelAndView returnUrl(HttpServletRequest request, HttpServletResponse response,HttpSession session) throws UnsupportedEncodingException, AlipayApiException {
		session.setAttribute("user", AlipayConfig.usercall);
		headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(AlipayConfig.usercall);
		if (headportraitimg.getHeadportraitimgaddress() != null) {
			session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());
		}
		ModelAndView mav = new ModelAndView("redirect:/jsp/personacenter.jsp");
	    // 获取支付宝GET过来反馈信息
	    Map<String, String> params = new HashMap<String, String>();
	    Map<String, String[]> requestParams = request.getParameterMap();
	    for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
	        String name = (String) iter.next();
	        String[] values = (String[]) requestParams.get(name);
	        String valueStr = "";
	        for (int i = 0; i < values.length; i++) {
	            valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
	        }
	        // 乱码解决,这段代码在出现乱码时使用
	        valueStr = new String(valueStr.getBytes("utf-8"), "utf-8");
	        params.put(name, valueStr);
	    }

	    System.out.println(params);//查看参数都有哪些
	    boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset,  AlipayConfig.sign_type); // 调用SDK验证签名
	    //验证签名通过
	    if(signVerified){
	        // 商户订单号
	        String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"), "UTF-8");
	        
	        // 支付宝交易号
	        String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"), "UTF-8");
	        
	        // 付款金额
	        String total_amount = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"), "UTF-8");
	        
	        

@Controller
@RequestMapping("/admin")
public class Adminfunctioncontroller {

	@Resource
	private RentwithdrawnService rentwithdrawnService;

	@Resource
	private LeaseinformationService leaseinformationService;

		String fhouseid = fault.getFhouseid();
		String fhouseaddress = fault.getFhouseaddress();
		Double fprice = fault.getFprice();
		Date fdate = fault.getFdate();
		String fcontent = fault.getFcontent();
		String fusername = fault.getFusername();
		String fuserid = fault.getFuserid();
		String fuserphone = fault.getFuserphone();
		String fstate = "已处理";
		fault f = new fault(fhouseid, fhouseaddress, fprice, fdate, fcontent, fusername, fuserid, fuserphone, fstate,
				id);
		faultService.updateByPrimaryKey(f);
		return "redirect:/admin/Adminselectrepairwait.do";
	}

	/**
	 * 报障删除
	 */
	@RequestMapping("/adminrepairdone")
	public String delrepair(Integer id) {
		faultService.deleteByPrimaryKey(id);
		return "redirect:/admin/Adminselectrepairdone.do";
	}

	/**
	 * 搜索报障
	 */
	@RequestMapping("/repairselect")
	public String repairselect(QueryVo vo, @RequestParam(value = "pn", defaultValue = "1") Integer pn, Model model) {
		// 引用PageHelper分页插件
		PageHelper.startPage(pn, 10);
		List<fault> faultdone = faultService.repairselect(vo);
		for (fault temp : faultdone) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String date = sdf.format(temp.getFdate());
			temp.setFdatetemp(date);
		}
		PageInfo<fault> page = new PageInfo<fault>(faultdone, 3);
		model.addAttribute("p", page);
		model.addAttribute("vo", vo);
		return "repairdone";
	}

	/**
	 * 我要收租
	 */
		return "repairdone";
	}

	/**
	 * 报障状态修改
	 */
	@RequestMapping("/adminrepairwait")
	public String updaterepairwait(Integer id) {
		fault fault = faultService.selectByPrimaryKey(id);
		String fhouseid = fault.getFhouseid();
		String fhouseaddress = fault.getFhouseaddress();
		Double fprice = fault.getFprice();
		Date fdate = fault.getFdate();
		String fcontent = fault.getFcontent();
		String fusername = fault.getFusername();
		String fuserid = fault.getFuserid();
		String fuserphone = fault.getFuserphone();
		String fstate = "已处理";
		fault f = new fault(fhouseid, fhouseaddress, fprice, fdate, fcontent, fusername, fuserid, fuserphone, fstate,
				id);
		faultService.updateByPrimaryKey(f);
		return "redirect:/admin/Adminselectrepairwait.do";
	}

	/**
	 * 报障删除
	 */
	@RequestMapping("/adminrepairdone")
	public String delrepair(Integer id) {
		faultService.deleteByPrimaryKey(id);
		return "redirect:/admin/Adminselectrepairdone.do";
	}

	/**
	 * 搜索报障
	 */
	@RequestMapping("/repairselect")
	public String repairselect(QueryVo vo, @RequestParam(value = "pn", defaultValue = "1") Integer pn, Model model) {
		// 引用PageHelper分页插件
		PageHelper.startPage(pn, 10);
		List<fault> faultdone = faultService.repairselect(vo);
		for (fault temp : faultdone) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String date = sdf.format(temp.getFdate());
			temp.setFdatetemp(date);
		}
		PageInfo<fault> page = new PageInfo<fault>(faultdone, 3);
		model.addAttribute("p", page);
		model.addAttribute("vo", vo);
		return "repairdone";
	}

	/**
			String temp=checkoutapplicationService.insertApply(coa);
			mav.addObject("apply", temp);
		}
		return mav;
	}

}

@Controller
@RequestMapping("/alipaymvc")
public class PayController {

	@Resource
	private RentcollectionService rentcollectionService;
	
	@Resource
	private HeadPortraitImgService headPortraitImgService;
	
	/**
	}

	/**
	 * 删除已退租记录
	 */
	@RequestMapping("/deleterentrefund")
	public ModelAndView deleterentrefund(Integer rwid,String token,HttpServletRequest request,HttpSession session) {
		ModelAndView mav = new ModelAndView("personacenter");
		//令牌验证
		if(!new Koken().kokenid(request, session)) {
			return mav;	
		}
		Warning news = rentwithdrawnService.deleteByPrimaryKey(rwid);
		System.out.println(news.getWarningContent());
		// 放入转发参数
		mav.addObject("news", news);
		return mav;
	}

	/**
	 * 查看合同
	 */
	@RequestMapping("/viewcontract")
	public ModelAndView viewcontract(String username, String userid, String houseaddress, String housestartingdatetemp,
			String houseclosingdatetemp, String housemoney, String userphone, String houseid,HttpServletRequest request,HttpSession session) {
		ModelAndView mav = new ModelAndView("personacenter");
		String arraytemp[] = { username, userid, houseaddress, housestartingdatetemp, houseclosingdatetemp, housemoney,
				userphone, houseid };
		String temp = (arraytemp[0]+arraytemp[7]) + "pdf.pdf";
		File filetemp = new File("C://cnqf/contract/pdf/" + temp);
		if (!filetemp.exists()) {
//			System.out.println(new DocumentConversion().DocumentGeneration(arraytemp));
			new DocumentConversion().PdfGeneration((arraytemp[0]+arraytemp[7]));
			filetemp = new File("C://cnqf/contract/pdf/" + temp);
		}
		
		String pdf = filetemp.getName();
		// 放入转发参数
		mav.addObject("pdftemp", pdf);

		return mav;
	}

	/**
	 * 终止合同
		PageInfo<leaseinformation> p = new PageInfo<leaseinformation>(leaseinformation, 3);

		model.addAttribute("p", p);
		return "housinglist";
	}

	/**
	 * 获取修改房源信息
	 */
	@RequestMapping("/getupdatehouse")
	public String getupdatehouse(int houseid, HttpServletRequest request) {
		List<leaseinformation> house = leaseinformationService.queryID(houseid);
		request.setAttribute("uphouse", house);
		return "houseupdate";
	}

	/**
	 * 修改房源信息
	 */
	@RequestMapping("/updatehouse")
	public String updatehouse(Integer houseid, String housetype, String address, String area, String rent, String state,
			HttpServletRequest request) {
		leaseinformation house = leaseinformationService.queryID(houseid).get(0);
		request.removeAttribute("uphouse");
		house.setHouseaddress(address);
		house.setHousemoney(rent);
		house.setHousetype(housetype);
		house.setHousesize(Double.valueOf(area));
		house.setHousestate(state);
		house.setHouseid(houseid);
		leaseinformationService.updateByPrimaryKey(house);
		request.setAttribute("sessce", "修改成功");
		request.setAttribute("newhouse", house);
		return "houseupdate";
	}

	/**
	 * 删除房源信息
	 */
	@RequestMapping("/delethouse")
	public String delethouse(int houseid, HttpServletRequest request) {
		if (houseid >= 0) {
			int id = leaseinformationService.queryID(houseid).get(0).getId();

			leaseinformationService.deleteByPrimaryKey(houseid);
		ModelAndView mav = new ModelAndView("rentingdel");
		rentwithdrawnService.deleteByPrimaryKey(id);
		return mav;
	}

	@RequestMapping("/rentinglist")
	public ModelAndView listHouseState(@RequestParam int pn) {
		ModelAndView mav = new ModelAndView("rentinglist");
		// 设置分页传输
		PageHelper.startPage(pn, 10);
		// 查询所有数据
		List<leaseinformation> list = leaseinformationService.selecthousteaseWith("出租中");
		// 使用PageInFo封装查询结果
		PageInfo<leaseinformation> pageInfo = new PageInfo<leaseinformation>(list, 5);
		// 放入转发参数
		mav.addObject("cs", pageInfo);
		return mav;
	}

	@RequestMapping("/delectcontract")
	public ModelAndView delectcontract(@RequestParam int id) {
		ModelAndView mav = new ModelAndView("rentinglist");
		leaseinformationService.updacontract(id);
		return mav;
	}

	/**
	 * 看房申请列表
	 */
	@RequestMapping("/houseapply")
	public ModelAndView kanfansqing(@RequestParam int pn) {
		ModelAndView mav = new ModelAndView("houseapply");
		// 设置分页传输
		PageHelper.startPage(pn, 10);
		// 查询所有数据
		List<checkoutapplication> list = checkoutapplicationService.selectCoaState();
		// 使用PageInFo封装查询结果
		PageInfo<checkoutapplication> pageInfo = new PageInfo<checkoutapplication>(list, 5);
		// 放入转发参数
		mav.addObject("cs", pageInfo);
		return mav;
	}

	/**
	 * 预约看房申请
	 */
	@RequestMapping("/tonyizp")
	public ModelAndView tonyizp(@RequestParam int id, String housecall, String name) throws ParseException {
		ModelAndView mav = new ModelAndView("houseapply");
		String result = "";
		Random random = new Random();
		for (int i = 0; i < 4; i++) {
			int index = random.nextInt(ch.length());
			char c = ch.charAt(index);
			result += c;
		}
		return result;
	}
	public static void main(String[] args)  {
		try {
			Code.getNum("18775756179");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

/**
 * 房屋信息控制器
 *
 */
 
@Controller
@RequestMapping("/leaseinformationmvc")
public class LeaseinformationController {
    @Autowired
	public String delrepair(Integer id) {
		faultService.deleteByPrimaryKey(id);
		return "redirect:/admin/Adminselectrepairdone.do";
	}

	/**
	 * 搜索报障
	 */
	@RequestMapping("/repairselect")
	public String repairselect(QueryVo vo, @RequestParam(value = "pn", defaultValue = "1") Integer pn, Model model) {
		// 引用PageHelper分页插件
		PageHelper.startPage(pn, 10);
		List<fault> faultdone = faultService.repairselect(vo);
		for (fault temp : faultdone) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String date = sdf.format(temp.getFdate());
			temp.setFdatetemp(date);
		}
		PageInfo<fault> page = new PageInfo<fault>(faultdone, 3);
		model.addAttribute("p", page);
		model.addAttribute("vo", vo);
		return "repairdone";
	}

	/**
	 * 我要收租
	 */
	@RequestMapping("/adminrentshou")
	public String rentshou(@RequestParam(value = "pn", defaultValue = "1") Integer pn, Model model) {
		// 引用PageHelper分页插件
		PageHelper.startPage(pn, 10);
		List<userlist> userlists = userlistService.rentSelectAll();
		PageInfo<userlist> page = new PageInfo<userlist>(userlists, 3);
		model.addAttribute("rent", page);
		return "rentshou";
	}

	/**
	 * 获取收租信息
	 */
	@RequestMapping("/adminrentselect")
	public String rentadd(String housecall, Model model) {
		userlist userlist = userlistService.selectUserCallWith(housecall);
		model.addAttribute("addrent", userlist);
		return "rentadd";
	}

	/**
	 * 添加代缴租金
	 */
	@RequestMapping("/adminrentadd")
	public String rentaddwait(rentcollection rentcollection) {
			temp.setFdatetemp(date);
		}
		PageInfo<fault> page = new PageInfo<fault>(faultdone, 3);
		model.addAttribute("p", page);
		model.addAttribute("vo", vo);
		return "repairdone";
	}

	/**
	 * 我要收租
	 */
	@RequestMapping("/adminrentshou")
	public String rentshou(@RequestParam(value = "pn", defaultValue = "1") Integer pn, Model model) {
		// 引用PageHelper分页插件
		PageHelper.startPage(pn, 10);
		List<userlist> userlists = userlistService.rentSelectAll();
		PageInfo<userlist> page = new PageInfo<userlist>(userlists, 3);
		model.addAttribute("rent", page);
		return "rentshou";
	}

	/**
	 * 获取收租信息
	 */
	@RequestMapping("/adminrentselect")
	public String rentadd(String housecall, Model model) {
		userlist userlist = userlistService.selectUserCallWith(housecall);
		model.addAttribute("addrent", userlist);
		return "rentadd";
	}

	/**
	 * 添加代缴租金
	 */
	@RequestMapping("/adminrentadd")
	public String rentaddwait(rentcollection rentcollection) {
		rentcollectionService.insert(rentcollection);
		return "redirect:/admin/adminrentshou.do";
	}

		return mav;
	}
}

/**
 * 用户控制器
 * 
 *
 */
@Controller
@RequestMapping("/userlistmvc")
public class UserListController {

	private static final long serialVersionUID = -884689940866074733L;

	@Resource
		System.out.println(Arrays.toString(arraytemp));
		String temp = arraytemp[7] + "pdf.pdf";
		File filetemp = new File("C://cnqf/contract/pdf/" + temp);
		if (!filetemp.exists()) {
			System.out.println(new DocumentConversion().DocumentGeneration(arraytemp));
			new DocumentConversion().PdfGeneration(arraytemp[7]);
			filetemp = new File("C://cnqf/contract/pdf/" + temp);
		}

		String pdf = filetemp.getName();
		// 放入转发参数
		mav.addObject("pdftemp", pdf);

		return mav;
	}
}

		headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(AlipayConfig.usercall);
		if (headportraitimg.getHeadportraitimgaddress() != null) {
			session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());
		}
		ModelAndView mav = new ModelAndView("redirect:/jsp/personacenter.jsp");
	    // 获取支付宝GET过来反馈信息
	    Map<String, String> params = new HashMap<String, String>();
	    Map<String, String[]> requestParams = request.getParameterMap();
	    for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
	        String name = (String) iter.next();
	        String[] values = (String[]) requestParams.get(name);
	        String valueStr = "";
	        for (int i = 0; i < values.length; i++) {
	            valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
	        }
	        // 乱码解决,这段代码在出现乱码时使用
	        valueStr = new String(valueStr.getBytes("utf-8"), "utf-8");
	        params.put(name, valueStr);
	    }

	    System.out.println(params);//查看参数都有哪些
	    boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset,  AlipayConfig.sign_type); // 调用SDK验证签名
	    //验证签名通过
	    if(signVerified){
	        // 商户订单号
	        String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"), "UTF-8");
	        
	        // 支付宝交易号
	        String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"), "UTF-8");
	        
	        // 付款金额
	        String total_amount = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"), "UTF-8");
	        
	        
	        System.out.println("商户订单号="+out_trade_no);
	        System.out.println("支付宝交易号="+trade_no);
	        System.out.println("付款金额="+total_amount);
	        
	        /**
	    	 * 缴纳租金
	    	 */
	        Warning news = rentcollectionService.updateState(Integer.parseInt(AlipayConfig.rcid));
	 * 删除已退租记录
	 */
	@RequestMapping("/deleterentrefund")
	public ModelAndView deleterentrefund(Integer rwid,String token,HttpServletRequest request,HttpSession session) {
		ModelAndView mav = new ModelAndView("personacenter");
		//令牌验证
		if(!new Koken().kokenid(request, session)) {
			return mav;	
		}
		Warning news = rentwithdrawnService.deleteByPrimaryKey(rwid);
		System.out.println(news.getWarningContent());
		// 放入转发参数
		mav.addObject("news", news);
		return mav;
	}

	/**
	 * 查看合同
	 */
	@RequestMapping("/viewcontract")
	public ModelAndView viewcontract(String username, String userid, String houseaddress, String housestartingdatetemp,
			String houseclosingdatetemp, String housemoney, String userphone, String houseid,HttpServletRequest request,HttpSession session) {
		ModelAndView mav = new ModelAndView("personacenter");
		String arraytemp[] = { username, userid, houseaddress, housestartingdatetemp, houseclosingdatetemp, housemoney,
				userphone, houseid };
		String temp = (arraytemp[0]+arraytemp[7]) + "pdf.pdf";
		File filetemp = new File("C://cnqf/contract/pdf/" + temp);
		if (!filetemp.exists()) {
//			System.out.println(new DocumentConversion().DocumentGeneration(arraytemp));
			new DocumentConversion().PdfGeneration((arraytemp[0]+arraytemp[7]));
			filetemp = new File("C://cnqf/contract/pdf/" + temp);
		}
		
		String pdf = filetemp.getName();
		// 放入转发参数
		mav.addObject("pdftemp", pdf);

		return mav;
	}

	/**
	 * 终止合同
	 */
	@RequestMapping("/termination")
	public ModelAndView termination(String call,String token,HttpServletRequest request,HttpSession session) {
		ModelAndView mav = new ModelAndView("personacenter");
		//令牌验证
		if(!new Koken().kokenid(request, session)) {
			return mav;	
		// 放入转发参数
		mav.addObject("pdftemp", pdf);

		return mav;
	}
}

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐