| | |
| | | import static java.util.Objects.nonNull; |
| | | import static org.apache.commons.lang3.StringUtils.isNotBlank; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.Date; |
| | |
| | | import java.util.stream.Collectors; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | import com.panzhihua.common.exceptions.ServiceException; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R registerRentingHouse(RentingHouseRegisterDTO registerDTO) { |
| | | checkDepositMoney(registerDTO); |
| | | Long communityId = registerDTO.getCommunityId(); |
| | | Long userId = registerDTO.getUserId(); |
| | | RentingHourseRegister houseRegister = new RentingHourseRegister(); |
| | |
| | | List<String> housePictures = registerDTO.getHousePictures(); |
| | | if (!housePictures.isEmpty()) { |
| | | housePictures.forEach(e -> { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.fytp); |
| | | file.setRefId(registerId); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | if (StringUtils.isNotBlank(e)) { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.fytp); |
| | | file.setRefId(registerId); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | } |
| | | }); |
| | | } |
| | | List<String> propertyPictures = registerDTO.getPropertyPictures(); |
| | | if (!propertyPictures.isEmpty()) { |
| | | propertyPictures.forEach(e -> { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.cqtp); |
| | | file.setRefId(registerId); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | if (StringUtils.isNotBlank(e)) { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.cqtp); |
| | | file.setRefId(registerId); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | } |
| | | }); |
| | | } |
| | | List<String> credentialsPictures = registerDTO.getCredentialsPictures(); |
| | | if (!credentialsPictures.isEmpty()) { |
| | | credentialsPictures.forEach(e -> { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.zjzq); |
| | | file.setRefId(registerId); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | if (StringUtils.isNotBlank(e)) { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.zjzq); |
| | | file.setRefId(registerId); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | } |
| | | }); |
| | | } |
| | | rentingHourseFileService.saveBatch(files); |
| | | return R.ok(); |
| | | } |
| | | return R.fail("新增房源失败"); |
| | | } |
| | | |
| | | private void checkDepositMoney(RentingHouseRegisterDTO registerDTO) { |
| | | BigDecimal dingMoney = registerDTO.getDingMoney(); |
| | | BigDecimal monthlyRentMoney = registerDTO.getMonthlyRentMoney(); |
| | | if (nonNull(dingMoney) && nonNull(monthlyRentMoney) && dingMoney.compareTo(monthlyRentMoney) == 1) { |
| | | throw new ServiceException("500", "定金不能超过月租金"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R updateRentingHouse(RentingHouseRegisterDTO registerDTO) { |
| | | checkDepositMoney(registerDTO); |
| | | Long id = registerDTO.getId(); |
| | | Long userId = registerDTO.getUserId(); |
| | | RentingHourseRegister houseRegister = this.baseMapper.selectById(id); |
| | |
| | | .eq(RentingHourseFile::getClassification, RentingHourseFile.Classification.fytp) |
| | | .eq(RentingHourseFile::getType, RentingHourseFile.Type.picture)); |
| | | housePictures.forEach(e -> { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.fytp); |
| | | file.setRefId(id); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | if (StringUtils.isNotBlank(e)) { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.fytp); |
| | | file.setRefId(id); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | } |
| | | }); |
| | | } |
| | | List<String> propertyPictures = registerDTO.getPropertyPictures(); |
| | |
| | | .eq(RentingHourseFile::getClassification, RentingHourseFile.Classification.cqtp) |
| | | .eq(RentingHourseFile::getType, RentingHourseFile.Type.picture)); |
| | | propertyPictures.forEach(e -> { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.cqtp); |
| | | file.setRefId(id); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | if (StringUtils.isNotBlank(e)) { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.cqtp); |
| | | file.setRefId(id); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | } |
| | | }); |
| | | } |
| | | List<String> credentialsPictures = registerDTO.getCredentialsPictures(); |
| | |
| | | .eq(RentingHourseFile::getClassification, RentingHourseFile.Classification.zjzq) |
| | | .eq(RentingHourseFile::getType, RentingHourseFile.Type.picture)); |
| | | credentialsPictures.forEach(e -> { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.zjzq); |
| | | file.setRefId(id); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | if (StringUtils.isNotBlank(e)) { |
| | | RentingHourseFile file = new RentingHourseFile(); |
| | | file.setId(Snowflake.getId()); |
| | | file.setClassification(RentingHourseFile.Classification.zjzq); |
| | | file.setRefId(id); |
| | | file.setType(RentingHourseFile.Type.picture); |
| | | file.setUrl(e); |
| | | file.setCreateBy(userId); |
| | | file.setCreateAt(nowDate); |
| | | files.add(file); |
| | | } |
| | | }); |
| | | } |
| | | rentingHourseFileService.saveBatch(files); |
| | |
| | | if (status.intValue() != RentingHourseRegister.Status.dfb) { |
| | | return R.fail("已发布房源不支持删除"); |
| | | } |
| | | rentingHourseFileService.remove(new QueryWrapper<RentingHourseFile>().lambda() |
| | | .eq(RentingHourseFile::getRefId, registerId)); |
| | | int result = this.baseMapper.deleteById(registerId); |
| | | if (result > 0) { |
| | | return R.ok(); |
| | |
| | | @Override |
| | | public R nearby(NearbyDTO nearbyDTO) { |
| | | Rectangle rectangle =new NearbyUtil().getRectangle(nearbyDTO.getDistance(), Double.parseDouble(nearbyDTO.getLongitude()), Double.parseDouble(nearbyDTO.getLatitude())); |
| | | return R.ok(this.baseMapper.nearby(rectangle.getMinX(),rectangle.getMaxX(),rectangle.getMinY(),rectangle.getMaxY(),nearbyDTO.getKeyword())); |
| | | return R.ok(this.baseMapper.nearby(rectangle.getMinX(),rectangle.getMaxX(), |
| | | rectangle.getMinY(),rectangle.getMaxY(), nearbyDTO)); |
| | | } |
| | | |
| | | @Override |