123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047 |
- package com.huiju.estateagents.service.impl;
-
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.huiju.estateagents.base.ResponseBean;
- import com.huiju.estateagents.common.CommConstant;
- import com.huiju.estateagents.common.StringUtils;
- import com.huiju.estateagents.entity.*;
- import com.huiju.estateagents.mapper.*;
- import com.huiju.estateagents.po.BuildingImgPO;
- import com.huiju.estateagents.po.TaHousingResourcesPO;
- import com.huiju.estateagents.service.ITaHousingResourcesService;
- import org.apache.commons.collections.CollectionUtils;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.ss.usermodel.Sheet;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.multipart.MultipartFile;
- import sun.util.locale.LocaleUtils;
-
- import java.math.BigDecimal;
- import java.time.LocalDateTime;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
-
- /**
- * <p>
- * 房源表 服务实现类
- * </p>
- *
- * @author jobob
- * @since 2020-02-10
- */
- @Transactional(rollbackFor = Exception.class)
- @Service
- public class TaHousingResourcesServiceImpl extends ServiceImpl<TaHousingResourcesMapper, TaHousingResources> implements ITaHousingResourcesService {
-
- private Logger logger = LoggerFactory.getLogger(TaHousingResourcesServiceImpl.class);
-
- @Autowired
- private TaHousingResourcesMapper taHousingResourcesMapper;
-
- @Autowired
- private TaBuildingTermMapper taBuildingTermMapper;
-
- @Autowired
- private TaBuildingBlockMapper taBuildingBlockMapper;
-
- @Autowired
- private TaBuildingUnitMapper taBuildingUnitMapper;
-
- @Autowired
- private TaBuildingFloorMapper taBuildingFloorMapper;
-
- @Autowired
- private TaBuildingRoomMapper taBuildingRoomMapper;
-
- @Autowired
- private TaBuildingMapper taBuildingMapper;
-
- @Autowired
- private TaPreselectionRecordMapper taPreselectionRecordMapper;
-
- @Autowired
- TaBuildingImgMapper taBuildingImgMapper;
-
- @Autowired
- TaApartmentImgMapper taApartmentImgMapper;
-
- @Autowired
- private TaBuildingPanoramaMapper taBuildingPanoramaMapper;
-
- @Autowired
- private TaSalesBatchMapper taSalesBatchMapper;
-
- @Autowired
- private TaPersonServiceImpl taPersonService;
-
- @Autowired
- private TaRaiseHouseServiceImpl taRaiseHouseService;
-
- @Autowired
- private TaPreselectionMapper taPreselectionMapper;
-
- @Autowired
- private TaRaiseMapper taRaiseMapper;
-
- @Autowired
- private TaRaiseRecordMapper taRaiseRecordMapper;
-
- /**
- * 分页获取房源列表
- *
- * @param salesBatchId 销售批次ID
- * @param startPrice
- * @param endPrice
- * @param apartmentId
- * @return
- */
- @Override
- public List<TaHousingResourcesPO> listHousingResources(Integer orgId, String salesBatchId, String startPrice, String endPrice, String apartmentId,
- String personId, String source) {
- logger.info("listHousingResources 接收参数:orgId:{},salesBatchId:{},startPrice:{},endPrice:{},apartmentId:{},source:{}",
- orgId, salesBatchId, startPrice, endPrice, apartmentId, source);
-
- startPrice = StringUtils.isEmpty(startPrice) ? null : startPrice;
- endPrice = StringUtils.isEmpty(endPrice) ? null : endPrice;
-
- List<TaHousingResourcesPO> resourcesPOList =
- taHousingResourcesMapper.listHousingResources(orgId, salesBatchId, startPrice, endPrice, apartmentId, personId, source);
-
- return resourcesPOList;
- }
-
- /**
- * 分页获取房源列表-后台管理端
- *
- * @param salesBatchId 销售批次ID
- * @param startPrice
- * @param endPrice
- * @param apartmentId
- * @param type
- * @return
- */
- @Override
- public List<TaHousingResourcesPO> listHousingResourcesForCms(Integer orgId, String salesBatchId, String startPrice, String endPrice, String apartmentId, Integer type) {
- logger.info("listHousingResourcesForCms 接收参数:orgId:{},salesBatchId:{},startPrice:{},endPrice:{},apartmentId:{},type:{}",
- orgId, salesBatchId, startPrice, endPrice, apartmentId, type);
-
- startPrice = StringUtils.isEmpty(startPrice) ? null : startPrice;
- endPrice = StringUtils.isEmpty(endPrice) ? null : endPrice;
-
- List<TaHousingResourcesPO> resourcesPOList =
- taHousingResourcesMapper.listHousingResourcesForCms(orgId, salesBatchId, startPrice, endPrice, apartmentId, type);
-
- return resourcesPOList;
- }
-
- /**
- * 获取某销售批次下所有房源户型
- *
- * @param salesBatchId
- * @return
- */
- @Override
- public List<TaBuildingApartment> listBuildApartmentBySalesBatchId(String salesBatchId) {
- logger.info("listBuildApartmentBySalesBatchId 接收参数:salesBatchId:{}", salesBatchId);
-
- // 获取户型列表
- List<TaBuildingApartment> apartmentList = taHousingResourcesMapper.listBuildApartmentBySalesBatchId(salesBatchId);
- if (CollectionUtils.isEmpty(apartmentList)) {
- return null;
- }
-
- // 组装户型图片
- List<TaBuildingApartment> resultList = new ArrayList<>();
- List<TaBuildingImg> taBuildingImgList;
- List<TaApartmentImg> buildingImg;
- QueryWrapper<TaApartmentImg> apartmentImgQueryWrapper;
- QueryWrapper<TaBuildingImg> buildingImgQueryWrapper;
- for (TaBuildingApartment apartment : apartmentList) {
- apartmentImgQueryWrapper = new QueryWrapper<>();
- apartmentImgQueryWrapper.eq("apartment_id", apartment.getApartmentId());
- buildingImg = taApartmentImgMapper.selectList(apartmentImgQueryWrapper);
- for (TaApartmentImg apartmentImg : buildingImg) {
- buildingImgQueryWrapper = new QueryWrapper<>();
- buildingImgQueryWrapper.eq("img_id", apartmentImg.getImgId());
- buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
- buildingImgQueryWrapper.orderByAsc("order_no");
- taBuildingImgList = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
- apartment.setBuildingImgList(taBuildingImgList);
- resultList.add(apartment);
- }
- }
- return resultList;
- }
-
- /**
- * 根据房源ID获取房源详情
- *
- * @param personId
- * @param houseId
- * @return
- */
- @Override
- public TaHousingResourcesPO getHousingDetailById(String personId, Integer houseId) {
- logger.info("getHousingDetailById 接收参数:personId:{},houseId:{}", personId, houseId);
-
- // 查询房源详情
- TaHousingResourcesPO resourcesPO = taHousingResourcesMapper.getHousingDetailById(houseId, "1");
- if (resourcesPO == null) {
- return null;
- }
-
- // 获取该用户是否预选房源信息
- TaPreselectionRecord taPreselectionRecord = taPreselectionRecordMapper.getRecordByPersonIdAndHouseId(personId, houseId);
- if (taPreselectionRecord != null) {
- resourcesPO.setIsPreselect(true);
- } else {
- resourcesPO.setIsPreselect(false);
- }
-
- List<BuildingImgPO> buildingImgPOList = new ArrayList<>();
- BuildingImgPO buildingImgPO;
- if (!StringUtils.isEmpty(resourcesPO.getApartmentId())) {
- // 获取全景图
- QueryWrapper<TaBuildingPanorama> buildingPanoramaQueryWrapper = new QueryWrapper<>();
- buildingPanoramaQueryWrapper.eq("org_id", resourcesPO.getOrgId());
- buildingPanoramaQueryWrapper.eq("building_id", resourcesPO.getBuildingId());
- buildingPanoramaQueryWrapper.eq("apartment_id", resourcesPO.getApartmentId());
- buildingPanoramaQueryWrapper.eq("panorama_type", "apartment");
- buildingPanoramaQueryWrapper.eq("status", "1");
- List<TaBuildingPanorama> panoramaList = taBuildingPanoramaMapper.selectList(buildingPanoramaQueryWrapper);
- if (CollectionUtils.isNotEmpty(panoramaList)) {
- for (TaBuildingPanorama panorama : panoramaList) {
- buildingImgPO = new BuildingImgPO();
- buildingImgPO.setUrl(panorama.getCoverImg());
- buildingImgPO.setType(1);
- buildingImgPO.setPanoramaLink(panorama.getPanoramaLink());
- buildingImgPOList.add(buildingImgPO);
- }
- }
-
- // 获取户型图片列表
- List<TaBuildingImg> taBuildingImgList = new ArrayList<>();
- List<TaApartmentImg> buildingImg;
- QueryWrapper<TaBuildingImg> buildingImgQueryWrapper;
- QueryWrapper<TaApartmentImg> apartmentImgQueryWrapper = new QueryWrapper<>();
- apartmentImgQueryWrapper.eq("apartment_id", resourcesPO.getApartmentId());
- buildingImg = taApartmentImgMapper.selectList(apartmentImgQueryWrapper);
- for (TaApartmentImg apartmentImg : buildingImg) {
- buildingImgQueryWrapper = new QueryWrapper<>();
- buildingImgQueryWrapper.eq("img_id", apartmentImg.getImgId());
- buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
- buildingImgQueryWrapper.orderByAsc("order_no");
- taBuildingImgList = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
- }
- if (CollectionUtils.isNotEmpty(taBuildingImgList)) {
- for (TaBuildingImg img : taBuildingImgList) {
- buildingImgPO = new BuildingImgPO();
- buildingImgPO.setType(0);
- buildingImgPO.setUrl(img.getUrl());
- buildingImgPOList.add(buildingImgPO);
- }
- }
- }
-
- resourcesPO.setBuildingImgList(buildingImgPOList);
-
- //是否展示预选按钮
- Integer salesBatchId = resourcesPO.getSalesBatchId();
- Integer orgId = resourcesPO.getOrgId();
- resourcesPO.setPreselectionBtn(true);
- resourcesPO.setRaiseBtn(true);
- QueryWrapper<TaPreselection> taPreselectionQueryWrapper = new QueryWrapper<>();
- taPreselectionQueryWrapper.eq("sales_batch_id", salesBatchId);
- taPreselectionQueryWrapper.eq("org_id", orgId);
- taPreselectionQueryWrapper.eq("status", CommConstant.STATUS_NORMAL);
- TaPreselection taPreselection = taPreselectionMapper.selectOne(taPreselectionQueryWrapper);
- if (null == taPreselection) {
- resourcesPO.setPreselectionBtn(false);
- }
-
- //是否展示认筹按钮
- QueryWrapper<TaRaise> taRaiseQueryWrapper = new QueryWrapper<>();
- taRaiseQueryWrapper.eq("sales_batch_id", salesBatchId);
- taRaiseQueryWrapper.eq("org_id", orgId);
- taRaiseQueryWrapper.eq("status", CommConstant.STATUS_NORMAL);
- TaRaise taRaise = taRaiseMapper.selectOne(taRaiseQueryWrapper);
- if (null == taRaise) {
- resourcesPO.setRaiseBtn(false);
- } else {
- resourcesPO.setTaRaise(taRaise);
- }
-
- return resourcesPO;
- }
-
- /**
- * 校验楼栋信息存不存在
- *
- * @param taHousingResources
- * @return
- */
- @Override
- public StringBuffer checked(TaHousingResources taHousingResources) {
- StringBuffer result = new StringBuffer();
- //校验期
- String termResult = checckedTerm(taHousingResources);
- result.append(termResult.equals("notExist") ? "期名" + taHousingResources.getTermName() + "不存在,会直接新建。" : termResult);
- //校验栋
- String blockResult = checkedBlock(taHousingResources);
- result.append(blockResult.equals("notExist") ? "楼栋名" + taHousingResources.getBlockName() + "不存在,会直接新建。" : blockResult);
- //校验单元
- String unitResult = checkedUnit(taHousingResources);
- result.append(unitResult.equals("notExist") ? "单元名" + taHousingResources.getUnitName() + "不存在,会直接新建。" : unitResult);
- //校验楼层
- String floorResult = checkedFloor(taHousingResources);
- result.append(floorResult.equals("notExist") ? "楼层名" + taHousingResources.getFloorName() + "不存在,会直接新建。" : floorResult);
- //校验房号
- String roomResult = checkedRoom(taHousingResources);
- result.append(roomResult.equals("notExist") ? "房号" + taHousingResources.getRoomName() + "不存在,会直接新建。" : roomResult);
- return result;
- }
-
- /**
- * 添加楼栋信息
- *
- * @param taHousingResources
- * @return
- */
- @Override
- public ResponseBean addHouseResources(TaHousingResources taHousingResources) {
- //校验期
- String termResult = checckedTerm(taHousingResources);
- //校验栋
- String blockResult = checkedBlock(taHousingResources);
- //校验单元
- String unitResult = checkedUnit(taHousingResources);
- //校验楼层
- String floorResult = checkedFloor(taHousingResources);
- //校验房号
- String roomResult = checkedRoom(taHousingResources);
-
- //创建期
- if (!roomResult.equals("notExist")) {
- return ResponseBean.error("房间名" + taHousingResources.getRoomName() + "存在。请修改房间名!", ResponseBean.ERROR_UNAVAILABLE);
- }
-
- //期不存在就添加
- if (termResult.equals("notExist")) {
- addTerm(taHousingResources);
- }
-
- //楼栋不存在就添加
- if (blockResult.equals("notExist")) {
- addBlock(taHousingResources);
- }
-
- //单元不存在就添加
- if (unitResult.equals("notExist")) {
- addUnit(taHousingResources);
- }
-
- //楼层不存在就添加
- if (floorResult.equals("notExist")) {
- addFloor(taHousingResources);
- }
-
- //房间号不存在就添加
- if (roomResult.equals("notExist")) {
- addRoom(taHousingResources);
- }
-
- // 更新销售批次里的房源数
- taSalesBatchMapper.addSalesNumberById(taHousingResources.getSalesBatchId(), taHousingResources.getOrgId());
-
- // 获取楼盘名称
- TaBuilding taBuilding = taBuildingMapper.selectById(taHousingResources.getBuildingId());
- taHousingResources.setBuildingName(taBuilding.getBuildingName());
- //添加房源信息
- taHousingResources.setCreateDate(LocalDateTime.now());
- taHousingResourcesMapper.insert(taHousingResources);
- return ResponseBean.success(taHousingResources);
- }
-
- /**
- * 分页获取房源信息
- *
- * @param salesBatchId
- * @param buildingId
- * @param pageNumber
- * @param pageSize
- * @param orgId
- * @param termName
- * @param blockName
- * @param unitName
- * @param floorName
- * @param roomName
- * @param apartmentId
- * @param status
- * @param houseId
- * @return
- */
- @Override
- public ResponseBean selectPageList(Integer salesBatchId, String buildingId, Integer pageNumber, Integer pageSize, Integer orgId, String termName, String blockName,
- String unitName, String floorName, String roomName, String apartmentId, Integer status, String houseId, String lockingStatus) {
- IPage<TaHousingResources> pg = new Page<>(pageNumber, pageSize);
- IPage<TaHousingResources> pageData = taHousingResourcesMapper.getHouseResourceList(pg, salesBatchId, buildingId, orgId, termName, blockName, unitName,
- floorName, roomName, apartmentId, status, houseId, lockingStatus);
- return ResponseBean.success(pageData);
- }
-
- /**
- * 更新房源信息
- *
- * @param taHousingResources
- * @return
- */
- @Override
- public ResponseBean updateHouseResources(TaHousingResources taHousingResources) {
- TaHousingResources oldTaHousingResources = taHousingResourcesMapper.selectById(taHousingResources.getHouseId());
- taHousingResources.setTermId(oldTaHousingResources.getTermId());
- taHousingResources.setBlockId(oldTaHousingResources.getBlockId());
- taHousingResources.setUnitId(oldTaHousingResources.getUnitId());
- taHousingResources.setFloorId(oldTaHousingResources.getFloorId());
- taHousingResources.setRoomId(oldTaHousingResources.getRoomId());
- //只允许编辑房间名
- if (!oldTaHousingResources.getRoomName().equals(taHousingResources.getRoomName())) {
- //校验房号
- String roomResult = checkedRoom(taHousingResources);
-
- //房间号不存在就更新
- if (roomResult.equals("notExist")) {
- updateRoom(taHousingResources);
- } else {
- return ResponseBean.error("房间名" + taHousingResources.getRoomName() + "存在。请修改房间名!", ResponseBean.ERROR_UNAVAILABLE);
- }
-
- }
-
- //添加房源信息
- taHousingResources.setUpdateDate(LocalDateTime.now());
- taHousingResourcesMapper.updateById(taHousingResources);
- return ResponseBean.success(taHousingResources);
- }
-
- /**
- * 获取表格中的数据
- *
- * @param file
- * @param salesBatchId
- * @param buildingId
- * @param orgId
- * @return
- */
- @Override
- public ResponseBean getExcelData(MultipartFile file, Integer salesBatchId, String buildingId, Integer orgId) {
- ResponseBean responseBean = new ResponseBean();
- List<TaHousingResources> list = new ArrayList<>();
- if (file == null) {
- responseBean.addError("对象不能为空");
- return responseBean;
- }
- //获取文件的名字
- String originalFilename = file.getOriginalFilename();
- Workbook workbook = null;
- try {
- if (originalFilename.endsWith(CommConstant.SUFFIX_2003)) {
- workbook = new HSSFWorkbook(file.getInputStream());
- } else if (originalFilename.endsWith(CommConstant.SUFFIX_2007)) {
- workbook = new XSSFWorkbook(file.getInputStream());
- }
- } catch (Exception e) {
- logger.info(originalFilename);
- e.printStackTrace();
- responseBean.addError("格式错误");
- return responseBean;
- }
- if (workbook == null) {
- logger.info(originalFilename);
- responseBean.addError("格式错误");
- return responseBean;
- } else {
- List<String> temHousingList = new ArrayList<String>();
- //获取一个sheet也就是一个工作簿
- Sheet sheet = workbook.getSheetAt(0);
- int lastRowNum = sheet.getLastRowNum();
- //从第一行开始第一行一般是标题
- for (int j = 3; j <= lastRowNum; j++) {
- Row row = sheet.getRow(j);
- TaHousingResources taHousingResources = new TaHousingResources();
- String termName = row.getCell(0).getStringCellValue().trim();
- String blockName = row.getCell(1).getStringCellValue().trim();
- String unitName = row.getCell(2).getStringCellValue().trim();
- String floorName = row.getCell(3).getStringCellValue().trim();
-
- String roomName = "";
- try {
- roomName = row.getCell(4).getStringCellValue().trim();
- } catch (Exception e) {
- String roomNameString = String.valueOf(row.getCell(4).getNumericCellValue());
- roomName = roomNameString.substring(0, roomNameString.indexOf("."));
- }
-
- BigDecimal price;
- try {
- price = BigDecimal.valueOf(row.getCell(5).getNumericCellValue());
- } catch (Exception e) {
- price = new BigDecimal(row.getCell(5).getStringCellValue());
- }
-
- // Integer heat = 0;
- // try {
- // String heatString = String.valueOf(row.getCell(6).getNumericCellValue());
- // String split = heatString.substring(0, heatString.indexOf("."));
- // heat = Integer.valueOf(split);
- // } catch (Exception e) {
- // String heatString = row.getCell(6).getStringCellValue();
- // heat = Integer.valueOf(heatString);
- // }
-
-
- Integer status = row.getCell(6).getStringCellValue().trim().equals("是") ? 1 : 0;
-
- int currentRow = j + 1;
- if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(termName)) {
- responseBean.addError("第" + currentRow + "行" + "期/区不能为空!");
- return responseBean;
- }
- if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(blockName)) {
- responseBean.addError("第" + currentRow + "行" + "楼栋不能为空!");
- return responseBean;
- }
- if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(unitName)) {
- responseBean.addError("第" + currentRow + "行" + "单元不能为空!");
- return responseBean;
- }
- if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(floorName)) {
- responseBean.addError("第" + currentRow + "行" + "层不能为空!");
- return responseBean;
- }
- if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(roomName)) {
- responseBean.addError("第" + currentRow + "行" + "房号不能为空!");
- return responseBean;
- }
-
- String houseInfo = termName + blockName + unitName + floorName + roomName;
- if (temHousingList.contains(houseInfo)) {
- logger.info("存在重复房源:{}", houseInfo);
- responseBean.addError("第" + currentRow + "行存在重复房源,请删除重复房源后再次上传文件。");
- return responseBean;
- }
-
- QueryWrapper<TaHousingResources> taHousingResourcesQueryWrapper = new QueryWrapper<>();
- // taHousingResourcesQueryWrapper.eq("sales_batch_id",salesBatchId);
- taHousingResourcesQueryWrapper.eq("building_id", buildingId);
- taHousingResourcesQueryWrapper.eq("org_id", orgId);
- taHousingResourcesQueryWrapper.gt("status", CommConstant.STATUS_DELETE);
- taHousingResourcesQueryWrapper.eq("term_name", termName);
- taHousingResourcesQueryWrapper.eq("block_name", blockName);
- taHousingResourcesQueryWrapper.eq("unit_name", unitName);
- taHousingResourcesQueryWrapper.eq("floor_name", floorName);
- taHousingResourcesQueryWrapper.eq("room_name", roomName);
- TaHousingResources oldTaHouseingResources = taHousingResourcesMapper.selectOne(taHousingResourcesQueryWrapper);
- if (null != oldTaHouseingResources) {
- logger.info("数据库存在重复房源:{}", houseInfo);
- responseBean.addError("第" + currentRow + "行与系统已录入房源" + oldTaHouseingResources.getHouseId() + "重复,请删除重复房源后再次上传文件。(注意,要检查本楼盘下所有批次的房源)。");
- return responseBean;
- }
-
- //把数据塞入temList校验是否有重复的数据
- temHousingList.add(houseInfo);
- //构建数据
- taHousingResources.setTermName(termName);
- taHousingResources.setBlockName(blockName);
- taHousingResources.setUnitName(unitName);
- taHousingResources.setFloorName(floorName);
- taHousingResources.setRoomName(roomName);
- taHousingResources.setPrice(price);
- // taHousingResources.setHeat(heat);
- taHousingResources.setStatus(status);
- list.add(taHousingResources);
- }
- }
- //构建分页
- Map<String, Object> data = new HashMap<String, Object>();
- data.put("list", list);
- data.put("total", list.size());
-
- responseBean.addSuccess(data);
- return responseBean;
- }
-
- /**
- * 保存文件
- *
- * @param file
- * @param salesBatchId
- * @param buildingId
- * @param orgId
- * @return
- */
- @Override
- public ResponseBean saveExcelValue(MultipartFile file, Integer salesBatchId, String buildingId, Integer orgId) {
- ResponseBean responseBean = new ResponseBean();
- responseBean = getExcelData(file, salesBatchId, buildingId, orgId);
- if (responseBean.getCode() != ResponseBean.CODE_SUCCESS) {
- return responseBean;
- }
-
- //获取校验成功的数据
- Map<String, Object> data = (Map<String, Object>) responseBean.getData();
- List<TaHousingResources> list = (List<TaHousingResources>) data.get("list");
- list.forEach(e -> {
- e.setOrgId(orgId);
- e.setSalesBatchId(salesBatchId);
- e.setBuildingId(buildingId);
- addHouseResources(e);
- });
- TaSalesBatch taSalesBatch = new TaSalesBatch();
- taSalesBatch.setSalesNumber(list.size());
- taSalesBatch.setSalesBatchId(salesBatchId);
- taSalesBatchMapper.updateById(taSalesBatch);
- return ResponseBean.success(list);
- }
-
- @Override
- public ResponseBean batchUpdateRaiseHeat(List<TaHousingResources> housingResourcesList, Integer raiseHeat,
- Integer salesBatchId, Integer orgId, Integer updateUser) {
- ResponseBean responseBean = new ResponseBean();
- if (taHousingResourcesMapper.batchUpdateRaiseHeat(housingResourcesList, raiseHeat, updateUser, salesBatchId, orgId) > 0) {
- responseBean.addSuccess("success");
- } else {
- responseBean.addError("fail");
- }
- return responseBean;
- }
-
- @Override
- public ResponseBean batchUpdateHeat(List<TaHousingResources> housingResourcesList, Integer heat, Integer salesBatchId, Integer orgId, Integer updateUser) {
- ResponseBean responseBean = new ResponseBean();
- if (taHousingResourcesMapper.batchUpdateHeat(housingResourcesList, heat, updateUser, salesBatchId, orgId) > 0) {
- responseBean.addSuccess("success");
- } else {
- responseBean.addError("fail");
- }
- return responseBean;
- }
-
- @Override
- public ResponseBean listHouseByRaiseRecordId(Integer raiseRecordId, Integer orgId, Integer pageNumber, Integer pageSize) {
- logger.info("listHouseByRaiseRecordId 接收参数:raiseRecordId:{},orgId:{},pageNumber:{},pageSize:{}",
- raiseRecordId, orgId, pageNumber, pageSize);
-
- ResponseBean responseBean = new ResponseBean();
- IPage<TaHousingResourcesPO> pg = new Page<>(pageNumber, pageSize);
- responseBean.addSuccess(taHousingResourcesMapper.listHouseByRaiseRecordId(pg, raiseRecordId, orgId));
- return responseBean;
- }
-
- @Override
- public ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId, Integer raiseRecordId) {
- logger.info("updateLockingStatus 接收参数:houseId:{},type:{},orgId:{},raiseHouseId:{},personId:{}",
- houseId, type, orgId, raiseHouseId, personId);
- ResponseBean responseBean = new ResponseBean();
-
- // 获取房源信息
- TaHousingResourcesPO po = taHousingResourcesMapper.getHouseByRaiseHouseId(orgId, raiseHouseId);
- if (po == null) {
- responseBean.addError("未找到该房源");
- return responseBean;
- }
-
- QueryWrapper<TaRaiseHouse> taRaiseHouseQueryWrapper = new QueryWrapper<>();
- taRaiseHouseQueryWrapper.eq("raise_record_id", raiseRecordId);
- taRaiseHouseQueryWrapper.eq("raise_house_id", raiseHouseId);
- TaRaiseHouse taRaiseHouse = taRaiseHouseService.getOne(taRaiseHouseQueryWrapper);
-
- QueryWrapper<TaRaiseRecord> taRaiseRecordQueryWrapper = new QueryWrapper<>();
- taRaiseRecordQueryWrapper.eq("raise_record_id", raiseRecordId);
- TaRaiseRecord raiseRecord = taRaiseRecordMapper.selectOne(taRaiseRecordQueryWrapper);
-
- // 更新为锁定状态
- if ("locked".equals(type)) {
- // 校验当前房源状态
- if ("locked".equals(po.getHouseLockingStatus())){
- responseBean.addError("房源已被锁定");
- return responseBean;
- }
-
- TaHousingResources housingResources = new TaHousingResources();
- housingResources.setHouseId(po.getHouseId());
- housingResources.setHouseLockingStatus("locked");
- housingResources.setHouseLockingPerson(taRaiseHouse.getPersonId());
- housingResources.setUpdateDate(LocalDateTime.now());
- housingResources.setHouseLockingPerson(raiseRecord.getPersonId());
- updateById(housingResources);
-
- //更新认筹单房源锁定状态
- TaRaiseRecord taRaiseRecord = new TaRaiseRecord();
- taRaiseRecord.setRaiseRecordId(raiseRecordId);
- taRaiseRecord.setHouseLockingStatus("locked");
- taRaiseRecordMapper.updateById(taRaiseRecord);
-
- // 更新关联表状态
- TaRaiseHouse raiseHouse = new TaRaiseHouse();
- raiseHouse.setRaiseHouseId(raiseHouseId);
- raiseHouse.setHouseLockingStatus("locked");
- responseBean.addSuccess(taRaiseHouseService.updateById(raiseHouse));
- return responseBean;
- }
-
- // 更新为解锁状态
- if ("unlocked".equals(type)) {
- // 校验当前房源状态
- if ("unlocked".equals(po.getHouseLockingStatus())){
- responseBean.addError("房源已被解锁");
- return responseBean;
- }
-
- TaHousingResources housingResources = new TaHousingResources();
- housingResources.setHouseId(po.getHouseId());
- housingResources.setHouseLockingStatus("unlocked");
- housingResources.setHouseLockingPerson("");
- housingResources.setUpdateDate(LocalDateTime.now());
- updateById(housingResources);
-
- //更新认筹单房源锁定状态
- TaRaiseRecord taRaiseRecord = new TaRaiseRecord();
- taRaiseRecord.setRaiseRecordId(raiseRecordId);
- taRaiseRecord.setHouseLockingStatus("unlocked");
- taRaiseRecordMapper.updateById(taRaiseRecord);
-
- // 更新关联表状态
- TaRaiseHouse raiseHouse = new TaRaiseHouse();
- raiseHouse.setRaiseHouseId(raiseHouseId);
- raiseHouse.setHouseLockingStatus("unlocked");
- raiseHouse.setPersonId("");
- raiseHouse.setPersonName("");
- responseBean.addSuccess(taRaiseHouseService.updateById(raiseHouse));
- return responseBean;
- }
- responseBean.addError("fail");
- return responseBean;
- }
-
- /**
- * 校验房源的认筹状态
- *
- * @param houseIds
- * @param personId
- * @param orgId
- * @return
- */
- @Override
- public boolean checkRaiseState(String houseIds, String personId, Integer orgId) throws Exception {
- String[] houseIdArr = houseIds.split(",");
- //房源信息
- TaHousingResources taHousingResources = taHousingResourcesMapper.selectById(houseIdArr[0]);
- //通过销售批次信息获取认筹信息
- QueryWrapper<TaRaise> taRaiseQueryWrapper = new QueryWrapper<>();
- taRaiseQueryWrapper.eq("org_id",orgId);
- taRaiseQueryWrapper.eq("sales_batch_id",taHousingResources.getSalesBatchId());
- taRaiseQueryWrapper.eq("building_id",taHousingResources.getBuildingId());
- TaRaise taRaise = taRaiseMapper.selectOne(taRaiseQueryWrapper);
- if (taRaise.getStatus() != CommConstant.STATUS_NORMAL) {
- throw new Exception("认筹单已经作废");
- }
- //校验房源是否同一批次
- for (String houseId : houseIdArr){
- TaHousingResources taHousingResourcesChecked = taHousingResourcesMapper.selectById(houseId);
- if (taHousingResources.getSalesBatchId() != taHousingResourcesChecked.getSalesBatchId()){
- throw new Exception("非同一批次房源");
- }
- if (taRaise.getNeedPreselection()) {
- //查看是否有当前房源的预选记录
- QueryWrapper<TaPreselectionRecord> preselectionRecordQueryWrapper = new QueryWrapper<>();
- preselectionRecordQueryWrapper.eq("sales_batch_id", taRaise.getSalesBatchId());
- preselectionRecordQueryWrapper.eq("building_id", taRaise.getBuildingId());
- preselectionRecordQueryWrapper.eq("org_id", orgId);
- preselectionRecordQueryWrapper.eq("house_id", houseId);
- preselectionRecordQueryWrapper.eq("person_id", personId);
- TaPreselectionRecord taPreselectionRecord = taPreselectionRecordMapper.selectOne(preselectionRecordQueryWrapper);
- if (null == taPreselectionRecord) {
- throw new Exception("需要先预选才能认筹");
- }
- }
- //查询我的认筹记录表
- QueryWrapper<TaRaiseHouse> taRaiseHouseQueryWrapper = new QueryWrapper<>();
- taRaiseHouseQueryWrapper.eq("org_id", orgId);
- taRaiseHouseQueryWrapper.eq("house_id", houseId);
- taRaiseHouseQueryWrapper.eq("person_id", personId);
- List<TaRaiseHouse> list = taRaiseHouseService.list(taRaiseHouseQueryWrapper);
- if (list.size() > 0) {
- throw new Exception("您已有认筹单包含当前房源");
- }
-
- }
- if (taHousingResources.getStatus() != CommConstant.STATUS_NORMAL) {
- throw new Exception("房源已被取消发布");
- }
- if (CommConstant.HOUSE_LOCKING_STATUS_LOCKED.equals(taHousingResources.getHouseLockingStatus())){
- throw new Exception("房源已被其他客户锁定");
- }
- //销售批次信息
- TaSalesBatch taSalesBatch = taSalesBatchMapper.selectById(taHousingResources.getSalesBatchId());
- //销售批次校验
- if (null == taSalesBatch) {
- throw new Exception("无销售批次无法认筹");
- }
- if (taSalesBatch.getStatus() != CommConstant.STATUS_NORMAL) {
- throw new Exception("销售批次已被取消发布");
- }
-
- //判断是否在时间之内
- LocalDateTime raiseStartTime = taRaise.getRaiseStartTime();
- LocalDateTime raiseEndTime = taRaise.getRaiseEndTime();
- LocalDateTime now = LocalDateTime.now();
- if (now.isBefore(raiseStartTime) || now.isAfter(raiseEndTime)) {
- throw new Exception("不在认筹时间内");
- }
-
- return true;
- }
-
- //更新房号
- private void updateRoom(TaHousingResources taHousingResources) {
- TaBuildingRoom taBuildingRoom = new TaBuildingRoom();
- taBuildingRoom.setUpdateDate(LocalDateTime.now());
- taBuildingRoom.setTermId(taHousingResources.getTermId());
- taBuildingRoom.setBlockId(taHousingResources.getBlockId());
- taBuildingRoom.setUnitId(taHousingResources.getUnitId());
- taBuildingRoom.setFloorId(taHousingResources.getFloorId());
- taBuildingRoom.setRoomName(taHousingResources.getRoomName());
- taBuildingRoom.setRoomId(taHousingResources.getRoomId());
- taBuildingRoomMapper.updateById(taBuildingRoom);
- }
-
- //更新楼层
- private void updateFloor(TaHousingResources taHousingResources) {
- TaBuildingFloor taBuildingFloor = new TaBuildingFloor();
- taBuildingFloor.setUpdateDate(LocalDateTime.now());
- taBuildingFloor.setTermId(taHousingResources.getTermId());
- taBuildingFloor.setBlockId(taHousingResources.getBlockId());
- taBuildingFloor.setUnitId(taHousingResources.getUnitId());
- taBuildingFloor.setFloorName(taHousingResources.getFloorName());
- taBuildingFloorMapper.updateById(taBuildingFloor);
- }
-
- //更新单元
- private void updateUnit(TaHousingResources taHousingResources) {
- TaBuildingUnit taBuildingUnit = new TaBuildingUnit();
- taBuildingUnit.setUpdateDate(LocalDateTime.now());
- taBuildingUnit.setTermId(taHousingResources.getTermId());
- taBuildingUnit.setBlockId(taHousingResources.getBlockId());
- taBuildingUnit.setUnitName(taHousingResources.getUnitName());
- taBuildingUnit.setUnitId(taHousingResources.getUnitId());
- taBuildingUnitMapper.updateById(taBuildingUnit);
- }
-
- //更新栋
- private void updataBlock(TaHousingResources taHousingResources) {
- TaBuildingBlock taBuildingBlock = new TaBuildingBlock();
- taBuildingBlock.setUpdateDate(LocalDateTime.now());
- taBuildingBlock.setTermId(taHousingResources.getTermId());
- taBuildingBlock.setBlockName(taHousingResources.getBlockName());
- taBuildingBlock.setBlockId(taHousingResources.getBlockId());
- taBuildingBlockMapper.updateById(taBuildingBlock);
- }
-
- //添加房间号
- private void addRoom(TaHousingResources taHousingResources) {
- TaBuildingRoom taBuildingRoom = new TaBuildingRoom();
- taBuildingRoom.setBuildingId(taHousingResources.getBuildingId());
- taBuildingRoom.setCreateDate(LocalDateTime.now());
- taBuildingRoom.setOrgId(taHousingResources.getOrgId());
- taBuildingRoom.setStatus(CommConstant.STATUS_NORMAL);
- taBuildingRoom.setTermId(taHousingResources.getTermId());
- taBuildingRoom.setBlockId(taHousingResources.getBlockId());
- taBuildingRoom.setUnitId(taHousingResources.getUnitId());
- taBuildingRoom.setFloorId(taHousingResources.getFloorId());
- taBuildingRoom.setRoomName(taHousingResources.getRoomName());
- taBuildingRoomMapper.insert(taBuildingRoom);
- taHousingResources.setRoomId(taBuildingRoom.getRoomId());
- }
-
- //添加楼层
- private void addFloor(TaHousingResources taHousingResources) {
- TaBuildingFloor taBuildingFloor = new TaBuildingFloor();
- taBuildingFloor.setBuildingId(taHousingResources.getBuildingId());
- taBuildingFloor.setCreateDate(LocalDateTime.now());
- taBuildingFloor.setOrgId(taHousingResources.getOrgId());
- taBuildingFloor.setStatus(CommConstant.STATUS_NORMAL);
- taBuildingFloor.setTermId(taHousingResources.getTermId());
- taBuildingFloor.setBlockId(taHousingResources.getBlockId());
- taBuildingFloor.setUnitId(taHousingResources.getUnitId());
- taBuildingFloor.setFloorName(taHousingResources.getFloorName());
- taBuildingFloorMapper.insert(taBuildingFloor);
- taHousingResources.setFloorId(taBuildingFloor.getFloorId());
- }
-
- //添加单元
- private void addUnit(TaHousingResources taHousingResources) {
- TaBuildingUnit taBuildingUnit = new TaBuildingUnit();
- taBuildingUnit.setBuildingId(taHousingResources.getBuildingId());
- taBuildingUnit.setCreateDate(LocalDateTime.now());
- taBuildingUnit.setOrgId(taHousingResources.getOrgId());
- taBuildingUnit.setStatus(CommConstant.STATUS_NORMAL);
- taBuildingUnit.setTermId(taHousingResources.getTermId());
- taBuildingUnit.setBlockId(taHousingResources.getBlockId());
- taBuildingUnit.setUnitName(taHousingResources.getUnitName());
- taBuildingUnitMapper.insert(taBuildingUnit);
- taHousingResources.setUnitId(taBuildingUnit.getUnitId());
- }
-
- //添加楼栋
- private void addBlock(TaHousingResources taHousingResources) {
- TaBuildingBlock taBuildingBlock = new TaBuildingBlock();
- taBuildingBlock.setBuildingId(taHousingResources.getBuildingId());
- taBuildingBlock.setCreateDate(LocalDateTime.now());
- taBuildingBlock.setOrgId(taHousingResources.getOrgId());
- taBuildingBlock.setStatus(CommConstant.STATUS_NORMAL);
- taBuildingBlock.setTermId(taHousingResources.getTermId());
- taBuildingBlock.setBlockName(taHousingResources.getBlockName());
- taBuildingBlockMapper.insert(taBuildingBlock);
- taHousingResources.setBlockId(taBuildingBlock.getBlockId());
- }
-
- //添加期
- private void addTerm(TaHousingResources taHousingResources) {
- TaBuildingTerm taBuildingTerm = new TaBuildingTerm();
- taBuildingTerm.setBuildingId(taHousingResources.getBuildingId());
- taBuildingTerm.setCreateDate(LocalDateTime.now());
- taBuildingTerm.setOrgId(taHousingResources.getOrgId());
- taBuildingTerm.setStatus(CommConstant.STATUS_NORMAL);
- taBuildingTerm.setTermName(taHousingResources.getTermName());
- taBuildingTermMapper.insert(taBuildingTerm);
- taHousingResources.setTermId(taBuildingTerm.getTermId());
- }
-
- //校验房号
- private String checkedRoom(TaHousingResources taHousingResources) {
- if (StringUtils.isEmpty(taHousingResources.getRoomName())) {
- return "请输入房号。";
- } else {
- //查询房号
- TaBuildingRoom taBuildingRoom = selectRoom(taHousingResources);
- if (null != taBuildingRoom) {
- taHousingResources.setRoomId(taBuildingRoom.getRoomId());
- return "房间名" + taHousingResources.getRoomName() + "存在。不允许保存,请修改!";
- } else {
- return "notExist";
- }
- }
- }
-
- //查询房间号
- private TaBuildingRoom selectRoom(TaHousingResources taHousingResources) {
- QueryWrapper<TaBuildingRoom> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("org_id", taHousingResources.getOrgId());
- queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
- queryWrapper.eq("building_id", taHousingResources.getBuildingId());
- queryWrapper.eq("term_id", taHousingResources.getTermId());
- queryWrapper.eq("block_id", taHousingResources.getBlockId());
- queryWrapper.eq("unit_id", taHousingResources.getUnitId());
- queryWrapper.eq("floor_id", taHousingResources.getFloorId());
- queryWrapper.eq("room_name", taHousingResources.getRoomName());
- return taBuildingRoomMapper.selectOne(queryWrapper);
- }
-
- //校验楼层
- private String checkedFloor(TaHousingResources taHousingResources) {
- if (StringUtils.isEmpty(taHousingResources.getFloorName())) {
- return "请输入楼层名。";
- } else {
- QueryWrapper<TaBuildingFloor> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("org_id", taHousingResources.getOrgId());
- queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
- queryWrapper.eq("building_id", taHousingResources.getBuildingId());
- queryWrapper.eq("term_id", taHousingResources.getTermId());
- queryWrapper.eq("block_id", taHousingResources.getBlockId());
- queryWrapper.eq("unit_id", taHousingResources.getUnitId());
- queryWrapper.eq("floor_name", taHousingResources.getFloorName());
- TaBuildingFloor taBuildingFloor = taBuildingFloorMapper.selectOne(queryWrapper);
- if (null != taBuildingFloor) {
- taHousingResources.setFloorId(taBuildingFloor.getFloorId());
- return "楼层名" + taHousingResources.getFloorName() + "存在。";
- } else {
- return "notExist";
- }
- }
- }
-
- //校验单元
- private String checkedUnit(TaHousingResources taHousingResources) {
- if (StringUtils.isEmpty(taHousingResources.getUnitName())) {
- return "请输入单元名。";
- } else {
- QueryWrapper<TaBuildingUnit> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("org_id", taHousingResources.getOrgId());
- queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
- queryWrapper.eq("building_id", taHousingResources.getBuildingId());
- queryWrapper.eq("term_id", taHousingResources.getTermId());
- queryWrapper.eq("block_id", taHousingResources.getBlockId());
- queryWrapper.eq("unit_name", taHousingResources.getUnitName());
- TaBuildingUnit taBuildingUnit = taBuildingUnitMapper.selectOne(queryWrapper);
- if (null != taBuildingUnit) {
- taHousingResources.setUnitId(taBuildingUnit.getUnitId());
- return "单元名" + taHousingResources.getUnitName() + "存在。";
- } else {
- return "notExist";
- }
- }
- }
-
- //校验楼盘
- private String checkedBlock(TaHousingResources taHousingResources) {
- if (StringUtils.isEmpty(taHousingResources.getBlockName())) {
- return "请输入楼栋名。";
- } else {
- QueryWrapper<TaBuildingBlock> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("org_id", taHousingResources.getOrgId());
- queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
- queryWrapper.eq("building_id", taHousingResources.getBuildingId());
- queryWrapper.eq("term_id", taHousingResources.getTermId());
- queryWrapper.eq("block_name", taHousingResources.getBlockName());
- TaBuildingBlock taBuildingBlock = taBuildingBlockMapper.selectOne(queryWrapper);
- if (null != taBuildingBlock) {
- taHousingResources.setBlockId(taBuildingBlock.getBlockId());
- return "楼栋名" + taHousingResources.getBlockName() + "存在。";
- } else {
- return "notExist";
- }
- }
- }
-
- //校验期
- private String checckedTerm(TaHousingResources taHousingResources) {
- if (StringUtils.isEmpty(taHousingResources.getTermName())) {
- return "请输入期名。";
- } else {
- QueryWrapper<TaBuildingTerm> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("org_id", taHousingResources.getOrgId());
- queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
- queryWrapper.eq("building_id", taHousingResources.getBuildingId());
- queryWrapper.eq("term_name", taHousingResources.getTermName());
- TaBuildingTerm taBuildingTerm = taBuildingTermMapper.selectOne(queryWrapper);
- if (null != taBuildingTerm) {
- taHousingResources.setTermId(taBuildingTerm.getTermId());
- return "期名" + taHousingResources.getTermName() + "存在。";
- } else {
- return "notExist";
- }
- }
- }
- }
|