From 3c884ccd7b51edf3b36840bf99de5edaa41a38a7 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期三, 12 十月 2022 19:05:28 +0800
Subject: [PATCH] 三说会堂事件流程处理

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java |  142 ++++++++++++++++++++++++++++------------------
 1 files changed, 86 insertions(+), 56 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java
index 3959133..d26abf0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java
+++ b/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
@@ -409,7 +439,7 @@
     }
 
     @Override
-    public void updateAllHouseUnionAppCode() {
+    public void updateAllHouseUnionAppCode(String areaCode) {
         List<RentingHourseRegister> list = this.baseMapper.selectList(null);
         if (!list.isEmpty()) {
             list.stream().forEach(houseRegister -> {

--
Gitblit v1.7.1