Skip to content

Commit f0827e7

Browse files
authored
Merge pull request #33 from ZJUCJH/main
[update] 1.新增查询推送量和获取推送实时结果接口;2.报表相关接口反参解析问题修复;3.部分接口入参规范
2 parents 4efd5d3 + 11fe4a4 commit f0827e7

File tree

13 files changed

+209
-75
lines changed

13 files changed

+209
-75
lines changed

CHANGES.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
# Release Notes
22

3+
## 1.0.0.10
4+
5+
### update
6+
7+
* 新增查询推送量和获取推送实时结果接口
8+
* 报表相关接口反参解析问题修复
9+
* 部分接口入参规范
10+
311
## 1.0.0.9
12+
413
### update
14+
515
* 新增自定义回执字段SVIP功能
616

717
## 1.0.0.8
18+
819
### update
20+
921
* ApiHelper和DefaultApiClient 缓存key支持设置自定义前缀,满足客户特殊使用场景
1022
* 完善参数和注释
1123

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<dependency>
2323
<groupId>com.getui.push</groupId>
2424
<artifactId>restful-sdk</artifactId>
25-
<version>1.0.0.9</version>
25+
<version>1.0.0.10</version>
2626
</dependency>
2727
```
2828

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<groupId>com.getui.push</groupId>
88
<artifactId>restful-sdk</artifactId>
99
<packaging>jar</packaging>
10-
<version>1.0.0.9</version>
10+
<version>1.0.0.10</version>
1111
<url>https://github.com/GetuiLaboratory/getui-pushapi-java-client-v2</url>
1212
<name>Getui Push API Java Client</name>
1313
<description>Getui's officially supported Java client library for accessing Getui APIs.</description>

src/main/java/com/getui/push/v2/sdk/api/StatisticApi.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.getui.push.v2.sdk.anno.param.GtPathParam;
55
import com.getui.push.v2.sdk.anno.param.GtQueryParam;
66
import com.getui.push.v2.sdk.common.ApiResult;
7+
import com.getui.push.v2.sdk.dto.res.PushCountDTO;
78
import com.getui.push.v2.sdk.dto.res.statistic.StatisticDTO;
89
import com.getui.push.v2.sdk.dto.res.statistic.UserStatisticDTO;
910

@@ -72,4 +73,22 @@ public interface StatisticApi {
7273
@GtGet(uri = "/report/online_user")
7374
ApiResult<Map<String, Map<String, Integer>>> queryOnlineUserData();
7475

76+
77+
/**
78+
* 查询推送量
79+
*
80+
* @return
81+
*/
82+
@GtGet(uri = "/report/push/count")
83+
ApiResult<Map<String, Map<String, PushCountDTO>>> queryPushCountData();
84+
85+
/**
86+
* 获取推送实时结果
87+
*
88+
* @param taskIds
89+
* @return
90+
*/
91+
@GtGet(uri = "/report/push/task/${taskid}/detail")
92+
ApiResult<Map<String, Map<String, StatisticDTO>>> queryPushTaskDetailData(@GtPathParam Set<String> taskIds);
93+
7594
}

src/main/java/com/getui/push/v2/sdk/api/UserApi.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ public interface UserApi {
3535
/**
3636
* 根据cid查询别名
3737
*
38-
* @param cidList
38+
* @param cid
3939
* @return
4040
*/
4141
@GtGet(uri = "/user/alias/cid/")
42-
ApiResult<AliasResDTO> queryAliasByCid(@GtPathParam Set<String> cidList);
42+
ApiResult<AliasResDTO> queryAliasByCid(@GtPathParam String cid);
4343

4444
/**
4545
* 根据别名查询cid

src/main/java/com/getui/push/v2/sdk/core/Configs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public interface Configs {
1313

1414
String HEADER_DOMAIN_HASH_KEY = "domainHash";
1515
String HEADER_OPEN_STABLE_DOMAIN = "openStableDomain";
16-
String SDK_VERSION = "1.0.0.9";
16+
String SDK_VERSION = "1.0.0.10";
1717
/**
1818
* 预置域名列表
1919
*/

src/main/java/com/getui/push/v2/sdk/core/DefaultJson.java

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package com.getui.push.v2.sdk.core;
22

33
import com.getui.push.v2.sdk.IJson;
4-
import com.google.gson.FieldNamingPolicy;
5-
import com.google.gson.Gson;
6-
import com.google.gson.GsonBuilder;
4+
import com.getui.push.v2.sdk.dto.res.statistic.StatisticDTO;
5+
import com.google.gson.*;
76

87
import java.lang.reflect.Type;
8+
import java.text.NumberFormat;
9+
import java.util.List;
10+
import java.util.Map;
11+
912

1013
/**
1114
* create by getui on 2020/9/25
@@ -18,6 +21,37 @@ public class DefaultJson implements IJson {
1821
public static Gson createGson() {
1922
GsonBuilder gsonBuilder = new GsonBuilder();
2023
gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
24+
gsonBuilder.registerTypeAdapter(Map.class, new JsonDeserializer<StatisticDTO>() {
25+
@Override
26+
public StatisticDTO deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
27+
StatisticDTO statisticDTO = new StatisticDTO();
28+
JsonObject jo = json.getAsJsonObject();
29+
for (Map.Entry<String, JsonElement> mx : jo.entrySet()) {
30+
String key = mx.getKey();
31+
JsonElement v = mx.getValue();
32+
if (v.isJsonArray()) {
33+
statisticDTO.put(key, context.deserialize(v, List.class));
34+
} else if (v.isJsonPrimitive()) {
35+
Object value = v.getAsString();
36+
try {
37+
Number numValue = NumberFormat.getInstance().parse((String) value);
38+
if (numValue != null && numValue.toString().equals(value)) {
39+
if (numValue instanceof Long && (Long) numValue <= Integer.MAX_VALUE && (Long) numValue >= Integer.MIN_VALUE) {
40+
value = Integer.valueOf((String) value);
41+
} else {
42+
value = numValue;
43+
}
44+
}
45+
} catch (Exception ignored) {
46+
}
47+
statisticDTO.put(key, value);
48+
} else if (v.isJsonObject()) {
49+
statisticDTO.put(key, context.deserialize(v, Map.class));
50+
}
51+
}
52+
return statisticDTO;
53+
}
54+
});
2155
return gsonBuilder.create();
2256
}
2357

src/main/java/com/getui/push/v2/sdk/core/client/DefaultApiClient.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -500,10 +500,14 @@ private String genFullUrl(String uri, String pathParams, List<String> queryParam
500500
host = host + uri;
501501
} else {
502502
host += uri;
503-
if (host.endsWith("/")) {
504-
host += pathParams;
503+
if (Pattern.matches(".*\\$\\{.+}.*", host)) {
504+
host = host.replaceAll("\\$\\{.+}", pathParams);
505505
} else {
506-
host = host + "/" + pathParams;
506+
if (host.endsWith("/")) {
507+
host += pathParams;
508+
} else {
509+
host = host + "/" + pathParams;
510+
}
507511
}
508512
}
509513
if (Utils.isEmpty(queryParams)) {
Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
package com.getui.push.v2.sdk.dto.req;
22

33
import com.getui.push.v2.sdk.common.ApiException;
4-
import com.getui.push.v2.sdk.common.Assert;
5-
6-
import java.util.HashSet;
7-
import java.util.Set;
84

95
/**
106
* create by getui on 2020/6/3
@@ -16,34 +12,25 @@ public class QueryAliasDTO implements BaseReqDTO {
1612
/**
1713
* 路径参数cid
1814
*/
19-
private Set<String> cidSet;
20-
21-
public QueryAliasDTO add(String cid) {
22-
Assert.notBlank(cid, "cid");
23-
if (cidSet == null) {
24-
cidSet = new HashSet<String>();
25-
}
26-
cidSet.add(cid);
27-
return this;
28-
}
15+
private String cid;
2916

3017
@Override
3118
public void check() throws ApiException {
3219

3320
}
3421

35-
public Set<String> getCidSet() {
36-
return cidSet;
22+
public String getCid() {
23+
return cid;
3724
}
3825

39-
public void setCidSet(Set<String> cidSet) {
40-
this.cidSet = cidSet;
26+
public void setCid(String cid) {
27+
this.cid = cid;
4128
}
4229

4330
@Override
4431
public String toString() {
4532
return "QueryAliasDTO{" +
46-
"cidSet=" + cidSet +
33+
"cid='" + cid + '\'' +
4734
'}';
4835
}
4936
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package com.getui.push.v2.sdk.dto.res;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* @author getui
7+
*/
8+
public class PushCountDTO {
9+
10+
/**
11+
* 单日可推送总量
12+
*/
13+
@SerializedName("total_num")
14+
private Integer totalNum;
15+
16+
/**
17+
* 单日可推送剩余量
18+
*/
19+
@SerializedName("remain_num")
20+
private Integer remainNum;
21+
22+
/**
23+
* 单日可推送请求量
24+
* 仅vv返回该字段
25+
*/
26+
@SerializedName("push_num")
27+
private Integer pushNum;
28+
29+
/**
30+
* 是否被限量
31+
* 当日可推送总量使用完时,该字段更新true
32+
*/
33+
@SerializedName("limit")
34+
private Boolean limit;
35+
36+
37+
public Integer getTotalNum() {
38+
return totalNum;
39+
}
40+
41+
public void setTotalNum(Integer totalNum) {
42+
this.totalNum = totalNum;
43+
}
44+
45+
public Integer getRemainNum() {
46+
return remainNum;
47+
}
48+
49+
public void setRemainNum(Integer remainNum) {
50+
this.remainNum = remainNum;
51+
}
52+
53+
public Integer getPushNum() {
54+
return pushNum;
55+
}
56+
57+
public void setPushNum(Integer pushNum) {
58+
this.pushNum = pushNum;
59+
}
60+
61+
public Boolean getLimit() {
62+
return limit;
63+
}
64+
65+
public void setLimit(Boolean limit) {
66+
this.limit = limit;
67+
}
68+
69+
@Override
70+
public String toString() {
71+
return "PushCountDTO{" +
72+
"totalNum=" + totalNum +
73+
", remainNum=" + remainNum +
74+
", pushNum=" + pushNum +
75+
", limit=" + limit +
76+
'}';
77+
}
78+
}

0 commit comments

Comments
 (0)