application.endpoint.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. "use strict";
  2. let express = require('express');
  3. let router = express.Router();
  4. let request = require('request');
  5. let http = require('http');
  6. const APIv2 = require('../../include/endpoints').APIv2;
  7. const MODEL_EVENTS = require('../../include/commons').MODEL_EVENTS;
  8. let configFile = require('../../include/commons').CONFIG_FILE;
  9. let config = require('../../resources/config/' + configFile);
  10. let ImDb = require('../../repository/mysql/db/im.db');
  11. let log = require('../../util/log.js');
  12. /**
  13. * 获取应用角标数。
  14. *
  15. * TODO: 角标数字为所有消息的总和
  16. *
  17. * /application/badge_no?user_id=sand
  18. *
  19. * 参数:
  20. * uid:用户id
  21. */
  22. router.get(APIv2.Application.BadgeNo, function (req, respone) {
  23. let userId = req.query.user_id;
  24. ImDb.execQuery({
  25. "sql": "SELECT imei,token from wlyy.wlyy_token WHERE user=?",
  26. "args": [userId],
  27. "handler": function (err, result) {
  28. if (err || result.length == 0) {
  29. handler(null, 0);
  30. return;
  31. }
  32. var options = {
  33. hostname: config.wlyyServerConfig.host,
  34. port: config.wlyyServerConfig.port,
  35. path: '/wlyy/doctor/message/messages',
  36. method: 'POST',
  37. headers: {
  38. 'userAgent': '{"token":"' + result[0].token + '","uid":"' + userId + '","imei":"' + result[0].imei + '"}'
  39. }
  40. };
  41. var req = http.request(options, function (res) {
  42. res.setEncoding('utf8');
  43. log.info('请求家庭医生平台: http://', options.hostname + ":" + options.port + options.path);
  44. res.on('data', function (chunk) {
  45. log.info('家庭医生平台返回: ', chunk);
  46. var count = 0;
  47. if(chunk.status==200){
  48. let data =JSON.parse(chunk).data;
  49. count = JSON.parse(data.imMsgCount).count+data.system.amount+data.healthIndex.amount+data.sign.amount;
  50. }
  51. respone.status(200).send({"count":count});
  52. });
  53. });
  54. req.on('error', function (e) {
  55. log.error('家庭医生平台接口调用出错: ', e.message);
  56. handler(e, null);
  57. });
  58. req.end();
  59. }
  60. });
  61. });
  62. module.exports = router;