doctor.repo.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**
  2. * 医生模型。医生真实数据存在于家庭医生平台数据库,即医生的ID,姓名,年龄等详细内容。而IM平台的user表只包含用户当前的在线状态,
  3. * 即用户的准实时状态,token等内容,不包含用户具体的详细信息。
  4. */
  5. "use strict";
  6. var log = require('../util/log');
  7. var imRepo = require("./mysql/im.db.js");
  8. var wlyyRepo = require("./mysql/wlyy.db.js");
  9. class DoctorRepo {
  10. constructor() {
  11. }
  12. static update() {
  13. }
  14. static findOne(code, handler) {
  15. wlyyRepo.execQuery({
  16. "sql": "select code, name from doctors where code = ? ",
  17. "args": [code],
  18. "handler": handler
  19. });
  20. };
  21. /**
  22. * 判断用户是否存在。数据从家庭医生平台获取,而不是IM库的user表。
  23. *
  24. * @param user
  25. * @param handler
  26. */
  27. static isExist(user, handler) {
  28. wlyyRepo.execQuery({
  29. "sql": "SELECT count(*) from wlyy_doctor WHERE code=?",
  30. "args": [user],
  31. "handler": handler
  32. });
  33. };
  34. static getUserStatus(userId, handler) {
  35. imRepo.execQuery({
  36. "sql": "SELECT platform,token,client_id,is_online,status from user WHERE user_id = ?",
  37. "args": [userId],
  38. "handler": handler
  39. });
  40. };
  41. static login(userId, token, client_id, platform, handler) {
  42. imRepo.execQuery({
  43. "sql": "INSERT INTO user (user_id,token,client_id,platform,is_online,status) VALUES (?,?,?,?,1,1) ON" +
  44. " DUPLICATE KEY UPDATE token=?,client_id=?,platform=?,is_online=1,status=1",
  45. "args": [userId, token, client_id, platform, token, client_id, platform],
  46. "handler": handler
  47. });
  48. };
  49. static logout(userId, handler) {
  50. imRepo.execQuery({
  51. "sql": "UPDATE user SET is_online='0',status='0' WHERE user_id=?",
  52. "args": [userId],
  53. "handler": handler
  54. });
  55. };
  56. static deleteToken(token, handler) {
  57. imRepo.execQuery({
  58. "sql": "DELETE FROM user WHERE token=?",
  59. "args": [token],
  60. "handler": handler
  61. });
  62. };
  63. static updateStatus(userId, status, handler) {
  64. imRepo.execQuery({
  65. "sql": "UPDATE user SET status=? WHERE user_id=?",
  66. "args": [status, userId],
  67. "handler": handler
  68. });
  69. };
  70. }
  71. module.exports = DoctorRepo;