123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376 |
- 'use strict';
- /**
- * CLD接口相关控制器
- *
- * @author EllisRan.
- * @date 2018/9/25
- * @version
- */
- // const CLDModel = require("../models/cld_model");
- import CLDModel from "../models/cld_model";
- import UserModel from "../models/user_model";
- import CompilationModel from "../models/compilation_model";
- // const UserModel = require("../models/user_model");
- // const CompilationModel = require("../models/compilation_model");
- let online_facade = require('../facade/online_facade')
- const SMS = require('../models/sms');
- class CLDController {
- /**
- * 获取cld办事处人员信息
- *
- * @param request
- * @param reponse
- * @return {Promise.<void>}
- */
- async getCategoryStaff(request, response) {
- const zongBuCategoryID = 12;
- let category = request.query.category;
- if (!category || category == -1) {
- category = request.session.sessionCompilation && request.session.sessionCompilation.categoryID ? request.session.sessionCompilation.categoryID : zongBuCategoryID;
- console.log(category);
- }
- try {
- let cldModel = new CLDModel();
- let result = await cldModel.getCategoryStaff(category);
- response.json({error: 0, msg: 'success', data: JSON.parse(result)});
- } catch (err) {
- response.json({error: 1, msg: err});
- }
- }
- /**
- * cld 获取建筑用户和编办接口
- *
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async getUsersAndCompilationList(request, response) {
- let mobile = request.query.mobile;
- let ssoID = request.query.ssoID;
- try {
- //获取用户信息
- if (mobile === undefined && ssoID === undefined) {
- throw '传参有误';
- }
- let userModel = new UserModel();
- let userData = '';
- if (mobile !== undefined) {
- userData = await userModel.findDataByMobile(mobile);
- } else {
- userData = await userModel.findDataBySsoId(ssoID);
- }
- 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 || 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);
- 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;
- compilationList[oneCompilationIndex].deadline = userUpgradeList[i].deadline;
- compilationList[oneCompilationIndex].lock = userUpgradeList[i].lock;
- }
- }
- }
- response.json({error: 0, msg: 'success', data: { userInfo: userData, compilationList: compilationList }});
- } catch (err) {
- response.json({error: 1, msg: err});
- }
- }
- /**
- * 设置用户编办专业版
- *
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async setUsersUpgrade(request, response) {
- let ssoID = request.body.ssoId;
- let compilationID = request.body.cid;
- let deadline = request.body.deadline || '';
- let status = parseInt(request.body.status); // 1.升级、2.降级、3.续期
- let smssend = parseInt(request.body.smssend) || 0;
- let lock = parseInt(request.body.lock) || 0;// 0.默认、1.借出(借用)、2.销售(购买)、3.赠送(借用)
- try {
- let userModel = new UserModel();
- let userData = await userModel.findDataBySsoId(ssoID);
- let compilationModel = new CompilationModel();
- let compilationData = await compilationModel.getCompilationById(compilationID);
- if (compilationData === null || compilationData === undefined) {
- throw '不存在该编办或者编办未发布';
- }
- let upgrade_list = userData.upgrade_list !== undefined ? JSON.parse(JSON.stringify(userData.upgrade_list)) : [];
- let upgradeIndex = upgrade_list.findIndex(function (item) {
- return item.compilationID === compilationID
- });
- let upgradeInfo = {
- compilationID:compilationID,//编办ID
- upgrade_time:new Date().getTime(),
- isUpgrade: status !== 2,
- remark: '',
- deadline: deadline,
- lock: lock,
- };
- if (upgradeIndex === -1) {
- upgrade_list.push(upgradeInfo);
- } else {
- upgrade_list.splice(upgradeIndex, 1, upgradeInfo);
- }
- let condition = {ssoId: ssoID};
- let result = await userModel.updateUser(condition, {upgrade_list: upgrade_list});
- if (result) {
- // 短信发送
- if (smssend) {
- // 发送短信
- const Sms = new SMS();
- await Sms.sendProductMsg(userData.mobile, status, userData.real_name, compilationData.name, deadline);
- }
- response.json({error: 0, msg: 'success'});
- } else {
- throw '更新失败';
- }
- } catch (err) {
- response.json({error: 1, msg: err});
- }
- }
- /**
- * 获取编办列表
- *
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async getCompilationList (request, response) {
- let compilationModel = new CompilationModel();
- 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()) + '日';
- userData.all_online_times = online_facade.getTimeString(userData.all_online_times).s;
- //获取编办列表
- 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});
- }
- }
- async provinceList(request, response) {
- let userModel = new UserModel();
- let responseData = {
- error: 0,
- msg: '',
- data: userModel.province,
- };
- response.json(responseData);
- }
- /**
- * 获取用户列表分页
- * @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';
- //设置剔除CLD用户列表不显示
- let keyword = request.query.keyword;
- if(keyword === undefined || keyword === '') {
- condition.is_cld = {$in: [null, 0]};
- }
- //获取注册时间
- 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 = {_id: sortType};
- if (sortField !== '' && sortField !== undefined && sortField === 'latest_login') {
- sort = {latest_login: sortType}
- } else if(sortField !== '' && sortField !== undefined && sortField === 'online_times') {
- sort = {online_times: 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);
- userList = JSON.parse(unescape(escape(JSON.stringify(userList))));
- for (const userData of userList) {
- userData.province = userData.province !== -1 ? userModel.province[userData.province] : '';
- }
- 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);
- }
- async getRejectUsers(request, response) {
- let userModel = new UserModel();
- let total = 0;
- let pageSize = 12;
- let pageData = {};
- let userList = [];
- try {
- const condition = {
- user_type: 'normal',
- is_cld: {$exists:true, $ne: 0}
- };
- // 获取用户总数
- 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);
- userList = await userModel.getList(condition, page, pageSize, {is_cld:-1});
- pageData = {
- current: page,
- total: total,
- queryData: response.locals.urlQuery
- };
- response.json({error: 0, msg: 'success', data: { userList: userList, pageData: pageData }});
- } catch (error) {
- response.json({error: 1, msg: error});
- }
- }
- }
- module.exports = CLDController;
|