44323
2024-01-17 cef87e5c90c5551df2f98047e113530d79270e9f
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java
@@ -23,6 +23,8 @@
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.apache.http.entity.ContentType;
import org.dom4j.Document;
import org.dom4j.Element;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -32,7 +34,6 @@
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.CriteriaDefinition;
import org.springframework.data.mongodb.core.query.Query;
@@ -85,54 +86,12 @@
    private RestTemplate restTemplate;
    @Autowired
    private IUserService userService;
    @Autowired
    private OSSService ossService;
    @Value("${wx.appletsAppid}")
    private String wxAppletsAppid;
    @Value("${wx.appletsAppSecret}")
    private String wxAppletsAppSecret;
    /**
     * 生成小程序码地址
     */
    public static final String CREATE_CODE_URL = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN";
    // 生成小程序码
    public String generateMiniProgramCode(String outputFilePath) throws IOException {
        // 获取access_token
        String accessToken = wxAppletTools.getAccessToken();
        // 替换CREATE_CODE_URL
        String uri = CREATE_CODE_URL.replace("ACCESS_TOKEN", accessToken);
        // 跳转到的小程序页面路径
        String pagePath = "pages/index/index";
        URL url = new URL(uri);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        // 设置请求方法
        connection.setRequestMethod("POST");
        connection.setDoOutput(true);
        // 构建请求参数
        String params = "path=" + URLEncoder.encode(pagePath, "UTF-8");
        // 获取输出流
        try (OutputStream outputStream = connection.getOutputStream()) {
            outputStream.write(params.getBytes());
        }
        // 获取输入流
        try (InputStream inputStream = connection.getInputStream();
             FileOutputStream outputStream = new FileOutputStream(outputFilePath)) {
            // 将返回的图片数据写入文件
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(buffer);
            MultipartFile file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), byteArrayInputStream);
            return ossService.uploadFile(file);
        }
    }
    /**
     * 获取房源列表
     * @param req
@@ -410,7 +369,9 @@
        List<Integer> ids = pointLocations.stream().map(PointLocation::getHouseId).collect(Collectors.toList());
        if (ids.size()!= 0){
        List<HouseResource> houseResources = this.selectBatchIds(ids);
            List<HouseResource> collect = houseResources.stream().filter(t -> !t.getId().equals(id) && t.getAuthStatus() == 2 && t.getType() == 2
            List<HouseResource> collect = houseResources.stream()
                    .filter(t -> !t.getId().equals(id)
                            && t.getAuthStatus() == 2 && t.getType() == 2
                    && t.getStatus() == 1 && t.getIsDelete() == 0 && t.getDataType() == houseResource.getDataType())
                    .collect(Collectors.toList());
            List<SearchHouseResourceListRes> list = new ArrayList<>();
@@ -420,13 +381,17 @@
            searchHouseResourceListRes.setId(resource.getId());
            AppUser appUser = appUserService.selectById(resource.getAppUserId());
            searchHouseResourceListRes.setHouseResource(appUser.getUserType());
            searchHouseResourceListRes.setImgUrl(resource.getHousePhoto().split(",")[0]);
            if(StringUtils.hasLength(resource.getHousePhoto())){
                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());
            if (region!=null && region1!=null){
                searchHouseResourceListRes.setAddress(region1.getName() + " > " + region.getName() + "/" + houseResource.getHouseAddress());
            }
            searchHouseResourceListRes.setSaleAmount(resource.getSaleAmount().doubleValue());
            searchHouseResourceListRes.setElevator(resource.getElevator());
            searchHouseResourceListRes.setDryingArea(resource.getDryingArea());
@@ -469,9 +434,9 @@
    }
    @Override
    public ResultUtil addHouse(AddHouseReq req) {
//        Integer appUserId = appUserService.getAppUser().getId();
        Integer appUserId = appUserService.getAppUser().getId();
        AppUser appUser = appUserService.selectOne(new EntityWrapper<AppUser>()
                .eq("id", 40)
                .eq("id", appUserId)
                .eq("status", 1));
        if (appUser!=null){
            if (req.getId()==null){
@@ -483,7 +448,7 @@
                if (appUser.getAuth()!=2){
                    // 未认证 只能能发布三条房源信息
                    List<HouseResource> houseResources = this.selectList(new EntityWrapper<HouseResource>()
                            .eq("app_user_id", 40)
                            .eq("app_user_id", appUserId)
                            .eq("is_delete", 0)
                            .eq("type", 2)
                    );
@@ -497,10 +462,15 @@
            houseResource.setPlatform(req.getPlatform());
            BeanUtils.copyProperties(req,houseResource);
            houseResource.setType(req.getType());
            if (StringUtils.hasLength(req.getHousePhoto())){
                houseResource.setHousePhoto(req.getHousePhoto());
            }else{
                houseResource.setHousePhoto("");
            }
            houseResource.setInsertTime(new Date());
            houseResource.setGoodHouse(0);
            houseResource.setIsDelete(0);
            houseResource.setInsertUserId(40);
            houseResource.setInsertUserId(appUserId);
            houseResource.setViewsNumber(0);
            houseResource.setUpdateTime(new Date());
            // todo 修改回审核和上下架状态
@@ -508,7 +478,7 @@
            houseResource.setDataType(req.getDataType());
            houseResource.setAuthStatus(1);
            houseResource.setLeaseTime(req.getTime());
            houseResource.setAppUserId(40);
            houseResource.setAppUserId(appUserId);
            houseResource.setFirmHouse(req.getFirmHouse());
            if (StringUtils.hasLength(req.getTime())){
                if (req.getTime().contains("年")){
@@ -519,14 +489,18 @@
            }
            if (req.getType()==2){
                if (req.getId()==null){
                    houseResource.setAuthStatus(2);
                    this.baseMapper.insert(houseResource);
                }else{
                    houseResource.setAuthStatus(2);
                    this.baseMapper.updateById(houseResource);
                }
            }else{
                if (req.getId()==null){
                    houseResource.setAuthStatus(2);
                    this.baseMapper.insert(houseResource);
                }else{
                    houseResource.setAuthStatus(2);
                    this.baseMapper.updateById(houseResource);
                }
            }
@@ -537,6 +511,7 @@
                pointLocation.setHouseId(houseResource.getId());
                mongoTemplate.insert(pointLocation);
                houseResource.setCode(pointLocation.getId());
                houseResource.setAuthStatus(2);
                this.baseMapper.updateById(houseResource);
                InputStream inputStream = null;
                OutputStream outputStream = null;
@@ -606,6 +581,7 @@
                    pointLocation.setHouseId(req.getId());
                    mongoTemplate.insert(pointLocation);
                    houseResource1.setCode(pointLocation.getId());
                    houseResource1.setAuthStatus(2);
                    this.baseMapper.updateById(houseResource1);
                }
                Query query = Query.query(Criteria.where("_id").is(houseResource1.getCode()));