Commit 1a02346c authored by 方斌's avatar 方斌
parents 2420c25e 3ee78c5c
Pipeline #7182 passed with stage
in 6 seconds
...@@ -73,6 +73,8 @@ class Export20190425 extends Controller { ...@@ -73,6 +73,8 @@ class Export20190425 extends Controller {
}; };
let mysqlData = await ctx.realestateModel.NewHouse.findAll(filter); let mysqlData = await ctx.realestateModel.NewHouse.findAll(filter);
let ret = []; let ret = [];
let reterr = [];
let errorId = [];
if (mysqlData.length > 0) { if (mysqlData.length > 0) {
for (let i in mysqlData) { for (let i in mysqlData) {
let data = { let data = {
...@@ -91,7 +93,7 @@ class Export20190425 extends Controller { ...@@ -91,7 +93,7 @@ class Export20190425 extends Controller {
decorationType: mysqlData[i].decoration_type || 0, decorationType: mysqlData[i].decoration_type || 0,
description: mysqlData[i].description || '', description: mysqlData[i].description || '',
openDate: mysqlData[i].open_date, openDate: mysqlData[i].open_date,
dueDate: mysqlData[i].due_date, dueDate: (mysqlData[i].due_date === undefined || mysqlData[i].due_date === 'Invalid date') ? null : mysqlData[i].due_date,
landArea: mysqlData[i].land_area, landArea: mysqlData[i].land_area,
houseArea: mysqlData[i].house_area, houseArea: mysqlData[i].house_area,
areaRatio: mysqlData[i].area_ratio, areaRatio: mysqlData[i].area_ratio,
...@@ -100,18 +102,24 @@ class Export20190425 extends Controller { ...@@ -100,18 +102,24 @@ class Export20190425 extends Controller {
planParks: mysqlData[i].plan_parks, planParks: mysqlData[i].plan_parks,
planNearBy: mysqlData[i].plan_near_by, planNearBy: mysqlData[i].plan_near_by,
preSalePermit: mysqlData[i].pre_sale_permit, preSalePermit: mysqlData[i].pre_sale_permit,
preSalePermitDate: mysqlData[i].pre_sale_permit_date === '暂无信息' ? '1970-01-01' : mysqlData[i].pre_sale_permit_date, preSalePermitDate: (mysqlData[i].pre_sale_permit_date === '暂无信息' || mysqlData[i].pre_sale_permit_date === '-') ? null : mysqlData[i].pre_sale_permit_date,
buildingNumbers: mysqlData[i].building_numbers, buildingNumbers: mysqlData[i].building_numbers,
cornerMarker: mysqlData[i].corner,
orderNum: mysqlData[i].order_num, orderNum: mysqlData[i].order_num,
state: mysqlData[i].state, state: mysqlData[i].state,
remark: mysqlData[i].remark || '', remark: mysqlData[i].remark || '',
} }
ctx.logger.info(JSON.stringify(data)); // ctx.logger.info(JSON.stringify(data));
let temp = await ctx.helper.send_request(this.config.HOUSE_SERVICE_API +'/v1/newhouse/', data, { method: 'POST' }); let temp = await ctx.helper.send_request(this.config.HOUSE_SERVICE_API + '/v1/newhouse/', data, { method: 'POST' });
ret.push(temp); if (temp.status === 201) {
ret.push(temp);
} else {
errorId.push(mysqlData[i].id);
reterr.push(temp);
}
} }
} }
ctx.success(ret.length); ctx.success({ retL: ret.length, fl: mysqlData.length, errorId: errorId, error: reterr });
} }
...@@ -141,11 +149,11 @@ class Export20190425 extends Controller { ...@@ -141,11 +149,11 @@ class Export20190425 extends Controller {
remark: mysqlData[i].remark || '', remark: mysqlData[i].remark || '',
} }
ctx.logger.info(JSON.stringify(data)); ctx.logger.info(JSON.stringify(data));
let temp = await await ctx.helper.send_request(this.config.HOUSE_SERVICE_API +'/v1/newhousetype/', data, { method: 'POST' }); let temp = await await ctx.helper.send_request(this.config.HOUSE_SERVICE_API + '/v1/newhousetype/', data, { method: 'POST' });
ret.push(temp); ret.push(temp);
} }
} }
ctx.success(ret.length ); ctx.success(ret.length);
} }
} }
......
...@@ -8,6 +8,9 @@ class RentalHouseController extends Controller { ...@@ -8,6 +8,9 @@ class RentalHouseController extends Controller {
async home() { async home() {
const { ctx } = this; const { ctx } = this;
const input_params = ctx.query;
const city_code = input_params.city_code ? input_params.city_code : 330100;
//banners //banners
const app_user_id = ctx.appUserId; const app_user_id = ctx.appUserId;
const user_id = ctx.userId; const user_id = ctx.userId;
...@@ -24,12 +27,12 @@ class RentalHouseController extends Controller { ...@@ -24,12 +27,12 @@ class RentalHouseController extends Controller {
cookie: ctx.request.headers.cookie cookie: ctx.request.headers.cookie
} }
// house_h5_rental_home_banners // house_h5_rental_home_banners
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}); 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 = []; let banners = [];
if (banners_result.status === 200) { if (banners_result.status === 200) {
banners = banners_result.data.results; banners = banners_result.data.results;
} }
const developers = await ctx.service.house.option.getDevelopers();//品牌信息 const developers = await ctx.service.house.option.getDevelopers(city_code);//品牌信息
ctx.success({ banners, developers }); ctx.success({ banners, developers });
} }
...@@ -49,7 +52,7 @@ class RentalHouseController extends Controller { ...@@ -49,7 +52,7 @@ class RentalHouseController extends Controller {
}; };
ctx.validate(rule, input_params); ctx.validate(rule, input_params);
const ret = await ctx.service.house.rentalHouse.getRentalHousesByFilter(input_params); const ret = await ctx.service.house.rentalHouse.getRentalHousesByFilter(input_params);
ctx.success({input_params, results: ret.results, count: ret.count }); ctx.success({ input_params, results: ret.results, count: ret.count });
} }
//租房详情 //租房详情
......
...@@ -59,6 +59,67 @@ const USER_AGENT = [ ...@@ -59,6 +59,67 @@ const USER_AGENT = [
]; ];
class ToolController extends Controller { class ToolController extends Controller {
async getMapHouses() {
const { ctx } = this;
const input_parmas = ctx.query;
const rule = {
house_style: { type: 'string', required: true },
keyword: { type: 'string', required: true },
// page: { type: 'string', required: false },
}
ctx.validate(rule, input_parmas);
const house_style = input_parmas.house_style;
const keyword = input_parmas.keyword;
const page = input_parmas.page;
const where = { where: { name: { $like: `%${keyword}%` } } };
let results = [];
let map_houses_results;
if (house_style === 'used_house') {
map_houses_results = await ctx.blockModel.HousePriceMap3.all(where);
const map_houses = map_houses_results;
for (let i in map_houses) {
const item = map_houses[i];
if (('price' in item) && !item.price) {
continue;
}
results.push({
id: item.id,
name: item.name,
longitude: item.longitude,
latitude: item.latitude,
price: item.price,
unit: item.unit || '元/平',
level: 3,
});
}
} else if (house_style === 'new_house') {
map_houses_results = await ctx.blockModel.HouseNewHousePriceMap2.all(where);
const map_houses = map_houses_results;
for (let i in map_houses) {
const item = map_houses[i];
if (('price' in item) && !item.price) {
continue;
}
if (('count' in item) && !item.count) {
continue;
}
results.push({
id: item.id,
name: item.name,
longitude: item.longitude,
latitude: item.latitude,
price: item.price,
count: item.count,
unit: item.unit || '个楼盘',
level: 2,
});
}
}
ctx.success({ results });
}
//获取地图上的点位 //获取地图上的点位
async getMapPoint() { async getMapPoint() {
const { ctx } = this; const { ctx } = this;
......
...@@ -52,6 +52,10 @@ module.exports = app => { ...@@ -52,6 +52,10 @@ module.exports = app => {
type: STRING, type: STRING,
allowNull: true allowNull: true
}, },
corner: {
type: STRING,
allowNull: true
},
discount: { discount: {
type: DECIMAL, type: DECIMAL,
allowNull: true allowNull: true
......
...@@ -9,6 +9,7 @@ module.exports = app => { ...@@ -9,6 +9,7 @@ module.exports = app => {
router.get('/tool/:type/:area_code', 'house.tool.getHousePriceFeature');//房价指数 房价涨跌 购房资格、贷款额度问答 router.get('/tool/:type/:area_code', 'house.tool.getHousePriceFeature');//房价指数 房价涨跌 购房资格、贷款额度问答
router.post('/tool/calculate_price', 'house.tool.calculateHousePrice');//房产估价 router.post('/tool/calculate_price', 'house.tool.calculateHousePrice');//房产估价
router.get('/tool/qfang_area_list', 'house.tool.getQFangAreaList');//房产估价模糊匹配到的小区列表 router.get('/tool/qfang_area_list', 'house.tool.getQFangAreaList');//房产估价模糊匹配到的小区列表
router.get('/tool/map_houses', 'house.tool.getMapHouses');//房产估价模糊匹配到的小区列表
//租房 //租房
router.get('/rental_house/home', 'house.rentalHouse.home');//租房首页信息 router.get('/rental_house/home', 'house.rentalHouse.home');//租房首页信息
......
...@@ -198,7 +198,7 @@ class CollectionService extends Service { ...@@ -198,7 +198,7 @@ class CollectionService extends Service {
tags: retList[j].tags ? eval(retList[j].tags) : [], tags: retList[j].tags ? eval(retList[j].tags) : [],
image: retList[j].image, image: retList[j].image,
area: type === 1 ? retList[j].houseArea : '', area: type === 1 ? retList[j].houseArea : '',
price: type === 1 ? retList[j].referenceAvgPrice : retList[j].price, price: type === 1 ? (retList[j].referenceAvgPrice === '' || retList[j].referenceAvgPrice === 0 ? '--' : retList[j].referenceAvgPrice) : retList[j].price,
type: type === 1 ? 'new_house' : 'rental_house', type: type === 1 ? 'new_house' : 'rental_house',
corner: type === 1 ? retList[j].cornerMarker : '', corner: type === 1 ? retList[j].cornerMarker : '',
}; };
......
...@@ -167,14 +167,14 @@ class NewHouseService extends Service { ...@@ -167,14 +167,14 @@ class NewHouseService extends Service {
description: data.description,//描述 description: data.description,//描述
tags: data.tags ? eval(data.tags) : [],//项目特色 tags: data.tags ? eval(data.tags) : [],//项目特色
favourable_info: data.favourableInfo,//优惠 favourable_info: data.favourableInfo,//优惠
reference_avg_price: data.referenceAvgPrice,//均价 reference_avg_price: data.referenceAvgPrice === 0 ? '--' : data.referenceAvgPrice,//均价
reference_total_price: data.referenceTotalPrice,//总价 reference_total_price: data.referenceTotalPrice === 0 ? '--' : data.referenceTotalPrice,//总价
property_type: houseType[data.houseType] || '',//物业类型 property_type: houseType[data.houseType] || '',//物业类型
} }
ret.info = { ret.info = {
open_date: data.openDate,//开盘时间 open_date: data.openDate,//开盘时间
due_date: data.dueDate,//交房时间 due_date: (data.dueDate === '0000-00-00 00:00:00' || data.dueDate === '') ? '--' : data.dueDate,//交房时间
house_area: area,//建筑面积 house_area: area,//建筑面积
decoration: decorationType[data.decorationType] || '',//装修情况,1 毛坯,2简装,3精装 decoration: decorationType[data.decorationType] || '',//装修情况,1 毛坯,2简装,3精装
green_ratio: data.greenRatio,//绿化 green_ratio: data.greenRatio,//绿化
...@@ -185,7 +185,7 @@ class NewHouseService extends Service { ...@@ -185,7 +185,7 @@ class NewHouseService extends Service {
} }
ret.detail = { ret.detail = {
basic: { basic: {
reference_avg_price: data.referenceAvgPrice,//均价 reference_avg_price: data.referenceAvgPrice === 0 ? '--' : data.referenceAvgPrice,//均价
tags: data.tags ? eval(data.tags) : [],//项目特色 tags: data.tags ? eval(data.tags) : [],//项目特色
property_type: houseType[data.houseType] || '',//物业类型 property_type: houseType[data.houseType] || '',//物业类型
property_right_years: data.residential.propertyRightYears,//产权年限 property_right_years: data.residential.propertyRightYears,//产权年限
...@@ -198,7 +198,7 @@ class NewHouseService extends Service { ...@@ -198,7 +198,7 @@ class NewHouseService extends Service {
sale_address: data.saleAddress,//售楼地址 sale_address: data.saleAddress,//售楼地址
developer: developer,//开发商 developer: developer,//开发商
open_date: data.openDate,//开盘时间 open_date: data.openDate,//开盘时间
due_date: data.dueDate,//交房时间 due_date: (data.dueDate === '0000-00-00 00:00:00' || data.dueDate === '') ? '--' : data.dueDate,//交房时间
}, },
residential: { residential: {
land_area: data.residential.landArea,//占地面积 land_area: data.residential.landArea,//占地面积
...@@ -297,7 +297,7 @@ class NewHouseService extends Service { ...@@ -297,7 +297,7 @@ class NewHouseService extends Service {
area: data.area,//面积 area: data.area,//面积
orientation: data.orientation,//朝向 orientation: data.orientation,//朝向
num: data.num,//房源数量 num: data.num,//房源数量
price: data.price,//价格 price: data.price === 0 ? '--' : data.price,//价格
discount: data.discount,//折扣 discount: data.discount,//折扣
tag: data.tags ? eval(data.tags) : [],//特点 tag: data.tags ? eval(data.tags) : [],//特点
} }
...@@ -468,7 +468,7 @@ class NewHouseService extends Service { ...@@ -468,7 +468,7 @@ class NewHouseService extends Service {
address: newHouseList.results[i].address, address: newHouseList.results[i].address,
tags: newHouseList.results[i].tags ? eval(newHouseList.results[i].tags) : [], tags: newHouseList.results[i].tags ? eval(newHouseList.results[i].tags) : [],
image: newHouseList.results[i].image, image: newHouseList.results[i].image,
price: newHouseList.results[i].referenceAvgPrice, price: newHouseList.results[i].referenceAvgPrice === 0 ? '--' : newHouseList.results[i].referenceAvgPrice,
corner: newHouseList.results[i].cornerMarker, corner: newHouseList.results[i].cornerMarker,
}; };
list.push(tmp); list.push(tmp);
......
...@@ -68,7 +68,7 @@ class OptionService extends Service { ...@@ -68,7 +68,7 @@ class OptionService extends Service {
//获取筛选项 //获取筛选项
async getOptions(city_code) { async getOptions(city_code) {
const brands = await this.getDevelopers(); const brands = await this.getDevelopers(city_code);
const house_types = HOUSE_TYPE; const house_types = HOUSE_TYPE;
const prices = PRICE_RANGE; const prices = PRICE_RANGE;
const areas = await this.getAreaOptions(city_code); const areas = await this.getAreaOptions(city_code);
...@@ -107,20 +107,31 @@ class OptionService extends Service { ...@@ -107,20 +107,31 @@ class OptionService extends Service {
} }
//获取开发商列表 //获取开发商列表
async getDevelopers() { async getDevelopers(city_code) {
const { ctx } = this; const { ctx } = this;
const developers_results = await ctx.service.houseCommon.developer.all({}); const developers_results = await ctx.service.houseCommon.developer.all({});
const developers = developers_results.results; const developers = developers_results.results;
const ret = []; const ret = [];
city_code = city_code ? parseInt(city_code) : 330100;
for (let i in developers) { for (let i in developers) {
const developer = developers[i]; const developer = developers[i];
ret.push({ if (city_code === 330100 && developer.id === 2) {
id: developer.id, ret.push({
name: developer.name, id: developer.id,
image: developer.logo, name: developer.name,
value: developer.id, image: developer.logo,
}); value: developer.id,
});
}
if (city_code === 500000 && developer.id === 1) {
ret.push({
id: developer.id,
name: developer.name,
image: developer.logo,
value: developer.id,
});
}
} }
return ret; return ret;
......
...@@ -125,7 +125,7 @@ class OrderService extends Service { ...@@ -125,7 +125,7 @@ class OrderService extends Service {
tags: retList[j].tags ? eval(retList[j].tags) : [], tags: retList[j].tags ? eval(retList[j].tags) : [],
image: retList[j].image, image: retList[j].image,
area: type === 1 ? retList[j].houseArea : '', area: type === 1 ? retList[j].houseArea : '',
price: type === 1 ? retList[j].referenceAvgPrice : retList[j].price, price: type === 1 ? (retList[j].referenceAvgPrice === '' || retList[j].referenceAvgPrice === 0 ? '--' : retList[j].referenceAvgPrice) : retList[j].price,
time: moment().format('YYYY-MM-DD') === moment(orderList.results[j].orderAt).format('YYYY-MM-DD') ? '今天' : moment(orderList.results[j].orderAt).format('YYYY-MM-DD'), time: moment().format('YYYY-MM-DD') === moment(orderList.results[j].orderAt).format('YYYY-MM-DD') ? '今天' : moment(orderList.results[j].orderAt).format('YYYY-MM-DD'),
type: type === 1 ? 'new_house' : 'rental_house', type: type === 1 ? 'new_house' : 'rental_house',
corner: type === 1 ? retList[j].cornerMarker : '', corner: type === 1 ? retList[j].cornerMarker : '',
......
...@@ -139,9 +139,9 @@ class RentalHouseService extends Service { ...@@ -139,9 +139,9 @@ class RentalHouseService extends Service {
const city = await ctx.blockModel.City.one({ where: { code: house_basic_result.residential.city } }); const city = await ctx.blockModel.City.one({ where: { code: house_basic_result.residential.city } });
const county = await ctx.blockModel.HouseDistrict.one({ where: { id: house_basic_result.residential.county } }); const county = await ctx.blockModel.HouseDistrict.one({ where: { id: house_basic_result.residential.county } });
const region = await ctx.blockModel.HouseBizcircle.one({ where: { id: house_basic_result.residential.region } }); const region = await ctx.blockModel.HouseBizcircle.one({ where: { id: house_basic_result.residential.region } });
const city_name = city.name ? city.name : ''; const city_name = (city && city.name) ? city.name : '';
const county_name = county.name ? county.name: ''; const county_name = (county && county.name) ? county.name : '';
const region_name = region.name ? region.name : ''; const region_name = (region && region.name) ? region.name : '';
let address = city_name + county_name + region_name + house_basic.address; let address = city_name + county_name + region_name + house_basic.address;
let gps_result = await ctx.helper.getGPS(address, city_name); let gps_result = await ctx.helper.getGPS(address, city_name);
if (!gps_result.lat || !gps_result.lng) { if (!gps_result.lat || !gps_result.lng) {
...@@ -221,7 +221,7 @@ class RentalHouseService extends Service { ...@@ -221,7 +221,7 @@ class RentalHouseService extends Service {
operator: 'equal', operator: 'equal',
} }
], ],
}; };
const house_type_images_results = await ctx.service.houseCommon.houseImage.all(house_type_image_filter); const house_type_images_results = await ctx.service.houseCommon.houseImage.all(house_type_image_filter);
console.info('1111111111111111111111111111111111111111111') console.info('1111111111111111111111111111111111111111111')
......
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