🆕 #3115【小程序】增加短剧媒资管理相关接口支持

This commit is contained in:
kevinzhwl
2023-08-17 04:49:49 +00:00
committed by Binary Wang
parent d433191115
commit deeb83f3d2
23 changed files with 881 additions and 0 deletions

View File

@@ -542,4 +542,10 @@ public interface WxMaService extends WxService {
* @return getWxMaOpenApiService
*/
WxMaOpenApiService getWxMaOpenApiService();
/**
* 小程序短剧管理
*
* @return getWxMaVodService
*/
WxMaVodService getWxMaVodService();
}

View File

@@ -0,0 +1,23 @@
package cn.binarywang.wx.miniapp.api;
import cn.binarywang.wx.miniapp.bean.vod.*;
import me.chanjar.weixin.common.error.WxErrorException;
import java.util.List;
public interface WxMaVodService {
List<WxMaVodMediaInfo> listMedia(WxMaVodListMediaRequest request) throws WxErrorException;
List<WxMaVodDramaInfo> listDrama(WxMaVodListDramaRequest request) throws WxErrorException;
WxMaVodMediaPlaybackInfo getMediaLink(WxMaVodGetMediaLinkRequest request) throws WxErrorException;
WxMaVodMediaInfo getMedia(WxMaVodGetMediaRequest request) throws WxErrorException;
boolean deleteMedia(WxMaVodDeleteMediaRequest request) throws WxErrorException;
WxMaVodDramaInfo getDrama(WxMaVodGetDramaRequest request) throws WxErrorException;
Integer auditDrama(WxMaVodAuditDramaRequest request) throws WxErrorException;
}

View File

@@ -89,6 +89,7 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
private final WxMaOrderShippingService wxMaOrderShippingService = new WxMaOrderShippingServiceImpl(this);
private final WxMaOpenApiService wxMaOpenApiService = new WxMaOpenApiServiceImpl(this);
private final WxMaVodService wxMaVodService = new WxMaVodServiceImpl(this);
private Map<String, WxMaConfig> configMap = new HashMap<>();
private int retrySleepMillis = 1000;
@@ -664,4 +665,9 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
public WxMaOpenApiService getWxMaOpenApiService() {
return this.wxMaOpenApiService;
}
@Override
public WxMaVodService getWxMaVodService() {
return this.wxMaVodService;
}
}

View File

@@ -0,0 +1,127 @@
package cn.binarywang.wx.miniapp.api.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.WxMaVodService;
import cn.binarywang.wx.miniapp.bean.WxMaBaseResponse;
import cn.binarywang.wx.miniapp.bean.vod.*;
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.json.GsonParser;
import java.util.List;
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Vod.*;
@RequiredArgsConstructor
@Slf4j
public class WxMaVodServiceImpl implements WxMaVodService {
private final WxMaService service;
@Override
public List<WxMaVodMediaInfo> listMedia(WxMaVodListMediaRequest mediaRequest) throws WxErrorException {
String responseContent = this.service.post(LIST_MEDIA_URL, mediaRequest.toJson());
JsonObject jsonObject = GsonParser.parse(responseContent);
boolean hasMediaInfoList = jsonObject.has("media_info_list");
if (hasMediaInfoList) {
return WxMaGsonBuilder.create().fromJson(jsonObject.getAsJsonArray("media_info_list"),
new TypeToken<List<WxMaVodMediaInfo>>() {
}.getType());
} else {
return null;
}
}
@Override
public List<WxMaVodDramaInfo> listDrama(WxMaVodListDramaRequest mediaRequest) throws WxErrorException {
String responseContent = this.service.post(LIST_DRAMAS_URL, mediaRequest.toJson());
JsonObject jsonObject = GsonParser.parse(responseContent);
boolean hasMediaInfoList = jsonObject.has("drama_info_list");
if (hasMediaInfoList) {
return WxMaGsonBuilder.create().fromJson(jsonObject.getAsJsonArray("drama_info_list"),
new TypeToken<List<WxMaVodDramaInfo>>() {
}.getType());
} else {
return null;
}
}
@Override
public WxMaVodMediaPlaybackInfo getMediaLink(WxMaVodGetMediaLinkRequest request) throws WxErrorException {
String responseContent = this.service.post(GET_MEDIA_LINK_URL, request.toJson());
WxMaVodGetMediaLinkResponse getDetailResponse = WxMaGsonBuilder.create()
.fromJson(responseContent, WxMaVodGetMediaLinkResponse.class);
if (getDetailResponse.getErrcode() != 0) {
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
}
return getDetailResponse.getMediaInfo();
}
@Override
public WxMaVodMediaInfo getMedia(WxMaVodGetMediaRequest request) throws WxErrorException {
String responseContent = this.service.post(GET_MEDIA_URL, request.toJson());
WxMaVodGetMediaResponse getDetailResponse = WxMaGsonBuilder.create()
.fromJson(responseContent, WxMaVodGetMediaResponse.class);
if (getDetailResponse.getErrcode() != 0) {
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
}
return getDetailResponse.getMediaInfo();
}
@Override
public boolean deleteMedia(WxMaVodDeleteMediaRequest request) throws WxErrorException {
String responseContent = this.service.post(DELETE_MEDIA_URL, request.toJson());
WxMaBaseResponse getDetailResponse = WxMaGsonBuilder.create()
.fromJson(responseContent, WxMaBaseResponse.class);
if (getDetailResponse.getErrcode() != 0) {
throw new WxErrorException(
new WxError(getDetailResponse.getErrcode(), getDetailResponse.getErrmsg()));
}
return true;
}
@Override
public WxMaVodDramaInfo getDrama(WxMaVodGetDramaRequest request) throws WxErrorException {
String responseContent = this.service.post(GET_DRAMA_URL, request.toJson());
WxMaVodGetDramaResponse getDetailResponse = WxMaGsonBuilder.create()
.fromJson(responseContent, WxMaVodGetDramaResponse.class);
if (getDetailResponse.getErrcode() != 0) {
throw new WxErrorException(
new WxError(getDetailResponse.getErrcode(), getDetailResponse.getErrmsg()));
}
return getDetailResponse.getDramaInfo();
}
@Override
public Integer auditDrama(WxMaVodAuditDramaRequest request) throws WxErrorException {
String responseContent = this.service.post(AUDIT_DRAMA_URL, request.toJson());
WxMaVodAuditDramaResponse getDetailResponse = WxMaGsonBuilder.create()
.fromJson(responseContent, WxMaVodAuditDramaResponse.class);
if (getDetailResponse.getErrcode() != 0) {
throw new WxErrorException(
new WxError(getDetailResponse.getErrcode(), getDetailResponse.getErrmsg()));
}
return getDetailResponse.getDramaId();
}
}