From 999e4ff2360f271225214cf4cc5dad9a2e91dace Mon Sep 17 00:00:00 2001 From: peihao <1280253838@qq.com> Date: Fri, 6 Aug 2021 10:30:40 +0800 Subject: [PATCH] =?UTF-8?q?1.0.0=20=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=A5=BC=E7=9B=98=E4=BF=A1=E6=81=AF=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=9C=B0=E5=9B=BE=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AppletsMapController.java | 12 ++-- .../applets/controller/BlocksController.java | 33 ++--------- .../applets/dto/BlocksPreSaleTotalDto.java | 6 +- .../air/applets/mapper/AppletsMapMapper.java | 8 ++- .../applets/serivce/AppletsMapService.java | 7 ++- .../serivce/impl/AppletsMapServiceImpl.java | 11 ++-- .../com/air/housing/mapper/BlocksMapper.java | 12 ++++ .../air/housing/service/BlocksService.java | 10 +++- .../service/impl/BlocksServiceImpl.java | 59 +++++++++++++++++-- .../impl/HousingEstatesServiceImpl.java | 6 +- .../com/air/land/entity/LandListedLonLat.java | 4 +- .../com/air/land/entity/LandToListLonLat.java | 5 -- .../resources/mapper/AppletsMapMapper.xml | 14 +++-- .../main/resources/mapper/BlocksMapper.xml | 39 ++++++++++++ 14 files changed, 162 insertions(+), 64 deletions(-) diff --git a/air/src/main/java/com/air/applets/controller/AppletsMapController.java b/air/src/main/java/com/air/applets/controller/AppletsMapController.java index f621d66..f5a3cb0 100644 --- a/air/src/main/java/com/air/applets/controller/AppletsMapController.java +++ b/air/src/main/java/com/air/applets/controller/AppletsMapController.java @@ -11,7 +11,10 @@ import com.cinderella.framework.common.core.util.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -22,6 +25,7 @@ import java.util.List; * @author peihao * @date 2021-05-18 09:39:59 */ +@RestController @RequestMapping("/applets/map") @Api(value = "appletsMap", tags = "小程序地图显示") public class AppletsMapController { @@ -100,7 +104,7 @@ public class AppletsMapController { */ @ApiOperation(value = "获取挂牌中数据", notes = "获取挂牌中数据") @GetMapping("getLandListing") - public R> getLandListing() { + public R> getLandListing() { return R.ok(mapService.getLandListing(), "查询成功"); } @@ -111,8 +115,8 @@ public class AppletsMapController { */ @ApiOperation(value = "获取出让地块数据", notes = "获取出让地块数据") @GetMapping("getLandList") - public R> getLandList() { - return R.ok(mapService.getLandList(), "查询成功"); + public R> getLandList(@RequestParam String star, @RequestParam String end) { + return R.ok(mapService.getLandList(star, end), "查询成功"); } } diff --git a/air/src/main/java/com/air/applets/controller/BlocksController.java b/air/src/main/java/com/air/applets/controller/BlocksController.java index a9a54eb..04e32d9 100644 --- a/air/src/main/java/com/air/applets/controller/BlocksController.java +++ b/air/src/main/java/com/air/applets/controller/BlocksController.java @@ -1,6 +1,5 @@ package com.air.applets.controller; -import cn.hutool.core.date.DateUtil; import com.air.applets.dto.BlocksPreSaleTotalDto; import com.air.housing.service.BlocksService; import com.cinderella.framework.common.core.util.R; @@ -12,8 +11,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.Date; import java.util.List; @@ -34,43 +31,25 @@ public class BlocksController { /** * 销售情况统计 * - * @param landListedId 已挂牌地块id - * @param transactionStatus 交易状态 + * @param landListedId 已挂牌地块id * @return R */ @ApiOperation(value = "销售情况统计", notes = "销售情况统计") @GetMapping("getPreSaleTotal") - public R getPreSaleTotal(@RequestParam String landListedId, String transactionStatus) { - BlocksPreSaleTotalDto preSaleTotalDto = new BlocksPreSaleTotalDto(); - preSaleTotalDto.setPreSaleTotal(200); - preSaleTotalDto.setDestroyTotal(58); - preSaleTotalDto.setDestroyTotalRate(25.6d); - preSaleTotalDto.setPreSaleBusinessPrice(13555.6); - preSaleTotalDto.setPreSaleHousePrice(15680.2); - return R.ok(preSaleTotalDto); + public R getPreSaleTotal(@RequestParam String landListedId) { + return R.ok(blocksService.getPreSaleTotal(landListedId)); } /** * 查询预售明细列表 * - * @param landListedId 已挂牌地块id - * @param transactionStatus 交易状态 + * @param landListedId 已挂牌地块id * @return R */ @ApiOperation(value = "查询预售明细列表", notes = "查询预售明细列表") @GetMapping("getPreSaleDetailList") - public R> getPreSaleDetailList(@RequestParam String landListedId, String transactionStatus) { - List list = new ArrayList<>(); - for (int i = 1; i<6;i++){ - BlocksPreSaleTotalDto preSaleTotalDto = new BlocksPreSaleTotalDto(); - preSaleTotalDto.setPreSaleTotal(200); - preSaleTotalDto.setDestroyTotal(58); - preSaleTotalDto.setDestroyTotalRate(25.6d); - preSaleTotalDto.setPreSaleLicenseNo("2021070"+i+"号"); - preSaleTotalDto.setEvidenceDate(DateUtil.formatDate(new Date())); - list.add(preSaleTotalDto); - } - return R.ok(list); + public R> getPreSaleDetailList(@RequestParam String landListedId) { + return R.ok(blocksService.getPreSaleDetailList(landListedId)); } } diff --git a/air/src/main/java/com/air/applets/dto/BlocksPreSaleTotalDto.java b/air/src/main/java/com/air/applets/dto/BlocksPreSaleTotalDto.java index f7d6ae5..8b0af86 100644 --- a/air/src/main/java/com/air/applets/dto/BlocksPreSaleTotalDto.java +++ b/air/src/main/java/com/air/applets/dto/BlocksPreSaleTotalDto.java @@ -15,13 +15,13 @@ import lombok.Data; public class BlocksPreSaleTotalDto { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "合计预售") + @ApiModelProperty(value = "合计预售(统计地块上楼盘中所有的房屋)") private int preSaleTotal; - @ApiModelProperty(value = "去化") + @ApiModelProperty(value = "去化(统计地块上楼盘中已销售的房屋)") private int destroyTotal; - @ApiModelProperty(value = "去化率") + @ApiModelProperty(value = "去化率(合计去化/合计销售)") private double destroyTotalRate; @ApiModelProperty(value = "预售住宅均价") diff --git a/air/src/main/java/com/air/applets/mapper/AppletsMapMapper.java b/air/src/main/java/com/air/applets/mapper/AppletsMapMapper.java index 7297898..54d9291 100644 --- a/air/src/main/java/com/air/applets/mapper/AppletsMapMapper.java +++ b/air/src/main/java/com/air/applets/mapper/AppletsMapMapper.java @@ -63,17 +63,21 @@ public interface AppletsMapMapper{ /** * 获取挂牌中数据 * @author peihao + * @param nowDate 系统时间 * @date 2021/6/7 * @return **/ - List getLandListing(); + List getLandListing(String nowDate); /** * 获取出让地块数据 * @author peihao + * @param star 开始时间 + * @param end 结束时间 + * @param nowDate 系统时间 * @date 2021/6/7 * @return **/ - List getLandList(); + List getLandList(@Param("star") String star , @Param("end") String end,@Param("nowDate") String nowDate); } diff --git a/air/src/main/java/com/air/applets/serivce/AppletsMapService.java b/air/src/main/java/com/air/applets/serivce/AppletsMapService.java index 9f61a03..f29a959 100644 --- a/air/src/main/java/com/air/applets/serivce/AppletsMapService.java +++ b/air/src/main/java/com/air/applets/serivce/AppletsMapService.java @@ -3,6 +3,7 @@ package com.air.applets.serivce; import com.air.applets.entity.*; import com.air.land.entity.LandListedLonLat; import com.air.land.entity.LandToListLonLat; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -65,15 +66,17 @@ public interface AppletsMapService{ * @date 2021/6/7 * @return **/ - List getLandListing(); + List getLandListing(); /** * 获取出让地块数据 * @author peihao + * @param star 开始时间 + * @param end 结束时间 * @date 2021/6/7 * @return **/ - List getLandList(); + List getLandList(String star , String end); } diff --git a/air/src/main/java/com/air/applets/serivce/impl/AppletsMapServiceImpl.java b/air/src/main/java/com/air/applets/serivce/impl/AppletsMapServiceImpl.java index b088741..84c2741 100644 --- a/air/src/main/java/com/air/applets/serivce/impl/AppletsMapServiceImpl.java +++ b/air/src/main/java/com/air/applets/serivce/impl/AppletsMapServiceImpl.java @@ -1,5 +1,6 @@ package com.air.applets.serivce.impl; +import cn.hutool.core.date.DateUtil; import com.air.applets.entity.Dazutuan; import com.air.applets.entity.Facilities; import com.air.applets.entity.Huanxian; @@ -11,6 +12,8 @@ import com.air.land.entity.LandToListLonLat; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.util.Date; import java.util.List; @Service @@ -45,12 +48,12 @@ public class AppletsMapServiceImpl implements AppletsMapService { } @Override - public List getLandListing() { - return mapMapper.getLandListing(); + public List getLandListing() { + return mapMapper.getLandListing(DateUtil.formatDate(new Date())); } @Override - public List getLandList() { - return mapMapper.getLandList(); + public List getLandList(String star , String end) { + return mapMapper.getLandList(star,end,DateUtil.formatDate(new Date())); } } diff --git a/air/src/main/java/com/air/housing/mapper/BlocksMapper.java b/air/src/main/java/com/air/housing/mapper/BlocksMapper.java index bfb191d..98dcfaf 100644 --- a/air/src/main/java/com/air/housing/mapper/BlocksMapper.java +++ b/air/src/main/java/com/air/housing/mapper/BlocksMapper.java @@ -1,15 +1,19 @@ package com.air.housing.mapper; +import com.air.applets.dto.BlocksPreSaleTotalDto; import com.air.housing.dto.BlockListDto; import com.air.housing.entity.Blocks; import com.air.housing.vo.HousingEstatesName; import com.air.sysMessage.entity.SysMessage; +import com.baomidou.mybatisplus.annotation.SqlParser; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.models.auth.In; import org.apache.ibatis.annotations.Param; import org.springframework.security.core.parameters.P; +import java.math.BigDecimal; import java.util.List; /** @@ -27,4 +31,12 @@ public interface BlocksMapper extends BaseMapper { * @return */ Page getBlocksPageByhousingEstateId(Page page, @Param("Blocks")BlockListDto blockListDto); + + @SqlParser(filter = true) + BlocksPreSaleTotalDto getSaleInfo(@Param("landListedId") String landListedId); + + BigDecimal getHouseAvgPrice(@Param("propertyType") Integer propertyType); + + @SqlParser(filter = true) + List getHouseSaleInfo(Long housingEstatesId); } diff --git a/air/src/main/java/com/air/housing/service/BlocksService.java b/air/src/main/java/com/air/housing/service/BlocksService.java index b7db902..aeb15cd 100644 --- a/air/src/main/java/com/air/housing/service/BlocksService.java +++ b/air/src/main/java/com/air/housing/service/BlocksService.java @@ -1,10 +1,13 @@ package com.air.housing.service; +import com.air.applets.dto.BlocksPreSaleTotalDto; import com.air.housing.dto.BlockListDto; import com.air.housing.entity.Blocks; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * 楼栋信息 * @@ -14,10 +17,15 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface BlocksService extends IService { /** * query by housing_estate_id and largeFormat,format + * * @param page * @param blockListDto * @return */ - Page getBlocksPageByhousingEstateId(Page page,BlockListDto blockListDto); + Page getBlocksPageByhousingEstateId(Page page, BlockListDto blockListDto); + + BlocksPreSaleTotalDto getPreSaleTotal(String landListId); + + List getPreSaleDetailList(String landListedId); } diff --git a/air/src/main/java/com/air/housing/service/impl/BlocksServiceImpl.java b/air/src/main/java/com/air/housing/service/impl/BlocksServiceImpl.java index c0331a7..893309c 100644 --- a/air/src/main/java/com/air/housing/service/impl/BlocksServiceImpl.java +++ b/air/src/main/java/com/air/housing/service/impl/BlocksServiceImpl.java @@ -1,14 +1,21 @@ package com.air.housing.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.air.applets.dto.BlocksPreSaleTotalDto; import com.air.housing.dto.BlockListDto; +import com.air.housing.entity.AnnoBlocksRel; import com.air.housing.entity.Blocks; +import com.air.housing.mapper.AnnoBlocksRelMapper; import com.air.housing.mapper.BlocksMapper; import com.air.housing.service.BlocksService; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.List; /** * 楼栋信息 @@ -17,13 +24,57 @@ import javax.annotation.Resource; * @date 2021-05-18 09:39:45 */ @Service +@AllArgsConstructor public class BlocksServiceImpl extends ServiceImpl implements BlocksService { - @Resource private BlocksMapper blocksMapper; + + private AnnoBlocksRelMapper annoBlocksRelMapper; + + @Override + public Page getBlocksPageByhousingEstateId(Page page, BlockListDto blockListDto) { + return blocksMapper.getBlocksPageByhousingEstateId(page, blockListDto); + } + @Override - public Page getBlocksPageByhousingEstateId(Page page,BlockListDto blockListDto) { + public BlocksPreSaleTotalDto getPreSaleTotal(String landListId) { + // 合计预售,合计去化 + BlocksPreSaleTotalDto saleInfo = baseMapper.getSaleInfo(landListId); + if (saleInfo.getPreSaleTotal() > 0) { + //计算去化率 + BigDecimal destroyTotal = new BigDecimal(saleInfo.getDestroyTotal()); + BigDecimal preSaleTotal = new BigDecimal(saleInfo.getPreSaleTotal()); + saleInfo.setDestroyTotalRate(destroyTotal.divide(preSaleTotal, 2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + + // 住宅均价 + BigDecimal preSaleHousePrice = baseMapper.getHouseAvgPrice(1); + //商业均价 + BigDecimal preSaleBusinessPrice = baseMapper.getHouseAvgPrice(2); + saleInfo.setPreSaleHousePrice(preSaleHousePrice.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + saleInfo.setPreSaleBusinessPrice(preSaleBusinessPrice.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + return saleInfo; + } - return blocksMapper.getBlocksPageByhousingEstateId(page,blockListDto); + @Override + public List getPreSaleDetailList(String landListedId) { + //获取楼盘id + AnnoBlocksRel annoBlocksRel = annoBlocksRelMapper.selectOne(Wrappers.query().lambda() + .eq(AnnoBlocksRel::getLandListedId, landListedId).eq(AnnoBlocksRel::getMainLand, 1)); + if (annoBlocksRel == null) { + return null; + } + List saleTotalDtoList = baseMapper.getHouseSaleInfo(annoBlocksRel.getHousingEstatesId()); + if (CollectionUtil.isNotEmpty(saleTotalDtoList)) { + saleTotalDtoList.forEach(saleInfo -> { + if (saleInfo.getPreSaleTotal() > 0) { + //计算去化率 + BigDecimal destroyTotal = new BigDecimal(saleInfo.getDestroyTotal()); + BigDecimal preSaleTotal = new BigDecimal(saleInfo.getPreSaleTotal()); + saleInfo.setDestroyTotalRate(destroyTotal.divide(preSaleTotal, 2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + }); + } + return saleTotalDtoList; } } diff --git a/air/src/main/java/com/air/housing/service/impl/HousingEstatesServiceImpl.java b/air/src/main/java/com/air/housing/service/impl/HousingEstatesServiceImpl.java index d40521d..6c44422 100644 --- a/air/src/main/java/com/air/housing/service/impl/HousingEstatesServiceImpl.java +++ b/air/src/main/java/com/air/housing/service/impl/HousingEstatesServiceImpl.java @@ -1,13 +1,11 @@ package com.air.housing.service.impl; -import cn.hutool.core.util.ObjectUtil; import com.air.common.Constant; import com.air.enums.BlocksOriginStatusEnum; import com.air.housing.dto.HousingDefine; import com.air.housing.dto.HousingEstatesListDto; import com.air.housing.dto.HousingEstatesQuery; import com.air.housing.entity.*; -import com.air.housing.mapper.AnnoBlocksRelMapper; import com.air.housing.mapper.HousingEstatesMapper; import com.air.housing.service.*; import com.air.housing.vo.HousingEstatesDetail; @@ -86,7 +84,7 @@ public class HousingEstatesServiceImpl extends ServiceImpl landListedIds = housingDefine.getLandListedId(); List annoBlocksRelList = new ArrayList<>(landListedIds.size()); - for (int i= 0;i { private String geoms; @TableField(exist = false) - @ApiModelProperty(value = "拍卖日期") - private LocalDate auctionDate; + @ApiModelProperty(value = "交易状态") + private String transactionStatus; } diff --git a/air/src/main/java/com/air/land/entity/LandToListLonLat.java b/air/src/main/java/com/air/land/entity/LandToListLonLat.java index da72a3f..b7a1337 100644 --- a/air/src/main/java/com/air/land/entity/LandToListLonLat.java +++ b/air/src/main/java/com/air/land/entity/LandToListLonLat.java @@ -87,9 +87,4 @@ public class LandToListLonLat extends Model { @TableField(exist = false) @ApiModelProperty(value = "空间中标s") private String geoms; - - @TableField(exist = false) - @ApiModelProperty(value = "拍卖日期") - private LocalDate auctionDate; - } diff --git a/air/src/main/resources/mapper/AppletsMapMapper.xml b/air/src/main/resources/mapper/AppletsMapMapper.xml index 85d8ced..05e2dc7 100644 --- a/air/src/main/resources/mapper/AppletsMapMapper.xml +++ b/air/src/main/resources/mapper/AppletsMapMapper.xml @@ -17,12 +17,12 @@ facilities WHERE ST_Distance_Sphere ( - st_geomfromtext ( concat('POINT(',#{lat} #{lon},')'), 4326 ), + st_geomfromtext ( concat('POINT(',#{lat},' ',#{lon},')'), 4326 ), ST_SRID ( geom, 4326 )) < #{ radius} - SELECT - b.auction_date auctionDate, + if(date_format(b.auction_date,'%Y-%m-%d') < #{nowDate},'已出让','挂牌中') transactionStatus, a.*, st_astext ( st_centroid ( a.geom )) AS centerPoint, @@ -54,16 +54,18 @@ diff --git a/air/src/main/resources/mapper/BlocksMapper.xml b/air/src/main/resources/mapper/BlocksMapper.xml index 507bb13..097dbfd 100644 --- a/air/src/main/resources/mapper/BlocksMapper.xml +++ b/air/src/main/resources/mapper/BlocksMapper.xml @@ -32,4 +32,43 @@ and b.housing_estate_id = #{Blocks.housingEstateId} + + + + + + +