From 9f88b12d16c83963dad8fb8f79d9eeba2c311518 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 20 八月 2024 09:10:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java | 418 ----------------------------------------------------------- 1 files changed, 0 insertions(+), 418 deletions(-) diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java index 87ef518..e69de29 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java @@ -1,418 +0,0 @@ -package com.stylefeng.guns.modular.system.service.impl; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.system.dao.HouseResourceMapper; -import com.stylefeng.guns.modular.system.model.*; -import com.stylefeng.guns.modular.system.service.*; -import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.stylefeng.guns.modular.system.warpper.PointLocation; -import com.stylefeng.guns.modular.system.warpper.req.AddHouseReq; -import com.stylefeng.guns.modular.system.warpper.req.HouseQuery; -import com.stylefeng.guns.modular.system.warpper.req.SearchHouseResourceReq; -import com.stylefeng.guns.modular.system.warpper.req.UserInfoQuery; -import com.stylefeng.guns.modular.system.warpper.res.*; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.geo.Circle; -import org.springframework.data.geo.Distance; -import org.springframework.data.geo.Metrics; -import org.springframework.data.geo.Point; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @author zhibing.pu - * @Date 2023/11/8 15:10 - */ -@Service -public class HouseResourceService extends ServiceImpl<HouseResourceMapper, HouseResource> implements IHouseResourceService { - - @Autowired - private ISearchHistoryConditionService searchHistoryConditionService; - @Autowired - private IAppUserService appUserService; - @Autowired - private IRegionService regionService; - @Autowired - private IHouseTypeService houseTypeService; - @Autowired - private ICollectionHouseResourceService collectionHouseResourceService; - @Resource - private MongoTemplate mongoTemplate; - @Autowired - private IHousingDemandService housingDemandService; - - - - - /** - * 获取房源列表 - * @param req - * @return - */ - @Override - public SearchHouseResourceRes searchHouseResource(SearchHouseResourceReq req) { - req.setPageNum((req.getPageNum() - 1) * req.getPageSize()); - //租房处理推荐和记录历史搜索数据 - if(req.getType() == 1){ - fillSearchHistory(req); - } - //区域 - List<Integer> districtIds = new ArrayList<>(); - List<Integer> cityIds = new ArrayList<>(); - if (req.getDistrict() != null &&(!req.getDistrict().equals("")) ){ - // 一级id - Integer integer = Integer.valueOf(req.getDistrict()); - districtIds.add(integer); - if (req.getArea()!=null && (!req.getArea().equals(""))){ - String[] split = req.getArea().split(","); - for (String s : split) { - cityIds.add(Integer.valueOf(s)); - } - } - } -// if(StringUtils.hasLength(req.getDistrict())){ -// cityIds = new ArrayList<>(); -// districtIds = new ArrayList<>(); -// JSONArray jsonArray = JSON.parseArray(req.getDistrict()); -// for (int i = 0; i < jsonArray.size(); i++) { -// JSONObject jsonObject = jsonArray.getJSONObject(i); -// Integer cityId = jsonObject.getInteger("cityId"); -// Integer districtId = jsonObject.getInteger("districtId"); -// //不限区域 -// if(0 == districtId || null == districtId){ -// List<Region> regions = regionService.selectList(new EntityWrapper<Region>().eq("parent_id", cityId)); -// districtIds.addAll(regions.stream().map(Region::getId).collect(Collectors.toList())); -// } -// cityIds.add(cityId); -// districtIds.add(districtId); -// } -// } - - //价格范围 - Double saleAmountStart = null; - Double saleAmountEnd = null; - if(StringUtils.hasLength(req.getSaleAmount())){ - String[] split = req.getSaleAmount().split("-"); - saleAmountStart = Double.valueOf(split[0]); - saleAmountEnd = Double.valueOf(split[1]); - } - //户型 - List<String> houseModels = null; - if(StringUtils.hasLength(req.getHouseModel())){ - String[] split = req.getHouseModel().split(","); - houseModels = Arrays.asList(split); - } - //房型 - List<Integer> houseTypeIds = null; - if(StringUtils.hasLength(req.getHouseTypeId())){ - houseTypeIds = new ArrayList<>(); - String[] split = req.getHouseTypeId().split(","); - for (String s : split) { - houseTypeIds.add(Integer.valueOf(s)); - } - } - - SearchHouseResourceRes searchHouseResource = new SearchHouseResourceRes(); - List<SearchHouseResourceListRes> searchHouseResourceListRes = this.baseMapper.searchHouseResource(req, cityIds, districtIds, saleAmountStart, saleAmountEnd, houseModels, houseTypeIds); - searchHouseResource.setList(searchHouseResourceListRes); - Integer integer = this.baseMapper.searchHouseResourceCount(req, cityIds, districtIds, saleAmountStart, saleAmountEnd, houseModels, houseTypeIds); - searchHouseResource.setTotal(integer); - return searchHouseResource; - } - - - /** - * 填装历史搜索记录和修改历史搜索记录 - * @param req - */ - private void fillSearchHistory(SearchHouseResourceReq req){ - AppUser appUser = appUserService.getAppUser(); - if(null != appUser){ - //获取历史搜索数据 - SearchHistoryCondition searchHistoryCondition = searchHistoryConditionService - .selectOne(new EntityWrapper<SearchHistoryCondition>().eq("app_user_id", appUser.getId())); - if(null == searchHistoryCondition){ - //没有历史记录,将现有记录添加进去 - searchHistoryCondition = new SearchHistoryCondition(); - searchHistoryCondition.setAppUserId(appUser.getId()); - searchHistoryCondition.setDistrict(req.getDistrict()); - searchHistoryCondition.setPrice(req.getSaleAmount()); - searchHistoryCondition.setHouseModels(req.getHouseModel()); - searchHistoryCondition.setElevator(req.getElevator()); - searchHistoryCondition.setHouseTypeIds(req.getHouseTypeId()); - searchHistoryConditionService.insert(searchHistoryCondition); - }else{ - //没有进行搜索的情况,将历史记录填充进搜素条件。有搜索条件则不填充,然后更新历史搜索条件 - if(ToolUtil.isEmpty(req.getDistrict()) && ToolUtil.isEmpty(req.getSaleAmount()) && - ToolUtil.isEmpty(req.getHouseModel()) && ToolUtil.isEmpty(req.getElevator()) && - ToolUtil.isEmpty(req.getHouseTypeId())){ -// req.setDistrict(searchHistoryCondition.getDistrict()); -// req.setSaleAmount(searchHistoryCondition.getPrice()); -// req.setHouseModel(searchHistoryCondition.getHouseModels()); -// req.setElevator(searchHistoryCondition.getElevator()); -// req.setHouseTypeId(searchHistoryCondition.getHouseTypeIds()); - }else{ - //更新历史搜索记录 - searchHistoryCondition.setDistrict(req.getDistrict()); - searchHistoryCondition.setPrice(req.getSaleAmount()); - searchHistoryCondition.setHouseModels(req.getHouseModel()); - searchHistoryCondition.setElevator(req.getElevator()); - searchHistoryCondition.setHouseTypeIds(req.getHouseTypeId()); - searchHistoryConditionService.updateAllColumnById(searchHistoryCondition); - } - } - } - } - - - /** - * 获取区域房源数量 - * @return - */ - @Override - public List<DistrictHouseResourceNumberRes> getDistrictHouseResourceNumber(Integer userType, Integer dataType) { - List<DistrictHouseResourceNumberRes> districtHouseResourceNumber = this.baseMapper.getDistrictHouseResourceNumber(userType, dataType); - return districtHouseResourceNumber; - } - - - /** - * 获取房源详情 - * @param id - * @return - */ - @Override - public HouseResourceInfoRes getHouseResourceInfo(Integer id) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - AppUser appUser = appUserService.getAppUser(); - HouseResource houseResource = this.selectById(id); - HouseResourceInfoRes houseResourceInfoRes = new HouseResourceInfoRes(); - houseResourceInfoRes.setId(id); - houseResourceInfoRes.setTitle(houseResource.getTitle()); - houseResourceInfoRes.setSaleAmount(houseResource.getSaleAmount()); - houseResourceInfoRes.setHouseModel(houseResource.getHouseModel()); - houseResourceInfoRes.setRentalDuration(houseResource.getRentalDuration()); - houseResourceInfoRes.setSaleDate(houseResource.getStartTime()); - houseResourceInfoRes.setHousePhoto(houseResource.getHousePhoto()); - HouseType houseType = houseTypeService.selectById(houseResource.getHouseTypeId()); - houseResourceInfoRes.setHouseType(houseType.getName()); - houseResourceInfoRes.setFloor(houseResource.getFloor()); - houseResourceInfoRes.setElevator(houseResource.getElevator()); - houseResourceInfoRes.setDryingArea(houseResource.getDryingArea()); - houseResourceInfoRes.setHouseArea(houseResource.getHouseArea()); - houseResourceInfoRes.setKeepPet(houseResource.getKeepPet()); - Region region = regionService.selectById(houseResource.getDistrictId()); - Region region1 = regionService.selectById(houseResource.getCityId()); - houseResourceInfoRes.setAddress(region1.getName() + " > " + region.getName() + "/" + houseResource.getHouseAddress()); - houseResourceInfoRes.setLongitude(houseResource.getLongitude()); - houseResourceInfoRes.setLatitude(houseResource.getLatitude()); - houseResourceInfoRes.setMoreIntroduction(houseResource.getMoreIntroduction()); - houseResourceInfoRes.setViewsNumber(houseResource.getViewsNumber()); - AppUser appUser1 = appUserService.selectById(houseResource.getAppUserId()); - houseResourceInfoRes.setProfilePhoto(appUser1.getProfilePhoto()); - houseResourceInfoRes.setNickname(appUser1.getNickname()); - houseResourceInfoRes.setUserType(appUser1.getUserType()); - houseResourceInfoRes.setInsertTime(sdf.format(houseResource.getInsertTime())); - if (houseResource.getUpdateTime()!=null){ - houseResourceInfoRes.setUpdateTime(sdf.format(houseResource.getUpdateTime())); - } - houseResourceInfoRes.setCode(houseResource.getCode()); - int collectionTimes = collectionHouseResourceService.selectCount(new EntityWrapper<CollectionHouseResource>().eq("house_resource_id", id)); - houseResourceInfoRes.setCollectionTimes(collectionTimes); - houseResourceInfoRes.setCollection(0); - if(null != appUser){ - int collection = collectionHouseResourceService.selectCount(new EntityWrapper<CollectionHouseResource>().eq("house_resource_id", id).eq("app_user_id", appUser.getId())); - houseResourceInfoRes.setCollection(0 == collection ? 0 : 1); - } - //添加访问次数记录 - addViewsNumber(houseResource); - return houseResourceInfoRes; - } - - - /** - * 添加访问次数记录 - * @param houseResource - */ - private void addViewsNumber(HouseResource houseResource){ - houseResource.setViewsNumber((null == houseResource.getViewsNumber() ? 0 : houseResource.getViewsNumber()) + 1); - this.updateById(houseResource); - } - - - /** - * 获取附近房源数据 - * @param id - * @return - */ - @Override - public List<SearchHouseResourceListRes> getNearbyHouseResource(Integer id) { - HouseResource houseResource = this.selectById(id); - //获取中心半径5KM范围内的房源数据 - Double x = Double.valueOf(houseResource.getLongitude()); - Double y = Double.valueOf(houseResource.getLatitude()); - Point point = new Point(x, y); - Circle circle = new Circle(point, new Distance(5, Metrics.KILOMETERS)); - Query query = Query.query(Criteria.where("geoJsonPoint").withinSphere(circle)); - List<PointLocation> pointLocations = mongoTemplate.find(query, PointLocation.class); - List<Integer> ids = pointLocations.stream().map(PointLocation::getHouseId).collect(Collectors.toList()); - if (ids.size()!= 0){ - List<HouseResource> houseResources = this.selectBatchIds(ids); - List<SearchHouseResourceListRes> list = new ArrayList<>(); - //遍历解析出返回数据 - for (HouseResource resource : houseResources) { - SearchHouseResourceListRes searchHouseResourceListRes = new SearchHouseResourceListRes(); - searchHouseResourceListRes.setId(resource.getId()); - AppUser appUser = appUserService.selectById(resource.getAppUserId()); - searchHouseResourceListRes.setHouseResource(appUser.getUserType()); - searchHouseResourceListRes.setImgUrl(resource.getHousePhoto().split(",")[0]); - searchHouseResourceListRes.setTitle(resource.getTitle()); - searchHouseResourceListRes.setHouseArea(resource.getHouseArea()); - searchHouseResourceListRes.setHouseModel(resource.getHouseModel()); - Region region = regionService.selectById(houseResource.getDistrictId()); - Region region1 = regionService.selectById(houseResource.getCityId()); - searchHouseResourceListRes.setAddress(region1.getName() + " > " + region.getName() + "/" + houseResource.getHouseAddress()); - searchHouseResourceListRes.setSaleAmount(resource.getSaleAmount().doubleValue()); - searchHouseResourceListRes.setElevator(resource.getElevator()); - searchHouseResourceListRes.setDryingArea(resource.getDryingArea()); - searchHouseResourceListRes.setGarden(resource.getGarden()); - searchHouseResourceListRes.setCarport(resource.getCarport()); - searchHouseResourceListRes.setBalcony(resource.getBalcony()); - searchHouseResourceListRes.setKeepPet(resource.getKeepPet()); - list.add(searchHouseResourceListRes); - } - return list; - } - List<SearchHouseResourceListRes> list = new ArrayList<>(); - return list; - - } - - - /** - * 获取联系方式 - * @param id - * @return - */ - @Override - public ContactInformationRes getContactInformation(Integer id) { - HouseResource houseResource = this.selectById(id); - AppUser appUser = appUserService.selectById(houseResource.getAppUserId()); - ContactInformationRes contactInformationRes = new ContactInformationRes(); - contactInformationRes.setWhatsApp(appUser.getWatchApp()); - contactInformationRes.setPhone(appUser.getPhone()); - return contactInformationRes; - } - - @Override - public SearchHouseResourceRes listHouse(HouseQuery query) { - SearchHouseResourceRes res = new SearchHouseResourceRes(); - res.setList(this.baseMapper.listHouse(query)); - res.setTotal(res.getList().size()); - return res; - } - - @Override - public ResultUtil addHouse(AddHouseReq req) { - Integer appUserId = appUserService.getAppUser().getId(); - AppUser appUser = appUserService.selectOne(new EntityWrapper<AppUser>() - .eq("id", appUserId) - .eq("audit_status", 2) - .eq("status", 1)); - if (appUser!=null){ - - if (appUser.getAgentLicenceCode()==null){ - // 未认证 只能能发布三条房源信息 - List<HouseResource> houseResources = this.selectList(new EntityWrapper<HouseResource>() - .eq("app_user_id", appUserId) - .eq("is_delete", 1) - .eq("status", 1) - ); - if (houseResources.size()>=3){ - return ResultUtil.error("中介账号未认证,只能同时上架3条房源信息"); - } - }else{ - // 已经认证 只能能发布20条房源信息 - List<HouseResource> houseResources = this.selectList(new EntityWrapper<HouseResource>() - .eq("app_user_id", appUserId) - .eq("is_delete", 1) - .eq("status", 1) - ); - if (houseResources.size()>=20){ - return ResultUtil.error("当前中介账号只能同时上架20条房源信息"); - } - } - - HouseResource houseResource = new HouseResource(); - BeanUtils.copyProperties(req,houseResource); - System.err.println(houseResource); - houseResource.setInsertTime(new Date()); - houseResource.setAuthStatus(1); - houseResource.setIsDelete(0); - houseResource.setInsertUserId(appUserId); - houseResource.setViewsNumber(0); - houseResource.setStatus(0); - houseResource.setLeaseTime(req.getTime()); - houseResource.setFirmHouse(req.getFirmHouse()); - if (req.getTime().contains("年")){ - houseResource.setRentalDuration(2); - }else{ - houseResource.setRentalDuration(1); - } - this.baseMapper.insert(houseResource); - return ResultUtil.success(); - } - return ResultUtil.success(); - } - - @Override - public ResultUtil confirm(Integer userType) { - AppUser appUser = appUserService.getAppUser(); - if (userType == 3){ - // 需要下架所有个人房源和求房源信息 - List<HouseResource> list = this.selectList(new EntityWrapper<HouseResource>() - .eq("app_user_id", appUser.getId())); - for (HouseResource houseResource : list) { - houseResource.setStatus(0); - this.baseMapper.updateById(houseResource); - } - List<HousingDemand> list2 = housingDemandService.selectList(new EntityWrapper<HousingDemand>() - .eq("app_user_id", appUser.getId())); - for (HousingDemand housingDemand : list2) { - housingDemand.setStatus(0); - housingDemandService.updateById(housingDemand); - } -// housingDemandService.updateBatchById(list2); - } - appUser.setUserType(userType); - appUserService.updateById(appUser); - return ResultUtil.success(); - } - - @Override - public List<CollectListRes> collect(List<Integer> ids) { - return this.baseMapper.collect(ids); - } - - - public List<CollectListRes> release(UserInfoQuery query, List<Integer> collect) { - return this.baseMapper.release(query,collect); - } -} -- Gitblit v1.7.1