101captain
2022-04-19 00a59b93c16b24e7be77c6f1ce4866c75a2e0431
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java
@@ -4,6 +4,7 @@
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;
@@ -12,7 +13,10 @@
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;
@@ -76,6 +80,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R registerRentingHouse(RentingHouseRegisterDTO registerDTO) {
        checkDepositMoney(registerDTO);
        Long communityId = registerDTO.getCommunityId();
        Long userId = registerDTO.getUserId();
        RentingHourseRegister houseRegister = new RentingHourseRegister();
@@ -124,49 +129,63 @@
            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", "定金不能超过月租金");
        }
    }
    /**
@@ -177,6 +196,7 @@
    @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);
@@ -218,15 +238,17 @@
                        .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();
@@ -236,15 +258,17 @@
                        .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();
@@ -254,15 +278,17 @@
                        .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);
@@ -320,6 +346,7 @@
                houseRegister.setDetailStatus(RentingHourseRegister.DetailStatus.drz);
            }
        }
        houseRegister.setUpdateAt(new Date());
        int result = this.baseMapper.updateById(houseRegister);
        if (result > 0) {
            return R.ok();
@@ -342,6 +369,8 @@
        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();
@@ -397,7 +426,8 @@
    @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