1.展示微博文章&查看微博原文

dev
862857010@qq.com 2 years ago
parent 17418001e5
commit c4b76cc76f
  1. 8
      cjy-project/src/main/java/com/cjy/marketingdata/controller/MarketingDataWechatController.java
  2. 26
      cjy-project/src/main/java/com/cjy/marketingdata/domain/dto/WeiBoAuthorizedDTO.java
  3. 9
      cjy-project/src/main/java/com/cjy/marketingdata/domain/vo/WechatVO.java
  4. 7
      cjy-project/src/main/java/com/cjy/marketingdata/mapper/MarketingDataWechatMapper.java
  5. 1
      cjy-project/src/main/java/com/cjy/marketingdata/service/MarketingDataWechatService.java
  6. 10
      cjy-project/src/main/java/com/cjy/marketingdata/service/impl/MarketingDataWechatServiceImpl.java
  7. 18
      cjy-project/src/main/resources/mapper/marketingdata/MarketingWechatMapper.xml
  8. 4
      ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/WeiboTaskServiceImpl.java
  9. 18
      ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/WeiBoUtils.java
  10. 8
      ruoyi-ui/src/api/picture/network-market/networkMarket.js
  11. 32
      ruoyi-ui/src/views/picture/network-market/network-article.vue

@ -5,6 +5,7 @@ import com.cjy.marketingdata.VO.GetWechatVO;
import com.cjy.marketingdata.domain.vo.WechatVO;
import com.cjy.marketingdata.service.MarketingDataWechatService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@ -30,4 +31,11 @@ public class MarketingDataWechatController extends BaseController {
List<WechatVO> list = marketingDataWechatService.articleStatistics(getWechatVO);
return getDataTable(list);
}
@GetMapping("/getWeiBoViewOriginalText")
public AjaxResult getWeiBoViewOriginalText(String mid) {
String returnValue =marketingDataWechatService.getWeiBoViewOriginalText(mid);
return AjaxResult.success(returnValue);
}
}

@ -0,0 +1,26 @@
package com.cjy.marketingdata.domain.dto;
/**
* @author liangjiawei
* @createDate 2023/7/20
*/
public class WeiBoAuthorizedDTO {
private String uid;
private String accessToken;
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}
}

@ -5,10 +5,19 @@ package com.cjy.marketingdata.domain.vo;
* @createDate 2023/7/12
*/
public class WechatVO {
private String id;
private String title;
private String releaseTime;
private String url;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}

@ -1,6 +1,7 @@
package com.cjy.marketingdata.mapper;
import com.cjy.marketingdata.VO.GetWechatVO;
import com.cjy.marketingdata.domain.dto.WeiBoAuthorizedDTO;
import com.cjy.marketingdata.domain.vo.WechatVO;
import org.apache.ibatis.annotations.Mapper;
@ -13,4 +14,10 @@ import java.util.List;
@Mapper
public interface MarketingDataWechatMapper {
List<WechatVO> articleStatistics(GetWechatVO getWechatVO);
List<WechatVO> getWeiBoArticle(GetWechatVO getWechatVO);
/**
* 获取微博授权信息
*/
WeiBoAuthorizedDTO getWeiBoViewOriginalText(String mid);
}

@ -11,4 +11,5 @@ import java.util.List;
*/
public interface MarketingDataWechatService {
List<WechatVO> articleStatistics(GetWechatVO getWechatVO);
String getWeiBoViewOriginalText(String mid);
}

@ -1,6 +1,7 @@
package com.cjy.marketingdata.service.impl;
import com.cjy.marketingdata.VO.GetWechatVO;
import com.cjy.marketingdata.domain.dto.WeiBoAuthorizedDTO;
import com.cjy.marketingdata.domain.vo.WechatVO;
import com.cjy.marketingdata.mapper.MarketingDataWechatMapper;
import com.cjy.marketingdata.service.MarketingDataWechatService;
@ -24,8 +25,15 @@ public class MarketingDataWechatServiceImpl implements MarketingDataWechatServic
if(getWechatVO.getType().equals("1")){
list=marketingDataWechatMapper.articleStatistics(getWechatVO);
}else {
list=marketingDataWechatMapper.getWeiBoArticle(getWechatVO);
}
return list;
}
@Override
public String getWeiBoViewOriginalText(String mid) {
WeiBoAuthorizedDTO weiBoAuthorizedDTO= marketingDataWechatMapper.getWeiBoViewOriginalText(mid);
String returnUrl="https://api.weibo.com/2/statuses/go?"+"access_token=" + weiBoAuthorizedDTO.getAccessToken() + "&uid=" + weiBoAuthorizedDTO.getUid()+"&id="+mid;
return returnUrl;
}
}

@ -16,4 +16,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where t1.organ_code=#{organCode} order by t1.ref_date desc
</select>
<select id="getWeiBoArticle" resultType="com.cjy.marketingdata.domain.vo.WechatVO">
SELECT
t1.created_at AS releaseTime,
t1.text as title,
t1.mid as id
FROM
weibo_article_info t1
where t1.organ_code=#{organCode} order by t1.created_at desc
</select>
<select id="getWeiBoViewOriginalText" resultType="com.cjy.marketingdata.domain.dto.WeiBoAuthorizedDTO">
SELECT
t1.uid ,
t2.access_token as accessToken
FROM
weibo_article_info t1
LEFT JOIN weibo_authorized_info t2 on t1.uid=t2.uid
where t1.mid =#{mid}
</select>
</mapper>

@ -46,10 +46,10 @@ public class WeiboTaskServiceImpl implements WeiboTaskService {
JSONObject json = new JSONObject();
try {
json = WeiBoUtils.getWeiBoAccessToken(weiboConfig.getClientId().toString(), weiboConfig.getClientSecret(), weiboConfig.getRedirectUri(), code);
//如果是token过期就去update
//如果是重写授权
if (weiboTaskMapper.getWeiBoAuthorized(weiboConfig.getClientId().toString(), json.getString("uid")) == 1) {
weiboTaskMapper.updateWeiBoAuthorizedToekn(json.getString("access_token"), weiboConfig.getClientId().toString(), json.getString("uid"));
weiboTaskMapper.updateWeiBoAuthorizedToekn(weiboConfig.getClientId().toString(),json.getString("access_token"), json.getString("uid"));
} else {
//存到数据库中

@ -19,6 +19,10 @@ public class WeiBoUtils {
private static String getWeiBoUserInfoByUidUrl = "https://api.weibo.com/2/users/show.json";
//批量获取指定微博的转发数评论数
private static String getWeiboArticleForwardCommentAttitudesUrl = "https://api.weibo.com/2/statuses/count.json";
/**
* 查看原文
*/
private static String getWeiBoViewOriginalTextUrl = "https://api.weibo.com/2/statuses/go";
/**
* @param clientId
@ -62,4 +66,18 @@ public class WeiBoUtils {
return response;
}
/**
* 查看原文
* @param accessToken
* @param uid
* @param mid
* @return
*/
public static String getWeiboArticleForwardCommentAttitudes(String accessToken, String uid,String mid) {
String params = "access_token=" + accessToken + "&uid=" + uid+"&id="+mid;
String response = HttpUtils.sendGet(getWeiBoViewOriginalTextUrl, params);
return response;
}
}

@ -76,3 +76,11 @@ export function articleStatistics(params) {
})
}
//微信/微博 文章
export function getWeiBoViewOriginalText(id) {
return request({
url: 'marketingData/statistics/getWeiBoViewOriginalText?mid='+id,
method: 'get',
})
}

@ -5,7 +5,7 @@
<div class="p-message-box">
<div class="p-message-title">
<div class="flex-auto num">{{ item.title }}
<el-link type="info" :href="item.url" target="_blank" style="float: right;">查看原文</el-link>
<button class="links" @click="showUrl(item)">查看原文</button>
</div>
</div>
@ -22,6 +22,9 @@
</template>
<script>
import { getWeiBoViewOriginalText } from '../../../api/picture/network-market/networkMarket'
export default {
name: "network-article",
props: {
@ -30,9 +33,34 @@ export default {
default: () => [],
},
},
data(){
return{
}
},
methods:{
showUrl(val){
if (val.url==null){
getWeiBoViewOriginalText(val.id).then(response=>{
console.log(response)
window.open(response.msg, '_blank')
})
}else{
window.open(val.url, '_blank')
}
}
}
}
</script>
<style scoped>
.links{
float: right;
background: transparent;
color: #eee;
border: navajowhite;
}
.links:hover{
cursor: pointer;
}
</style>

Loading…
Cancel
Save