生活随笔
收集整理的這篇文章主要介紹了
java+ssm+mysql房屋租赁管理系统(源码+论文)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
房屋租賃管理系統
- 一、功能描述
- 二、選題背景意義
- 三、系統設計思路
- 四、系統詳情截圖
- 1、用戶對房屋租賃模塊實現
- 2、房屋管理員對房屋管理功能模塊
- 3、房屋管理人員對租賃訂單管理功能模塊
- 五、其他截圖
- 六、論文
一、功能描述
本系統為基于jsp+ssm+mysql的房租出租網,功能如下:
前臺網頁:查看并搜索所有的房屋情況,登錄、注冊、預約房租、用戶可以在個人中心查看我的訂單、我的資料、需改密碼。
后臺管理:系統設置、用戶管理、系統日志、房屋管理、用戶管理、租賃管理。
系統功能完整,使用目前主流框架ssm,適合作為畢業設計、課程設計、數據庫大作業。
二、選題背景意義
隨著我國市場經濟的快速發展和人們生活水平的不斷提高,簡單的房屋出租服務已經不能滿足人們的需求。如何利用先進的管理手段,提高房屋出租的管理水平,是當今社會所面臨的一個重要課題。
本文采用結構化分析的方法,詳細闡述了一個功能比較強大的中信房屋出租管理系統的前后臺開發、操作流程和涉及的一些關鍵技術。首先進行了可行性分析,然后是系統分析,通過實際的業務流程調研,分析業務流程和系統的組織結構,完成了數據流分析和數據字典;然后是系統設計階段主要完成了功能模塊的劃分、闡述了系統設計的思想、數據庫的設計和系統設計的工具及技術。該階段對本系統各個模塊的功能進行了詳細設計,形成了本系統的功能模塊圖;數據庫設計時先進行了概念結構設計,然后進行了邏輯結構設計,最后完成了數據表的設計。
目前在本課題范圍內,分析了房屋出租管理人員對房屋的管理現狀和現有的用戶對房屋管理人員的服務的要求。針對兩者的要求,設計了一套基于SpringMVC的公寓出租管理系統。本系統的集成開發環境是Eclipse,使用MySQL作為數據庫管理系統,Web服務器采用Tomcat,運用SpringMVC及Spring3.0框架技術實現。為了充分利用網絡信息化的優勢,本系統采用B/S結構。系統具有專門的供用戶使用的前臺和專門供公寓出租管理人員使用的后臺。
在房屋出租管理系統的實現下,網站管理人員能夠充分發揮信息化處理的優勢,提高日常管理的處理速率。用戶一方可以更好的享受信息化處理帶來的便利。系統運行能夠穩定且高效。并且人機友好程度能夠顯著提升。
三、系統設計思路
根據需求調研結果確定本系統主要包括以下功能模塊
1、房屋管理人員可以通過管理用戶信息用例對用戶信息進行維護,包括對用戶信息的增刪改查。管理用戶信息用例圖如圖2.6所示。
2、房屋管理人員可以通過管理房屋信息用例對房屋信息進行維護,包括對房屋信息的增刪改查。管理房屋信息用例圖如圖2.7所示。
3、房屋管理人員可以通過管理租賃信息用例對租賃信息進行維護,包括對租賃信息的增刪改查。管理租賃信息用例圖如圖2.8所示。
四、系統詳情截圖
1、用戶對房屋租賃模塊實現
用戶對房屋進行租賃操作,采用 Ajax發送異步請求將租賃信息發送到控制層,控制層發送數據到業務邏輯層,業務邏輯層通過調用 DAO層來訪問數據庫從而執行插入并返回結果。
該模塊控制層主要代碼:
@
RequestMapping(value
="/book_order",method
=RequestMethod
.POST)@ResponseBody
public Map
<String
,String
> bookOrderAct(BookOrder bookOrder,HttpServletRequest request){Map
<String
, String
> ret
= new HashMap<String
, String
>();if(bookOrder
== null){ret
.put("type", "error");ret
.put("msg", "請填寫正確的出租訂單信息!");return ret
;}Account account
= (Account
)request
.getSession().getAttribute("account");if(account
== null){ret
.put("type", "error");ret
.put("msg", "客戶不能為空!");return ret
;}bookOrder
.setAccountId(account
.getId());if(bookOrder
.getRoomTypeId() == null){ret
.put("type", "error");ret
.put("msg", "房屋不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getName())){ret
.put("type", "error");ret
.put("msg", "出租訂單聯系人名稱不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getMobile())){ret
.put("type", "error");ret
.put("msg", "出租訂單聯系人手機號不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getIdCard())){ret
.put("type", "error");ret
.put("msg", "聯系人身份證號不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getArriveDate())){ret
.put("type", "error");ret
.put("msg", "租賃時間不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getLeaveDate())){ret
.put("type", "error");ret
.put("msg", "結算時間不能為空!");return ret
;}bookOrder
.setCreateTime(new Date());bookOrder
.setStatus(0);if(bookOrderService
.add(bookOrder
) <= 0){ret
.put("type", "error");ret
.put("msg", "添加失敗,請聯系管理員!");return ret
;}RoomType roomType
= roomTypeService
.find(bookOrder
.getRoomTypeId());if(roomType
!= null){roomType
.setBookNum(roomType
.getBookNum() + 1);roomType
.setAvilableNum(roomType
.getAvilableNum() - 1);roomTypeService
.updateNum(roomType
);if(roomType
.getAvilableNum() == 0){roomType
.setStatus(0);roomTypeService
.edit(roomType
);}}ret
.put("type", "success");ret
.put("msg", "出租成功!");return ret
;}
2、房屋管理員對房屋管理功能模塊
房屋管理人員對房屋的基本信息進行增刪改查操作,采用Ajax發送異步請求將房屋信息發送到控制層,控制層發送數據到業務邏輯層,業務邏輯層通過調用 DAO層來訪問數據庫從而執行更改并返回結果。
該模塊控制層主要代碼:
@
RequestMapping(value
="/add",method
=RequestMethod
.POST)@ResponseBody
public Map
<String
, String
> add(RoomType roomType){Map
<String
, String
> ret
= new HashMap<String
, String
>();if(roomType
== null){ret
.put("type", "error");ret
.put("msg", "請填寫正確的房屋類型信息!");return ret
;}if(StringUtils
.isEmpty(roomType
.getName())){ret
.put("type", "error");ret
.put("msg", "房屋類型名稱不能為空!");return ret
;}roomType
.setAvilableNum(roomType
.getRoomNum());roomType
.setBookNum(0);roomType
.setLivedNum(0);if(roomTypeService
.add(roomType
) <= 0){ret
.put("type", "error");ret
.put("msg", "添加失敗,請聯系管理員!");return ret
;}ret
.put("type", "success");ret
.put("msg", "添加成功!");return ret
;}@
RequestMapping(value
="/edit",method
=RequestMethod
.POST)@ResponseBody
public Map
<String
, String
> edit(RoomType roomType){Map
<String
, String
> ret
= new HashMap<String
, String
>();if(roomType
== null){ret
.put("type", "error");ret
.put("msg", "請填寫正確的房屋類型信息!");return ret
;}if(StringUtils
.isEmpty(roomType
.getName())){ret
.put("type", "error");ret
.put("msg", "房屋類型名稱不能為空!");return ret
;}RoomType existRoomType
= roomTypeService
.find(roomType
.getId());if(existRoomType
== null){ret
.put("type", "error");ret
.put("msg", "未找到該數據!");return ret
;}int offset
= roomType
.getRoomNum() - existRoomType
.getRoomNum();roomType
.setAvilableNum(existRoomType
.getAvilableNum() + offset
);if(roomType
.getAvilableNum() <= 0){roomType
.setAvilableNum(0);roomType
.setStatus(0);if(roomType
.getAvilableNum() + existRoomType
.getLivedNum() + existRoomType
.getBookNum() > roomType
.getRoomNum()){ret
.put("type", "error");ret
.put("msg", "房屋數設置不合理!");return ret
;}}if(roomTypeService
.edit(roomType
) <= 0){ret
.put("type", "error");ret
.put("msg", "修改失敗,請聯系管理員!");return ret
;}ret
.put("type", "success");ret
.put("msg", "修改成功!");return ret
;}
3、房屋管理人員對租賃訂單管理功能模塊
房屋管理人員對用戶前臺下的訂單信息進行增刪改查操作,采用Ajax發送異步請求將租賃信息發送到控制層,控制層發送數據到業務邏輯層,業務邏輯層通過調用 DAO層來訪問數據庫從而執行更改并返回結果。
該模塊控制層主要代碼:
@
RequestMapping(value
="/edit",method
=RequestMethod
.POST)@ResponseBody
public Map
<String
, String
> edit(BookOrder bookOrder){Map
<String
, String
> ret
= new HashMap<String
, String
>();if(bookOrder
== null){ret
.put("type", "error");ret
.put("msg", "請填寫正確的出租訂單信息!");return ret
;}if(bookOrder
.getAccountId() == null){ret
.put("type", "error");ret
.put("msg", "用戶不能為空!");return ret
;}if(bookOrder
.getRoomTypeId() == null){ret
.put("type", "error");ret
.put("msg", "房屋不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getName())){ret
.put("type", "error");ret
.put("msg", "出租訂單聯系人名稱不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getMobile())){ret
.put("type", "error");ret
.put("msg", "出租訂單聯系人手機號不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getIdCard())){ret
.put("type", "error");ret
.put("msg", "聯系人身份證號不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getArriveDate())){ret
.put("type", "error");ret
.put("msg", "租賃時間不能為空!");return ret
;}if(StringUtils
.isEmpty(bookOrder
.getLeaveDate())){ret
.put("type", "error");ret
.put("msg", "結算時間不能為空!");return ret
;}BookOrder existBookOrder
= bookOrderService
.find(bookOrder
.getId());if(existBookOrder
== null){ret
.put("type", "error");ret
.put("msg", "請選擇正確的數據進行編輯!");return ret
;}if(bookOrderService
.edit(bookOrder
) <= 0){ret
.put("type", "error");ret
.put("msg", "編輯失敗,請聯系管理員!");return ret
;}if(existBookOrder
.getRoomTypeId().longValue() != bookOrder
.getRoomTypeId().longValue()){RoomType oldRoomType
= roomTypeService
.find(existBookOrder
.getRoomTypeId());oldRoomType
.setAvilableNum(oldRoomType
.getAvilableNum() + 1);oldRoomType
.setBookNum(oldRoomType
.getBookNum() - 1);roomTypeService
.updateNum(oldRoomType
);if(oldRoomType
.getStatus() == 0){if(oldRoomType
.getAvilableNum() > 0){oldRoomType
.setStatus(1);roomTypeService
.edit(oldRoomType
);}}RoomType newRoomType
= roomTypeService
.find(bookOrder
.getRoomTypeId());newRoomType
.setAvilableNum(newRoomType
.getAvilableNum() - 1);newRoomType
.setBookNum(newRoomType
.getBookNum() + 1);roomTypeService
.updateNum(newRoomType
);if(newRoomType
.getAvilableNum() <= 0){newRoomType
.setStatus(0);roomTypeService
.edit(newRoomType
);}}ret
.put("type", "success");ret
.put("msg", "修改成功!");return ret
;}
五、其他截圖
六、論文
資源下載,包括項目和論文
總結
以上是生活随笔為你收集整理的java+ssm+mysql房屋租赁管理系统(源码+论文)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。