PushProjectServiceImpl.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.chuanghai.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.chuanghai.dto.WeixiaoPushDTO;
  5. import com.chuanghai.entity.PushProject;
  6. import com.chuanghai.exception.BizCodeEnume;
  7. import com.chuanghai.exception.RRException;
  8. import com.chuanghai.mapper.PushProjectMapper;
  9. import com.chuanghai.service.PushProjectService;
  10. import com.fasterxml.jackson.core.type.TypeReference;
  11. import com.fasterxml.jackson.databind.ObjectMapper;
  12. import com.sun.org.apache.xpath.internal.operations.Bool;
  13. import com.sun.xml.internal.bind.v2.util.ByteArrayOutputStreamEx;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.http.ResponseEntity;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.web.client.RestTemplate;
  18. import java.time.LocalDateTime;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22. @Slf4j
  23. @Service
  24. public class PushProjectServiceImpl extends ServiceImpl<PushProjectMapper, PushProject> implements PushProjectService {
  25. @Override
  26. public Boolean pushProject(WeixiaoPushDTO weixiaoPushDTO) {
  27. Boolean flag = Boolean.FALSE;
  28. String app_key = weixiaoPushDTO.getApp_key();
  29. String school_code = weixiaoPushDTO.getSchool_code();
  30. String event = weixiaoPushDTO.getEvent();
  31. String raw_data = weixiaoPushDTO.getRaw_data();
  32. String app_secret = weixiaoPushDTO.getApp_secret();
  33. Map<String, String> tokenParams = new HashMap<>();
  34. tokenParams.put("app_key", app_key);
  35. tokenParams.put("school_code", school_code);
  36. tokenParams.put("event", event);
  37. tokenParams.put("raw_data", raw_data);
  38. tokenParams.put("app_secret", app_secret);
  39. List<PushProject> pushProjectList = this.queryPushProject();
  40. for (int i = 0; i < pushProjectList.size(); i++) {
  41. PushProject pushProject = pushProjectList.get(i);
  42. try {
  43. String tokenUrl = pushProject.getUrl();
  44. RestTemplate client = new RestTemplate();
  45. ResponseEntity<String> tokenResponse = client.postForEntity(tokenUrl, tokenParams, String.class);
  46. String body = tokenResponse.getBody();
  47. log.info("微校推送服务接口状态=======》》推送项目:【{}】》》结果集:【{}】", pushProject.getProject(), body);
  48. ObjectMapper mapper = new ObjectMapper();
  49. Map<String, Object> jsonMap = mapper.readValue(body, new TypeReference<Map<String, Object>>() {
  50. });
  51. Integer code = (Integer) jsonMap.get("code");
  52. if (code == 0) {
  53. flag = Boolean.TRUE;
  54. }
  55. } catch (Exception e) {
  56. throw new RRException(BizCodeEnume.FILE_IS_PUSH);
  57. }
  58. }
  59. return flag;
  60. }
  61. /**
  62. * 添加推送项目
  63. *
  64. * @param url
  65. * @param project
  66. */
  67. @Override
  68. public void addPushProject(String url, String project) {
  69. LocalDateTime localDateTime = LocalDateTime.now();
  70. PushProject pushProject = new PushProject();
  71. pushProject.setCreateTime(localDateTime.now());
  72. pushProject.setProject(project);
  73. pushProject.setStatu(0);
  74. pushProject.setUrl(url);
  75. this.save(pushProject);
  76. }
  77. @Override
  78. public void deletePushProject(Long id) {
  79. PushProject pushProject = this.getById(id);
  80. pushProject.setStatu(1);
  81. this.updateById(pushProject);
  82. }
  83. /**
  84. * 查询有效的项目
  85. *
  86. * @return
  87. */
  88. public List<PushProject> queryPushProject() {
  89. QueryWrapper<PushProject> wrapper = new QueryWrapper<>();
  90. wrapper.eq("statu", "0");
  91. return this.list(wrapper);
  92. }
  93. }