src/main/java/org/springblade/modules/house/controller/HouseRentalController.java
@@ -98,7 +98,7 @@ @PostMapping("/add") @ApiOperationSupport(order = 4) @ApiOperation(value = "自定义新增", notes = "传入houseRentalVo") public R add(@Valid @RequestBody HouseRentalVO houseRentalVO) { public R add(@RequestBody HouseRentalVO houseRentalVO) { return R.status(houseRentalService.add(houseRentalVO)); } @@ -110,6 +110,16 @@ @ApiOperation(value = "修改", notes = "传入houseRental") public R update(@Valid @RequestBody HouseRentalEntity houseRental) { return R.status(houseRentalService.updateById(houseRental)); } /** * 出租屋 自定义修改 * @param houseRental * @return */ @PostMapping("/updateHouseRental") public R updateHouseRental(@RequestBody HouseRentalVO houseRental) { return R.status(houseRentalService.updateHouseRental(houseRental)); } /** @@ -132,5 +142,15 @@ return R.status(houseRentalService.removeByIds(Func.toLongList(ids))); } /** * 出租屋 自定义删除 * @param id * @return */ @PostMapping("/removeHouseRental") public R removeHouseRental(@ApiParam(value = "主键集合", required = true) @RequestParam Long id) { return R.status(houseRentalService.removeHouseRental(id)); } } src/main/java/org/springblade/modules/house/entity/HouseRentalEntity.java
@@ -59,35 +59,34 @@ @ApiModelProperty(value = "门牌地址编码") private String houseCode; /** * 房屋名称 */ @ApiModelProperty(value = "房屋名称") private String houseName; /** * 租客关系(WGCCP_TENANT_RELATIONSHIP) */ @ApiModelProperty(value = "租客关系(WGCCP_TENANT_RELATIONSHIP)") private String tenantRelationship; private Integer tenantRelationship; /** * 租房时间 */ @ApiModelProperty(value = "租房时间") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date rentalTime; /** * 到期时间 */ @ApiModelProperty(value = "到期时间") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date dueTime; /** * 房屋状态(WGCCP_HOUSE_STATUS) */ @ApiModelProperty(value = "房屋状态(WGCCP_HOUSE_STATUS)") private String houseStatus; private Integer houseStatus; /** * 租房用途 */ @ApiModelProperty(value = "租房用途") private String rentalUse; private Integer rentalUse; /** * 合同附件URL */ @@ -103,7 +102,7 @@ */ @JsonSerialize(using = ToStringSerializer.class) @ApiModelProperty("创建人") private String createUser; private Long createUser; /** * 创建时间 @@ -118,7 +117,7 @@ */ @JsonSerialize(using = ToStringSerializer.class) @ApiModelProperty("更新人") private String updateUser; private Long updateUser; /** * 更新时间 src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -43,7 +43,9 @@ jht.id as tenantId,jht.* from jczz_house_rental jhr left join jczz_house_tenant jht on jhr.id = jht.housing_rental_id where 1 = 1 and house_code = #{code} where 1 = 1 and jhr.is_deleted = 0 and jht.is_deleted = 0 and house_code = #{code} </select> src/main/java/org/springblade/modules/house/mapper/HouseTenantMapper.java
@@ -16,6 +16,7 @@ */ package org.springblade.modules.house.mapper; import org.apache.ibatis.annotations.Param; import org.springblade.modules.house.entity.HouseTenantEntity; import org.springblade.modules.house.vo.HouseTenantVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -39,5 +40,10 @@ */ List<HouseTenantVO> selectHouseTenantPage(IPage page, HouseTenantVO houseTenant); /** * 根据租房id删除租户信息 * @param housingRentalId * @return */ int removeByHousingRentalId(@Param("housingRentalId") Long housingRentalId); } src/main/java/org/springblade/modules/house/mapper/HouseTenantMapper.xml
@@ -20,5 +20,9 @@ select * from jczz_house_tenant where is_deleted = 0 </select> <!--根据租房id删除租户信息--> <update id="removeByHousingRentalId"> update jczz_house_tenant set is_deleted = 1 where housing_rental_id = #{housingRentalId} </update> </mapper> src/main/java/org/springblade/modules/house/service/IHouseRentalService.java
@@ -48,5 +48,24 @@ */ List<HouseRentalVO> getHouseRentalListByCode(String code); Boolean add(HouseRentalVO houseRentalVO); /** * 自定义房屋出租新增 * @param houseRentalVO * @return */ Boolean add(HouseRentalVO houseRentalVO); /** * 出租屋 自定义删除 * @param id * @return */ Boolean removeHouseRental(Long id); /** * 出租屋 自定义修改 * @param houseRental * @return */ Boolean updateHouseRental(HouseRentalVO houseRental); } src/main/java/org/springblade/modules/house/service/IHouseTenantService.java
@@ -39,5 +39,10 @@ */ IPage<HouseTenantVO> selectHouseTenantPage(IPage<HouseTenantVO> page, HouseTenantVO houseTenant); /** * 根据租房id删除租户信息 * @param id * @return */ int removeByHousingRentalId(Long id); } src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java
@@ -16,7 +16,9 @@ */ package org.springblade.modules.house.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.modules.house.entity.HouseRentalEntity; import org.springblade.modules.house.entity.HouseTenantEntity; import org.springblade.modules.house.service.IHouseTenantService; @@ -31,7 +33,10 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; /** * 出租屋 服务实现类 @@ -68,14 +73,21 @@ return houseRentalVOS; } /** * 自定义房屋出租新增 * @param houseRentalVO * @return */ @Override @Transactional(rollbackFor = Exception.class) public Boolean add(HouseRentalVO houseRentalVO) { houseRentalVO.setCreateUser(AuthUtil.getUserId()); houseRentalVO.setCreateTime(new Date()); houseRentalVO.setUpdateUser(AuthUtil.getUserId()); houseRentalVO.setUpdateTime(new Date()); //保存自身 boolean save = save(houseRentalVO); List<HouseTenantEntity> houseTenantEntities = new ArrayList<>(); houseRentalVO.getHouseTenantVOList().forEach(e->{ HouseTenantEntity houseTenant= new HouseTenantEntity(); @@ -85,7 +97,6 @@ houseTenant.setIdCard(e.getIdCard()); houseTenant.setDomicile(e.getDomicile()); houseTenant.setWorkUnit(e.getWorkUnit()); houseTenantEntities.add(houseTenant); }); @@ -93,4 +104,88 @@ return save&&saveBatch; } /** * 出租屋 自定义删除 * @param id * @return */ @Override public Boolean removeHouseRental(Long id) { // 先删除出租屋信息 boolean b = removeById(id); // 再删除租户信息 int i = houseTenantService.removeByHousingRentalId(id); if (i>0){ return true && b; } return false; } /** * 出租屋 自定义修改 * @param houseRental * @return */ @Override @Transactional(rollbackFor = Exception.class) public Boolean updateHouseRental(HouseRentalVO houseRental) { boolean addFlag = true; boolean updateFlag = true; boolean removeFlag = true; houseRental.setUpdateUser(AuthUtil.getUserId()); houseRental.setUpdateTime(new Date()); //更新自身 boolean update = updateById(houseRental); // 查询对应已存在的租户 QueryWrapper<HouseTenantEntity> wrapper = new QueryWrapper<>(); wrapper.eq("housing_rental_id",houseRental.getId()); List<HouseTenantEntity> oldList = houseTenantService.list(wrapper); List<HouseTenantVO> list = houseRental.getHouseTenantVOList(); // 申明新增,修改,删除集合 List<HouseTenantEntity> newList = new ArrayList<>(); List<HouseTenantEntity> addList = new ArrayList<>(); List<HouseTenantEntity> updateList = new ArrayList<>(); List<HouseTenantEntity> removeList = new ArrayList<>(); // 找出需要新增的,否则组成新集合进行比对 for (HouseTenantVO houseTenantVO : list) { houseTenantVO.setHousingRentalId(houseRental.getId()); if (null==houseTenantVO.getId()){ // 新增 HouseTenantEntity houseTenant= new HouseTenantEntity(); houseTenant.setHousingRentalId(houseRental.getId()); houseTenant.setName(houseTenantVO.getName()); houseTenant.setPhone(houseTenantVO.getPhone()); houseTenant.setIdCard(houseTenantVO.getIdCard()); houseTenant.setDomicile(houseTenantVO.getDomicile()); houseTenant.setWorkUnit(houseTenantVO.getWorkUnit()); addList.add(houseTenant); }else { newList.add(houseTenantVO); } } // 遍历去差集,判断是新增还是删除还是更新 // 取旧数据和新提交数据差集--删除 removeList = oldList.stream().filter(vo -> !newList.stream().map(e -> e.getId()).collect(Collectors.toList()).contains(vo.getId())).collect(Collectors.toList()); // 取旧数据和新提交数据交集--更新 updateList = newList.stream().filter(vo -> oldList.stream().map(e -> e.getId()).collect(Collectors.toList()).contains(vo.getId())).collect(Collectors.toList()); // 批量新增 if (addList.size()>0) { addFlag = houseTenantService.saveBatch(addList); } // 批量修改 if (updateList.size()>0) { updateFlag = houseTenantService.updateBatchById(updateList); } // 批量删除 if (removeList.size()>0) { removeFlag = houseTenantService.removeBatchByIds(removeList); } // 返回 return update && addFlag && updateFlag && removeFlag; } } src/main/java/org/springblade/modules/house/service/impl/HouseTenantServiceImpl.java
@@ -39,5 +39,13 @@ return page.setRecords(baseMapper.selectHouseTenantPage(page, houseTenant)); } /** * 根据租房id删除租户信息 * @param id * @return */ @Override public int removeByHousingRentalId(Long id) { return baseMapper.removeByHousingRentalId(id); } }