@@ -11,16 +11,14 @@ import java.util.Date; | |||||
import java.util.List; | import java.util.List; | ||||
/** | /** | ||||
* <pre> | |||||
* 微信营销接口 | |||||
* </pre> | |||||
* 微信营销接口. | |||||
* | * | ||||
* @author <a href="https://github.com/007gzs">007</a> | * @author <a href="https://github.com/007gzs">007</a> | ||||
*/ | */ | ||||
public interface WxMpMarketingService { | public interface WxMpMarketingService { | ||||
/** | /** | ||||
* <pre> | * <pre> | ||||
* 创建数据源 | |||||
* 创建数据源. | |||||
* 接口调用请求说明 | * 接口调用请求说明 | ||||
* https://wximg.qq.com/wxp/pdftool/get.html?id=rkalQXDBM&pa=39 | * https://wximg.qq.com/wxp/pdftool/get.html?id=rkalQXDBM&pa=39 | ||||
* </pre> | * </pre> | ||||
@@ -33,7 +31,7 @@ public interface WxMpMarketingService { | |||||
/** | /** | ||||
* <pre> | * <pre> | ||||
* 获取数据源信息 | |||||
* 获取数据源信息. | |||||
* </pre> | * </pre> | ||||
* | * | ||||
* @param userActionSetId 数据源唯一ID | * @param userActionSetId 数据源唯一ID | ||||
@@ -41,7 +39,7 @@ public interface WxMpMarketingService { | |||||
List<WxMpUserActionSet> getUserActionSets(Long userActionSetId) throws WxErrorException; | List<WxMpUserActionSet> getUserActionSets(Long userActionSetId) throws WxErrorException; | ||||
/** | /** | ||||
* 回传数据 | |||||
* 回传数据. | |||||
* 接口调用请求说明 | * 接口调用请求说明 | ||||
* https://wximg.qq.com/wxp/pdftool/get.html?id=rkalQXDBM&pa=39 | * https://wximg.qq.com/wxp/pdftool/get.html?id=rkalQXDBM&pa=39 | ||||
* | * | ||||
@@ -51,7 +49,7 @@ public interface WxMpMarketingService { | |||||
/** | /** | ||||
* <pre> | * <pre> | ||||
* 获取朋友圈销售线索数据接口 | |||||
* 获取朋友圈销售线索数据接口. | |||||
* 接口调用请求说明 | * 接口调用请求说明 | ||||
* | * | ||||
* http请求方式: POST | * http请求方式: POST | ||||
@@ -50,15 +50,11 @@ public class WxMpMarketingServiceImpl implements WxMpMarketingService { | |||||
@Override | @Override | ||||
public void addUserAction(List<WxMpUserAction> actions) throws WxErrorException { | public void addUserAction(List<WxMpUserAction> actions) throws WxErrorException { | ||||
JsonArray json = new JsonArray(); | |||||
for (WxMpUserAction action : actions) { | |||||
json.add(action.toJsonObject()); | |||||
} | |||||
wxMpService.post(USER_ACTIONS_ADD, json.toString()); | |||||
wxMpService.post(USER_ACTIONS_ADD, WxMpUserAction.listToJson(actions)); | |||||
} | } | ||||
@Override | @Override | ||||
public WxMpAdLeadResult getAdLeads(Date beginDate, Date endDate, List<WxMpAdLeadFilter> filtering, Integer page, Integer page_size) throws WxErrorException, IOException { | |||||
public WxMpAdLeadResult getAdLeads(Date beginDate, Date endDate, List<WxMpAdLeadFilter> filtering, Integer page, Integer pageSize) throws WxErrorException, IOException { | |||||
Date today = new Date(); | Date today = new Date(); | ||||
if (beginDate == null) { | if (beginDate == null) { | ||||
beginDate = today; | beginDate = today; | ||||
@@ -72,7 +68,7 @@ public class WxMpMarketingServiceImpl implements WxMpMarketingService { | |||||
dateRange.addProperty("end_date", DateFormatUtils.format(endDate, "yyyy-MM-dd")); | dateRange.addProperty("end_date", DateFormatUtils.format(endDate, "yyyy-MM-dd")); | ||||
params += "&date_range=" + URLEncoder.encode(dateRange.toString(), StandardCharsets.UTF_8.name()); | params += "&date_range=" + URLEncoder.encode(dateRange.toString(), StandardCharsets.UTF_8.name()); | ||||
params += "&page=" + page; | params += "&page=" + page; | ||||
params += "&page_size=" + page_size; | |||||
params += "&pageSize=" + pageSize; | |||||
if (filtering != null) { | if (filtering != null) { | ||||
JsonArray filterJson = new JsonArray(); | JsonArray filterJson = new JsonArray(); | ||||
for (WxMpAdLeadFilter filter : filtering) { | for (WxMpAdLeadFilter filter : filtering) { | ||||
@@ -1,39 +1,69 @@ | |||||
package me.chanjar.weixin.mp.bean.marketing; | package me.chanjar.weixin.mp.bean.marketing; | ||||
import com.google.gson.JsonArray; | |||||
import com.google.gson.JsonObject; | import com.google.gson.JsonObject; | ||||
import lombok.AllArgsConstructor; | |||||
import lombok.Builder; | |||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.NoArgsConstructor; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.util.List; | |||||
/** | /** | ||||
* @author <a href="https://github.com/007gzs">007</a> | * @author <a href="https://github.com/007gzs">007</a> | ||||
*/ | */ | ||||
@Data | @Data | ||||
@NoArgsConstructor | |||||
@AllArgsConstructor | |||||
@Builder | |||||
public class WxMpUserAction implements Serializable { | public class WxMpUserAction implements Serializable { | ||||
private static final long serialVersionUID = 7042393762652152209L; | private static final long serialVersionUID = 7042393762652152209L; | ||||
private Long userActionSetId; | private Long userActionSetId; | ||||
private String url; | private String url; | ||||
private Boolean actionTime; | |||||
private Integer actionTime; | |||||
private String actionType; | private String actionType; | ||||
private String clickId; | private String clickId; | ||||
private Integer actionParam; | private Integer actionParam; | ||||
public JsonObject toJsonObject() { | |||||
private JsonObject toJsonObject() { | |||||
JsonObject json = new JsonObject(); | JsonObject json = new JsonObject(); | ||||
json.addProperty("user_action_set_id", this.userActionSetId); | json.addProperty("user_action_set_id", this.userActionSetId); | ||||
json.addProperty("url", this.url); | json.addProperty("url", this.url); | ||||
json.addProperty("action_time", this.actionTime); | json.addProperty("action_time", this.actionTime); | ||||
json.addProperty("action_type", this.actionType); | |||||
if (this.clickId != null) { | if (this.clickId != null) { | ||||
JsonObject traceJson = new JsonObject(); | JsonObject traceJson = new JsonObject(); | ||||
traceJson.addProperty("click_id", this.clickId); | traceJson.addProperty("click_id", this.clickId); | ||||
json.add("trace", traceJson); | json.add("trace", traceJson); | ||||
} | } | ||||
if (this.actionParam != null) { | if (this.actionParam != null) { | ||||
JsonObject actionParamJson = new JsonObject(); | JsonObject actionParamJson = new JsonObject(); | ||||
actionParamJson.addProperty("value", actionParam); | actionParamJson.addProperty("value", actionParam); | ||||
json.add("action_param", actionParamJson); | json.add("action_param", actionParamJson); | ||||
} | } | ||||
return json; | return json; | ||||
} | } | ||||
/** | |||||
* list对象转换为json字符串 | |||||
* | |||||
* @param actions . | |||||
* @return . | |||||
*/ | |||||
public static String listToJson(List<WxMpUserAction> actions) { | |||||
JsonArray array = new JsonArray(); | |||||
for (WxMpUserAction action : actions) { | |||||
array.add(action.toJsonObject()); | |||||
} | |||||
JsonObject result = new JsonObject(); | |||||
result.add("actions", array); | |||||
return result.toString(); | |||||
} | |||||
} | } |
@@ -0,0 +1,30 @@ | |||||
package me.chanjar.weixin.mp.api.impl; | |||||
import org.testng.annotations.Test; | |||||
import static org.testng.Assert.*; | |||||
/** | |||||
* 测试类. | |||||
* | |||||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||||
* @date 2019-07-14 | |||||
*/ | |||||
public class WxMpMarketingServiceImplTest { | |||||
@Test | |||||
public void testAddUserActionSets() { | |||||
} | |||||
@Test | |||||
public void testGetUserActionSets() { | |||||
} | |||||
@Test | |||||
public void testAddUserAction() { | |||||
} | |||||
@Test | |||||
public void testGetAdLeads() { | |||||
} | |||||
} |
@@ -0,0 +1,28 @@ | |||||
package me.chanjar.weixin.mp.bean.marketing; | |||||
import com.google.common.collect.Lists; | |||||
import org.testng.annotations.Test; | |||||
import static org.assertj.core.api.Assertions.assertThat; | |||||
/** | |||||
* 老板加点注释吧. | |||||
* | |||||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||||
* @date 2019-07-14 | |||||
*/ | |||||
public class WxMpUserActionTest { | |||||
@Test | |||||
public void testListToJson() { | |||||
assertThat(WxMpUserAction.listToJson(Lists.newArrayList(WxMpUserAction.builder() | |||||
.actionParam(1) | |||||
.actionTime(122) | |||||
.actionType("haha") | |||||
.clickId("111") | |||||
.url("1222") | |||||
.userActionSetId(111L) | |||||
.build() | |||||
))).isEqualTo("{\"actions\":[{\"user_action_set_id\":111,\"url\":\"1222\",\"action_time\":122,\"action_type\":\"haha\",\"trace\":{\"click_id\":\"111\"},\"action_param\":{\"value\":1}}]}"); | |||||
} | |||||
} |