Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
5
51business
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
方斌
51business
Commits
377e3972
Commit
377e3972
authored
Apr 11, 2019
by
Hsinli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
aaa
parent
1ee4eb6c
Pipeline
#5840
passed with stage
in 3 seconds
Changes
7
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
363 additions
and
14 deletions
+363
-14
collection.js
app/controller/house/collection.js
+38
-0
new_house.js
app/controller/house/new_house.js
+0
-1
order.js
app/controller/house/order.js
+52
-0
house.js
app/router/house.js
+18
-8
collection.js
app/service/house/collection.js
+103
-0
new_house.js
app/service/house/new_house.js
+46
-5
order.js
app/service/house/order.js
+106
-0
No files found.
app/controller/house/collection.js
0 → 100644
View file @
377e3972
'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
;
app/controller/house/new_house.js
View file @
377e3972
...
...
@@ -34,7 +34,6 @@ class NewHouseController extends Controller {
const
ret
=
await
ctx
.
service
.
house
.
newHouse
.
getNewHouseType
(
inputParams
.
id
);
ctx
.
success
(
ret
);
}
}
module
.
exports
=
NewHouseController
;
app/controller/house/order.js
0 → 100644
View file @
377e3972
'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
;
app/router/house.js
View file @
377e3972
'use strict'
;
module
.
exports
=
app
=>
{
const
router
=
app
.
router
.
namespace
(
app
.
config
.
projectRootPath
+
'/house'
);
// const loginAuth = app.middleware.loginAuth({type: 'new'
});//登录中间件
const
router
=
app
.
router
.
namespace
(
app
.
config
.
projectRootPath
+
'/house'
);
const
loginAuth
=
app
.
middleware
.
loginAuth
({
type
:
'new'
});
//登录中间件
router
.
get
(
'/options/:city_code'
,
'house.options.getOptions'
);
//筛选项信息
router
.
get
(
'/rental_house'
,
'house.rentalHouse.getRentalHouses'
);
//租房列表
router
.
get
(
'/rental_house/:rental_house_id'
,
'house.rentalHouse.getRentalHouse'
);
//租房列表
router
.
get
(
'/options/:city_code'
,
'house.options.getOptions'
);
//筛选项信息
router
.
get
(
'/rental_house'
,
'house.rentalHouse.getRentalHouses'
);
//租房列表
router
.
get
(
'/rental_house/:rental_house_id'
,
'house.rentalHouse.getRentalHouse'
);
//租房列表
//新房
router
.
get
(
'/new_house/list/:type'
,
'house.newHouse.getNewHouseList'
);
//列表
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'
);
//收藏列表
};
app/service/house/collection.js
0 → 100644
View file @
377e3972
'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
;
app/service/house/new_house.js
View file @
377e3972
...
...
@@ -56,7 +56,9 @@ class NewHouseService extends Service {
*/
async
getNewHouse
(
id
)
{
const
{
ctx
,
service
}
=
this
;
//房产基本信息
let
newHouseInfo
=
await
service
.
houseCommon
.
newHouse
.
one
(
id
);
//图片
let
filter
=
{
pageIndex
:
1
,
pageSize
:
100
,
...
...
@@ -82,9 +84,46 @@ class NewHouseService extends Service {
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对数据格式化处理
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 {
let
newHouseTypeList
=
await
service
.
houseCommon
.
newHouseType
.
all
(
filter
);
//TODO需要根据几居室区分
let
ret
=
{
results
:
newHouseTypeList
.
results
,
count
:
newHouseTypeList
.
rowCount
all
:
{
results
:
newHouseTypeList
.
results
,
count
:
newHouseTypeList
.
rowCount
}
};
return
ret
;
}
...
...
@@ -250,7 +291,7 @@ class NewHouseService extends Service {
id
:
newHouseList
.
results
[
i
].
id
,
name
:
newHouseList
.
results
[
i
].
name
,
address
:
newHouseList
.
results
[
i
].
address
,
tags
:
newHouseList
.
results
[
i
].
tags
,
tags
:
newHouseList
.
results
[
i
].
tags
.
split
(
','
)
,
image
:
newHouseList
.
results
[
i
].
image
,
};
list
.
push
(
tmp
);
...
...
app/service/house/order.js
0 → 100644
View file @
377e3972
'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
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment