|  | @@ -11,6 +11,7 @@
 | 
	
		
			
				|  |  |  import CLDModel from "../models/cld_model";
 | 
	
		
			
				|  |  |  import UserModel from "../models/user_model"
 | 
	
		
			
				|  |  |  import CompilationModel from "../models/compilation_model";
 | 
	
		
			
				|  |  | +let online_facade = require('../facade/online_facade')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class CLDController {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -62,10 +63,12 @@ class CLDController {
 | 
	
		
			
				|  |  |              if (userData === null || userData === '') {
 | 
	
		
			
				|  |  |                  throw '不存在该建筑用户';
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            let userList = [userData];
 | 
	
		
			
				|  |  | +            await online_facade.setOnlineTimes(userList, {});
 | 
	
		
			
				|  |  |              userData = JSON.parse(JSON.stringify(userData));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            userData.company_scale = userData.company_scale === null || userData.company_scale === undefined ? '' : userModel.companyScale[userData.company_scale] + '人';
 | 
	
		
			
				|  |  | -            userData.company_type = userData.company_type === null || userData.company_type === undefined ? '' : userModel.companyType[userData.company_type];
 | 
	
		
			
				|  |  | +            userData.company_scale = userData.company_scale === null || userData.company_scale === undefined || userData.company_scale === -1 ? '' : userModel.companyScale[userData.company_scale] + '人';
 | 
	
		
			
				|  |  | +            userData.company_type = userData.company_type === null || userData.company_type === undefined || userData.company_type === -1 ? '' : userModel.companyType[userData.company_type];
 | 
	
		
			
				|  |  |              userData.province = userModel.province[userData.province];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              let date = new Date(userData.create_time);
 | 
	
	
		
			
				|  | @@ -161,6 +164,143 @@ class CLDController {
 | 
	
		
			
				|  |  |          const compilationList = await compilationModel.getList();
 | 
	
		
			
				|  |  |          response.json({error: 0, msg: 'success', data: compilationList});
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 获取个人和已使用编办信息
 | 
	
		
			
				|  |  | +     * @param request
 | 
	
		
			
				|  |  | +     * @param response
 | 
	
		
			
				|  |  | +     * @returns {Promise<void>}
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    async getUsersInfo(request, response) {
 | 
	
		
			
				|  |  | +        let ssoID = request.query.ssoID;
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            //获取用户信息
 | 
	
		
			
				|  |  | +            if (ssoID === undefined) {
 | 
	
		
			
				|  |  | +                throw '传参有误';
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            let userModel = new UserModel();
 | 
	
		
			
				|  |  | +            let userData = await userModel.findDataBySsoId(ssoID);
 | 
	
		
			
				|  |  | +            if (userData === null || userData === '') {
 | 
	
		
			
				|  |  | +                throw '不存在该建筑用户';
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            userData = JSON.parse(JSON.stringify(userData));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            userData.company_scale = userData.company_scale === null || userData.company_scale === undefined ? '' : userModel.companyScale[userData.company_scale] + '人';
 | 
	
		
			
				|  |  | +            userData.company_type = userData.company_type === null || userData.company_type === undefined ? '' : userModel.companyType[userData.company_type];
 | 
	
		
			
				|  |  | +            userData.province = userModel.province[userData.province];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            let date = new Date(userData.create_time);
 | 
	
		
			
				|  |  | +            userData.create_time = date.getFullYear() + '年' +
 | 
	
		
			
				|  |  | +                (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '月' +
 | 
	
		
			
				|  |  | +                (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '日';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //获取编办列表
 | 
	
		
			
				|  |  | +            let compilationModel = new CompilationModel();
 | 
	
		
			
				|  |  | +            let compilationList = JSON.parse(JSON.stringify(await compilationModel.getList()));
 | 
	
		
			
				|  |  | +            if (userData.upgrade_list !== undefined) {
 | 
	
		
			
				|  |  | +                let userUpgradeList = userData.upgrade_list;
 | 
	
		
			
				|  |  | +                for (let i in userUpgradeList) {
 | 
	
		
			
				|  |  | +                    let oneCompilationIndex = await compilationList.findIndex(function (item) {
 | 
	
		
			
				|  |  | +                        return item._id === userUpgradeList[i].compilationID;
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +                    if (oneCompilationIndex !== -1) {
 | 
	
		
			
				|  |  | +                        // compilationList[oneCompilationIndex].isUpgrade = userUpgradeList[i].isUpgrade;
 | 
	
		
			
				|  |  | +                        userData.upgrade_list[i].name = compilationList[oneCompilationIndex].name;
 | 
	
		
			
				|  |  | +                        userData.upgrade_list[i].description = compilationList[oneCompilationIndex].description;
 | 
	
		
			
				|  |  | +                        userData.upgrade_list[i].categoryID = compilationList[oneCompilationIndex].categoryID;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            response.json({error: 0, msg: 'success', data: { userInfo: userData }});
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  | +            response.json({error: 1, msg: err});
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 获取用户列表分页
 | 
	
		
			
				|  |  | +     * @param request
 | 
	
		
			
				|  |  | +     * @param response
 | 
	
		
			
				|  |  | +     * @returns {Promise<void>}
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    async getUserList(request, response) {
 | 
	
		
			
				|  |  | +        let userModel = new UserModel();
 | 
	
		
			
				|  |  | +        let total = 0;
 | 
	
		
			
				|  |  | +        let pageSize = 12;
 | 
	
		
			
				|  |  | +        let pageData = {};
 | 
	
		
			
				|  |  | +        let userList = [];
 | 
	
		
			
				|  |  | +        let compilationList =[];
 | 
	
		
			
				|  |  | +        let filter = request.query;
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            //获取编办列表
 | 
	
		
			
				|  |  | +            let  compilationModel = new CompilationModel();
 | 
	
		
			
				|  |  | +            compilationList = await compilationModel.getCompilationList({_id: 1, name: 1, is_release: 1});
 | 
	
		
			
				|  |  | +            let condition = userModel.getFilterCondition(request);
 | 
	
		
			
				|  |  | +            //设置搜索普通用户:
 | 
	
		
			
				|  |  | +            condition.user_type = 'normal';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //获取注册时间
 | 
	
		
			
				|  |  | +            let regtime = request.query.regtime;
 | 
	
		
			
				|  |  | +            if(regtime !== '' && regtime !== undefined){
 | 
	
		
			
				|  |  | +                filter.regtimeMsg = userModel.getDayMsg(regtime);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //获取注册时间
 | 
	
		
			
				|  |  | +            let loginTime = request.query.loginTime;
 | 
	
		
			
				|  |  | +            if(loginTime !== '' && loginTime !== undefined){
 | 
	
		
			
				|  |  | +                filter.loginMsg = userModel.getDayMsg(loginTime);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 排序方式
 | 
	
		
			
				|  |  | +            let sortType = request.query.sortType !== '' && request.query.sortType !== undefined ? request.query.sortType : -1;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 排序条件
 | 
	
		
			
				|  |  | +            let sortField = request.query.sortField;
 | 
	
		
			
				|  |  | +            let sort = sortField !== '' && sortField !== undefined && sortField === 'latest_login' ? {latest_login: sortType}: {_id: sortType};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 获取用户总数
 | 
	
		
			
				|  |  | +            total = await userModel.count(condition);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 分页数据
 | 
	
		
			
				|  |  | +            let page = request.query.page === undefined ? 1 : request.query.page;
 | 
	
		
			
				|  |  | +            pageSize = request.query.pageSize === undefined ? 12 : parseInt(request.query.pageSize);
 | 
	
		
			
				|  |  | +            pageData = {
 | 
	
		
			
				|  |  | +                current: page,
 | 
	
		
			
				|  |  | +                total: total,
 | 
	
		
			
				|  |  | +                queryData: response.locals.urlQuery
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            // console.log("取用户信息=========================");
 | 
	
		
			
				|  |  | +            // console.log(condition);
 | 
	
		
			
				|  |  | +            // 获取用户列表
 | 
	
		
			
				|  |  | +            userList = await userModel.getList(condition, page, pageSize, sort);
 | 
	
		
			
				|  |  | +            await online_facade.setOnlineTimes(userList,condition);
 | 
	
		
			
				|  |  | +            response.json({error: 0, msg: 'success', data: {
 | 
	
		
			
				|  |  | +                    userInfo: userList,
 | 
	
		
			
				|  |  | +                    pageData: pageData,
 | 
	
		
			
				|  |  | +                    compilationList:compilationList,
 | 
	
		
			
				|  |  | +                }});
 | 
	
		
			
				|  |  | +        } catch (error) {
 | 
	
		
			
				|  |  | +            response.json({error: 1, msg: error});
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    async getUserOnlineInfo(request, response){
 | 
	
		
			
				|  |  | +        let filter = JSON.parse(request.body.data);
 | 
	
		
			
				|  |  | +        let responseData = {
 | 
	
		
			
				|  |  | +            error: 0,
 | 
	
		
			
				|  |  | +            msg: '',
 | 
	
		
			
				|  |  | +            data: null
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        try{
 | 
	
		
			
				|  |  | +            let info = await online_facade.getOnlineInfo(filter);
 | 
	
		
			
				|  |  | +            responseData.data = info;
 | 
	
		
			
				|  |  | +        } catch (error) {
 | 
	
		
			
				|  |  | +            console.log(error);
 | 
	
		
			
				|  |  | +            responseData.error = error.code;
 | 
	
		
			
				|  |  | +            responseData.msg = error.err;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        response.json(responseData);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default CLDController;
 |