user.status.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * 用户状态模型。此处状态是指用户移动应用App状态,如用户是否已登录,App是否已打开。
  3. *
  4. * 用户状态区分患者与医生。**当前**仅是与医生相关,若需要增加患者相关内容,
  5. * 需要增加在用户判断。
  6. *
  7. * author: Sand
  8. * since: 2016.11.20
  9. */
  10. "use strict";
  11. let BaseModel = require('./base.model');
  12. let doctorRepo = require('../repository/doctor.repo');
  13. let modelUtil = require("../util/modelUtil.js");
  14. let Token = require('./auth/token');
  15. class UserStatus extends BaseModel {
  16. constructor() {
  17. super();
  18. }
  19. /**
  20. * 登录。
  21. */
  22. login(userId, token, clientId, platform) {
  23. let self = this;
  24. doctorRepo.deleteToken(token, function (err, result) {
  25. if (err) {
  26. modelUtil.emitDbError(self.eventEmitter, 'Error occurs when user login and delete token', err);
  27. } else {
  28. doctorRepo.login(userId, token, clientId, platform,
  29. function (err, result) {
  30. if (err) {
  31. modelUtil.emitDbError(self.eventEmitter, 'Error occurs when user login and delete token', err);
  32. }
  33. let token = new Token(userId, clientId, platform);
  34. modelUtil.emitData(self.eventEmitter, {token: token.value});
  35. });
  36. }
  37. });
  38. }
  39. /**
  40. * 退出。
  41. */
  42. logout(userId) {
  43. let self = this;
  44. doctorRepo.logout(userId,
  45. function (err, result) {
  46. if (err) {
  47. modelUtil.emitDbError(self.eventEmitter, 'Logout failed', err);
  48. return;
  49. }
  50. modelUtil.emitData(self.eventEmitter, {});
  51. });
  52. }
  53. /**
  54. * 更新用户状态。
  55. */
  56. updateStatus(userId, status) {
  57. let self = this;
  58. doctorRepo.updateStatus(userId, status,
  59. function (err, result) {
  60. if (err) {
  61. modelUtil.emitDbError(self.eventEmitter, 'Update user status failed', err);
  62. return;
  63. }
  64. modelUtil.emitData(self.eventEmitter, {});
  65. });
  66. }
  67. }
  68. module.exports = UserStatus;