group.repo.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. exports.getOnGroupMsg=function(msgid,handler){
  11. wlyyRepo.execQuery({
  12. "sql": " select g.*,d.`name`,d.photo from msg_group g,wlyy.wlyy_doctor d where g.msg_id=? and g.from_uid=d.code;",
  13. "args": [msgid],
  14. "handler": handler
  15. });
  16. }
  17. /**
  18. * 判断是否为团队成员。
  19. *
  20. * @param groupId
  21. * @param groupType
  22. * @param doctorId
  23. * @param handler
  24. */
  25. exports.isGroupMember = function (groupId, groupType, doctorId, handler) {
  26. if (groupType == GROUP_TYPE.AdminTeam) {
  27. wlyyRepo.execQuery({
  28. "sql": "SELECT doctor_code user_id from wlyy_admin_team_member WHERE team_id=? and doctor_code=?",
  29. "args": [groupId, doctorId],
  30. "handler": handler
  31. });
  32. } else {
  33. wlyyRepo.execQuery({
  34. "sql": "SELECT member_code user_id from wlyy_talk_group_member WHERE group_code=? and member_code=?",
  35. "args": [groupId, doctorId],
  36. "handler": handler
  37. });
  38. }
  39. };
  40. /**
  41. * 获取团队成员。
  42. *
  43. * @param groupId
  44. * @param groupType
  45. * @param handler
  46. */
  47. exports.getMembers = function (groupId, groupType, handler) {
  48. if (groupType == GROUP_TYPE.AdminTeam) {
  49. wlyyRepo.execQuery({
  50. "sql": "SELECT doctor_code user_id from wlyy_admin_team_member WHERE team_id=? AND available = 1",
  51. "args": [groupId],
  52. "handler": handler
  53. });
  54. } else {
  55. wlyyRepo.execQuery({
  56. "sql": "SELECT member_code user_id from wlyy_talk_group_member WHERE group_code=?",
  57. "args": [groupId],
  58. "handler": handler
  59. });
  60. }
  61. };
  62. exports.getMembersAvatar = function (groups, handler) {
  63. /*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 " +
  64. "FROM wlyy.wlyy_talk_group_member m, wlyy.wlyy_doctor d " +
  65. "WHERE m.member_code = d.code AND m.group_code IN (" + groups + ") " +
  66. "UNION " +
  67. "SELECT m.team_id g_code, COUNT(m.team_id) member_count, d.code dr_code, d.name dr_name, d.photo dr_photo " +
  68. "FROM wlyy.wlyy_admin_team_member m, wlyy.wlyy_doctor d " +
  69. "WHERE m.doctor_code = d.code AND m.team_id IN (" + groups + ") GROUP BY m.team_id";*/
  70. var sql = "SELECT * FROM(" +
  71. "SELECT m.group_code g_code, d.code code, d.name name, d.photo photo, 'doctor' type FROM " +
  72. "wlyy.wlyy_talk_group_member m, wlyy.wlyy_doctor d " +
  73. "WHERE m.member_code = d.code AND m.group_code IN (" + groups + ") " +
  74. " UNION " +
  75. "SELECT m.group_code g_code, p.code code, p.name name, p.photo photo, 'patient' type " +
  76. "FROM wlyy.wlyy_talk_group_member m, wlyy.wlyy_patient p " +
  77. "WHERE m.member_code = p.code AND m.group_code IN (" + groups + ")" +
  78. " UNION " +
  79. "SELECT m.team_id g_code, d.code code, d.name name, d.photo photo, 'doctor' type " +
  80. "FROM wlyy.wlyy_admin_team_member m, wlyy.wlyy_doctor d " +
  81. "WHERE m.doctor_code = d.code AND m.team_id IN (" + groups + ") " +
  82. ") x ORDER BY x.g_code";
  83. wlyyRepo.execQuery({
  84. "sql": sql,
  85. "args": [],
  86. "handler": handler
  87. });
  88. };
  89. exports.getGroupConsultInfo = function (code, handler) {
  90. 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";
  91. wlyyRepo.execQuery({
  92. "sql": sql,
  93. "args": [code],
  94. "handler": handler
  95. });
  96. }