Skip to content

Commit af8928f

Browse files
kevinzhwlzhongjun96
authored andcommitted
🆕 binarywang#3115【小程序】增加短剧媒资管理相关接口支持
1 parent 88a781b commit af8928f

23 files changed

+881
-0
lines changed

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,4 +542,10 @@ public interface WxMaService extends WxService {
542542
* @return getWxMaOpenApiService
543543
*/
544544
WxMaOpenApiService getWxMaOpenApiService();
545+
/**
546+
* 小程序短剧管理
547+
*
548+
* @return getWxMaVodService
549+
*/
550+
WxMaVodService getWxMaVodService();
545551
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package cn.binarywang.wx.miniapp.api;
2+
3+
import cn.binarywang.wx.miniapp.bean.vod.*;
4+
import me.chanjar.weixin.common.error.WxErrorException;
5+
6+
import java.util.List;
7+
8+
public interface WxMaVodService {
9+
List<WxMaVodMediaInfo> listMedia(WxMaVodListMediaRequest request) throws WxErrorException;
10+
11+
List<WxMaVodDramaInfo> listDrama(WxMaVodListDramaRequest request) throws WxErrorException;
12+
13+
WxMaVodMediaPlaybackInfo getMediaLink(WxMaVodGetMediaLinkRequest request) throws WxErrorException;
14+
15+
WxMaVodMediaInfo getMedia(WxMaVodGetMediaRequest request) throws WxErrorException;
16+
17+
boolean deleteMedia(WxMaVodDeleteMediaRequest request) throws WxErrorException;
18+
19+
WxMaVodDramaInfo getDrama(WxMaVodGetDramaRequest request) throws WxErrorException;
20+
21+
Integer auditDrama(WxMaVodAuditDramaRequest request) throws WxErrorException;
22+
23+
}

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
8989
private final WxMaOrderShippingService wxMaOrderShippingService = new WxMaOrderShippingServiceImpl(this);
9090

9191
private final WxMaOpenApiService wxMaOpenApiService = new WxMaOpenApiServiceImpl(this);
92+
private final WxMaVodService wxMaVodService = new WxMaVodServiceImpl(this);
9293

9394
private Map<String, WxMaConfig> configMap = new HashMap<>();
9495
private int retrySleepMillis = 1000;
@@ -664,4 +665,9 @@ public WxMaOrderShippingService getWxMaOrderShippingService() {
664665
public WxMaOpenApiService getWxMaOpenApiService() {
665666
return this.wxMaOpenApiService;
666667
}
668+
@Override
669+
public WxMaVodService getWxMaVodService() {
670+
return this.wxMaVodService;
671+
}
672+
667673
}
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
package cn.binarywang.wx.miniapp.api.impl;
2+
3+
import cn.binarywang.wx.miniapp.api.WxMaService;
4+
import cn.binarywang.wx.miniapp.api.WxMaVodService;
5+
import cn.binarywang.wx.miniapp.bean.WxMaBaseResponse;
6+
import cn.binarywang.wx.miniapp.bean.vod.*;
7+
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
8+
import com.google.gson.JsonObject;
9+
import com.google.gson.reflect.TypeToken;
10+
import lombok.RequiredArgsConstructor;
11+
import lombok.extern.slf4j.Slf4j;
12+
import me.chanjar.weixin.common.enums.WxType;
13+
import me.chanjar.weixin.common.error.WxError;
14+
import me.chanjar.weixin.common.error.WxErrorException;
15+
import me.chanjar.weixin.common.util.json.GsonParser;
16+
17+
import java.util.List;
18+
19+
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Vod.*;
20+
21+
22+
@RequiredArgsConstructor
23+
@Slf4j
24+
public class WxMaVodServiceImpl implements WxMaVodService {
25+
26+
private final WxMaService service;
27+
28+
@Override
29+
public List<WxMaVodMediaInfo> listMedia(WxMaVodListMediaRequest mediaRequest) throws WxErrorException {
30+
String responseContent = this.service.post(LIST_MEDIA_URL, mediaRequest.toJson());
31+
32+
JsonObject jsonObject = GsonParser.parse(responseContent);
33+
boolean hasMediaInfoList = jsonObject.has("media_info_list");
34+
if (hasMediaInfoList) {
35+
return WxMaGsonBuilder.create().fromJson(jsonObject.getAsJsonArray("media_info_list"),
36+
new TypeToken<List<WxMaVodMediaInfo>>() {
37+
}.getType());
38+
} else {
39+
return null;
40+
}
41+
}
42+
43+
44+
@Override
45+
public List<WxMaVodDramaInfo> listDrama(WxMaVodListDramaRequest mediaRequest) throws WxErrorException {
46+
String responseContent = this.service.post(LIST_DRAMAS_URL, mediaRequest.toJson());
47+
JsonObject jsonObject = GsonParser.parse(responseContent);
48+
boolean hasMediaInfoList = jsonObject.has("drama_info_list");
49+
if (hasMediaInfoList) {
50+
return WxMaGsonBuilder.create().fromJson(jsonObject.getAsJsonArray("drama_info_list"),
51+
new TypeToken<List<WxMaVodDramaInfo>>() {
52+
}.getType());
53+
} else {
54+
return null;
55+
}
56+
}
57+
58+
59+
@Override
60+
public WxMaVodMediaPlaybackInfo getMediaLink(WxMaVodGetMediaLinkRequest request) throws WxErrorException {
61+
String responseContent = this.service.post(GET_MEDIA_LINK_URL, request.toJson());
62+
WxMaVodGetMediaLinkResponse getDetailResponse = WxMaGsonBuilder.create()
63+
.fromJson(responseContent, WxMaVodGetMediaLinkResponse.class);
64+
65+
if (getDetailResponse.getErrcode() != 0) {
66+
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
67+
}
68+
return getDetailResponse.getMediaInfo();
69+
}
70+
71+
72+
@Override
73+
public WxMaVodMediaInfo getMedia(WxMaVodGetMediaRequest request) throws WxErrorException {
74+
String responseContent = this.service.post(GET_MEDIA_URL, request.toJson());
75+
WxMaVodGetMediaResponse getDetailResponse = WxMaGsonBuilder.create()
76+
.fromJson(responseContent, WxMaVodGetMediaResponse.class);
77+
78+
if (getDetailResponse.getErrcode() != 0) {
79+
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
80+
}
81+
return getDetailResponse.getMediaInfo();
82+
}
83+
84+
@Override
85+
public boolean deleteMedia(WxMaVodDeleteMediaRequest request) throws WxErrorException {
86+
String responseContent = this.service.post(DELETE_MEDIA_URL, request.toJson());
87+
WxMaBaseResponse getDetailResponse = WxMaGsonBuilder.create()
88+
.fromJson(responseContent, WxMaBaseResponse.class);
89+
90+
if (getDetailResponse.getErrcode() != 0) {
91+
throw new WxErrorException(
92+
new WxError(getDetailResponse.getErrcode(), getDetailResponse.getErrmsg()));
93+
}
94+
95+
return true;
96+
}
97+
98+
@Override
99+
public WxMaVodDramaInfo getDrama(WxMaVodGetDramaRequest request) throws WxErrorException {
100+
String responseContent = this.service.post(GET_DRAMA_URL, request.toJson());
101+
WxMaVodGetDramaResponse getDetailResponse = WxMaGsonBuilder.create()
102+
.fromJson(responseContent, WxMaVodGetDramaResponse.class);
103+
104+
if (getDetailResponse.getErrcode() != 0) {
105+
throw new WxErrorException(
106+
new WxError(getDetailResponse.getErrcode(), getDetailResponse.getErrmsg()));
107+
}
108+
109+
return getDetailResponse.getDramaInfo();
110+
111+
}
112+
113+
@Override
114+
public Integer auditDrama(WxMaVodAuditDramaRequest request) throws WxErrorException {
115+
String responseContent = this.service.post(AUDIT_DRAMA_URL, request.toJson());
116+
WxMaVodAuditDramaResponse getDetailResponse = WxMaGsonBuilder.create()
117+
.fromJson(responseContent, WxMaVodAuditDramaResponse.class);
118+
119+
if (getDetailResponse.getErrcode() != 0) {
120+
throw new WxErrorException(
121+
new WxError(getDetailResponse.getErrcode(), getDetailResponse.getErrmsg()));
122+
}
123+
124+
return getDetailResponse.getDramaId();
125+
126+
}
127+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package cn.binarywang.wx.miniapp.bean.vod;
2+
3+
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
4+
import com.google.gson.annotations.SerializedName;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Builder;
7+
import lombok.Data;
8+
import lombok.NoArgsConstructor;
9+
10+
import java.io.Serializable;
11+
import java.util.List;
12+
13+
@Data
14+
@Builder
15+
@NoArgsConstructor
16+
@AllArgsConstructor
17+
public class WxMaVodAuditDramaRequest implements Serializable {
18+
private static final long serialVersionUID = 7495157056049312108L;
19+
20+
@SerializedName("drama_id")
21+
private Integer dramaId;
22+
@SerializedName("name")
23+
private String name;
24+
@SerializedName("media_count")
25+
private Long mediaCount;
26+
@SerializedName("media_id_list")
27+
private List<Integer> mediaIdList;
28+
@SerializedName("producer")
29+
private String producer;
30+
@SerializedName("cover_material_id")
31+
private String coverMaterialId;
32+
@SerializedName("authorized_material_id")
33+
private String authorizedMaterialId;
34+
@SerializedName("registration_number")
35+
private String registrationNumber;
36+
@SerializedName("publish_license")
37+
private String publishLicense;
38+
@SerializedName("publish_license_material_id")
39+
private String publishLicenseMaterialId;
40+
@SerializedName("expedited")
41+
private Long expedited;
42+
43+
public String toJson() {
44+
return WxMaGsonBuilder.create().toJson(this);
45+
}
46+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package cn.binarywang.wx.miniapp.bean.vod;
2+
3+
import cn.binarywang.wx.miniapp.bean.WxMaBaseResponse;
4+
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
5+
import com.google.gson.annotations.SerializedName;
6+
import lombok.AllArgsConstructor;
7+
import lombok.Builder;
8+
import lombok.Data;
9+
import lombok.NoArgsConstructor;
10+
11+
import java.io.Serializable;
12+
13+
@Data
14+
@Builder
15+
@NoArgsConstructor
16+
@AllArgsConstructor
17+
public class WxMaVodAuditDramaResponse extends WxMaBaseResponse implements Serializable {
18+
private static final long serialVersionUID = 7495157056049312108L;
19+
@SerializedName("drama_id")
20+
private Integer dramaId;
21+
22+
public String toJson() {
23+
return WxMaGsonBuilder.create().toJson(this);
24+
}
25+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package cn.binarywang.wx.miniapp.bean.vod;
2+
3+
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
4+
import com.google.gson.annotations.SerializedName;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Builder;
7+
import lombok.Data;
8+
import lombok.NoArgsConstructor;
9+
10+
import java.io.Serializable;
11+
12+
@Data
13+
@Builder
14+
@NoArgsConstructor
15+
@AllArgsConstructor
16+
public class WxMaVodDeleteMediaRequest implements Serializable {
17+
private static final long serialVersionUID = 7495157056049312108L;
18+
19+
@SerializedName("media_id")
20+
private Integer mediaId;
21+
22+
public String toJson() {
23+
return WxMaGsonBuilder.create().toJson(this);
24+
}
25+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package cn.binarywang.wx.miniapp.bean.vod;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Builder;
6+
import lombok.Data;
7+
import lombok.NoArgsConstructor;
8+
import lombok.experimental.Accessors;
9+
10+
import java.io.Serializable;
11+
import java.util.List;
12+
13+
@Data
14+
@Builder
15+
@NoArgsConstructor
16+
@AllArgsConstructor
17+
@Accessors(chain = true)
18+
public class WxMaVodDramaInfo implements Serializable {
19+
private static final long serialVersionUID = -7663757440028175135L;
20+
21+
private String name;
22+
private String producer;
23+
private String playwright;
24+
25+
@SerializedName("drama_id")
26+
private Integer dramaId;
27+
@SerializedName("create_time")
28+
private Long createTime;
29+
@SerializedName("cover_url")
30+
private String coverUrl;
31+
@SerializedName("media_count")
32+
private Long mediaCount;
33+
@SerializedName("expedited")
34+
private Long expedited;
35+
@SerializedName("production_license")
36+
private String productionLicense;
37+
@SerializedName("description")
38+
private String description;
39+
40+
@SerializedName("audit_detail")
41+
private DramaAuditDetail auditDetail;
42+
@SerializedName("media_list")
43+
private List<DramaMediaInfo> mediaList;
44+
45+
@Data
46+
public static class DramaAuditDetail {
47+
48+
@SerializedName("status")
49+
private Integer status;
50+
@SerializedName("create_time")
51+
private Long createTime;
52+
@SerializedName("audit_time")
53+
private Long auditTime;
54+
}
55+
56+
@Data
57+
public static class DramaMediaInfo {
58+
59+
@SerializedName("media_id")
60+
private Integer mediaId;
61+
62+
63+
}
64+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package cn.binarywang.wx.miniapp.bean.vod;
2+
3+
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
4+
import com.google.gson.annotations.SerializedName;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Builder;
7+
import lombok.Data;
8+
import lombok.NoArgsConstructor;
9+
10+
import java.io.Serializable;
11+
12+
@Data
13+
@Builder
14+
@NoArgsConstructor
15+
@AllArgsConstructor
16+
public class WxMaVodGetDramaRequest implements Serializable {
17+
private static final long serialVersionUID = 7495157056049312108L;
18+
19+
@SerializedName("drama_id")
20+
private Integer dramaId;
21+
22+
public String toJson() {
23+
return WxMaGsonBuilder.create().toJson(this);
24+
}
25+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package cn.binarywang.wx.miniapp.bean.vod;
2+
3+
import cn.binarywang.wx.miniapp.bean.WxMaBaseResponse;
4+
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
5+
import com.google.gson.annotations.SerializedName;
6+
import lombok.AllArgsConstructor;
7+
import lombok.Builder;
8+
import lombok.Data;
9+
import lombok.NoArgsConstructor;
10+
11+
import java.io.Serializable;
12+
13+
@Data
14+
@Builder
15+
@NoArgsConstructor
16+
@AllArgsConstructor
17+
public class WxMaVodGetDramaResponse extends WxMaBaseResponse implements Serializable {
18+
private static final long serialVersionUID = 7495157056049312108L;
19+
@SerializedName("drama_info")
20+
private WxMaVodDramaInfo dramaInfo;
21+
22+
23+
public String toJson() {
24+
return WxMaGsonBuilder.create().toJson(this);
25+
}
26+
}

0 commit comments

Comments
 (0)