user_controller.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /**
  2. * 用户相关控制器
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/6/13
  6. * @version
  7. */
  8. import UserModel from "../models/user_model";
  9. import BaseController from "../../common/base/base_controller";
  10. import LogType from "../../common/const/log_type_const";
  11. import LogModel from "../models/log_model";
  12. import SettingModel from "../models/setting_model";
  13. import SettingType from "../../common/const/setting_type_const";
  14. class UserController extends BaseController {
  15. /**
  16. * 用户信息页面
  17. *
  18. * @param {object} request
  19. * @param {object} response
  20. * @return {void}
  21. */
  22. async info(request, response) {
  23. // 获取当前用户数据
  24. let sessionUser = request.session.sessionUser;
  25. let userModel = new UserModel();
  26. let userData = await userModel.findDataByName(sessionUser.username);
  27. userData = userData.length <= 0 ? [] : userData[0];
  28. let renderData = {
  29. userData: userData,
  30. provinceList: userModel.province,
  31. companyTypeList: userModel.companyType,
  32. companyScaleList: userModel.companyScale
  33. };
  34. response.render('users/html/user-info', renderData);
  35. }
  36. /**
  37. * 保存个人数据
  38. *
  39. * @param {object} request
  40. * @param {object} response
  41. * @return
  42. */
  43. async saveData(request, response) {
  44. try {
  45. let updateData = {
  46. real_name: request.body.real_name,
  47. province: request.body.province,
  48. company: request.body.company,
  49. company_type: request.body.company_type,
  50. company_scale: request.body.company_scale,
  51. area: request.body.area
  52. };
  53. let sessionUser = request.session.sessionUser;
  54. // 切换验证场景
  55. let userModel = new UserModel();
  56. let condition = {email: sessionUser.email};
  57. userModel.setScene('saveInfo');
  58. let result = await userModel.updateUser(condition, updateData);
  59. if (result.ok !== 1) {
  60. throw '用户数据保存失败';
  61. }
  62. } catch (error) {
  63. return response.redirect(request.headers.referer);
  64. }
  65. response.redirect('/pm');
  66. }
  67. /**
  68. * 账号安全页面
  69. *
  70. * @param {object} request
  71. * @param {object} response
  72. * @return {void}
  73. */
  74. async safe(request, response) {
  75. let userData = [];
  76. let logList = [];
  77. let pageData = {};
  78. try {
  79. // 获取当前用户信息
  80. let sessionUser = request.session.sessionUser;
  81. let userModel = new UserModel();
  82. userData = await userModel.findDataByName(sessionUser.username);
  83. userData = userData.length <= 0 ? [] : userData[0];
  84. let page = request.query.page === undefined ? 1 : request.query.page;
  85. // 获取登录信息
  86. let logModel = new LogModel();
  87. let logCount = await logModel.count();
  88. let pageSize = 3;
  89. logList = await logModel.getLog(sessionUser.id, LogType.LOGIN_LOG, page, pageSize);
  90. // 分页数据
  91. pageData = {
  92. current: page,
  93. total: parseInt(logCount / pageSize),
  94. queryData: response.locals.urlQuery
  95. };
  96. } catch (error) {
  97. console.log(error);
  98. }
  99. let renderData = {
  100. userData: userData,
  101. logList: logList,
  102. pages: pageData
  103. };
  104. response.render('users/html/user-safe', renderData);
  105. }
  106. /**
  107. * 偏好设置页面
  108. *
  109. * @param {object} request
  110. * @param {object} response
  111. * @return {void}
  112. */
  113. async preferences(request, response) {
  114. let sessionUserData = request.session.sessionUser;
  115. let preferenceSetting = {};
  116. try {
  117. // 获取配置信息
  118. let settingModel = new SettingModel();
  119. preferenceSetting = await settingModel.getSetting(sessionUserData.id, SettingType.PREFERENCE);
  120. } catch(error) {
  121. console.log(error);
  122. }
  123. let renderData = {
  124. preferenceSetting: preferenceSetting
  125. };
  126. response.render('users/html/user-set', renderData);
  127. }
  128. }
  129. export default UserController;