Commit 76db09d1 authored by 方斌's avatar 方斌
parents a51c67d4 165778da
Pipeline #6139 passed with stage
in 5 seconds
......@@ -16,13 +16,13 @@ class RentalHouseController extends Controller {
const device_login_id = ctx.device_login_id;
const headers = {
app_user_id: app_user_id,
device_id: device_id || 'f8b3b16b-6901-4a8e-95af-607ec7c47aa8',
device_id: device_id || '0ef939ea-9bb7-4d21-b98a-53bdad418ad9',
device_login_id: device_login_id,
token: token,
uid: user_id,
}
// house_h5_rental_home_banners
const banners_result = await ctx.helper.send_request(this.config.NODE_URL + '/51app/api/block/all', { alias: 'cnd_app_discovery_audit_banners' }, { method: 'GET', dataType: 'json', headers: headers });
const banners_result = await ctx.helper.send_request(this.config.NODE_BASE_URL + '/51app/api/block/all', { alias: '51fangc_rental_home_banners' }, { method: 'GET', dataType: 'json', headers: headers });
let banners = [];
if (banners_result.status === 200) {
banners = banners_result.data.results;
......
'use strict';
const cheerio = require('cheerio');
const request = require('request');
const Controller = require('egg').Controller;
const USER_AGENT = [
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36',
......@@ -173,7 +174,7 @@ class ToolController extends Controller {
floor: { type: 'string', required: true },
total_floor: { type: 'string', required: true },
};
ctx.validate(rule, input_params);
// ctx.validate(rule, input_params);
const residential_id = input_params.residential_id;
const residential_name = input_params.residential_name;
const area = input_params.area;
......@@ -181,26 +182,28 @@ class ToolController extends Controller {
const floor = input_params.floor;
const total_floor = input_params.total_floor;
const qfang_url_area = 'https://hangzhou.qfang.com/fangjia/area';
const qfang_url_chaxun = 'https://hangzhou.qfang.com/fangjia/chaxun?userName=&gardenId=&gardenInternalID=1f552c71-2747-4539-aeaa-0fc37a6dcd10&name=%E4%B8%87%E9%83%BD%E6%99%B6%E5%BA%A7&area=12&floor=2&totlaFloor=10&directionStr=SOUTHEAST&buildingId=&building=&roomNoId=&roomNo=&subQueryType=quick';
// const query_string = encodeURIComponent(`userName=&gardenId=&gardenInternalID=${residential_id}&name=${residential_name}&area=${area}&floor=${floor}&totlaFloor=${total_floor}&directionStr=${direction_str}&buildingId=&building=&roomNoId=&roomNo=&subQueryType=quick`);
// const qfang_url_chaxun = 'https://hangzhou.qfang.com/fangjia/chaxun?userName=&gardenId=&gardenInternalID=1f552c71-2747-4539-aeaa-0fc37a6dcd10&name=%E4%B8%87%E9%83%BD%E6%99%B6%E5%BA%A7&area=12&floor=2&totlaFloor=10&directionStr=SOUTHEAST&buildingId=&building=&roomNoId=&roomNo=&subQueryType=quick';
const qfang_url_chaxun = `https://hangzhou.qfang.com/fangjia/chaxun?userName=&gardenId=&gardenInternalID=${residential_id}&name=${encodeURIComponent(residential_name)}&area=${area}&floor=${floor}&totlaFloor=${total_floor}&directionStr=${direction_str}&buildingId=&building=&roomNoId=&roomNo=&subQueryType=quick`;
console.info(qfang_url_chaxun);
const data = {
userName: '',
gardenId: '',
gardenInternalID: 'c1283359-9995-4a52-ae76-ca06135b825c',
name: '中天九溪诚品',
area: 100,
floor: 2,
totlaFloor: 6,
directionStr: 'SOUTHEAST',
buildingId: '',
building: '',
roomNoId: '',
roomNo: '',
subQueryType: 'quick',
}
// const data = {
// userName: '',
// gardenId: '',
// gardenInternalID: 'c1283359-9995-4a52-ae76-ca06135b825c',
// name: '中天九溪诚品',
// area: 100,
// floor: 2,
// totlaFloor: 6,
// directionStr: 'SOUTHEAST',
// buildingId: '',
// building: '',
// roomNoId: '',
// roomNo: '',
// subQueryType: 'quick',
// }
await this.httprequest(qfang_url_chaxun, data);
return;
// await this.httprequest(qfang_url_chaxun, data);
// return;
const ret1 = await ctx.curl(qfang_url_area, { method: 'POST' });
const headers = ret1.headers;
const cookies = headers['set-cookie'];
......@@ -212,52 +215,70 @@ class ToolController extends Controller {
const user_agent_length = USER_AGENT.length;
const random = Math.floor(Math.random() * user_agent_length);
const user_agent = USER_AGENT[random];
console.info(ret1);
const ret2 = await ctx.curl(qfang_url_chaxun, {
headers: {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
'cache-control': 'max-age=0',
'cookie': cookie,
'referer': 'https://hangzhou.qfang.com/fangjia/chaxun?userName=&gardenId=&gardenInternalID=F3365A31BBB6F477E040A8C112002A44&name=%E5%9F%8E%E4%B8%AD%E8%8A%B1%E5%9B%AD&area=100&floor=1&totlaFloor=12&directionStr=NORTHSOUTH&buildingId=&building=&roomNoId=&roomNo=&subQueryType=quick',
'upgrade-insecure-requests': 1,
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
}
const ret2 = await new Promise((resolve, reject) => {
request({
url: qfang_url_chaxun,
jar: request.jar(),
headers: {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
'cache-control': 'max-age=0',
'cookie': cookie,
'referer': qfang_url_chaxun,
'upgrade-insecure-requests': 1,
'user-agent': user_agent,
}
}, function (error, response, body) {
ctx.logger.info('qfang_url_chaxun_result: ' + JSON.stringify(response));
// ctx.logger.info('qfang_url_chaxun_html: ' + body);
if (!error && response.statusCode == 200) {
var resultStr = body.replace(/\ +/g, ""); //去掉空格
resultStr = resultStr.replace(/[ ]/g, ""); //去掉空格
resultStr = resultStr.replace(/[\r\n]/g, ""); //去掉回车换行
resultStr = resultStr.replace(/[\n]/g, ""); //去掉换行
resultStr = resultStr.replace(/[\r]/g, ""); //去掉回车
resolve(body) // 请求成功的处理逻辑
}
});
});
// ctx.success(ret2);
// return ;
ctx.logger.info('qfang_url_chaxun_result: ' + JSON.stringify(ret2));
const html = ret2.data.toString('utf8');
//console.info(html);
if (ret2.status !== 200) {
ctx.failed('估算过程中出了点错,请稍后再试。');
}
// const html = ret2.data.toString('utf8');
const $ = cheerio.load(html);
const average_price = $('p.title-result').text();
// const total_price = $('#targetNum').html();
const total_price = $('span.average-price', '.fl').text();
let average_price = 0;
let average_price_unit = '';
let total_price = 0;
let total_price_unit = '';
if (!average_price || !total_price) {
ctx.failed('估算过程中出了点错,请稍后再试!');
if (ret2 && ret2.length !== 0) {
const $ = cheerio.load(ret2);
average_price_unit = $('p.title-result span').text();
average_price = parseFloat($('.average-price-data p.title-result').text().replace(average_price_unit, ''));
total_price = parseFloat($('#targetNum').text());
total_price_unit = $('span.average-price', '.fl').text().replace(total_price, '');
if (!average_price || !total_price) {
average_price = 0;
average_price_unit = '';
total_price = 0;
total_price_unit = '';
}
}
ctx.success({ average_price, total_price });
ctx.success({ average_price, average_price_unit, total_price, total_price_unit });
}
async httprequest(url, data){
//并无实际用途 只用于调试测试用
async httprequest(url, data) {
const { ctx } = this;
let ret2 = await ctx.curl('https://hangzhou.qfang.com/fangjia/area', { method: 'POST', data: data});
let ret2 = await ctx.curl('https://hangzhou.qfang.com/fangjia/area', { method: 'POST', data: data });
var cookies = ret2.headers['set-cookie'];
var cookie = '';
for(let item in cookies) {
for (let item in cookies) {
let cookie_items = cookies[item].split(';');
cookie += cookie_items[0] + '; ';
}
var request = require('request');
console.log(url)
request({
url: url,
......@@ -273,11 +294,11 @@ class ToolController extends Controller {
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
}
}, function(error, response, body) {
}, function (error, response, body) {
//console.log(error)
console.log(response)
if (!error && response.statusCode == 200) {
var resultStr = body.replace(/\ +/g, ""); //去掉空格
resultStr = resultStr.replace(/[ ]/g, ""); //去掉空格
......@@ -290,7 +311,7 @@ class ToolController extends Controller {
}
});
};
async getQFangAreaList() {
......
......@@ -84,7 +84,7 @@ module.exports = () => {
deviceLoginId = typeof (ctx.request.header.device_login_id) !== 'undefined' ? ctx.request.header.device_login_id : undefined;
}
// if((deviceId == undefined || !deviceId || deviceId.length === 0) && input_params.device_id != undefined){
// if ((deviceId == undefined || !deviceId || deviceId.length === 0) && input_params.device_id != undefined) {
// deviceId = input_params.device_id;
// }
// 校验
......@@ -96,7 +96,7 @@ module.exports = () => {
device_login_id: deviceLoginId,
};
const result = await ctx.helper.send_request(ctx.app.config.NODE_URL + '/user_api/v1/user/auth', params, {
const result = await ctx.helper.send_request(ctx.app.config.NODE_URL + '/user/auth', params, {
method: 'POST',
});
// ctx.logger.info('appUserId: ' + appUserId);
......@@ -104,10 +104,10 @@ module.exports = () => {
ctx.logger.info('user_auth_params: ' + JSON.stringify(params));
ctx.logger.info('user_auth_result: ' + JSON.stringify(result));
console.log(result);
// if (result.status !== 201) {
// ctx.failed('无效用户');
// return;
// }
if (result.status !== 201) {
ctx.failed('无效用户');
return;
}
// const data = result.data.data;
let data = result.data.data;
......
......@@ -99,6 +99,7 @@ class FootPrintService extends Service {
foot_print_records.push({
id: foot_print.id,
house_id: house.id,
name: house.name,
time: time,
type: type,
......
......@@ -34,11 +34,18 @@ class OrderService extends Service {
operator: "equal"
},
],
orderConditions: [],
orderConditions: [{
key: 'createdAt',
orderSequence: 'desc',
}],
}
let orderHistory = await service.houseCommon.order.all(filter);
if (orderHistory.rowCount > 0) {
ctx.failed('已经预约过');
let ret = {
id: orderHistory.results[0].id,
msg: '已经预约过',
};
return ret;
}
let data = {
userId: ctx.userId,
......@@ -52,7 +59,7 @@ class OrderService extends Service {
remark: inputParams.remark || ''
};
let ret = await service.houseCommon.order.add(data);
return { id: ret.id };
return { id: ret.id, msg: '预约成功' };
}
/**
......
......@@ -82,8 +82,9 @@ class RentalHouseService extends Service {
value: 1,
operator: "equal"
});
const pageSize = condition.page_size || 30;
const filter = {
pageSize: 30,
pageSize: pageSize,
queryConditions: queryConditions,
orderConditions: [{
key: 'price',
......
......@@ -55,6 +55,7 @@ module.exports = appInfo => {
config.CDN_BASE_URL = 'https://r.51gjj.com/image/';
config.NODE_URL = process.env.NODE_URL;
config.NODE_BASE_URL = process.env.NODE_BASE_URL;
config.PHP_URL = process.env.PHP_URL;
config.HOUSE_SERVICE_API = process.env.HOUSE_SERVICE_API; // 房产
......
......@@ -24,6 +24,7 @@
"node-cache": "^4.2.0",
"parameter": "^3.3.1",
"ramda": "^0.25.0",
"request": "^2.88.0",
"uuid": "^3.3.2"
},
"devDependencies": {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment