基于javaweb+mysql的ssm房屋租赁管理系统(java+ssm+layui+mysql+jsp)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的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等等
Warning news = checkoutapplicationService.deleteByPrimaryKey(coaid);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
return mav;
}
}
/**
* 用户控制器
*
*
*/
@Controller
@RequestMapping("/userlistmvc")
public class UserListController {
private static final long serialVersionUID = -884689940866074733L;
@Resource
private UserlistService userlistService;
return mav;
}
/**
* 同意退房
*/
@RequestMapping("/checkoutmvc")
public ModelAndView checkoutmvc(@RequestParam int id,String housecall) {
ModelAndView mav = new ModelAndView("housedel");
String news=checkoutapplicationService.updateState("已同意", id);
if(news.equals("同意退租成功!")) {
System.out.println(news);
System.out.println(leaseinformationService.updateCancelForeignKey(housecall));
}
return mav;
}
/**
* 拒绝退房
*/
@RequestMapping("/refusemvc")
public ModelAndView refusemvc(@RequestParam int id) {
ModelAndView mav = new ModelAndView("housedel");
System.out.println(checkoutapplicationService.updateState("已拒绝", id));
return mav;
}
/**
* 分页查找所有用户
*/
@RequestMapping("/pagingselectuser")
public String pagingselectuser(Model model, @RequestParam(value = "pn", defaultValue = "1") Integer pn,
@RequestParam(required = false, defaultValue = "6") Integer pageSize) {
PageHelper.startPage(pn, 10);
List<userlist> userlist = userlistService.selectAll();
PageInfo<userlist> p = new PageInfo<userlist>(userlist, 3);
model.addAttribute("p", p);
return "account";
}
/**
* 删除用户信息
*/
@RequestMapping("/deletuser")
public String deletuser(int id,String username,HttpServletRequest request) {
userlistService.updateJointTabledelete(username);
headPortraitImgService.deletuserimg(userlistService.selectUserId(id).getUsercall());
/**
* 代缴租金分页查询
*/
@RequestMapping("/rentpaymentList")
@ResponseBody
public Msg rentpaymentList(@RequestParam(value = "pn") Integer pn, String state, HttpSession session) {
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
List<rentcollection> list = rentcollectionService.queryPaidStateAll(state, user.getUsername());
// 使用PageInFo封装查询结果
PageInfo<rentcollection> pageInfo = new PageInfo<rentcollection>(list, 3);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 缴纳租金
*/
@RequestMapping("/payrentmvc")
public ModelAndView payrentmvc(String rchousemoney,Integer rcid,String token,HttpServletRequest request,HttpSession session) {
ModelAndView mav = new ModelAndView("personacenter");
//令牌验证
if(!new Koken().kokenid(request, session)) {
return mav;
}
Warning news = rentcollectionService.updateState(rcid);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
return mav;
}
/**
* 已缴纳租金删除记录
*/
@RequestMapping("/paidrent")
public ModelAndView paidrent(Integer rcid,HttpServletRequest request,HttpSession session) {
ModelAndView mav = new ModelAndView("personacenter");
//令牌验证
if(!new Koken().kokenid(request, session)) {
return mav;
}
Warning news = rentcollectionService.deleteByPrimaryKey(rcid);
}
/**
* 报障状态修改
*/
@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";
}
ModelAndView mav = new ModelAndView("housedel");
checkoutapplicationService.deleteByPrimaryKey(id);
return mav;
}
/**
* 同意退房
*/
@RequestMapping("/checkoutmvc")
public ModelAndView checkoutmvc(@RequestParam int id,String housecall) {
ModelAndView mav = new ModelAndView("housedel");
String news=checkoutapplicationService.updateState("已同意", id);
if(news.equals("同意退租成功!")) {
System.out.println(news);
System.out.println(leaseinformationService.updateCancelForeignKey(housecall));
}
return mav;
}
/**
* 拒绝退房
*/
@RequestMapping("/refusemvc")
public ModelAndView refusemvc(@RequestParam int id) {
ModelAndView mav = new ModelAndView("housedel");
System.out.println(checkoutapplicationService.updateState("已拒绝", id));
return mav;
}
/**
* 分页查找所有用户
*/
@RequestMapping("/pagingselectuser")
public String pagingselectuser(Model model, @RequestParam(value = "pn", defaultValue = "1") Integer pn,
@RequestParam(required = false, defaultValue = "6") Integer pageSize) {
PageHelper.startPage(pn, 10);
List<userlist> userlist = userlistService.selectAll();
PageInfo<userlist> p = new PageInfo<userlist>(userlist, 3);
model.addAttribute("p", p);
return "account";
}
/**
* 删除用户信息
*/
@RequestMapping("/deletuser")
*/
@RequestMapping("/applicationAtatusList")
@ResponseBody
public Msg applicationAtatusList(@RequestParam(value = "pn") Integer pn, boolean flag, HttpSession session) {
List<checkoutapplication> list = null;
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
// 查询所有数据
if (flag) {
list = checkoutapplicationService.selectStateAll("看房申请中", "退房申请中", "", user.getUsername());
} else {
list = checkoutapplicationService.selectStateAll("已拒绝", "已同意", "已取消", user.getUsername());
}
// 使用PageInFo封装查询结果
PageInfo<checkoutapplication> pageInfo = new PageInfo<checkoutapplication>(list, 3);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 代缴租金分页查询
*/
@RequestMapping("/rentpaymentList")
@ResponseBody
public Msg rentpaymentList(@RequestParam(value = "pn") Integer pn, String state, HttpSession session) {
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
List<rentcollection> list = rentcollectionService.queryPaidStateAll(state, user.getUsername());
// 使用PageInFo封装查询结果
PageInfo<rentcollection> pageInfo = new PageInfo<rentcollection>(list, 3);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 缴纳租金
*/
@RequestMapping("/payrentmvc")
public ModelAndView payrentmvc(String rchousemoney,Integer rcid,String token,HttpServletRequest request,HttpSession session) {
ModelAndView mav = new ModelAndView("personacenter");
//令牌验证
if(!new Koken().kokenid(request, session)) {
/**
* 终止合同
*/
@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;
}
userlist leaseuser = userlistService.selectUserCallWith(call);
Warning news = checkoutapplicationService.insert(leaseuser);
// 放入转发参数
mav.addObject("news", news);
return mav;
}
/**
* 终止申请
*/
@RequestMapping("/stopapplying")
public ModelAndView stopapplying(String call,String token,HttpServletRequest request,HttpSession session) {
ModelAndView mav = new ModelAndView("personacenter");
//令牌验证
if(!new Koken().kokenid(request, session)) {
return mav;
}
Warning news = checkoutapplicationService.updateCallState("已取消", call);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
return mav;
}
/**
* 删除申请记录
*/
@RequestMapping("/deleterecord")
public ModelAndView deleterecord(Integer coaid,String token,HttpServletRequest request,HttpSession session) {
break;
case "我的申请":
response.getWriter().print("/jsp/personalInformation/myapplication.jsp");
break;
case "代缴租金":
response.getWriter().print("/jsp/personalInformation/rentpayment.jsp");
break;
case "报障模块":
response.getWriter().print("/jsp/personalInformation/faultreportingmodule.jsp");
break;
case "其他操作":
response.getWriter().print("/jsp/personalInformation/otheroperations.jsp");
break;
}
}
/**
* 我的租赁分页查询
*/
@RequestMapping("/myRentalList")
@ResponseBody
public Msg myRentalList(@RequestParam(value = "pn") Integer pn, HttpSession session) {
// 查询所有数据
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
List<userlist> leaseuser = userlistService.selectUserNameWith(user.getUsername());
// 使用PageInFo封装查询结果
PageInfo<userlist> pageInfo = new PageInfo<userlist>(leaseuser, 3);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 已退租赁记录分页查询
*/
@RequestMapping("/refundedLeaseList")
@ResponseBody
public Msg refundedLeaseList(@RequestParam(value = "pn") Integer pn, HttpSession session) {
// 查询所有数据
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
List<rentwithdrawn> list = rentwithdrawnService.queryAllStateName("已退租", "", user.getUsername());
// 使用PageInFo封装查询结果
PageInfo<rentwithdrawn> pageInfo = new PageInfo<rentwithdrawn>(list, 3);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 删除日程
*/
@RequestMapping("/delmydailylife")
public String mydailylifedel(Integer id) {
mydailylifeService.deleteByPrimaryKey(id);
return "redirect:/admin/schedulelist.do";
}
// 报障
/**
* 查询待处理报障
*/
@RequestMapping("/Adminselectrepairwait")
public String selectrepairwait(String state, @RequestParam(value = "pn", defaultValue = "1") Integer pn,
Model model) {
state = "未处理";
// 引用PageHelper分页插件
PageHelper.startPage(pn, 10);
List<fault> faultlist = faultService.AdminSelectStateAll(state);
PageInfo<fault> page = new PageInfo<fault>(faultlist, 3);
model.addAttribute("p", page);
return "repairwait";
}
/**
* 已完成全部报障
*/
@RequestMapping("/Adminselectrepairdone")
public String selectrepairdone(String state, @RequestParam(value = "pn", defaultValue = "1") Integer pn,
Model model) {
state = "已处理";
// 引用PageHelper分页插件
PageHelper.startPage(pn, 10);
List<fault> faultdone = faultService.AdminSelectStateAll(state);
PageInfo<fault> page = new PageInfo<fault>(faultdone, 3);
model.addAttribute("p", page);
return "repairdone";
}
/**
* 报障状态修改
*/
@RequestMapping("/adminrepairwait")
public String updaterepairwait(Integer id) {
fault fault = faultService.selectByPrimaryKey(id);
String fhouseid = fault.getFhouseid();
}
}
/**
* 用户控制器
*
*
*/
@Controller
@RequestMapping("/userlistmvc")
public class UserListController {
private static final long serialVersionUID = -884689940866074733L;
@Resource
private UserlistService userlistService;
@Resource
private AdminListService adminListService;
@Resource
private HeadPortraitImgService headPortraitImgService;
@Resource
/**
* 修改房源信息
*/
@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);
leaseimgService.deleteByPrimaryKey(id);
}
return "redirect:pagingselecthouse.do";
}
/*
* 推荐房屋列表
*/
@RequestMapping("/recommendlist")
public String recommendlist(Model model, @RequestParam(value = "pn", defaultValue = "1") Integer pn,
@RequestParam(required = false, defaultValue = "6") Integer pageSize) {
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));
System.out.println(news.getWarningContent());
}else{
mav.addObject("news", new Warning(2, "支付失败!"));
}
return mav;
}
}
/**
* 官网控制器
*
*/
@Controller
@RequestMapping("/officialmvc")
public class OfficialController {
@Resource
private LeaseinformationService leaseinformationService;
/**
* 分页查询
*/
@RequestMapping("/listByPage")
@ResponseBody
public Msg listByPage(@RequestParam(value = "pn")Integer pn) {
//设置分页传输
PageHelper.startPage(pn,8);
//查询所有可租凭数据
List<leaseinformation> list1=leaseinformationService.selectState("可租凭");
//使用PageInFo封装查询结果
PageInfo<leaseinformation> pageInfo=new PageInfo<leaseinformation>(list1,5);
return Msg.success().add("pageInfo",pageInfo);
}
/**
* 用户控制器
*
*
*/
@Controller
@RequestMapping("/userlistmvc")
public class UserListController {
private static final long serialVersionUID = -884689940866074733L;
@Resource
private UserlistService userlistService;
@Resource
private AdminListService adminListService;
@Resource
private HeadPortraitImgService headPortraitImgService;
@Resource
/**
* 用户控制器
*
*
*/
@Controller
@RequestMapping("/userlistmvc")
public class UserListController {
private static final long serialVersionUID = -884689940866074733L;
@Resource
private UserlistService userlistService;
@Resource
private AdminListService adminListService;
@Resource
private HeadPortraitImgService headPortraitImgService;
@Resource
private CheckoutapplicationService checkoutapplicationService;
/**
* 登录
*/
@RequestMapping("/userpwd")
public String userpwd(String username, String pwd, String[] identity, HttpServletRequest request) {
HttpSession session = request.getSession();
if (username.equals("") || pwd.equals("")) {
request.setAttribute("erorr", "输入账号密码不能为空!");
return "login";
}
String tempstr = null;
try {
if (identity[0].equals("user")) {
userlist temp = new userlist();
temp.setUsercall(username);
temp.setUserpwd(pwd);
*/
@RequestMapping("/myRentalList")
@ResponseBody
public Msg myRentalList(@RequestParam(value = "pn") Integer pn, HttpSession session) {
// 查询所有数据
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
List<userlist> leaseuser = userlistService.selectUserNameWith(user.getUsername());
// 使用PageInFo封装查询结果
PageInfo<userlist> pageInfo = new PageInfo<userlist>(leaseuser, 3);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 已退租赁记录分页查询
*/
@RequestMapping("/refundedLeaseList")
@ResponseBody
public Msg refundedLeaseList(@RequestParam(value = "pn") Integer pn, HttpSession session) {
// 查询所有数据
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
List<rentwithdrawn> list = rentwithdrawnService.queryAllStateName("已退租", "", user.getUsername());
// 使用PageInFo封装查询结果
PageInfo<rentwithdrawn> pageInfo = new PageInfo<rentwithdrawn>(list, 3);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 申请状态记录分页查询
*/
@RequestMapping("/applicationAtatusList")
@ResponseBody
public Msg applicationAtatusList(@RequestParam(value = "pn") Integer pn, boolean flag, HttpSession session) {
List<checkoutapplication> list = null;
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
// 查询所有数据
if (flag) {
list = checkoutapplicationService.selectStateAll("看房申请中", "退房申请中", "", user.getUsername());
} else {
list = checkoutapplicationService.selectStateAll("已拒绝", "已同意", "已取消", user.getUsername());
}
public class Code {
public static String getNum(String phone) throws Exception{
ZhenziSmsClient client = new ZhenziSmsClient("https://sms_developer.zhenzikj.com", "107731", "5a1248e4-489f-45ce-854b-4a9c38e6c5d3");
Map<String, Object> params = new HashMap<String, Object>();
params.put("number", phone);
params.put("templateId", "3082");
String[] templateParams = new String[2];
templateParams[0] = getVerifyCode();
templateParams[1] = "5分钟";
params.put("templateParams", templateParams);
String result = client.send(params);
return templateParams[0];
}
//产生随机数
public static String getVerifyCode() {
String ch = "1234567890";
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();
}
}
}
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
LeaseinformationService leaseinformationService;
@RequestMapping("/details")
public ModelAndView listCategory(@RequestParam int id){
ModelAndView mav = new ModelAndView("details");
List<leaseinformation> cs= leaseinformationService.allANDimg1(id);
for (leaseinformation leaseinformation : cs) {
System.out.println(leaseinformation.getLeaseimg().getImgroute());
}