From 1300cd0e47d9f0890d972bafeba888d10395ed38 Mon Sep 17 00:00:00 2001
From: luo <2855143437@qq.com>
Date: 星期五, 08 十二月 2023 09:08:25 +0800
Subject: [PATCH] 12.8

---
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java |  168 +++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 143 insertions(+), 25 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 a5d177c..87ef518 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
@@ -9,9 +9,14 @@
 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;
@@ -27,6 +32,7 @@
 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;
 
@@ -49,6 +55,8 @@
     private ICollectionHouseResourceService collectionHouseResourceService;
     @Resource
     private MongoTemplate mongoTemplate;
+    @Autowired
+    private IHousingDemandService housingDemandService;
 
 
 
@@ -65,27 +73,37 @@
         if(req.getType() == 1){
             fillSearchHistory(req);
         }
-
         //区域
-        List<Integer> districtIds = null;
-        List<Integer> cityIds = null;
-        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()));
+        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));
                 }
-                cityIds.add(cityId);
-                districtIds.add(districtId);
             }
         }
+//        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;
@@ -128,7 +146,8 @@
         AppUser appUser = appUserService.getAppUser();
         if(null != appUser){
             //获取历史搜索数据
-            SearchHistoryCondition searchHistoryCondition = searchHistoryConditionService.selectOne(new EntityWrapper<SearchHistoryCondition>().eq("app_user_id", appUser.getId()));
+            SearchHistoryCondition searchHistoryCondition = searchHistoryConditionService
+                    .selectOne(new EntityWrapper<SearchHistoryCondition>().eq("app_user_id", appUser.getId()));
             if(null == searchHistoryCondition){
                 //没有历史记录,将现有记录添加进去
                 searchHistoryCondition = new SearchHistoryCondition();
@@ -144,11 +163,11 @@
                 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());
+//                    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());
@@ -190,7 +209,7 @@
         houseResourceInfoRes.setSaleAmount(houseResource.getSaleAmount());
         houseResourceInfoRes.setHouseModel(houseResource.getHouseModel());
         houseResourceInfoRes.setRentalDuration(houseResource.getRentalDuration());
-        houseResourceInfoRes.setSaleDate(sdf.format(houseResource.getSaleDate()));
+        houseResourceInfoRes.setSaleDate(houseResource.getStartTime());
         houseResourceInfoRes.setHousePhoto(houseResource.getHousePhoto());
         HouseType houseType = houseTypeService.selectById(houseResource.getHouseTypeId());
         houseResourceInfoRes.setHouseType(houseType.getName());
@@ -211,7 +230,9 @@
         houseResourceInfoRes.setNickname(appUser1.getNickname());
         houseResourceInfoRes.setUserType(appUser1.getUserType());
         houseResourceInfoRes.setInsertTime(sdf.format(houseResource.getInsertTime()));
-        houseResourceInfoRes.setUpdateTime(sdf.format(houseResource.getUpdateTime()));
+        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);
@@ -252,6 +273,7 @@
         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<>();
         //遍历解析出返回数据
@@ -276,7 +298,11 @@
             searchHouseResourceListRes.setKeepPet(resource.getKeepPet());
             list.add(searchHouseResourceListRes);
         }
+            return list;
+        }
+        List<SearchHouseResourceListRes> list = new ArrayList<>();
         return list;
+
     }
 
 
@@ -295,6 +321,98 @@
         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