user_controller.js 8.6 KB

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