ExtContactController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package cn.nosum.wx.cp.controller;
  2. import cn.nosum.wx.cp.api.WxCpExternalContactService;
  3. import cn.nosum.wx.cp.api.WxCpService;
  4. import cn.nosum.wx.cp.config.WxCpConfiguration;
  5. import cn.nosum.wx.cp.entity.external.WxCpUserExternalGroupChatStatistic;
  6. import cn.nosum.wx.cp.entity.external.WxCpUserExternalUserBehaviorStatistic;
  7. import cn.nosum.wx.cp.vo.ExtStatisticVO;
  8. import com.google.common.collect.Lists;
  9. import lombok.SneakyThrows;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RestController;
  12. import java.time.LocalDateTime;
  13. import java.time.ZoneId;
  14. import java.time.ZoneOffset;
  15. import java.time.format.DateTimeFormatter;
  16. import java.util.*;
  17. /**
  18. * 外部联系人控制层.
  19. *
  20. * @author Young
  21. */
  22. @RestController
  23. @RequestMapping("/ext/contact")
  24. public class ExtContactController {
  25. @SneakyThrows
  26. @RequestMapping("/get_user_behavior_data")
  27. public List<WxCpUserExternalUserBehaviorStatistic> getUserBehaviorData(Integer appId) {
  28. String[] strings = getUserList().toArray(new String[getUserList().size()]);
  29. List<WxCpUserExternalUserBehaviorStatistic> result = new ArrayList<>();
  30. getLocalDateTimeList().forEach(obj -> {
  31. WxCpExternalContactService externalContactService = WxCpConfiguration.getCpService(appId).getExternalContactService();
  32. Date startTime = convertDate(obj);
  33. Date endTime = convertDate(obj);
  34. WxCpUserExternalUserBehaviorStatistic userBehaviorStatistic = externalContactService.getUserBehaviorStatistic(startTime, endTime, strings, null);
  35. result.add(userBehaviorStatistic);
  36. });
  37. return result;
  38. }
  39. @SneakyThrows
  40. @RequestMapping("/statistic_group_by_day")
  41. public List<ExtStatisticVO> statisticGroupByDay(Integer appId) {
  42. List<ExtStatisticVO> extStatisticVOList = new ArrayList<>();
  43. WxCpExternalContactService externalContactService = WxCpConfiguration.getCpService(appId).getExternalContactService();
  44. getLocalDateTimeList().forEach(obj -> {
  45. Date startTime = convertDate(obj);
  46. WxCpUserExternalGroupChatStatistic groupChatStatistic = externalContactService.getGroupChatStatistic(startTime, 2, 0, 0, 1000, null, null);
  47. ExtStatisticVO statisticVO = new ExtStatisticVO();
  48. statisticVO.setDateTime(startTime.getTime() / 1000);
  49. statisticVO.setWxCpUserExternalGroupChatStatistic(groupChatStatistic);
  50. extStatisticVOList.add(statisticVO);
  51. });
  52. return extStatisticVOList;
  53. }
  54. private List<LocalDateTime> getLocalDateTimeList() {
  55. List<LocalDateTime> dateTimeList = new ArrayList<>();
  56. dateTimeList.add(LocalDateTime.parse("2021-07-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  57. dateTimeList.add(LocalDateTime.parse("2021-07-15 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  58. dateTimeList.add(LocalDateTime.parse("2021-08-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  59. dateTimeList.add(LocalDateTime.parse("2021-08-15 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  60. dateTimeList.add(LocalDateTime.parse("2021-09-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  61. dateTimeList.add(LocalDateTime.parse("2021-09-15 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  62. dateTimeList.add(LocalDateTime.parse("2021-09-28 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  63. dateTimeList.add(LocalDateTime.parse("2021-10-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  64. dateTimeList.add(LocalDateTime.parse("2021-10-15 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  65. dateTimeList.add(LocalDateTime.parse("2021-10-20 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  66. return dateTimeList;
  67. }
  68. private List<String> getUserList() {
  69. List<String> userIds = new ArrayList<>();
  70. userIds.add("011850");
  71. userIds.add("012292");
  72. userIds.add("011232");
  73. userIds.add("010957");
  74. userIds.add("006965");
  75. userIds.add("014169");
  76. userIds.add("014188");
  77. userIds.add("004783");
  78. userIds.add("011223");
  79. userIds.add("014124");
  80. userIds.add("004784");
  81. userIds.add("004945");
  82. userIds.add("011835");
  83. userIds.add("011590");
  84. userIds.add("004041");
  85. userIds.add("014117");
  86. userIds.add("010918");
  87. userIds.add("011837");
  88. userIds.add("012947");
  89. userIds.add("006823");
  90. userIds.add("014139");
  91. userIds.add("015920");
  92. userIds.add("012688");
  93. userIds.add("014133");
  94. userIds.add("011831");
  95. userIds.add("012293");
  96. userIds.add("004793");
  97. userIds.add("012294");
  98. userIds.add("014113");
  99. userIds.add("011842");
  100. userIds.add("011987");
  101. userIds.add("013628");
  102. userIds.add("012857");
  103. userIds.add("004778");
  104. userIds.add("004810");
  105. userIds.add("005963");
  106. return userIds;
  107. }
  108. /**
  109. * 将 LocalDateTime 转 Date.
  110. *
  111. * @param dateTime LocalDatetime
  112. * @return Date
  113. */
  114. public static Date convertDate(LocalDateTime dateTime) {
  115. return Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant());
  116. }
  117. }