package com.tyz.web.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tyz.model.entity.*;
import com.tyz.model.enums.ItemType;
import com.tyz.web.admin.mapper.*;
import com.tyz.web.admin.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tyz.web.admin.vo.attr.AttrValueVo;
import com.tyz.web.admin.vo.graph.GraphVo;
import com.tyz.web.admin.vo.room.RoomDetailVo;
import com.tyz.web.admin.vo.room.RoomItemVo;
import com.tyz.web.admin.vo.room.RoomQueryVo;
import com.tyz.web.admin.vo.room.RoomSubmitVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @author liubo
* @description 针对表【room_info(房间信息表)】的数据库操作Service实现
* @createDate 2023-07-24 15:48:00
*/
@Service
public class RoomInfoServiceImpl extends ServiceImpl<RoomInfoMapper, RoomInfo>
implements RoomInfoService {
@Autowired
private GraphInfoService graphInfoService;
@Autowired
private RoomAttrValueService roomAttrValueService;
@Autowired
private RoomFacilityService roomFacilityService;
@Autowired
private RoomLabelService roomLabelService;
@Autowired
private RoomPaymentTypeService roomPaymentTypeService;
@Autowired
private RoomLeaseTermService roomLeaseTermService;
@Autowired
private RoomInfoMapper roomInfoMapper;
@Autowired
private GraphInfoMapper graphInfoMapper;
@Autowired
private ApartmentInfoMapper apartmentInfoMapper;
@Autowired
private AttrValueMapper attrValueMapper;
@Autowired
private FacilityInfoMapper facilityInfoMapper;
@Autowired
private PaymentTypeMapper paymentTypeMapper;
@Autowired
private LabelInfoMapper labelInfoMapper;
@Autowired
private LeaseTermMapper leaseTermMapper;
@Override
public void saveOrUpdateRoom(RoomSubmitVo roomSubmitVo) {
boolean isUpdate = roomSubmitVo.getId() != null;
super.saveOrUpdate(roomSubmitVo);
//若为更新操作,则先删除与Room相关的各项信息列表
if (isUpdate) {
//1.删除原有graphInfoList
LambdaQueryWrapper<GraphInfo> graphQueryWrapper = new LambdaQueryWrapper<>();
graphQueryWrapper.eq(GraphInfo::getItemType, ItemType.ROOM);
graphQueryWrapper.eq(GraphInfo::getItemId, roomSubmitVo.getId());
graphInfoService.remove(graphQueryWrapper);
//2.删除原有roomAttrValueList
LambdaQueryWrapper<RoomAttrValue> attrQueryMapper = new LambdaQueryWrapper<>();
attrQueryMapper.eq(RoomAttrValue::getRoomId, roomSubmitVo.getId());
roomAttrValueService.remove(attrQueryMapper);
//3.删除原有roomFacilityList
LambdaQueryWrapper<RoomFacility> facilityQueryWrapper = new LambdaQueryWrapper<>();
facilityQueryWrapper.eq(RoomFacility::getRoomId, roomSubmitVo.getId());
roomFacilityService.remove(facilityQueryWrapper);
//4.删除原有roomLabelList
LambdaQueryWrapper<RoomLabel> labelQueryWrapper = new LambdaQueryWrapper<>();
labelQueryWrapper.eq(RoomLabel::getRoomId, roomSubmitVo.getId());
roomLabelService.remove(labelQueryWrapper);
//5.删除原有paymentTypeList
LambdaQueryWrapper<RoomPaymentType> paymentQueryWrapper = new LambdaQueryWrapper<>();
paymentQueryWrapper.eq(RoomPaymentType::getRoomId, roomSubmitVo.getId());
roomPaymentTypeService.remove(paymentQueryWrapper);
//6.删除原有leaseTermList
LambdaQueryWrapper<RoomLeaseTerm> termQueryWrapper = new LambdaQueryWrapper<>();
termQueryWrapper.eq(RoomLeaseTerm::getRoomId, roomSubmitVo.getId());
roomLeaseTermService.remove(termQueryWrapper);
}
//1.保存新的graphInfoList
List<GraphVo> graphVoList = roomSubmitVo.getGraphVoList();
if (!CollectionUtils.isEmpty(graphVoList)) {
ArrayList<GraphInfo> graphInfoList = new ArrayList<>();
for (GraphVo graphVo : graphVoList) {
GraphInfo graphInfo = new GraphInfo();
graphInfo.setItemType(ItemType.ROOM);
graphInfo.setItemId(roomSubmitVo.getId());
graphInfo.setName(graphVo.getName());
graphInfo.setUrl(graphVo.getUrl());
graphInfoList.add(graphInfo);
}
graphInfoService.saveBatch(graphInfoList);
}
//2.保存新的roomAttrValueList
List<Long> attrValueIds = roomSubmitVo.getAttrValueIds();
if (!CollectionUtils.isEmpty(attrValueIds)) {
List<RoomAttrValue> roomAttrValueList = new ArrayList<>();
for (Long attrValueId : attrValueIds) {
RoomAttrValue roomAttrValue = RoomAttrValue.builder().roomId(roomSubmitVo.getId()).attrValueId(attrValueId).build();
roomAttrValueList.add(roomAttrValue);
}
roomAttrValueService.saveBatch(roomAttrValueList);
}
//3.保存新的facilityInfoList
List<Long> facilityInfoIds = roomSubmitVo.getFacilityInfoIds();
if (!CollectionUtils.isEmpty(facilityInfoIds)) {
List<RoomFacility> roomFacilityList = new ArrayList<>();
for (Long facilityInfoId : facilityInfoIds) {
RoomFacility roomFacility = RoomFacility.builder().roomId(roomSubmitVo.getId()).facilityId(facilityInfoId).build();
roomFacilityList.add(roomFacility);
}
roomFacilityService.saveBatch(roomFacilityList);
}
//4.保存新的labelInfoList
List<Long> labelInfoIds = roomSubmitVo.getLabelInfoIds();
if (!CollectionUtils.isEmpty(labelInfoIds)) {
ArrayList<RoomLabel> roomLabelList = new ArrayList<>();
for (Long labelInfoId : labelInfoIds) {
RoomLabel roomLabel = RoomLabel.builder().roomId(roomSubmitVo.getId()).labelId(labelInfoId).build();
roomLabelList.add(roomLabel);
}
roomLabelService.saveBatch(roomLabelList);
}
//5.保存新的paymentTypeList
List<Long> paymentTypeIds = roomSubmitVo.getPaymentTypeIds();
if (!CollectionUtils.isEmpty(paymentTypeIds)) {
ArrayList<RoomPaymentType> roomPaymentTypeList = new ArrayList<>();
for (Long paymentTypeId : paymentTypeIds) {
RoomPaymentType roomPaymentType = RoomPaymentType.builder().roomId(roomSubmitVo.getId()).paymentTypeId(paymentTypeId).build();
roomPaymentTypeList.add(roomPaymentType);
}
roomPaymentTypeService.saveBatch(roomPaymentTypeList);
}
//6.保存新的leaseTermList
List<Long> leaseTermIds = roomSubmitVo.getLeaseTermIds();
if (!CollectionUtils.isEmpty(leaseTermIds)) {
ArrayList<RoomLeaseTerm> roomLeaseTerms = new ArrayList<>();
for (Long leaseTermId : leaseTermIds) {
RoomLeaseTerm roomLeaseTerm = RoomLeaseTerm.builder().roomId(roomSubmitVo.getId()).leaseTermId(leaseTermId).build();
roomLeaseTerms.add(roomLeaseTerm);
}
roomLeaseTermService.saveBatch(roomLeaseTerms);
}
}
@Override
public IPage<RoomItemVo> pageRoomItemByQuery(IPage<RoomItemVo> page, RoomQueryVo queryVo) {
return roomInfoMapper.pageRoomItemByQuery(page,queryVo);
}
@Override
public RoomDetailVo getRoomDetailById(Long id) {
//1.查询RoomInfo
RoomInfo roomInfo = roomInfoMapper.selectById(id);
//2.查询所属公寓信息
ApartmentInfo apartmentInfo =
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java和前端技术的房屋租赁平台设计源码
共934个文件
svg:308个
java:298个
ts:105个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 23 浏览量
2024-10-01
15:58:27
上传
评论
收藏 5.19MB ZIP 举报
温馨提示
该项目是一款集Java后端与前端技术于一体的房屋租赁平台设计源码,包含935个文件,涵盖了308个SVG图形文件、298个Java源代码文件、105个TypeScript脚本文件、82个Vue组件文件、66个XML配置文件、15个PNG图片文件、10个JSON数据文件、10个SCSS样式表文件、5个JavaScript脚本文件以及4个Markdown文档。该平台采用了现代化的技术栈,包括HTML和CSS,旨在为用户提供高效便捷的租赁服务体验。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java和前端技术的房屋租赁平台设计源码 (934个子文件)
.eslintrc.cjs 3KB
.stylelintrc.cjs 2KB
commitlint.config.cjs 548B
global.css 4KB
tailwind.css 58B
.env.development 200B
.env.development 165B
.eslintignore 71B
.gitignore 490B
.gitignore 316B
.gitignore 253B
index.html 2KB
index.html 363B
favicon.ico 58KB
RoomInfoServiceImpl.java 11KB
ApartmentInfoServiceImpl.java 9KB
LoginServiceImpl.java 4KB
RoomInfoServiceImpl.java 3KB
LoginServiceImpl.java 3KB
ApartmentController.java 3KB
SystemUserController.java 3KB
RoomController.java 3KB
FileServiceImpl.java 3KB
SystemPostController.java 3KB
LeaseAgreementController.java 3KB
LeaseAgreementServiceImpl.java 2KB
LeaseAgreement.java 2KB
RegionInfoController.java 2KB
RegionController.java 2KB
Knife4jConfiguration.java 2KB
FeeController.java 2KB
AttrController.java 2KB
UserInfoController.java 2KB
ApartmentInfo.java 2KB
ViewAppointmentController.java 2KB
RoomController.java 2KB
Knife4jConfiguration.java 2KB
LabelController.java 2KB
SystemUserServiceImpl.java 2KB
FacilityController.java 2KB
ResultCodeEnum.java 2KB
SystemUser.java 1KB
LoginController.java 1KB
LeaseAgreementController.java 1KB
JwtUtil.java 1KB
ViewAppointment.java 1KB
FileUploadController.java 1KB
LoginController.java 1KB
LeaseTermController.java 1KB
MybatisPlusConfiguration.java 1KB
AgreementItemVo.java 1KB
Result.java 1KB
PaymentTypeController.java 1KB
PaymentTypeController.java 1KB
RoomDetailVo.java 1KB
AuthenticationInterceptor.java 1KB
ViewAppointmentServiceImpl.java 1KB
AuthenticationInterceptor.java 1KB
ViewAppointmentController.java 1KB
WebMvcConfiguration.java 1KB
AliyunSMSConfiguration.java 1KB
UserInfo.java 1KB
ScheduledTasks.java 1KB
RoomDetailVo.java 990B
ApartmentInfoService.java 978B
RoomInfo.java 962B
StringToBaseEnumConverterFactory.java 936B
HistoryItemVo.java 933B
BrowsingHistory.java 917B
ApartmentController.java 911B
RoomItemVo.java 906B
AgreementDetailVo.java 905B
LeaseException.java 888B
SystemPost.java 881B
BrowsingHistoryController.java 863B
BaseEntity.java 860B
AttrKeyServiceImpl.java 859B
GraphInfo.java 858B
AppointmentItemVo.java 851B
FeeKeyServiceImpl.java 843B
ApartmentInfoMapper.java 833B
RoomSubmitVo.java 823B
SmsServiceImpl.java 822B
LeaseTermController.java 805B
RoomInfoService.java 801B
ApartmentDetailVo.java 799B
ApartmentDetailVo.java 781B
ApartmentFeeValue.java 780B
RoomLeaseTerm.java 776B
PaymentType.java 776B
ApartmentFacility.java 767B
WebMvcConfiguration.java 761B
RoomQueryVo.java 756B
LeaseStatus.java 756B
ApartmentLabel.java 756B
FacilityInfo.java 736B
RoomInfoService.java 717B
SystemUserMapper.java 717B
AgreementQueryVo.java 717B
FeeValue.java 716B
共 934 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
wjs2024
- 粉丝: 1691
- 资源: 3732
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数电综合实验实验报告-设计制作一个简易函数发生器.doc
- 基于Electron+Vue的跨平台桌面应用开发模板设计源码
- 第十五届蓝桥杯模拟3答案代码
- 基于Java的Jetpack-MVVM架构最佳实践设计源码
- 伺服系统基于二阶自抗扰控制器的双惯量伺服系统机械谐振抑制matlab Simulink仿真(加入了电流环 PI 、自抗扰控制器和
- 20-Python的包和模块
- Delphi EX,Delphi11,SPComm,串口编程源文件
- 基于Java和HTML的火狐一卡通基础框架设计源码
- 基于Python的Django Admin替代品xadmin设计源码,集成插件支持与Bootstrap美观界面
- Unity转换微信小程序插件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功