doctor.repo.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * i健康用户库,即医生数据,此命名为解藉用户与特定角色的关条。
  3. *
  4. * 目前,医生真实数据存在于家庭医生平台数据库,IM数据库仅是做视图。将来根据需要将通过同步机制将数据同步到IM数据库。
  5. */
  6. "use strict";
  7. var ImDb = require("./db/im.db.js");
  8. var log = require('../../util/log');
  9. let oracledbUtil = require('../../util/oracledb.util');
  10. class DoctorRepo {
  11. constructor() {
  12. }
  13. static findOne(doctorId, handler) {
  14. oracledbUtil.query({
  15. "sql": "SELECT ID, FUN_DECRYPTION(name,'"+DB_TABLES.AesKey+"') as NAME, SEX, BIRTHDATE, AVATAR ,FUN_DECRYPTION(IDCARD,'"+DB_TABLES.AesKey+"') as IDCARD FROM DOCTORS WHERE ID = :ID ",
  16. "args": [doctorId],
  17. "handler": handler
  18. });
  19. };
  20. static findByMobile(mobile, handler) {
  21. oracledbUtil.query({
  22. "sql": "SELECT ID, FUN_DECRYPTION(name,'"+DB_TABLES.AesKey+"') as NAME , SEX, BIRTHDATE, AVATAR FROM DOCTORS WHERE FUN_DECRYPTION(MOBILE,'"+DB_TABLES.AesKey+"') = :MOBILE ",
  23. "args": [mobile],
  24. "handler": handler
  25. });
  26. };
  27. static addDoctor(id,name,mobile,sex,birthdate,avatar,hospital_name,level,idcard, handler) {
  28. if(name!=null&&name!=""){
  29. name = "FUN_ENCRYPTION('"+name+"','"+DB_TABLES.AesKey+"')";
  30. }
  31. if(mobile!=null&&mobile!=""){
  32. mobile = "FUN_ENCRYPTION('"+mobile+"','"+DB_TABLES.AesKey+"')";
  33. }
  34. if(idcard!=null&&idcard!=""){
  35. idcard = "FUN_ENCRYPTION('"+idcard+"','"+DB_TABLES.AesKey+"')";
  36. }
  37. oracledbUtil.query({
  38. "sql": "INSERT INTO BASE.BASE_DOCTOR (ID,NAME,MOBILE,SEX,BIRTHDATE,PHOTO,IDCARD,DEL) VALUES (:ID,:NAME,:MOBILE,:SEX,:BIRTHDATE,:PHOTO,:IDCARD,1)",
  39. "args": [id,name,mobile,sex,birthdate,avatar,idcard],
  40. "handler": handler
  41. });
  42. };
  43. }
  44. module.exports = DoctorRepo;