cld_controller.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. 'use strict';
  2. /**
  3. * CLD接口相关控制器
  4. *
  5. * @author EllisRan.
  6. * @date 2018/9/25
  7. * @version
  8. */
  9. import CLDModel from "../models/cld_model";
  10. import UserModel from "../models/user_model"
  11. import CompilationModel from "../models/compilation_model";
  12. let online_facade = require('../facade/online_facade')
  13. class CLDController {
  14. /**
  15. * 获取cld办事处人员信息
  16. *
  17. * @param request
  18. * @param reponse
  19. * @return {Promise.<void>}
  20. */
  21. async getCategoryStaff(request, response) {
  22. const zongBuCategoryID = 12;
  23. let category = request.query.category;
  24. if (!category || category == -1) {
  25. category = request.session.sessionCompilation && request.session.sessionCompilation.categoryID ? request.session.sessionCompilation.categoryID : zongBuCategoryID;
  26. console.log(category);
  27. }
  28. try {
  29. let cldModel = new CLDModel();
  30. let result = await cldModel.getCategoryStaff(category);
  31. response.json({error: 0, msg: 'success', data: JSON.parse(result)});
  32. } catch (err) {
  33. response.json({error: 1, msg: err});
  34. }
  35. }
  36. /**
  37. * cld 获取建筑用户和编办接口
  38. *
  39. * @param request
  40. * @param response
  41. * @return {Promise.<void>}
  42. */
  43. async getUsersAndCompilationList(request, response) {
  44. let mobile = request.query.mobile;
  45. let ssoID = request.query.ssoID;
  46. try {
  47. //获取用户信息
  48. if (mobile === undefined && ssoID === undefined) {
  49. throw '传参有误';
  50. }
  51. let userModel = new UserModel();
  52. let userData = '';
  53. if (mobile !== undefined) {
  54. userData = await userModel.findDataByMobile(mobile);
  55. } else {
  56. userData = await userModel.findDataBySsoId(ssoID);
  57. }
  58. if (userData === null || userData === '') {
  59. throw '不存在该建筑用户';
  60. }
  61. let userList = [userData];
  62. await online_facade.setOnlineTimes(userList, {});
  63. userData = JSON.parse(JSON.stringify(userData));
  64. userData.company_scale = userData.company_scale === null || userData.company_scale === undefined || userData.company_scale === -1 ? '' : userModel.companyScale[userData.company_scale] + '人';
  65. userData.company_type = userData.company_type === null || userData.company_type === undefined || userData.company_type === -1 ? '' : userModel.companyType[userData.company_type];
  66. userData.province = userModel.province[userData.province];
  67. let date = new Date(userData.create_time);
  68. userData.create_time = date.getFullYear() + '年' +
  69. (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '月' +
  70. (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '日';
  71. //获取编办列表
  72. let compilationModel = new CompilationModel();
  73. let compilationList = JSON.parse(JSON.stringify(await compilationModel.getList()));
  74. if (userData.upgrade_list !== undefined) {
  75. let userUpgradeList = userData.upgrade_list;
  76. for (let i in userUpgradeList) {
  77. let oneCompilationIndex = await compilationList.findIndex(function (item) {
  78. return item._id === userUpgradeList[i].compilationID;
  79. });
  80. if (oneCompilationIndex !== -1) {
  81. compilationList[oneCompilationIndex].isUpgrade = userUpgradeList[i].isUpgrade;
  82. }
  83. }
  84. }
  85. response.json({error: 0, msg: 'success', data: { userInfo: userData, compilationList: compilationList }});
  86. } catch (err) {
  87. response.json({error: 1, msg: err});
  88. }
  89. }
  90. /**
  91. * 设置用户编办专业版
  92. *
  93. * @param request
  94. * @param response
  95. * @return {Promise.<void>}
  96. */
  97. async setUsersUpgrade(request, response) {
  98. let ssoID = request.body.ssoId;
  99. let compilationID = request.body.cid;
  100. try {
  101. let userModel = new UserModel();
  102. let userData = await userModel.findDataBySsoId(ssoID);
  103. let compilationModel = new CompilationModel();
  104. let compilationData = compilationModel.getCompilationById(compilationID);
  105. if (compilationData === null || compilationData === undefined) {
  106. throw '不存在该编办或者编办未发布';
  107. }
  108. let upgrade_list = userData.upgrade_list !== undefined ? JSON.parse(JSON.stringify(userData.upgrade_list)) : [];
  109. let upgradeIndex = upgrade_list.findIndex(function (item) {
  110. return item.compilationID === compilationID
  111. });
  112. let upgradeInfo = {
  113. compilationID:compilationID,//编办ID
  114. upgrade_time:new Date().getTime(),
  115. isUpgrade:true,
  116. remark: ''
  117. };
  118. if (upgradeIndex === -1) {
  119. upgrade_list.push(upgradeInfo);
  120. } else {
  121. upgrade_list.splice(upgradeIndex, 1, upgradeInfo);
  122. }
  123. let condition = {ssoId: ssoID};
  124. let result = await userModel.updateUser(condition, {upgrade_list: upgrade_list});
  125. if (result) {
  126. response.json({error: 0, msg: 'success'});
  127. } else {
  128. throw '更新失败';
  129. }
  130. } catch (err) {
  131. response.json({error: 1, msg: err});
  132. }
  133. }
  134. /**
  135. * 获取编办列表
  136. *
  137. * @param request
  138. * @param response
  139. * @return {Promise.<void>}
  140. */
  141. async getCompilationList (request, response) {
  142. let compilationModel = new CompilationModel();
  143. const compilationList = await compilationModel.getList();
  144. response.json({error: 0, msg: 'success', data: compilationList});
  145. }
  146. /**
  147. * 获取个人和已使用编办信息
  148. * @param request
  149. * @param response
  150. * @returns {Promise<void>}
  151. */
  152. async getUsersInfo(request, response) {
  153. let ssoID = request.query.ssoID;
  154. try {
  155. //获取用户信息
  156. if (ssoID === undefined) {
  157. throw '传参有误';
  158. }
  159. let userModel = new UserModel();
  160. let userData = await userModel.findDataBySsoId(ssoID);
  161. if (userData === null || userData === '') {
  162. throw '不存在该建筑用户';
  163. }
  164. userData = JSON.parse(JSON.stringify(userData));
  165. userData.company_scale = userData.company_scale === null || userData.company_scale === undefined ? '' : userModel.companyScale[userData.company_scale] + '人';
  166. userData.company_type = userData.company_type === null || userData.company_type === undefined ? '' : userModel.companyType[userData.company_type];
  167. userData.province = userModel.province[userData.province];
  168. let date = new Date(userData.create_time);
  169. userData.create_time = date.getFullYear() + '年' +
  170. (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '月' +
  171. (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '日';
  172. //获取编办列表
  173. let compilationModel = new CompilationModel();
  174. let compilationList = JSON.parse(JSON.stringify(await compilationModel.getList()));
  175. if (userData.upgrade_list !== undefined) {
  176. let userUpgradeList = userData.upgrade_list;
  177. for (let i in userUpgradeList) {
  178. let oneCompilationIndex = await compilationList.findIndex(function (item) {
  179. return item._id === userUpgradeList[i].compilationID;
  180. });
  181. if (oneCompilationIndex !== -1) {
  182. // compilationList[oneCompilationIndex].isUpgrade = userUpgradeList[i].isUpgrade;
  183. userData.upgrade_list[i].name = compilationList[oneCompilationIndex].name;
  184. userData.upgrade_list[i].description = compilationList[oneCompilationIndex].description;
  185. userData.upgrade_list[i].categoryID = compilationList[oneCompilationIndex].categoryID;
  186. }
  187. }
  188. }
  189. response.json({error: 0, msg: 'success', data: { userInfo: userData }});
  190. } catch (err) {
  191. response.json({error: 1, msg: err});
  192. }
  193. }
  194. /**
  195. * 获取用户列表分页
  196. * @param request
  197. * @param response
  198. * @returns {Promise<void>}
  199. */
  200. async getUserList(request, response) {
  201. let userModel = new UserModel();
  202. let total = 0;
  203. let pageSize = 12;
  204. let pageData = {};
  205. let userList = [];
  206. let compilationList =[];
  207. let filter = request.query;
  208. try {
  209. //获取编办列表
  210. let compilationModel = new CompilationModel();
  211. compilationList = await compilationModel.getCompilationList({_id: 1, name: 1, is_release: 1});
  212. let condition = userModel.getFilterCondition(request);
  213. //设置搜索普通用户:
  214. condition.user_type = 'normal';
  215. //获取注册时间
  216. let regtime = request.query.regtime;
  217. if(regtime !== '' && regtime !== undefined){
  218. filter.regtimeMsg = userModel.getDayMsg(regtime);
  219. }
  220. //获取注册时间
  221. let loginTime = request.query.loginTime;
  222. if(loginTime !== '' && loginTime !== undefined){
  223. filter.loginMsg = userModel.getDayMsg(loginTime);
  224. }
  225. // 排序方式
  226. let sortType = request.query.sortType !== '' && request.query.sortType !== undefined ? request.query.sortType : -1;
  227. // 排序条件
  228. let sortField = request.query.sortField;
  229. let sort = sortField !== '' && sortField !== undefined && sortField === 'latest_login' ? {latest_login: sortType}: {_id: sortType};
  230. // 获取用户总数
  231. total = await userModel.count(condition);
  232. // 分页数据
  233. let page = request.query.page === undefined ? 1 : request.query.page;
  234. pageSize = request.query.pageSize === undefined ? 12 : parseInt(request.query.pageSize);
  235. pageData = {
  236. current: page,
  237. total: total,
  238. queryData: response.locals.urlQuery
  239. };
  240. // console.log("取用户信息=========================");
  241. // console.log(condition);
  242. // 获取用户列表
  243. userList = await userModel.getList(condition, page, pageSize, sort);
  244. await online_facade.setOnlineTimes(userList,condition);
  245. response.json({error: 0, msg: 'success', data: {
  246. userInfo: userList,
  247. pageData: pageData,
  248. compilationList:compilationList,
  249. }});
  250. } catch (error) {
  251. response.json({error: 1, msg: error});
  252. }
  253. }
  254. async getUserOnlineInfo(request, response){
  255. let filter = JSON.parse(request.body.data);
  256. let responseData = {
  257. error: 0,
  258. msg: '',
  259. data: null
  260. };
  261. try{
  262. let info = await online_facade.getOnlineInfo(filter);
  263. responseData.data = info;
  264. } catch (error) {
  265. console.log(error);
  266. responseData.error = error.code;
  267. responseData.msg = error.err;
  268. }
  269. response.json(responseData);
  270. }
  271. }
  272. export default CLDController;