基于JavaSpringboot+Vue实现前后端分离房屋租赁系统_基于javaboot的房屋租赁管理系统(1)

2401_84620303 2024-08-18 14:05:03 阅读 74

最后

四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。大概就说这些了,写代码去了~

祝大家都能收获大厂offer~

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

篇幅有限,仅展示部分内容

个人中心:

客服管理:

订单信息:

合同信息:

**后台管理员:**管理员登录进入房屋租赁平台系统可以查看首页、个人中心、房屋类型管理、房屋租赁管理、会员管理、订单信息管理、合同信息管理、退房评价管理、管理员管理,系统管理等信息

**房屋类型:**在房屋类型管理页面中可以通过填写类型等内容进行修改

房屋租赁:

**会员管理:**在会员管理页面中可以查看用户名、密码、姓名、性别、头像、手机、邮箱、身份证等信息,并可根据需要对已有会员管理进行修改或删除等操作

**订单管理:**订单信息管理,在订单信息管理页面中可以查看订单编号、房屋名称、类型、图片、位置、朝向、楼层、楼号、租金、押金、总价格、租房日期、租房时长、信息备注、用户名、姓名、手机、身份证等信息,并可根据需要对已有订单信息管理进行修改或删除等详细操作

**合同管理:**合同信息管理,在合同信息管理页面中可以查看合同编号、房屋名称、类型、图片、位置、楼号、租金、押金、租房日期、租房时长、合同日期、用户名、姓名、手机、身份证等内容,并且根据需要对已有合同信息管理进行详情,修改或删除等详细操作

系统资讯:

客服轮播图等

数据设计:

将数据库概念设计的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

代码实现:

<code>

/\*\*

\* 房屋租赁

\* 后端接口

\* @author

\* @email

\* @date 2022-01-30 08:44:55

\*/

@RestController

@RequestMapping("/fangwuzulin")

public class FangwuzulinController {

@Autowired

private 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));

}

}

## 最后

今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!

可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。