user_controller.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  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 compilationMap = {};
  30. let filter = request.query;
  31. try {
  32. //获取编办列表
  33. let compilationModel = new CompilationModel();
  34. compilationList = await compilationModel.getCompilationList({_id: 1, name: 1, is_release: 1});
  35. compilationString = JSON.stringify(compilationList);
  36. compilationMap = _.keyBy(compilationList,'_id');//4.17后的版本没有indexBy方法,改成了keyBy
  37. let condition = userModel.getFilterCondition(request);
  38. //设置搜索普通用户:
  39. condition.user_type = 'normal';
  40. //获取注册时间
  41. let regtime = request.query.regtime;
  42. if(regtime !== '' && regtime !== undefined){
  43. filter.regtimeMsg = userModel.getDayMsg(regtime);
  44. }
  45. //获取注册时间
  46. let loginTime = request.query.loginTime;
  47. if(loginTime !== '' && loginTime !== undefined){
  48. filter.loginMsg = userModel.getDayMsg(loginTime);
  49. }
  50. // 获取用户总数
  51. total = await userModel.count(condition);
  52. // 分页数据
  53. let page = request.query.page === undefined ? 1 : request.query.page;
  54. pageData = {
  55. current: page,
  56. total: Math.ceil(total / Config.pageSize),
  57. queryData: response.locals.urlQuery
  58. };
  59. console.log("取用户信息=========================");
  60. console.log(condition);
  61. // 获取用户列表
  62. userList = await userModel.getList(condition, page, Config.pageSize);
  63. console.log(userList)
  64. } catch (error) {
  65. console.log(error);
  66. }
  67. // 渲染数据
  68. let renderData = {
  69. compilationList:compilationList,
  70. compilationString:compilationString,
  71. compilationMap:compilationMap,
  72. adminName:request.session.managerData?request.session.managerData.real_name:'',
  73. userList: userList,
  74. pages: pageData,
  75. total: total,
  76. filter: filter,
  77. model: userModel,
  78. layout: 'users/views/layout/layout',
  79. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  80. };
  81. response.render('users/views/user/index', renderData);
  82. }
  83. async testUsers(request,response){
  84. let userModel = new UserModel();
  85. let total = 0;
  86. let pageData = {};
  87. let userList = [];
  88. let compilationList =[];
  89. let compilationString ='';
  90. let compilationMap = {};
  91. let filter = request.query;
  92. try {
  93. //获取编办列表
  94. let compilationModel = new CompilationModel();
  95. compilationList = await compilationModel.getCompilationList({_id: 1, name: 1, is_release: 1});
  96. compilationString = JSON.stringify(compilationList);
  97. compilationMap = _.keyBy(compilationList,'_id');
  98. let condition = userModel.getFilterCondition(request);
  99. //设置搜索普通用户:
  100. condition.user_type = 'normal';
  101. //获取注册时间
  102. let regtime = request.query.regtime;
  103. if(regtime !== '' && regtime !== undefined){
  104. filter.regtimeMsg = userModel.getDayMsg(regtime);
  105. }
  106. //获取注册时间
  107. let loginTime = request.query.loginTime;
  108. if(loginTime !== '' && loginTime !== undefined){
  109. filter.loginMsg = userModel.getDayMsg(loginTime);
  110. }
  111. // 获取用户总数
  112. total = await userModel.count(condition);
  113. // 分页数据
  114. let page = request.query.page === undefined ? 1 : request.query.page;
  115. pageData = {
  116. current: page,
  117. total: Math.ceil(total / Config.pageSize),
  118. queryData: response.locals.urlQuery
  119. };
  120. // 获取用户列表
  121. userList = await userModel.getList(condition, page, Config.pageSize);
  122. } catch (error) {
  123. console.log(error);
  124. }
  125. // 渲染数据
  126. let renderData = {
  127. compilationList:compilationList,
  128. compilationString:compilationString,
  129. compilationMap:compilationMap,
  130. adminName:request.session.managerData?request.session.managerData.real_name:'',
  131. userList: userList,
  132. pages: pageData,
  133. total: total,
  134. filter: filter,
  135. model: userModel,
  136. layout: 'users/views/layout/layout',
  137. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  138. };
  139. response.render('users/views/user/test_user', renderData);
  140. }
  141. /**
  142. * 获取搜索用户json
  143. *
  144. * @param {object} request
  145. * @param {object} response
  146. * @return {string}
  147. */
  148. async search(request, response) {
  149. let userModel = new UserModel();
  150. let responseData = {
  151. error: 0,
  152. msg: '',
  153. data: null
  154. };
  155. try{
  156. let keyword = request.query.keyword;
  157. if(keyword === undefined || keyword === '') {
  158. throw { code: 1, err: '参数有误或为空'};
  159. }
  160. let condition = userModel.getFilterCondition(request);
  161. let userList = await userModel.getList(condition);
  162. responseData.data = userList;
  163. } catch (error) {
  164. console.log(error);
  165. responseData.error = error.code;
  166. responseData.msg = error.err;
  167. }
  168. response.json(responseData);
  169. }
  170. async findByID(request, response) {
  171. let params = JSON.parse(request.body.data),
  172. userIds = params.ID;
  173. let userModel = new UserModel();
  174. let responseData = {
  175. error: 0,
  176. msg: '',
  177. data: null
  178. };
  179. try{
  180. if(userIds === undefined || userIds === '') {
  181. throw { code: 1, err: '参数有误或为空'};
  182. }
  183. let user = await userModel.getByID({ _id: userIds});
  184. responseData.data = user;
  185. } catch (error) {
  186. console.log(error);
  187. responseData.error = error.code;
  188. responseData.msg = error.err;
  189. }
  190. response.json(responseData);
  191. }
  192. async updateUser(request, response) {
  193. let data = JSON.parse(request.body.data);
  194. let userModel = new UserModel();
  195. let responseData = {
  196. error: 0,
  197. msg: '',
  198. data: null
  199. };
  200. try{
  201. if(data.ID === undefined || data.ID === '') {
  202. throw { code: 1, err: '参数有误或为空'};
  203. }
  204. let user = await userModel.updateById(data.ID,data.updateData);
  205. responseData.data = user;
  206. } catch (error) {
  207. console.log(error);
  208. responseData.error = error.code;
  209. responseData.msg = error.err;
  210. }
  211. response.json(responseData);
  212. }
  213. /**
  214. * 根据用户id列表获取用户信息列表 json
  215. *
  216. * @param {object} request
  217. * @param {object} response
  218. * @return {string}
  219. */
  220. async getUserList(request, response) {
  221. let params = JSON.parse(request.body.params),
  222. userIds = params.userIds;
  223. let userModel = new UserModel();
  224. let responseData = {
  225. error: 0,
  226. msg: '',
  227. data: null
  228. };
  229. try{
  230. if(userIds === undefined || userIds === '') {
  231. throw { code: 1, err: '参数有误或为空'};
  232. }
  233. let condition = {
  234. _id: {$in:userIds}
  235. };
  236. let userList = await userModel.getList(condition);
  237. responseData.data = userList;
  238. } catch (error) {
  239. console.log(error);
  240. responseData.error = error.code;
  241. responseData.msg = error.err;
  242. }
  243. response.json(responseData);
  244. }
  245. }
  246. export default UserController;