You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							142 lines
						
					
					
						
							4.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							142 lines
						
					
					
						
							4.8 KiB
						
					
					
				| 'use strict'; | |
| 
 | |
| function getPersonAge(opts) { | |
|     return async function (ctx, next) { | |
| 
 | |
|         const models = ctx.fs.dc.models; | |
|         let errMsg = { message: '获取租户年龄分布失败' } | |
|         try { | |
|             let age17 = 0, age18 = 0, age29 = 0, age41 = 0, age66 = 0, age85 = 0 | |
|             // 17岁以下 18-28岁 29-40岁 41-65岁  66-85岁 85岁以上 | |
|             age17 = await models.AffordableHousing.count({ where: { houseStatus: false, personAge: { $lte: 17 } } }); | |
|             age18 = await models.AffordableHousing.count({ where: { houseStatus: false, personAge: { $between: [18, 28] } } }); | |
|             age29 = await models.AffordableHousing.count({ where: { houseStatus: false, personAge: { $between: [29, 40] } } }); | |
|             age41 = await models.AffordableHousing.count({ where: { houseStatus: false, personAge: { $between: [41, 65] } } }); | |
|             age66 = await models.AffordableHousing.count({ where: { houseStatus: false, personAge: { $between: [66, 85] } } }); | |
|             age85 = await models.AffordableHousing.count({ where: { houseStatus: false, personAge: { $gte: 86 } } }); | |
| 
 | |
|             ctx.status = 200; | |
|             ctx.body = { | |
|                 age17, age18, age29, age41, age66, age85 | |
|             }; | |
|         } catch (error) { | |
|             ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); | |
|             ctx.status = 400; | |
|             ctx.body = errMsg | |
|         } | |
|     } | |
| } | |
| 
 | |
| function getHomePerson(opts) { | |
|     return async function (ctx, next) { | |
|         const models = ctx.fs.dc.models; | |
|         let errMsg = { message: '获取租户家庭人口统计失败' } | |
|         try { | |
|             const home = await models.AffordableHousing.count({ | |
|                 attributes: [ | |
|                     'house_id', // 分组的字段 | |
|                 ], | |
|                 group: ['house_id'], // 分组的字段 | |
|                 where: { | |
|                     houseStatus: false | |
|                 } | |
|             }); | |
| 
 | |
|             ctx.status = 200; | |
|             ctx.body = { | |
|                 home | |
|             }; | |
|         } catch (error) { | |
|             ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); | |
|             ctx.status = 400; | |
|             ctx.body = errMsg | |
|         } | |
|     } | |
| } | |
| 
 | |
| function getHomeInfo(opts) { | |
|     return async function (ctx, next) { | |
|         const models = ctx.fs.dc.models; | |
|         let errMsg = { message: '获取社区房屋统计信息' } | |
|         try { | |
| 
 | |
|             let communitys = await models.AffordableHousing.findAll({ | |
|                 attributes: [ | |
|                     'houseCommunity', // 分组的字段 | |
|                 ], | |
|                 group: ['houseCommunity'], // 分组的字段 | |
|                 where: { | |
|                     houseStatus: false | |
|                 } | |
|             }); | |
| 
 | |
|             let communityInUse = [] | |
|             for (let i = 0; i < communitys.length; i++) { | |
|                 let arr = await models.AffordableHousing.findAll({ | |
|                     attributes: [ | |
|                         'house_id', // 分组的字段 | |
|                     ], | |
|                     group: ['house_id'], // 分组的字段 | |
|                     where: { | |
|                         houseStatus: false,  | |
|                         houseCommunity: communitys[i].houseCommunity | |
|                     } | |
|                 }) | |
|                 communityInUse.push({ | |
|                     "houseCommunity": communitys[i].houseCommunity, | |
|                     "count": arr.length | |
|                 }) | |
|             } | |
| 
 | |
|             //安社区分类-社区空置套数 | |
|             let communityUnUse = await models.AffordableHousing.count({ | |
|                 attributes: [ | |
|                     'houseCommunity', // 分组的字段 | |
|                 ], | |
|                 group: ['houseCommunity'], // 分组的字段 | |
|                 where: { | |
|                     houseStatus: true | |
|                 } | |
|             }); | |
| 
 | |
|             //租赁套数 | |
|             let inuse = 0; | |
|             let useHomes = await models.AffordableHousing.count({ | |
|                 attributes: [ | |
|                     'house_id', // 分组的字段 | |
|                 ], | |
|                 group: ['house_id'], // 分组的字段 | |
|                 where: { | |
|                     houseStatus: false | |
|                 } | |
|             }); | |
|             inuse = useHomes.length; | |
| 
 | |
|             //空置套数 | |
|             const unuse = await models.AffordableHousing.count({ | |
|                 where: { | |
|                     houseStatus: true | |
|                 } | |
|             }); | |
| 
 | |
|             ctx.status = 200; | |
|             ctx.body = { | |
|                 inuse: inuse, //租赁中套数 | |
|                 unuse: unuse, //空置套数 | |
|                 communityInUse, | |
|                 communityUnUse | |
|             }; | |
|         } catch (error) { | |
|             ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); | |
|             ctx.status = 400; | |
|             ctx.body = errMsg | |
|         } | |
|     } | |
| } | |
| 
 | |
| module.exports = { | |
|     getPersonAge, | |
|     getHomePerson, | |
|     getHomeInfo | |
| } | |
| 
 | |
| 
 |