From 15fea41e2055b83b057a730cf0137a16463aa0f0 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期五, 03 十二月 2021 09:11:14 +0800
Subject: [PATCH] 房屋租赁相关代码提交

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java |  151 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 91 insertions(+), 60 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 740ecf3..6b1a9ed 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,8 +13,12 @@
 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;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -37,7 +42,6 @@
 import com.panzhihua.service_community.service.RentingHourseFileService;
 import com.panzhihua.service_community.service.RentingHourseRegisterService;
 import com.panzhihua.service_community.util.NearbyUtil;
-import com.panzhihua.service_community.util.QRCodeUtil;
 import com.panzhihua.service_community.util.WxMaConfiguration;
 import com.spatial4j.core.shape.Rectangle;
 
@@ -56,8 +60,6 @@
 @Service
 public class RentingHourseRegisterServiceImpl extends ServiceImpl<RentingHourseRegisterDao, RentingHourseRegister> implements RentingHourseRegisterService {
 
-    private static final String HOUSE_DETAIL_PAGE = "packageB/pages/house/houseDetails/houseDetails";
-
     @Resource
     private ComActVillageDAO comActVillageDAO;
     @Resource
@@ -67,6 +69,9 @@
     @Resource
     private WxMaConfiguration wxMaConfiguration;
 
+    @Value("${rentinghouse.min-app.jump-page}")
+    private String minAppJumpPage;
+
     /**
      * 新增房源信息
      * @param registerDTO
@@ -75,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();
@@ -90,7 +96,7 @@
         try {
             WxMaQrcodeService qrCodeService = wxMaConfiguration.getMaService().getQrcodeService();
             byte[] bytes = qrCodeService.createWxaCodeUnlimitBytes("id=" + houseRegister.getId() + "&type=6",
-                    HOUSE_DETAIL_PAGE, 30, true, null, false);
+                    minAppJumpPage, 30, true, null, false);
             String authCode = String.format("data:image/png;base64,%s", Base64.encode(bytes));
             houseRegister.setAuthCode(authCode);
         } catch (WxErrorException e) {
@@ -123,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", "定金不能超过月租金");
+        }
     }
 
     /**
@@ -176,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);
@@ -217,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();
@@ -235,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();
@@ -253,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);
@@ -319,6 +346,7 @@
                 houseRegister.setDetailStatus(RentingHourseRegister.DetailStatus.drz);
             }
         }
+        houseRegister.setUpdateAt(new Date());
         int result = this.baseMapper.updateById(houseRegister);
         if (result > 0) {
             return R.ok();
@@ -341,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();
@@ -396,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.getKeyword(), nearbyDTO.getCommunityId()));
     }
 
     @Override
@@ -415,7 +446,7 @@
                 try {
                     WxMaQrcodeService qrCodeService = wxMaConfiguration.getMaService().getQrcodeService();
                     byte[] bytes = qrCodeService.createWxaCodeUnlimitBytes("id=" + houseRegister.getId() + "&type=6",
-                            HOUSE_DETAIL_PAGE, 30, true, null, false);
+                            minAppJumpPage, 30, true, null, false);
                     String authCode = String.format("data:image/png;base64,%s", Base64.encode(bytes));
                     houseRegister.setAuthCode(authCode);
                 } catch (WxErrorException e) {

--
Gitblit v1.7.1