TestController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.fjhx.back.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.fjhx.back.entity.MailboxListMessagesDto;
  5. import com.fjhx.back.wy163.rsa.HttpPost;
  6. import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
  7. import com.fjhx.back.wy163.rsa.RSATool;
  8. import lombok.SneakyThrows;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springblade.core.tool.api.R;
  11. import org.springframework.web.bind.annotation.GetMapping;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RestController;
  14. import java.net.URLEncoder;
  15. import java.util.Collections;
  16. @Slf4j
  17. @RestController
  18. @RequestMapping("/test")
  19. public class TestController {
  20. private static final String PRI_KEY =
  21. "30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100919453a879ad6b497f99" +
  22. "739c3ab66c8cfa2eaf89c963985c946529da3c968b11390155cddbe943387a5665f77e849c3f07eeb12852895b26bc29276096" +
  23. "03db6eb5ddd62968a7ce8e1fdfde5bce77b5262eb3aa67cb26e61426df497367b36e344be70a6404ce3d91e6a82ff5f4e13bfdb" +
  24. "c3ebedd827c6ccf3d1767c239087ffb02030100010281800d378838dd832f2067234969bfb2dc3c1862b0b133c58509b2b7548b" +
  25. "69c0c93371177bf0caac6cdbedcf76467808161f6adaf2de944fc024ce24765cc081ed2406eef1c7c87509584ca3c1926af7d26" +
  26. "d0f7d3c18d51368100c09fb74cef3402d23c5e223a2e4ad6ae0c82a10eef8e5dc0b8dc54c5066b54dcabba30cb9b5d1d1024100" +
  27. "c85b5b91e0a0e41f9c5ec2f1a038faa4409980402f5f439adeb729450ebd39841d1244031ad78e3a28cb50a7c66b65840f79bf0" +
  28. "5190f9235efce8aa450d8c8cf024100ba027dbe9688c63ba896f46d2b4f1aac8758659cd8435380c38d41b4e9b22d717450dd07" +
  29. "ceac10db63e52ec4cce2e9f7d99c16bb2ae89b6a932ea0b19f7349150240431161dbb927e2753a70f62cd00782cf4cd89577e6e3" +
  30. "aacbc2d5e938b6b05cfa7e88c8bf8952b2c781345df16b9833c93b2cf3e68ef7096888b7c8ed2c2b053d0240378d88ea83e0e37b" +
  31. "6bd571b8ad079a0acefd4a93b64f1d4046a70869b4a5ff46741bb6779f74ea2febbcc5e406e0fa498897427eb1c8f8a9b2bd6946" +
  32. "c33d562502400d0145f83ca2e2d2157c190d96c73a2476d8cc0bf24970d479db0dac690c74c8e60a57c13e7bf2d088234e39a9a7" +
  33. "e91df09ef287dc8e259296b346762fe3387d";
  34. /**
  35. * 获取邮件信息
  36. */
  37. @SneakyThrows
  38. @GetMapping("/mailbox/listMessages")
  39. public R mailboxListMessages(MailboxListMessagesDto dto) {
  40. String time = System.currentTimeMillis() + "";
  41. JSONObject jsonObject = new JSONObject();
  42. jsonObject.put("fids", Collections.singletonList(dto.getFid()));
  43. jsonObject.put("order", "receivedDate");
  44. jsonObject.put("desc", true);
  45. jsonObject.put("start", (dto.getPageNum() - 1) * dto.getPageSize());
  46. jsonObject.put("limit", dto.getPageSize());
  47. jsonObject.put("returnTotal", true);
  48. String params = jsonObject.toString();
  49. String url = "https://apihz.qiye.163.com/qiyeservice/api/mailbox/listMessages";
  50. String src = "account_name=" + dto.getAccountName() + "&domain=" + dto.getDomain() + "&params="
  51. + params + "&product=" + dto.getProduct() + "&time=" + time;
  52. String sign = RSASignatureToQiye.generateSigature(PRI_KEY, src);
  53. url = url + "?" + "account_name=" + dto.getAccountName() + "&domain="
  54. + dto.getDomain() + "&params=" + URLEncoder.encode(params, "utf8") +
  55. "&product=" + dto.getProduct() + "&sign=" + sign + "&time=" + time;
  56. HttpPost hp = new HttpPost();
  57. String result = hp.post(url);
  58. return R.success(JSON.parseObject(result));
  59. }
  60. /**
  61. * 获取未读邮件数量
  62. */
  63. @GetMapping("/mailbox/getUnreadMsg")
  64. public R mailboxGetUnreadMsg(MailboxListMessagesDto dto) {
  65. String time = System.currentTimeMillis() + "";
  66. String url = "https://apihz.qiye.163.com/qiyeservice/api/mailbox/getUnreadMsg";
  67. String sign = "account_name=" + dto.getAccountName() + "&domain=" + dto.getDomain() + "&fid=" + dto.getFid()
  68. + "&product=" + dto.getProduct() + "&time=" + time;
  69. sign = RSASignatureToQiye.generateSigature(PRI_KEY, sign);
  70. url = url + "?" + "account_name=" + dto.getAccountName() + "&domain="
  71. + dto.getDomain() + "&fid=" + dto.getFid() + "&product="
  72. + dto.getProduct() + "&sign=" + sign + "&time=" + time;
  73. HttpPost hp = new HttpPost();
  74. String result = hp.post(url);
  75. return R.success(JSON.parseObject(result));
  76. }
  77. /**
  78. * 单点登录地址
  79. */
  80. @GetMapping("/mailbox/sso")
  81. public R detail(MailboxListMessagesDto dto) {
  82. String time = System.currentTimeMillis() + "";
  83. String src = dto.getAccountName() + dto.getDomain() + time;
  84. RSATool rsa = new RSATool();
  85. String enc = rsa.generateSHA1withRSASigature(src, PRI_KEY);
  86. String url = "https://entry.qiye.163.com/domain/oa/Entry?domain=" + dto.getDomain() +
  87. "&account_name=" + dto.getAccountName() + "&time=" + time + "&enc=" + enc + "&language=0&mid=" + dto.getMid();
  88. return R.success(url);
  89. }
  90. }