Skip to content

Commit 99298da

Browse files
authored
Merge pull request #54 from ZJUCJH/main
[feature] 1.支持活跃行为过滤功能;2.新增cidByTag推送方式
2 parents 4afe097 + 1b9087e commit 99298da

File tree

10 files changed

+217
-8
lines changed

10 files changed

+217
-8
lines changed

CHANGES.md

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

3+
## 1.0.4.0
4+
5+
### update
6+
7+
* 支持活跃行为过滤功能
8+
* 新增pushToSingleCidByTag和pushListCidByTag推送接口
9+
310
## 1.0.3.0
411

512
### update

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.3.0</version>
25+
<version>1.0.4.0</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.3.0</version>
10+
<version>1.0.4.0</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/PushApi.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@
2323
public interface PushApi {
2424

2525
String singleCidUri = "/push/single/cid";
26+
String singleCidByTagUri = "/push/single/cid_by_tag";
2627
String singleAliasUri = "/push/single/alias";
2728
String singleBatchCidUri = "/push/single/batch/cid";
2829
String singleBatchAliasUri = "/push/single/batch/alias";
2930
String pushListMessageUri = "/push/list/message";
3031
String pushListCidUri = "/push/list/cid";
32+
String pushListCidByTagUri = "/push/list/cid_by_tag";
3133
String pushListAliasUri = "/push/list/alias";
3234

3335
/**
@@ -39,6 +41,16 @@ public interface PushApi {
3941
@GtPost(uri = singleCidUri)
4042
ApiResult<Map<String, Map<String, String>>> pushToSingleByCid(@GtBodyParam PushDTO<Audience> pushDTO);
4143

44+
/**
45+
* 根据标签条件过滤后的cid推送(异步)
46+
* 定制接口,需申请开通才可以使用
47+
*
48+
* @param pushDTO pushDTO
49+
* @return ApiResult
50+
*/
51+
@GtPost(uri = singleCidByTagUri)
52+
ApiResult<Map<String, Map<String, String>>> pushToSingleCidByTag(@GtBodyParam PushDTO<Audience> pushDTO);
53+
4254
/**
4355
* 根据别名推送
4456
*
@@ -57,6 +69,16 @@ public interface PushApi {
5769
@GtPost(uri = singleBatchCidUri)
5870
ApiResult<Map<String, Map<String, String>>> pushBatchByCid(@GtBodyParam PushBatchDTO pushBatchDTO);
5971

72+
/**
73+
* 根据标签条件过滤后的cid批量推送(异步)
74+
* 定制接口,需申请开通才可以使用
75+
*
76+
* @param audienceDTO audienceDTO
77+
* @return ApiResult
78+
*/
79+
@GtPost(uri = pushListCidByTagUri)
80+
ApiResult<Map<String, Map<String, String>>> pushListCidByTag(@GtBodyParam AudienceDTO audienceDTO);
81+
6082
/**
6183
* 根据别名批量推送
6284
*

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.3.0";
16+
String SDK_VERSION = "1.0.4.0";
1717
/**
1818
* 预置域名列表
1919
*/

src/main/java/com/getui/push/v2/sdk/dto/CommonEnum.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,33 @@
77
*/
88
public interface CommonEnum {
99

10+
enum ActivateFilterTypeEnum {
11+
ACTIVE(1, "活跃"),
12+
INACTIVE(-1, "非活跃");
13+
14+
public final int type;
15+
public final String msg;
16+
17+
ActivateFilterTypeEnum(int type, String msg) {
18+
this.type = type;
19+
this.msg = msg;
20+
}
21+
}
22+
23+
enum CidByTagOpTypeEnum {
24+
OR(0, "只要包含一个就推"),
25+
AND(1, "全包含才推送, 默认值"),
26+
NOT(2, "全不包含才推送");
27+
28+
public final int type;
29+
public final String msg;
30+
31+
CidByTagOpTypeEnum(int type, String msg) {
32+
this.type = type;
33+
this.msg = msg;
34+
}
35+
}
36+
1037
enum ClickTypeEnum {
1138
TYPE_INTENT("intent", "打开应用内特定页面"),
1239
TYPE_URL("url", "打开网页地址"),
@@ -26,8 +53,7 @@ enum ClickTypeEnum {
2653

2754
enum HarmonyClickTypeEnum {
2855
TYPE_WANT("want", "打开应用内特定页面"),
29-
TYPE_STARTAPP("startapp", "打开应用首页")
30-
;
56+
TYPE_STARTAPP("startapp", "打开应用首页");
3157
public final String type;
3258
public final String msg;
3359

src/main/java/com/getui/push/v2/sdk/dto/req/Audience.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Audience {
1313
private String fastCustomTag;
1414
private List<Condition> tag;
1515
private String all;
16+
private List<CidByTagDTO> cidByTag;
1617

1718
public void addCid(String cid) {
1819
if (this.cid == null) {
@@ -21,6 +22,13 @@ public void addCid(String cid) {
2122
this.cid.add(cid);
2223
}
2324

25+
public void addCidByTag(CidByTagDTO cidByTag) {
26+
if (this.cidByTag == null) {
27+
this.cidByTag = new ArrayList<>();
28+
}
29+
this.cidByTag.add(cidByTag);
30+
}
31+
2432
public void addAlias(String alias) {
2533
if (this.alias == null) {
2634
this.alias = new ArrayList<String>();
@@ -83,6 +91,14 @@ public void setAll(String all) {
8391
this.all = all;
8492
}
8593

94+
public List<CidByTagDTO> getCidByTag() {
95+
return cidByTag;
96+
}
97+
98+
public void setCidByTag(List<CidByTagDTO> cidByTag) {
99+
this.cidByTag = cidByTag;
100+
}
101+
86102
@Override
87103
public String toString() {
88104
return "Audience{" +
@@ -92,6 +108,7 @@ public String toString() {
92108
", fastCustomTag='" + fastCustomTag + '\'' +
93109
", tag=" + tag +
94110
", all='" + all + '\'' +
111+
", cidByTag=" + cidByTag +
95112
'}';
96113
}
97114
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.getui.push.v2.sdk.dto.req;
2+
3+
import com.getui.push.v2.sdk.dto.CommonEnum;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
public class CidByTagDTO {
9+
private String cid;
10+
/**
11+
* 标签列表
12+
*/
13+
private List<String> tag;
14+
/**
15+
* @see CommonEnum.CidByTagOpTypeEnum
16+
* 标签条件过滤类型
17+
*/
18+
private Integer opType = CommonEnum.CidByTagOpTypeEnum.OR.type;
19+
20+
public String getCid() {
21+
return cid;
22+
}
23+
24+
public void setCid(String cid) {
25+
this.cid = cid;
26+
}
27+
28+
public List<String> getTag() {
29+
return tag;
30+
}
31+
32+
public void setTag(List<String> tag) {
33+
this.tag = tag;
34+
}
35+
36+
public void addTag(String tag) {
37+
if (this.tag == null) {
38+
this.tag = new ArrayList<>();
39+
}
40+
this.tag.add(tag);
41+
}
42+
43+
public Integer getOpType() {
44+
return opType;
45+
}
46+
47+
public void setOpType(CommonEnum.CidByTagOpTypeEnum opType) {
48+
this.opType = opType.type;
49+
}
50+
51+
@Override
52+
public String toString() {
53+
return "CidByTagDTO{" +
54+
"cid='" + cid + '\'' +
55+
", tag=" + tag +
56+
", opType=" + opType +
57+
'}';
58+
}
59+
}

src/main/java/com/getui/push/v2/sdk/dto/req/Settings.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.getui.push.v2.sdk.dto.req;
22

3+
import com.getui.push.v2.sdk.dto.CommonEnum;
4+
35
/**
46
* 推送条件
57
*/
@@ -42,6 +44,16 @@ public class Settings {
4244
*/
4345
private Boolean needBackup;
4446

47+
/**
48+
* 活跃行为的自定义天数,近${activate_filter_day}天活跃/非活跃用户
49+
*/
50+
private Integer activateFilterDay;
51+
/**
52+
* @see CommonEnum.ActivateFilterTypeEnum
53+
* 活跃行为的类型
54+
*/
55+
private Integer activateFilterType;
56+
4557
public Integer getTtl() {
4658
return ttl;
4759
}
@@ -106,6 +118,22 @@ public void setNeedBackup(Boolean needBackup) {
106118
this.needBackup = needBackup;
107119
}
108120

121+
public Integer getActivateFilterDay() {
122+
return activateFilterDay;
123+
}
124+
125+
public void setActivateFilterDay(Integer activateFilterDay) {
126+
this.activateFilterDay = activateFilterDay;
127+
}
128+
129+
public Integer getActivateFilterType() {
130+
return activateFilterType;
131+
}
132+
133+
public void setActivateFilterType(CommonEnum.ActivateFilterTypeEnum activateFilterTypeEnum) {
134+
this.activateFilterType = activateFilterTypeEnum.type;
135+
}
136+
109137
@Override
110138
public String toString() {
111139
return "Settings{" +
@@ -117,6 +145,8 @@ public String toString() {
117145
", filterNotifyOff=" + filterNotifyOff +
118146
", activeDays=" + activeDays +
119147
", needBackup=" + needBackup +
148+
", activateFilterDay=" + activateFilterDay +
149+
", activateFilterType=" + activateFilterType +
120150
'}';
121151
}
122152
}

src/test/java/com/getui/push/v2/sdk/api/PushApiTest.java

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
import com.getui.push.v2.sdk.dto.req.message.PushMessage;
1212
import com.getui.push.v2.sdk.dto.req.message.android.AndroidDTO;
1313
import com.getui.push.v2.sdk.dto.req.message.android.GTNotification;
14-
import com.getui.push.v2.sdk.dto.req.message.harmony.HarmonyDTO;
15-
import com.getui.push.v2.sdk.dto.req.message.harmony.HarmonyNotification;
16-
import com.getui.push.v2.sdk.dto.res.ScheduleTaskDTO;
1714
import com.getui.push.v2.sdk.dto.req.message.android.ThirdNotification;
1815
import com.getui.push.v2.sdk.dto.req.message.android.Ups;
16+
import com.getui.push.v2.sdk.dto.req.message.harmony.HarmonyDTO;
17+
import com.getui.push.v2.sdk.dto.req.message.harmony.HarmonyNotification;
1918
import com.getui.push.v2.sdk.dto.req.message.ios.Alert;
2019
import com.getui.push.v2.sdk.dto.req.message.ios.Aps;
2120
import com.getui.push.v2.sdk.dto.req.message.ios.IosDTO;
21+
import com.getui.push.v2.sdk.dto.res.ScheduleTaskDTO;
2222
import com.getui.push.v2.sdk.dto.res.TaskIdDTO;
2323
import org.junit.Before;
2424
import org.junit.Test;
@@ -65,6 +65,17 @@ public void pushToSingleByCid() throws InterruptedException {
6565
}
6666
}
6767

68+
@Test
69+
public void pushToSingleCidByTag() {
70+
PushDTO<Audience> pushDTO = pushDTO();
71+
fullCidByTag(pushDTO);
72+
pushDTO.getSettings().setActivateFilterDay(4);
73+
pushDTO.getSettings().setActivateFilterType(CommonEnum.ActivateFilterTypeEnum.INACTIVE);
74+
pushDTO.getSettings().setActivateFilterType(CommonEnum.ActivateFilterTypeEnum.ACTIVE);
75+
ApiResult<Map<String, Map<String, String>>> apiResult = pushApi.pushToSingleCidByTag(pushDTO);
76+
System.out.println(apiResult);
77+
}
78+
6879
@Test
6980
public void pushToSingleByAlias() {
7081
PushDTO<Audience> pushDTO = pushDTO();
@@ -119,6 +130,33 @@ public void pushListByCid() {
119130
}
120131
}
121132

133+
@Test
134+
public void pushListCidByTag() {
135+
while (true) {
136+
String taskId = "taskId";
137+
AudienceDTO audienceDTO = new AudienceDTO();
138+
audienceDTO.setTaskid(taskId);
139+
audienceDTO.setAsync(true);
140+
audienceDTO.setNeedAliasDetail(false);
141+
Audience audience = new Audience();
142+
143+
CidByTagDTO cidByTagDTO = new CidByTagDTO();
144+
cidByTagDTO.setCid(cid);
145+
cidByTagDTO.addTag("tag");
146+
cidByTagDTO.setOpType(CommonEnum.CidByTagOpTypeEnum.AND);
147+
audience.addCidByTag(cidByTagDTO);
148+
audience.addCidByTag(cidByTagDTO);
149+
audienceDTO.setAudience(audience);
150+
151+
System.out.println(pushApi.pushListCidByTag(audienceDTO));
152+
try {
153+
Thread.sleep(1000);
154+
} catch (InterruptedException e) {
155+
}
156+
return;
157+
}
158+
}
159+
122160
@Test
123161
public void pushListByAlias() {
124162
String taskId = "taskId";
@@ -289,6 +327,16 @@ private void fullCid(PushDTO<Audience> pushDTO) {
289327
pushDTO.setAudience(audience);
290328
}
291329

330+
private void fullCidByTag(PushDTO<Audience> pushDTO) {
331+
Audience audience = new Audience();
332+
pushDTO.setAudience(audience);
333+
CidByTagDTO cidByTagDTO = new CidByTagDTO();
334+
cidByTagDTO.setCid(cid);
335+
cidByTagDTO.addTag("11");
336+
cidByTagDTO.setOpType(CommonEnum.CidByTagOpTypeEnum.AND);
337+
audience.addCidByTag(cidByTagDTO);
338+
}
339+
292340
private void fullAlias(PushDTO<Audience> pushDTO) {
293341
Audience audience = new Audience();
294342
String alias = "";

0 commit comments

Comments
 (0)