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