group.repo.js 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /**
  2. * 群组模型。此数据来源于家庭医生平台数据库的行政团队。
  3. *
  4. * 实际团队数据分为两部分:行政团队与临时讨论组,具体的与业务相关。医生在讨论组里,
  5. * 会出现两种:在行政团队内聊天,也可以在临时讨论组里聊天。
  6. */
  7. "use strict";
  8. var wlyyRepo = require("./database/wlyy.db.js");
  9. var GROUP_TYPE = require('../include/commons').GROUP_TYPE;
  10. /**
  11. * 判断是否为团队成员。
  12. *
  13. * @param groupId
  14. * @param groupType
  15. * @param doctorId
  16. * @param handler
  17. */
  18. exports.isGroupMember = function (groupId, groupType, doctorId, handler) {
  19. if (groupType == GROUP_TYPE.AdminTeam) {
  20. wlyyRepo.execQuery({
  21. "sql": "SELECT doctor_code user_id from wlyy_admin_team_member WHERE team_id=? and doctor_code=?",
  22. "args": [groupId, doctorId],
  23. "handler": handler
  24. });
  25. } else {
  26. wlyyRepo.execQuery({
  27. "sql": "SELECT member_code user_id from wlyy_talk_group_member WHERE group_code=? and member_code=?",
  28. "args": [groupId, doctorId],
  29. "handler": handler
  30. });
  31. }
  32. };
  33. /**
  34. * 获取团队成员。
  35. *
  36. * @param groupId
  37. * @param groupType
  38. * @param handler
  39. */
  40. exports.getMembers = function (groupId, groupType, handler) {
  41. if (groupType == GROUP_TYPE.AdminTeam) {
  42. wlyyRepo.execQuery({
  43. "sql": "SELECT doctor_code user_id from wlyy_admin_team_member WHERE team_id=? AND available = 1",
  44. "args": [groupId],
  45. "handler": handler
  46. });
  47. } else {
  48. wlyyRepo.execQuery({
  49. "sql": "SELECT member_code user_id from wlyy_talk_group_member WHERE group_code=?",
  50. "args": [groupId],
  51. "handler": handler
  52. });
  53. }
  54. };
  55. exports.getMembersAvatar = function (groups, handler) {
  56. /*var sql = "SELECT m.member_code g_code, COUNT(m.member_code) member_count, d.code dr_code, d.name dr_name, d.photo dr_photo " +
  57. "FROM wlyy.wlyy_talk_group_member m, wlyy.wlyy_doctor d " +
  58. "WHERE m.member_code = d.code AND m.group_code IN (" + groups + ") " +
  59. "UNION " +
  60. "SELECT m.team_id g_code, COUNT(m.team_id) member_count, d.code dr_code, d.name dr_name, d.photo dr_photo " +
  61. "FROM wlyy.wlyy_admin_team_member m, wlyy.wlyy_doctor d " +
  62. "WHERE m.doctor_code = d.code AND m.team_id IN (" + groups + ") GROUP BY m.team_id";*/
  63. var sql = "SELECT * FROM(" +
  64. "SELECT m.group_code g_code, d.code code, d.name name, d.photo photo, 'doctor' type FROM " +
  65. "wlyy.wlyy_talk_group_member m, wlyy.wlyy_doctor d " +
  66. "WHERE m.member_code = d.code AND m.group_code IN (" + groups + ") " +
  67. " UNION " +
  68. "SELECT m.group_code g_code, p.code code, p.name name, p.photo photo, 'patient' type " +
  69. "FROM wlyy.wlyy_talk_group_member m, wlyy.wlyy_patient p " +
  70. "WHERE m.member_code = p.code AND m.group_code IN (" + groups + ")" +
  71. " UNION " +
  72. "SELECT m.team_id g_code, d.code code, d.name name, d.photo photo, 'doctor' type " +
  73. "FROM wlyy.wlyy_admin_team_member m, wlyy.wlyy_doctor d " +
  74. "WHERE m.doctor_code = d.code AND m.team_id IN (" + groups + ") " +
  75. ") x ORDER BY x.g_code";
  76. wlyyRepo.execQuery({
  77. "sql": sql,
  78. "args": [],
  79. "handler": handler
  80. });
  81. };
  82. exports.getGroupConsultInfo = function (code, handler) {
  83. var sql = "select t.* from wlyy_talk_group g join wlyy_consult_team t on g.consult_code = t.consult where g.code = ? and g.type = 1";
  84. wlyyRepo.execQuery({
  85. "sql": sql,
  86. "args": [code],
  87. "handler": handler
  88. });
  89. }