application.endpoint.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "use strict";
  2. let express = require('express');
  3. let router = express.Router();
  4. let request = require('request');
  5. let http = require('http');
  6. let configFile = require('../../include/commons').CONFIG_FILE;
  7. let config = require('../../resources/config/' + configFile);
  8. let ImDb = require('../../repository/oracle/db/im.db');
  9. let WlyySDK = require("../../util/wlyy.sdk");
  10. let log = require('../../util/log.js');
  11. const APIv2 = require('../../include/endpoints').APIv2;
  12. /**
  13. * 获取应用角标数。
  14. *
  15. * TODO: 角标数字为所有消息的总和+扩展业务消息数
  16. *
  17. * URL:
  18. * /application/badge_no?user_id=sand
  19. *
  20. * 参数:
  21. * uid:用户id
  22. */
  23. router.get(APIv2.Application.BadgeNo, function (req, response) {
  24. let userId = req.query.user_id;
  25. ImDb.execQuery({
  26. "sql": "SELECT imei, token from user_tokens WHERE user = ?",
  27. "args": [userId],
  28. "handler": function (err, result) {
  29. if (err || result.length == 0) {
  30. return;
  31. }
  32. WlyySDK.request(userId, '', result[0].token, result[0].imei, '/im/common/message/messages', 'POST', function (err, res) {
  33. let count = 0;
  34. res = JSON.parse(res)
  35. if (res.status == 200) {
  36. let data = res.data;
  37. count = JSON.parse(data.imMsgCount).count + data.system.amount + data.healthIndex.amount + data.sign.amount;
  38. }
  39. response.status(200).send({"count": count});
  40. });
  41. }
  42. });
  43. });
  44. module.exports = router;