基于JavaSpringboot+Vue实现前后端分离房屋租赁系统
前言介紹:
? ? ? ?2021年處于信息科技高速發展的大背景之下。在今天,缺少手機和電腦幾乎已經成為不可能的事情,人們生活中已經難以離開手機和電腦。針對增加的成本管理和操作,各大商家非常有必要建立自己的網上房屋租賃平臺系統,這既可以讓更多的人體驗到網絡所帶來的方便,也有助于提高房屋的租賃。在經過幾十年的高速發展后,互聯網已成為最流行、最普及的媒體,每天的信息流量甚至能比得上過去十年。其以便捷的信息交換、快速的溝通速度,悄然地改變著會員的消費方式。簡單、快捷、成本較低是互聯網的特點,在互聯網中,買家賣家不需要謀面也可以進行各種各樣的交易活動,互聯網商業化已經是當代經濟的新趨勢。 “電子商務”(電子商務或電子商務)的概念是在1996年前后在美國學術界提出的。經過數十年的經營,這個概念已經被廣泛接受。B2B、C2C、C2B和B2C是電子商務的四類型型,但目前占據主流的是B2B和B2C兩種。其中面向商家的管理模式稱為B2B,它對商務系統的性能、安全和服務質量都要求十分嚴格;而直接面向消費者的模式稱為B2C,也是我們所普遍接觸的。到目前為止,電子商務的發展經歷十余年仍然活力十足,電商應用就像雨后春筍一樣冒出。
功能設計:
主要功能實現:首頁、個人中心、房屋類型管理、房屋租賃管理、會員管理、訂單信息管理、合同信息管理、退房評價管理、管理員管理,系統管理等基本功能
系統結構設計:?整個系統是由多個功能模塊組合而成的,要將所有的功能模塊都一一列舉出來,然后進行逐個的功能設計,使得每一個模塊都有相對應的功能設計,然后進行系統整體的設計
功能截圖:
系統首頁:在系統首頁可以查看首頁、房屋租賃、公告信息、個人中心、后臺管理、客服中心等內容
房租租賃:在房屋租賃頁面通過填寫房屋名稱、類型、圖片、城市、地區、位置、朝向、樓層、樓號、設施、租金、押金、點擊次數等信息進行提交
租賃詳情:
公告信息:
個人中心:
客服管理:
訂單信息:
合同信息:
后臺管理員:管理員登錄進入房屋租賃平臺系統可以查看首頁、個人中心、房屋類型管理、房屋租賃管理、會員管理、訂單信息管理、合同信息管理、退房評價管理、管理員管理,系統管理等信息
房屋類型:在房屋類型管理頁面中可以通過填寫類型等內容進行修改
房屋租賃:
會員管理:在會員管理頁面中可以查看用戶名、密碼、姓名、性別、頭像、手機、郵箱、身份證等信息,并可根據需要對已有會員管理進行修改或刪除等操作
訂單管理:訂單信息管理,在訂單信息管理頁面中可以查看訂單編號、房屋名稱、類型、圖片、位置、朝向、樓層、樓號、租金、押金、總價格、租房日期、租房時長、信息備注、用戶名、姓名、手機、身份證等信息,并可根據需要對已有訂單信息管理進行修改或刪除等詳細操作
合同管理:合同信息管理,在合同信息管理頁面中可以查看合同編號、房屋名稱、類型、圖片、位置、樓號、租金、押金、租房日期、租房時長、合同日期、用戶名、姓名、手機、身份證等內容,并且根據需要對已有合同信息管理進行詳情,修改或刪除等詳細操作
系統資訊:
客服輪播圖等
數據設計:
將數據庫概念設計的E-R圖轉換為關系數據庫。在關系數據庫中,數據關系由數據表組成,但是表的結構表現在表的字段上。
表4-1 allusers表
| 列名 | 數據類型 | 長度 | 約束 |
| id | int | 11 | NOT NULL |
| username | varchar | 50 | ?default NULL |
| pwd | varchar | 50 | ?default NULL |
| cx | varchar | 50 | ?default NULL |
表4-2dingdanxinxi表
| 列名 | 數據類型 | 長度 | 約束 |
| id | int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| dingdanbianhao | varchar | 50 | default NULL |
| fangwumingcheng | varchar | 50 | default NULL |
| leixing | varchar | 50 | default NULL |
| tupian | varchar | 50 | default NULL |
| weizhi | varchar | 50 | default NULL |
| chaoxiang | varchar | 50 | default NULL |
| louceng | varchar | 50 | default NULL |
| louhao | varchar | 50 | default NULL |
| zujin | varchar | 50 | default NULL |
| yajin | varchar | 50 | default NULL |
| zongjiage | varchar | 50 | default NULL |
| zufangriqi | varchar | 50 | default NULL |
| zufangshizhang | varchar | 50 | default NULL |
| xinxibeizhu | varchar | 50 | default NULL |
| yonghuming | varchar | 50 | default NULL |
| xingming | varchar | 50 | default NULL |
| shouji | varchar | 50 | default NULL |
| shenfenzheng | varchar | 50 | default NULL |
| sfsh | varchar | 50 | default NULL |
| shhf | varchar | 50 | default NULL |
表4-3:fangwuleixing表
| 列名 | 數據類型 | 長度 | 約束 |
| id | ?int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| leixing | varchar | 50 | default NULL |
表4-4:huiyuan表
| 列名 | 數據類型 | 長度 | 約束 |
| id | ?int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| yonghuming | varchar | 50 | default NULL |
| mima | varchar | 50 | default NULL |
| xingming | varchar | 50 | default NULL |
| xingbie | varchar | 50 | default NULL |
| touxiang | varchar | 50 | default NULL |
| shouji | varchar | 50 | default NULL |
| youxiang | varchar | 50 | default NULL |
| shenfenzheng | varchar | 50 | default NULL |
代碼實現:
/*** 房屋租賃* 后端接口* @author * @email * @date 2022-01-30 08:44:55*/ @RestController @RequestMapping("/fangwuzulin") public class FangwuzulinController {@Autowiredprivate FangwuzulinService fangwuzulinService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,FangwuzulinEntity fangwuzulin, HttpServletRequest request){EntityWrapper<FangwuzulinEntity> ew = new EntityWrapper<FangwuzulinEntity>();PageUtils page = fangwuzulinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuzulin), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,FangwuzulinEntity fangwuzulin, HttpServletRequest request){EntityWrapper<FangwuzulinEntity> ew = new EntityWrapper<FangwuzulinEntity>();PageUtils page = fangwuzulinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuzulin), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( FangwuzulinEntity fangwuzulin){EntityWrapper<FangwuzulinEntity> ew = new EntityWrapper<FangwuzulinEntity>();ew.allEq(MPUtil.allEQMapPre( fangwuzulin, "fangwuzulin")); return R.ok().put("data", fangwuzulinService.selectListView(ew));}/*** 查詢*/@RequestMapping("/query")public R query(FangwuzulinEntity fangwuzulin){EntityWrapper< FangwuzulinEntity> ew = new EntityWrapper< FangwuzulinEntity>();ew.allEq(MPUtil.allEQMapPre( fangwuzulin, "fangwuzulin")); FangwuzulinView fangwuzulinView = fangwuzulinService.selectView(ew);return R.ok("查詢房屋租賃成功").put("data", fangwuzulinView);}/*** 后端詳情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){FangwuzulinEntity fangwuzulin = fangwuzulinService.selectById(id);fangwuzulin.setClicknum(fangwuzulin.getClicknum()+1);fangwuzulin.setClicktime(new Date());fangwuzulinService.updateById(fangwuzulin);return R.ok().put("data", fangwuzulin);}/*** 前端詳情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){FangwuzulinEntity fangwuzulin = fangwuzulinService.selectById(id);fangwuzulin.setClicknum(fangwuzulin.getClicknum()+1);fangwuzulin.setClicktime(new Date());fangwuzulinService.updateById(fangwuzulin);return R.ok().put("data", fangwuzulin);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody FangwuzulinEntity fangwuzulin, HttpServletRequest request){fangwuzulin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(fangwuzulin);fangwuzulinService.insert(fangwuzulin);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody FangwuzulinEntity fangwuzulin, HttpServletRequest request){fangwuzulin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(fangwuzulin);fangwuzulinService.insert(fangwuzulin);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody FangwuzulinEntity fangwuzulin, HttpServletRequest request){//ValidatorUtils.validateEntity(fangwuzulin);fangwuzulinService.updateById(fangwuzulin);//全部更新return R.ok();}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){fangwuzulinService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<FangwuzulinEntity> wrapper = new EntityWrapper<FangwuzulinEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = fangwuzulinService.selectCount(wrapper);return R.ok().put("count", count);}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map<String, Object> params,FangwuzulinEntity fangwuzulin, HttpServletRequest request,String pre){EntityWrapper<FangwuzulinEntity> ew = new EntityWrapper<FangwuzulinEntity>();Map<String, Object> newMap = new HashMap<String, Object>();Map<String, Object> param = new HashMap<String, Object>();Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Object> entry = it.next();String key = entry.getKey();String newKey = entry.getKey();if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}params.put("sort", "clicknum");params.put("order", "desc");PageUtils page = fangwuzulinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuzulin), params), params));return R.ok().put("data", page);}}論文參考:
第1章?緒???論
1.1課題背景
1.2 課題意義
1.3 開發工具及技術
1.4 國內外現狀
第2章 系統分析
2.1 可行性分析
2.2總體設計原則
2.3系統需求分析
2.4?業務流程分析
2.5?數據流圖
第3章 系統設計
3.1 系統功能設計
3.2 數據庫設計
第4章 系統實現
4.1前臺首頁功能模塊
4.2管理員功能模塊
4.3會員功能模塊
第5章?軟件測試
5.1軟件測試的重要性
5.2測試實例的研究與選擇
5.3測試環境與測試條件
5.4系統運行情況
5.5系統評價
第6章?總結
參考文獻:
致謝
總結
以上是生活随笔為你收集整理的基于JavaSpringboot+Vue实现前后端分离房屋租赁系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工业互联网智能智造-工业企业大数据汇聚通
- 下一篇: HTML+CSS+JS实现 ❤️ 宇宙星