Commit 377e3972 authored by Hsinli's avatar Hsinli

aaa

parent 1ee4eb6c
Pipeline #5840 passed with stage
in 3 seconds
'use strict';
const Controller = require('egg').Controller;
class CollectionController extends Controller {
/**
* 关注
*/
async addCollection() {
const { ctx } = this;
let inputParams = ctx.request.body;
const rule = {
id: {
type: 'integer',
required: true,
},
type: {
type: 'integer',
required: true,
}
};
ctx.validate(rule, inputParams);
let ret = await ctx.service.house.collection.addCollection(inputParams);
ctx.success(ret);
}
/**
* 获取关注列表
*/
async getCollectionList() {
const { ctx } = this;
let ret = await ctx.service.house.collection.getCollectionList();
ctx.success(ret);
}
}
module.exports = CollectionController;
...@@ -34,7 +34,6 @@ class NewHouseController extends Controller { ...@@ -34,7 +34,6 @@ class NewHouseController extends Controller {
const ret = await ctx.service.house.newHouse.getNewHouseType(inputParams.id); const ret = await ctx.service.house.newHouse.getNewHouseType(inputParams.id);
ctx.success(ret); ctx.success(ret);
} }
} }
module.exports = NewHouseController; module.exports = NewHouseController;
'use strict';
const Controller = require('egg').Controller;
class OrderController extends Controller {
/**
* 预约
*/
async addOrder() {
const { ctx } = this;
let inputParams = ctx.request.body;
const rule = {
id: {
type: 'integer',
required: true,
},
type: {
type: 'integer',
required: true,
},
name: {
type: 'string',
required: true,
},
phone: {
type: 'string',
required: true,
},
time: {
type: 'string',
required: true,
},
};
ctx.validate(rule, inputParams);
let ret = await ctx.service.house.order.addOrder(inputParams);
ctx.success(ret);
}
/**
* 获取预约列表
*/
async getOrderList() {
const { ctx } = this;
let ret = await ctx.service.house.order.getOrderList();
ctx.success(ret);
}
}
module.exports = OrderController;
'use strict'; 'use strict';
module.exports = app => { module.exports = app => {
const router = app.router.namespace(app.config.projectRootPath + '/house'); const router = app.router.namespace(app.config.projectRootPath + '/house');
// const loginAuth = app.middleware.loginAuth({type: 'new'});//登录中间件 const loginAuth = app.middleware.loginAuth({ type: 'new' });//登录中间件
router.get('/options/:city_code', 'house.options.getOptions');//筛选项信息 router.get('/options/:city_code', 'house.options.getOptions');//筛选项信息
router.get('/rental_house', 'house.rentalHouse.getRentalHouses');//租房列表 router.get('/rental_house', 'house.rentalHouse.getRentalHouses');//租房列表
router.get('/rental_house/:rental_house_id', 'house.rentalHouse.getRentalHouse');//租房列表 router.get('/rental_house/:rental_house_id', 'house.rentalHouse.getRentalHouse');//租房列表
//新房 //新房
router.get('/new_house/list/:type', 'house.newHouse.getNewHouseList');//列表 router.get('/new_house/list/:type', 'house.newHouse.getNewHouseList');//列表
router.get('/new_house/:id', 'house.newHouse.getNewHouse');//新房具体信息 router.get('/new_house/:id', 'house.newHouse.getNewHouse');//新房具体信息
router.get('/new_house_type/:id', 'house.newHouse.getNewHouseType');//新房具体信息 router.get('/new_house_type/:id', 'house.newHouse.getNewHouseType');//新房户型
//预约
router.post('/order', 'house.order.addOrder');//预约
router.get('/order/list', 'house.order.getOrderList');//预约列表
//收藏
router.post('/collection', 'house.collection.addCollection');//收藏
router.get('/collection/list', 'house.collection.getCollectionList');//收藏列表
}; };
'use strict';
const Service = require('egg').Service;
const moment = require('moment');
class CollectionService extends Service {
/**
* 添加收藏
* @param {object} inputParams
*/
async addCollection(inputParams) {
const { ctx, service } = this;
let data = {
userId: ctx.userId,
appUserId: ctx.appUserId,
houseStyle: inputParams.type,
connectId: inputParams.id,
state: 1,
remark: inputParams.remark || ''
}
let ret = await service.houseCommon.collection.add(data);
return ret;
}
/**
* 获取收藏列表 保留最近6个月的记录,条数不超过50条
* @param {object} condition
*/
async getCollectionList() {
const { ctx, service } = this;
let endDate = moment().subtract(180, 'days').format('YYYY-MM-DD HH:mm:ss');
let filter = {
pageIndex: 1,
pageSize: 50,
queryConditions: [{
key: "state",
value: 1,
operator: "equal"
}, {
key: "userId",
value: '33A54829-1262-40B5-BE36-B57A12DA090B',//TODO
operator: "equal"
},
// {
// key: "createdAt",
// value: endDate,
// operator: "greater"
// },
],
orderConditions: [{
key: 'createdAt',
orderSequence: 'desc',
},],
}
let list = [];
let collectionList = await service.houseCommon.collection.all(filter);
if (collectionList.rowCount > 0) {
//整理所有收藏
let taskList = [];
for (let i in collectionList.results) {
if (collectionList.results[i].houseStyle === 1) {
taskList[i] = service.houseCommon.newHouse.one(collectionList.results[i].connectId);
} else {
taskList[i] = service.houseCommon.rentalHouse.one(collectionList.results[i].connectId);
}
}
let retList = await Promise.all(taskList).then(result => {
return result;
}).catch(error => {
ctx.failed(error);
});
//数据整理
for (let j in retList) {
let type = collectionList.results[j].houseStyle;
let tmp = {
id: retList[j].id,
name: retList[j].name,
address: retList[j].address,
tags: retList[j].tags.split(','),
image: retList[j].image,
area: type === 1 ? retList[j].houseArea : '',
price: type === 1 ? retList[j].referenceAvgPrice : retList[j].price,
type: type,
};
list.push(tmp);
}
}
let ret = {
results: list,
count: list.length
};
return ret;
}
}
module.exports = CollectionService;
...@@ -56,7 +56,9 @@ class NewHouseService extends Service { ...@@ -56,7 +56,9 @@ class NewHouseService extends Service {
*/ */
async getNewHouse(id) { async getNewHouse(id) {
const { ctx, service } = this; const { ctx, service } = this;
//房产基本信息
let newHouseInfo = await service.houseCommon.newHouse.one(id); let newHouseInfo = await service.houseCommon.newHouse.one(id);
//图片
let filter = { let filter = {
pageIndex: 1, pageIndex: 1,
pageSize: 100, pageSize: 100,
...@@ -82,9 +84,46 @@ class NewHouseService extends Service { ...@@ -82,9 +84,46 @@ class NewHouseService extends Service {
images.push(newHouseImages.results[i].path); images.push(newHouseImages.results[i].path);
} }
} }
newHouseInfo.images = images; //户型信息
let newHouseType = await this.getNewHouseType(id);
let ret = {
house_basic: await this.formatNewHouse(newHouseInfo),
house_images: images,
house_types: newHouseType.all.results
}
//TODO对数据格式化处理 //TODO对数据格式化处理
return newHouseInfo; return ret;
}
async formatNewHouse(data) {
let ret = {};
if (Object.keys(data) > 0) {
ret = {
id: data.id,
name: data.name,
residential_id: data.residentialId,
tags: data.tags.split(','),
reference_avg_price: data.referenceAvgPrice,
reference_total_price: data.referenceTotalPrice,
image: data.image,
address: data.address,
discount: data.discount,
description: data.description,
open_date: data.openDate,
open_date: data.openDate,
land_area: data.landArea,
house_area: data.houseArea,
area_ratio: data.areaRatio,
green_ratio: data.greenRatio,
plan_rooms: data.planRooms,
plan_parks: data.planParks,
plan_near_by: data.planNearBy,
pre_sale_permit: data.preSalePermit,
pre_sale_permit_date: data.preSalePermitDate,
building_numbers: data.buildingNumbers
}
}
return ret;
} }
/** /**
...@@ -110,8 +149,10 @@ class NewHouseService extends Service { ...@@ -110,8 +149,10 @@ class NewHouseService extends Service {
let newHouseTypeList = await service.houseCommon.newHouseType.all(filter); let newHouseTypeList = await service.houseCommon.newHouseType.all(filter);
//TODO需要根据几居室区分 //TODO需要根据几居室区分
let ret = { let ret = {
results: newHouseTypeList.results, all: {
count: newHouseTypeList.rowCount results: newHouseTypeList.results,
count: newHouseTypeList.rowCount
}
}; };
return ret; return ret;
} }
...@@ -250,7 +291,7 @@ class NewHouseService extends Service { ...@@ -250,7 +291,7 @@ class NewHouseService extends Service {
id: newHouseList.results[i].id, id: newHouseList.results[i].id,
name: newHouseList.results[i].name, name: newHouseList.results[i].name,
address: newHouseList.results[i].address, address: newHouseList.results[i].address,
tags: newHouseList.results[i].tags, tags: newHouseList.results[i].tags.split(','),
image: newHouseList.results[i].image, image: newHouseList.results[i].image,
}; };
list.push(tmp); list.push(tmp);
......
'use strict';
const Service = require('egg').Service;
const moment = require('moment');
class OrderService extends Service {
/**
* 添加预约信息
* @param {object} inputParams
*/
async addOrder(inputParams) {
const { ctx, service } = this;
let data = {
userId: ctx.userId,
appUserId: ctx.appUserId,
houseStyle: inputParams.type,
connectId: inputParams.id,
name: inputParams.name,
phone: inputParams.phone,
orderAt: inputParams.time,
state: 1,
remark: inputParams.remark || ''
}
let ret = await service.houseCommon.order.add(data);
return ret;
}
/**
* 获取预约列表 保留最近6个月的记录,条数不超过50条
*/
async getOrderList() {
const { ctx, service } = this;
let endDate = moment().subtract(180, 'days').format('YYYY-MM-DD HH:mm:ss');
let filter = {
pageIndex: 1,
pageSize: 50,
queryConditions: [{
key: "state",
value: 1,
operator: "equal"
}, {
key: "userId",
value: '33A54829-1262-40B5-BE36-B57A12DA090B',//TODO
operator: "equal"
},
// {
// key: "createdAt",
// value: endDate,
// operator: "greater"
// },
],
orderConditions: [{
key: 'createdAt',
orderSequence: 'desc',
},],
}
let list = [];
let orderList = await service.houseCommon.order.all(filter);
if (orderList.rowCount > 0) {
//整理所有预约记录
let taskList = [];
for (let i in orderList.results) {
if (orderList.results[i].houseStyle === 1) {
taskList[i] = service.houseCommon.newHouse.one(orderList.results[i].connectId);
} else {
taskList[i] = service.houseCommon.rentalHouse.one(orderList.results[i].connectId);
}
}
let retList = await Promise.all(taskList).then(result => {
return result;
}).catch(error => {
ctx.failed(error);
});
//数据整理
for (let j in retList) {
let type = orderList.results[j].houseStyle;
let tmp = {
id: retList[j].id,
name: retList[j].name,
address: retList[j].address,
tags: retList[j].tags.split(','),
image: retList[j].image,
area: type === 1 ? retList[j].houseArea : '',
price: type === 1 ? 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'),
type: type
};
list.push(tmp);
}
}
let ret = {
results: list,
count: list.length
};
return ret;
}
}
module.exports = OrderService;
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