user_controller.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. /**
  2. * 用户管理控制器
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/6/7
  6. * @version
  7. */
  8. import BaseController from "../../common/base/base_controller";
  9. import UserModel from "../models/user_model";
  10. import Config from "../../../config/config";
  11. import CompilationModel from "../models/compilation_model";
  12. let config = require("../../../config/config.js");
  13. let _ = require("lodash");
  14. class UserController extends BaseController {
  15. /**
  16. * 最近注册列表(最近登录前台用户列表)
  17. *
  18. * @param {object} request
  19. * @param {object} response
  20. * @return {void}
  21. */
  22. async normalUsers(request, response) {//取普通用户
  23. let userModel = new UserModel();
  24. let total = 0;
  25. let pageData = {};
  26. let userList = [];
  27. let compilationList =[];
  28. let compilationString ='';
  29. let filter = request.query;
  30. try {
  31. //获取编办列表
  32. let compilationModel = new CompilationModel();
  33. compilationList = await compilationModel.getCompilationList({_id: 1, name: 1, is_release: 1});
  34. compilationString = JSON.stringify(compilationList);
  35. compilationList = JSON.parse(compilationString);//去除mongoose 格式
  36. let condition = userModel.getFilterCondition(request);
  37. //获取注册时间
  38. let regtime = request.query.regtime;
  39. if(regtime !== '' && regtime !== undefined){
  40. filter.regtimeMsg = userModel.getDayMsg(regtime);
  41. }
  42. // 已升级费用定额
  43. let upGrade = request.query.upGrade;
  44. if(upGrade !== '' && upGrade !== undefined){
  45. let com = _.find(compilationList,{'_id':upGrade});
  46. if(com) filter.upgradeCompilation = com.name;
  47. }
  48. // 获取用户总数
  49. total = await userModel.count(condition);
  50. // 分页数据
  51. let page = request.query.page === undefined ? 1 : request.query.page;
  52. pageData = {
  53. current: page,
  54. total: Math.ceil(total / Config.pageSize),
  55. queryData: response.locals.urlQuery
  56. };
  57. // 获取用户列表
  58. userList = await userModel.getList(condition, page, Config.pageSize);
  59. } catch (error) {
  60. console.log(error);
  61. }
  62. // 渲染数据
  63. let renderData = {
  64. compilationList:compilationList,
  65. compilationString:compilationString,
  66. adminName:request.session.managerData?request.session.managerData.real_name:'',
  67. userList: userList,
  68. pages: pageData,
  69. total: total,
  70. filter: filter,
  71. model: userModel,
  72. layout: 'users/views/layout/layout',
  73. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  74. };
  75. response.render('users/views/user/index', renderData);
  76. }
  77. /**
  78. * 获取搜索用户json
  79. *
  80. * @param {object} request
  81. * @param {object} response
  82. * @return {string}
  83. */
  84. async search(request, response) {
  85. let userModel = new UserModel();
  86. let responseData = {
  87. error: 0,
  88. msg: '',
  89. data: null
  90. };
  91. try{
  92. let keyword = request.query.keyword;
  93. if(keyword === undefined || keyword === '') {
  94. throw { code: 1, err: '参数有误或为空'};
  95. }
  96. let condition = userModel.getFilterCondition(request);
  97. let userList = await userModel.getList(condition);
  98. responseData.data = userList;
  99. } catch (error) {
  100. console.log(error);
  101. responseData.error = error.code;
  102. responseData.msg = error.err;
  103. }
  104. response.json(responseData);
  105. }
  106. async findByID(request, response) {
  107. let params = JSON.parse(request.body.data),
  108. userIds = params.ID;
  109. let userModel = new UserModel();
  110. let responseData = {
  111. error: 0,
  112. msg: '',
  113. data: null
  114. };
  115. try{
  116. if(userIds === undefined || userIds === '') {
  117. throw { code: 1, err: '参数有误或为空'};
  118. }
  119. let user = await userModel.getByID({ _id: userIds});
  120. responseData.data = user;
  121. } catch (error) {
  122. console.log(error);
  123. responseData.error = error.code;
  124. responseData.msg = error.err;
  125. }
  126. response.json(responseData);
  127. }
  128. async updateUser(request, response) {
  129. let data = JSON.parse(request.body.data);
  130. let userModel = new UserModel();
  131. let responseData = {
  132. error: 0,
  133. msg: '',
  134. data: null
  135. };
  136. try{
  137. if(data.ID === undefined || data.ID === '') {
  138. throw { code: 1, err: '参数有误或为空'};
  139. }
  140. let user = await userModel.updateById(data.ID,data.updateData);
  141. responseData.data = user;
  142. } catch (error) {
  143. console.log(error);
  144. responseData.error = error.code;
  145. responseData.msg = error.err;
  146. }
  147. response.json(responseData);
  148. }
  149. /**
  150. * 根据用户id列表获取用户信息列表 json
  151. *
  152. * @param {object} request
  153. * @param {object} response
  154. * @return {string}
  155. */
  156. async getUserList(request, response) {
  157. let params = JSON.parse(request.body.params),
  158. userIds = params.userIds;
  159. let userModel = new UserModel();
  160. let responseData = {
  161. error: 0,
  162. msg: '',
  163. data: null
  164. };
  165. try{
  166. if(userIds === undefined || userIds === '') {
  167. throw { code: 1, err: '参数有误或为空'};
  168. }
  169. let condition = {
  170. _id: {$in:userIds}
  171. };
  172. let userList = await userModel.getList(condition);
  173. responseData.data = userList;
  174. } catch (error) {
  175. console.log(error);
  176. responseData.error = error.code;
  177. responseData.msg = error.err;
  178. }
  179. response.json(responseData);
  180. }
  181. }
  182. export default UserController;