Browse Source

feature-img-1.0:添加微信获取广告收入操作接口

feature-1.0-img
Penny 3 years ago
parent
commit
2541a2873e
  1. 27
      bnyer-services/bnyer-system/src/main/java/com/bnyer/system/controller/CommonController.java
  2. 81
      bnyer-services/bnyer-system/src/main/java/com/bnyer/system/service/impl/WechatServiceImpl.java

27
bnyer-services/bnyer-system/src/main/java/com/bnyer/system/controller/CommonController.java

@ -1,26 +1,16 @@
package com.bnyer.system.controller;
import com.alibaba.fastjson.JSON;
import com.bnyer.common.core.domain.Banner;
import com.bnyer.common.core.dto.BannerDto;
import com.bnyer.common.core.dto.BannerPageDto;
import com.bnyer.common.core.dto.StatusDto;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
import com.bnyer.system.service.IBannerService;
import com.bnyer.system.service.ITiktokService;
import com.bnyer.system.service.IWechatService;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(value = "【图文平台】公共接口",tags = "【图文平台】公共接口")
@RestController
@ -32,12 +22,19 @@ public class CommonController extends BaseController {
private ITiktokService tiktokService;
@Autowired
private IWechatService iWechatService;
private IWechatService wechatService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value="获取抖音广告首付详情")
@ApiOperation(value="获取抖音广告收益详情")
@GetMapping(value = "/tiktokAdIncome")
public AjaxResult tiktokAdIncome(){
return AjaxResult.success(tiktokService.getTiktokAdIncome());
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="获取微信广告收益详情")
@GetMapping(value = "/wechatAdIncome")
public AjaxResult wechatAdIncome(){
return AjaxResult.success(wechatService.getWechatAdIncome());
}
}

81
bnyer-services/bnyer-system/src/main/java/com/bnyer/system/service/impl/WechatServiceImpl.java

@ -1,31 +1,20 @@
package com.bnyer.system.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.constant.TiktokConstant;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.system.config.TiktokConfig;
import com.bnyer.system.config.WxConfig;
import com.bnyer.system.domain.vo.TiktokAdIncomeVo;
import com.bnyer.system.domain.vo.TiktokTokenVo;
import com.bnyer.system.domain.vo.WechatAdIncomeVo;
import com.bnyer.system.domain.vo.WechatTokenVo;
import com.bnyer.system.service.ITiktokService;
import com.bnyer.system.service.IWechatService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Service
@Slf4j
@ -40,56 +29,46 @@ public class WechatServiceImpl implements IWechatService {
@Override
public WechatTokenVo getWechatToken() {
String url = wxConfig.getTokenUrl()+"?grant_type=client_credential&appid="+wxConfig.getAppId()+"&secret="+wxConfig.getSecret();
JSONObject tokenInfo = restTemplate.getForEntity(url, JSONObject.class).getBody();
if (tokenInfo != null) {
if(!tokenInfo.getString("err_no").equals(TiktokConstant.SUCCESS)){
log.error("微信获取token接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",tokenInfo.getString("err_no"),tokenInfo.getString("err_tips"));
throw new ServiceException("微信获取token接口调用失败!",TiktokConstant.WECHAT_AUTH_ERROR);
JSONObject tokenInfo = null;
try{
String url = wxConfig.getTokenUrl()+"?grant_type=client_credential&appid="+wxConfig.getAppId()+"&secret="+wxConfig.getSecret();
tokenInfo = restTemplate.getForObject(url, JSONObject.class);
//调用成功,组装返回数据
if(tokenInfo != null){
WechatTokenVo result = new WechatTokenVo();
result.setAccessToken(tokenInfo.getString("access_token"));
result.setExpiresIn(Integer.parseInt(tokenInfo.getString("expires_in")));
return result;
}else {
return null;
}
}else{
log.error("微信获取token接口调用失败,错误信息为:【查无数据】");
}catch (Exception e){
log.error("微信获取token接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",tokenInfo.getString("errcode"),tokenInfo.getString("errmsg"));
throw new ServiceException("微信获取token接口调用失败!",TiktokConstant.WECHAT_AUTH_ERROR);
}
//调用成功,组装返回数据
JSONObject data = tokenInfo.getJSONObject("data");
if(data != null){
WechatTokenVo result = new WechatTokenVo();
result.setAccessToken(data.getString("access_token"));
result.setExpiresIn(Integer.parseInt(data.getString("expires_in")));
return result;
}else{
return null;
}
}
@Override
public WechatAdIncomeVo getWechatAdIncome() {
Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = df.format(yesterday);
String url = wxConfig.getAdIncomeUrl() + "?action=publisher_adpos_general&"+getWechatToken().getAccessToken()+"&page=1&page_size=1&start_date="+date+"&end_date="+date;
JSONObject resultInfo = restTemplate.getForObject(url,JSONObject.class);
if(resultInfo != null){
if(!resultInfo.getString("err_no").equals(TiktokConstant.SUCCESS)){
log.error("抖音获取广告收入接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",resultInfo.getString("err_no"),resultInfo.getString("err_msg"));
throw new ServiceException("抖音获取广告收入接口调用失败!",TiktokConstant.TIKTOK_INCOME_ERROR);
}
}else{
log.error("抖音获取广告收入接口调用失败,错误信息为:【查无数据】");
throw new ServiceException("抖音获取广告收入接口调用失败!",TiktokConstant.TIKTOK_INCOME_ERROR);
}
//调用成功,组装返回数据
JSONObject data = resultInfo.getJSONObject("data");
if(data != null){
JSONArray incomeList = data.getJSONArray("income_list");
if(incomeList.size() > 0){
JSONObject resultInfo = null;
try{
Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = df.format(yesterday);
String url = wxConfig.getAdIncomeUrl() + "?action=publisher_adpos_general&access_token="+getWechatToken().getAccessToken()+"&page=1&page_size=1&start_date="+date+"&end_date="+date;
resultInfo = restTemplate.getForObject(url, JSONObject.class);
//调用成功,组装返回数据
if(resultInfo != null){
WechatAdIncomeVo result = new WechatAdIncomeVo();
result.setIncome(Integer.parseInt(incomeList.getJSONObject(0).getString("income")));
result.setDate(incomeList.getJSONObject(0).getString("date"));
result.setIncome(Integer.parseInt(resultInfo.getJSONObject("summary").getString("income")));
result.setDate(date);
return result;
}else {
return null;
}
}catch (Exception e){
log.error("微信获取广告收入接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",resultInfo.getString("ret"),resultInfo.getString("err_msg"));
throw new ServiceException("微信获取广告收入接口调用失败!",TiktokConstant.WECHAT_INCOME_ERROR);
}
return null;
}
}

Loading…
Cancel
Save