From 802bbc9b1a26334607b04ab562e62594e383d2c2 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期六, 31 七月 2021 17:58:31 +0800
Subject: [PATCH] 修改bug以及获取天气接口
---
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java | 47 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
index 27ffd93..3ee65a7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
@@ -2,13 +2,17 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.UserConstants;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.utlis.HttpClientUtil;
import com.panzhihua.common.utlis.StringUtils;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
@@ -16,11 +20,15 @@
import java.net.URL;
import java.nio.charset.Charset;
import java.util.*;
+import java.util.concurrent.TimeUnit;
@Slf4j
@RestController
@RequestMapping("/official")
public class WxOfficialApi {
+
+ @Resource
+ private StringRedisTemplate stringRedisTemplate;
//公众号appid
private List<String> appidList = new ArrayList<String>(){{this.add("wx7c733ebbf6c55ecf");this.add("wxc94f0cddf13577d5");}};
@@ -85,7 +93,7 @@
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
- sb.append(new String(b,0,len));
+ sb.append(new String(b,0,len,"UTF-8"));
}
in.close();
@@ -147,7 +155,27 @@
String url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + token;
String result = getActicle(url);
log.info("通过token获取文章列表成功,返回结果:" + result);
- resultList.add(JSON.parseObject(result));
+
+ JSONObject resultJson = JSON.parseObject(result);
+ if(resultJson != null){
+ List<JSONObject> itemList = JSON.parseArray(resultJson.getString("item"),JSONObject.class);
+ if(!itemList.isEmpty()){
+ for (JSONObject object : itemList) {
+ String newsId = object.getString("media_id");
+ JSONObject contentJson = JSON.parseObject(object.getString("content"));
+ List<JSONObject> newsItemList = JSON.parseArray(contentJson.getString("news_item"),JSONObject.class);
+ String newsUrl = newsItemList.get(0).getString("url");
+ newsItemList.get(0).put("news_id",newsId);
+ contentJson.put("news_item",newsItemList);
+ object.put("content",contentJson);
+
+ ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+ valueOperations.set(UserConstants.NEWS_ID + newsId, newsUrl + "", 2, TimeUnit.DAYS);
+ }
+ }
+ resultJson.put("item",itemList);
+ }
+ resultList.add(resultJson);
}catch (Exception e){
log.error("通过token获取文章列表失败,错误原因:" + e.getMessage());
}
@@ -156,4 +184,19 @@
return R.ok(resultList);
}
+ @ApiOperation(value = "获取公众号文章链接")
+ @GetMapping(value = "/get/noToken")
+ public R getDiscuss(@RequestParam("mediaId") String mediaId){
+
+ String key = UserConstants.NEWS_ID + mediaId;
+ Boolean hasKey = stringRedisTemplate.hasKey(key);
+ if (!hasKey) {
+ return R.fail("未找到该文章的链接地址");
+ }
+
+ ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+ String url = valueOperations.get(key);
+ return R.ok(url);
+ }
+
}
--
Gitblit v1.7.1