基于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等等
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date t1 = sdf.parse(date);
fault.setFdate(t1);
fault.setFdatetemp(date);
fault.setFcontent(contentofthe);
fault.setFusername(user.getUsername());
fault.setFuserid(user.getUserid());
fault.setFuserphone(user.getUserphone());
fault.setFstate("未处理");
Warning news = faultService.insert(fault);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
return mav;
}
/**
* 报障删除记录
*/
@RequestMapping("/deleterepair")
public ModelAndView deleterepair(Integer fid,String token,HttpServletRequest request,HttpSession session) {
ModelAndView mav = new ModelAndView("personacenter");
//令牌验证
if(!new Koken().kokenid(request, session)) {
return mav;
}
Warning news = faultService.deleteByPrimaryKey(fid);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
return mav;
}
/**
* 头像上传 用户真实姓名,身份证号,手机号上传
*
* @throws FileNotFoundException
*/
@RequestMapping("/file")
public ModelAndView file(String username,String userid,String userphone,HttpServletRequest request,HttpSession session,@RequestParam MultipartFile file) throws Exception {
System.out.println(username);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 报障提交内容
*
* @throws ParseException
*/
@RequestMapping("/contentofthereport")
public ModelAndView contentofthereport(String date, String housecall, String contentofthe,String token,HttpServletRequest request,HttpSession session) throws ParseException {
ModelAndView mav = new ModelAndView("personacenter");
//令牌验证
if(!new Koken().kokenid(request, session)) {
return mav;
}
userlist user = userlistService.selectUserCallWith(housecall);
fault fault = new fault();
fault.setFhouseid(housecall);
fault.setFhouseaddress(user.getLeaseinformation().getHouseaddress());
fault.setFprice(Double.parseDouble(user.getLeaseinformation().getHousemoney()));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date t1 = sdf.parse(date);
fault.setFdate(t1);
fault.setFdatetemp(date);
fault.setFcontent(contentofthe);
fault.setFusername(user.getUsername());
fault.setFuserid(user.getUserid());
fault.setFuserphone(user.getUserphone());
fault.setFstate("未处理");
Warning news = faultService.insert(fault);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
return mav;
}
/**
* 报障删除记录
*/
@RequestMapping("/deleterepair")
public ModelAndView deleterepair(Integer fid,String token,HttpServletRequest request,HttpSession session) {
coa.setCoahousesize(Double.parseDouble(housesize));
coa.setCoastate("看房申请中");
String temp=checkoutapplicationService.insertApply(coa);
mav.addObject("apply", temp);
}
return mav;
}
}
package com.controller;
@Controller
@RequestMapping("/alipaymvc")
public class PayController {
@Resource
private RentcollectionService rentcollectionService;
// 设置分页传输
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 {
}
package com.code;
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();
*/
@RequestMapping("/register")
public String register(String usercall, String userpwd, String userphone, HttpServletRequest request) {
if (usercall.equals("") || userpwd.equals("") || userphone.equals("")) {
request.setAttribute("erorr", "输入账号密码不能为空!");
return "register";
}
userlist user = new userlist();
user.setUsercall(usercall);
user.setUserphone(userphone);
user.setUserpwd(userpwd);
userlistService.insert(user);
headportraitimg userimg = new headportraitimg();
userimg.setHeadportraitimgusername(usercall);
headPortraitImgService.insertuserimg(userimg);
return "login";
}
/**
* 获取手机验证码
**/
@RequestMapping("/getcode")
public void getcode(String userphone, HttpServletResponse response, HttpServletRequest request) {
response.setCharacterEncoding("UTF-8");
try {
HttpSession session = request.getSession();
String code = "123456";
// String code = Code.getNum(userphone);
System.out.println(code);
session.setAttribute("code", code);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 判断验证码输入后登陆
**/
@RequestMapping("/phonecod")
public String phonecod(String userphone, String code, HttpServletRequest request) {
HttpSession session = request.getSession();
temp.setUsercall(username);
temp.setUserpwd(pwd);
userlist userlist = userlistService.queryAllUserPwd(temp);
try {
tempstr = userlist.getUsercall();
if (tempstr != null) {
session.setAttribute("user", tempstr);
headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(tempstr);
if (headportraitimg.getHeadportraitimgaddress() != null) {
session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());
}
return "official";
}
} catch (NullPointerException e) {
if (tempstr == null) {
request.setAttribute("erorr", "输入账号密码有误!");
return "login";
} else {
return "official";
}
}
}
if (identity[0].equals("admin")) {
adminlist temp = new adminlist();
temp.setAdminname(username);
temp.setAdminpwd(pwd);
adminlist adminlist = adminListService.findAllAdminPwd(temp);
try {
tempstr = adminlist.getAdminname();
if (tempstr != null) {
session.setAttribute("admin", tempstr);
return "BackgroundHome";
}
} catch (NullPointerException e) {
request.setAttribute("erorr", "输入账号密码有误!");
return "login";
}
}
} catch (NullPointerException e) {
request.setAttribute("erorr", "选择登录方式!");
e.printStackTrace();
return "login";
}
return "login";
}
/**
* 注册
temp.setRcpaiddatetemp(Rcpaiddate);
}
}
PageInfo<rentcollection> page = new PageInfo<rentcollection>(rentlists, 3);
model.addAttribute("rent", page);
model.addAttribute("vo", vo);
return "rentdone";
}
/**
* 查看合同
*/
@RequestMapping("/viewcontractadmin")
public ModelAndView viewcontractadmin(String username, String userid, String houseaddress,
String housestartingdatetemp, String houseclosingdatetemp, String housemoney, String userphone,
String houseid, HttpServletRequest request, HttpSession session) {
ModelAndView mav = new ModelAndView("rentinglist");
String arraytemp[] = { username, userid, houseaddress, housestartingdatetemp, houseclosingdatetemp, housemoney,
userphone, houseid };
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;
}
}
package com.controller;
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) {
PageHelper.startPage(pn, 10);
List<leaseinformation> leaseinformation = leaseinformationService.selectAllLeasable();
PageInfo<leaseinformation> p = new PageInfo<leaseinformation>(leaseinformation, 3);
model.addAttribute("p", p);
return "recommendhouse";
}
/**
* 修改推荐信息
*/
@RequestMapping("/updaterecommend")
public String updatehouse(Integer houseid) {
leaseinformation house = leaseinformationService.queryID(houseid).get(0);
if (house.getHouserecommend().equals("未推荐")) {
house.setHouserecommend("已推荐");
} else {
house.setHouserecommend("未推荐");
}
leaseinformationService.updateByPrimaryKey(house);
return "redirect:recommendlist.do?";
}
/**
* 分页查询日程信息
*/
@RequestMapping("/schedulelist")
public String mydailylifelist(@RequestParam(value = "pn", defaultValue = "1") Integer pn, Model model) {
// 引用PageHelper分页插件
PageHelper.startPage(pn, 10);
List<mydailylife> mydailylifes = mydailylifeService.selectAll();
PageInfo<mydailylife> page = new PageInfo<mydailylife>(mydailylifes, 3);
model.addAttribute("p", page);
return "schedulelist";
}
/**
* 添加日程
*/
**/
@RequestMapping("/phonecod")
public String phonecod(String userphone, String code, HttpServletRequest request) {
HttpSession session = request.getSession();
if (userphone.equals("") || code.equals("")) {
request.setAttribute("erorr", "手机号或者验证码为空!");
return "login";
}
System.out.println(code);
if (code.equals(session.getAttribute("code"))) {
userlist user = userlistService.selectUserPhone(userphone);
if (user != null) {
String tempstr = null;
userlist userlist = userlistService.selectUserPhone(userphone);
tempstr = userlist.getUsercall();
if (tempstr != null) {
session.setAttribute("user", tempstr);
headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(tempstr);
if (headportraitimg.getHeadportraitimgaddress() != null) {
session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());
}
return "official";
}
} else {
request.setAttribute("erorr", "该手机号未注册!");
return "login";
}
} else {
request.setAttribute("erorr", "验证码错误!");
return "login";
}
return "login";
}
/**
* 修改密码
*/
@RequestMapping("/updatepwd")
public String updatepwd(String code, String userphone, String userpwd, HttpServletRequest request) {
if (code.equals("") || userphone.equals("") || userpwd.equals("")) {
request.setAttribute("erorr", "手机号,验证码,新密码不能为空!");
return "updatepwd";
}
HttpSession session = request.getSession();
if (code.equals(session.getAttribute("code"))) {
userlist userlist = userlistService.selectUserPhone(userphone);
System.out.println(code);
if (code.equals(session.getAttribute("code"))) {
userlist user = userlistService.selectUserPhone(userphone);
if (user != null) {
String tempstr = null;
userlist userlist = userlistService.selectUserPhone(userphone);
tempstr = userlist.getUsercall();
if (tempstr != null) {
session.setAttribute("user", tempstr);
headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(tempstr);
if (headportraitimg.getHeadportraitimgaddress() != null) {
session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());
}
return "official";
}
} else {
request.setAttribute("erorr", "该手机号未注册!");
return "login";
}
} else {
request.setAttribute("erorr", "验证码错误!");
return "login";
}
return "login";
}
/**
* 修改密码
*/
@RequestMapping("/updatepwd")
public String updatepwd(String code, String userphone, String userpwd, HttpServletRequest request) {
if (code.equals("") || userphone.equals("") || userpwd.equals("")) {
request.setAttribute("erorr", "手机号,验证码,新密码不能为空!");
return "updatepwd";
}
HttpSession session = request.getSession();
if (code.equals(session.getAttribute("code"))) {
userlist userlist = userlistService.selectUserPhone(userphone);
userlist.setUserpwd(userpwd);
userlistService.updatepwd(userlist);
return "login";
}
return userpwd;
}
/**
* 注销
*/
@RequestMapping("/cancellation")
public String cancellation(HttpServletRequest request) {
//令牌验证
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;
/**
* 用户控制器
*
*
*/
@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;
/**
* 登录
*/
userlist.setUsercall((String) session.getAttribute("user"));
userlist.setUsername(username);
userlist.setUserid(userid);
userlist.setUserphone(userphone);
Warning news = userlistService.updateByPrimaryCall(userlist);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
}else {
// 修改真实姓名,身份证,手机号
userlist userlist = new userlist();
userlist.setUsername(username);
userlist.setUserid(userid);
userlist.setUserphone(userphone);
userlist.setUsernametemp(user.getUsername());
Warning news = userlistService.updateJointTableName(userlist);
//修改租金真实姓名
System.out.println(rentcollectionService.updateUserName(username,rcusernametemp));
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
}
return mav;
}
/**
* 删除已退租记录
*/
@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("/deleterepair")
public ModelAndView deleterepair(Integer fid,String token,HttpServletRequest request,HttpSession session) {
ModelAndView mav = new ModelAndView("personacenter");
//令牌验证
if(!new Koken().kokenid(request, session)) {
return mav;
}
Warning news = faultService.deleteByPrimaryKey(fid);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
return mav;
}
/**
* 头像上传 用户真实姓名,身份证号,手机号上传
*
* @throws FileNotFoundException
*/
@RequestMapping("/file")
public ModelAndView file(String username,String userid,String userphone,HttpServletRequest request,HttpSession session,@RequestParam MultipartFile file) throws Exception {
System.out.println(username);
ModelAndView mav = new ModelAndView("personacenter");
userlist usere=userlistService.selectUserName(username);
if (usere==null) {
session.setAttribute("modifyerro",null);
System.out.println("可修改");
}else {
Warning news=new Warning(2, "修改失败!该姓名用户已注册");
mav.addObject("news", news);
return mav;
}
//令牌验证
if(!new Koken().kokenid(request, session)) {
return mav;
}
// 获取文件的名称
String fName = file.getOriginalFilename();
System.out.println(fName);
if (!fName.equals("")) {
// 保存图片的目录
String path = "C://cnqf/headPortraitImg";
File filepath = new File(path);
// 如果目录不存在,创建
if (!filepath.exists()) {
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
// 设置分页传输
PageHelper.startPage(pn, 8);
if (str.equals("我要报障")) {
List<userlist> leaseuser = userlistService.selectUserNameWith(user.getUsername());
PageInfo<userlist> pageInfo = new PageInfo<userlist>(leaseuser, 3);
return Msg.success().add("pageInfo", pageInfo);
}
List<fault> list = faultService.queryAllState(str, user.getUsername());
PageInfo<fault> pageInfo = new PageInfo<fault>(list, 3);
return Msg.success().add("pageInfo", pageInfo);
}
/**
* 报障提交内容
*
* @throws ParseException
*/
@RequestMapping("/contentofthereport")
public ModelAndView contentofthereport(String date, String housecall, String contentofthe,String token,HttpServletRequest request,HttpSession session) throws ParseException {
ModelAndView mav = new ModelAndView("personacenter");
//令牌验证
if(!new Koken().kokenid(request, session)) {
return mav;
}
userlist user = userlistService.selectUserCallWith(housecall);
fault fault = new fault();
fault.setFhouseid(housecall);
fault.setFhouseaddress(user.getLeaseinformation().getHouseaddress());
fault.setFprice(Double.parseDouble(user.getLeaseinformation().getHousemoney()));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date t1 = sdf.parse(date);
fault.setFdate(t1);
fault.setFdatetemp(date);
fault.setFcontent(contentofthe);
fault.setFusername(user.getUsername());
fault.setFuserid(user.getUserid());
fault.setFuserphone(user.getUserphone());
fault.setFstate("未处理");
Warning news = faultService.insert(fault);
// 使用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);
System.out.println(news.getWarningContent());
// 放入转发参数
mav.addObject("news", news);
return mav;
}
/**
* 共缴费费用
*/
@RequestMapping("/copaymentfee")
@ResponseBody
public Msg copaymentfee(String state, HttpSession session) {
userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));
List<rentcollection> list = rentcollectionService.queryPaidStateAll(state, user.getUsername());
int num = 0;
for (rentcollection temp : list) {
}
public static void main(String[] args) {
try {
Code.getNum("18775756179");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.controller;
/**
* 房屋信息控制器
*
*/
@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);