mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-04-05 17:38:05 +08:00
🆕 #2361 【企业微信】增加客户朋友圈相关的部分接口
This commit is contained in:
parent
dde445150a
commit
537a9332c0
@ -3,8 +3,16 @@ package me.chanjar.weixin.cp.api;
|
||||
import lombok.NonNull;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpAddMomentResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpAddMomentTask;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpContactWayInfo;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpContactWayResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentComments;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentCustomerList;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentList;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentSendResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentTask;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentTaskResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpMsgTemplate;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpMsgTemplateAddResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpUpdateRemarkRequest;
|
||||
@ -181,7 +189,7 @@ public interface WxCpExternalContactService {
|
||||
* @return 该企业的外部联系人ID
|
||||
* @throws WxErrorException .
|
||||
*/
|
||||
String unionidToExternalUserid(String unionid) throws WxErrorException;
|
||||
String unionidToExternalUserid(@NotNull String unionid,String openid) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* 批量获取客户详情.
|
||||
@ -586,6 +594,104 @@ public interface WxCpExternalContactService {
|
||||
*/
|
||||
WxCpBaseResp markTag(String userid, String externalUserid, String[] addTag, String[] removeTag) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 企业和第三方应用可通过该接口创建客户朋友圈的发表任务。
|
||||
* https://open.work.weixin.qq.com/api/doc/90000/90135/95094
|
||||
* </pre>
|
||||
* @param task
|
||||
* @return wx cp add moment result
|
||||
* @throws WxErrorException the wx error exception
|
||||
*/
|
||||
WxCpAddMomentResult addMomentTask(WxCpAddMomentTask task) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 由于发表任务的创建是异步执行的,应用需要再调用该接口以获取创建的结果。
|
||||
* https://open.work.weixin.qq.com/api/doc/90000/90135/95094
|
||||
* </pre>
|
||||
* @param jobId 异步任务id,最大长度为64字节,由创建发表内容到客户朋友圈任务接口获取
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
WxCpGetMomentTaskResult getMomentTaskResult(String jobId) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 获取客户朋友圈全部的发表记录 获取企业全部的发表列表
|
||||
* https://open.work.weixin.qq.com/api/doc/90000/90135/93333
|
||||
* </pre>
|
||||
* @param startTime 朋友圈记录开始时间。Unix时间戳
|
||||
* @param endTime 朋友圈记录结束时间。Unix时间戳
|
||||
* @param creator 朋友圈创建人的userid
|
||||
* @param filterType 朋友圈类型。0:企业发表 1:个人发表 2:所有,包括个人创建以及企业创建,默认情况下为所有类型
|
||||
* @param cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
|
||||
* @param limit 返回的最大记录数,整型,最大值100,默认值100,超过最大值时取默认值
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
WxCpGetMomentList getMomentList(Long startTime, Long endTime, String creator, Integer filterType,
|
||||
String cursor, Integer limit) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 获取客户朋友圈全部的发表记录 获取客户朋友圈企业发表的列表
|
||||
* https://open.work.weixin.qq.com/api/doc/90000/90135/93333
|
||||
* </pre>
|
||||
* @param momentId 朋友圈id,仅支持企业发表的朋友圈id
|
||||
* @param cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
|
||||
* @param limit 返回的最大记录数,整型,最大值1000,默认值500,超过最大值时取默认值
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
WxCpGetMomentTask getMomentTask(String momentId, String cursor, Integer limit)
|
||||
throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 获取客户朋友圈全部的发表记录 获取客户朋友圈发表时选择的可见范围
|
||||
* https://open.work.weixin.qq.com/api/doc/90000/90135/93333
|
||||
* </pre>
|
||||
* @param momentId 朋友圈id
|
||||
* @param userId 企业发表成员userid,如果是企业创建的朋友圈,可以通过获取客户朋友圈企业发表的
|
||||
* 列表获取已发表成员userid,如果是个人创建的朋友圈,创建人userid就是企业发表成员userid
|
||||
* @param cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
|
||||
* @param limit 返回的最大记录数,整型,最大值1000,默认值500,超过最大值时取默认值
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
WxCpGetMomentCustomerList getMomentCustomerList(String momentId, String userId,
|
||||
String cursor, Integer limit) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 获取客户朋友圈全部的发表记录 获取客户朋友圈发表后的可见客户列表
|
||||
* https://open.work.weixin.qq.com/api/doc/90000/90135/93333
|
||||
* </pre>
|
||||
* @param momentId 朋友圈id
|
||||
* @param userId 企业发表成员userid,如果是企业创建的朋友圈,可以通过获取客户朋友圈企业发表的列表获取已发表成员userid,
|
||||
* 如果是个人创建的朋友圈,创建人userid就是企业发表成员userid
|
||||
* @param cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填
|
||||
* @param limit 返回的最大记录数,整型,最大值5000,默认值3000,超过最大值时取默认值
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
WxCpGetMomentSendResult getMomentSendResult(String momentId, String userId,
|
||||
String cursor, Integer limit) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 获取客户朋友圈全部的发表记录 获取客户朋友圈的互动数据
|
||||
* https://open.work.weixin.qq.com/api/doc/90000/90135/93333
|
||||
* </pre>
|
||||
* @param momentId 朋友圈id
|
||||
* @param userId 企业发表成员userid,如果是企业创建的朋友圈,可以通过获取客户朋友圈企业发表的列表获取已发表成员userid,
|
||||
* 如果是个人创建的朋友圈,创建人userid就是企业发表成员userid
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
WxCpGetMomentComments getMomentComments(String momentId, String userId)
|
||||
throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
|
@ -12,8 +12,16 @@ import me.chanjar.weixin.common.util.json.GsonParser;
|
||||
import me.chanjar.weixin.cp.api.WxCpExternalContactService;
|
||||
import me.chanjar.weixin.cp.api.WxCpService;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpAddMomentResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpAddMomentTask;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpContactWayInfo;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpContactWayResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentComments;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentCustomerList;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentList;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentSendResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentTask;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpGetMomentTaskResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpMsgTemplate;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpMsgTemplateAddResult;
|
||||
import me.chanjar.weixin.cp.bean.external.WxCpUpdateRemarkRequest;
|
||||
@ -137,9 +145,12 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
|
||||
}
|
||||
|
||||
@Override
|
||||
public String unionidToExternalUserid(@NotNull String unionid) throws WxErrorException {
|
||||
public String unionidToExternalUserid(@NotNull String unionid,String openid) throws WxErrorException {
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("unionid", unionid);
|
||||
if(StringUtils.isNotEmpty(openid)){
|
||||
json.addProperty("openid",openid);
|
||||
}
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(UNIONID_TO_EXTERNAL_USERID);
|
||||
String responseContent = this.mainService.post(url, json.toString());
|
||||
JsonObject tmpJson = GsonParser.parse(responseContent);
|
||||
@ -449,6 +460,105 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
|
||||
return WxCpBaseResp.fromJson(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpAddMomentResult addMomentTask(WxCpAddMomentTask task) throws WxErrorException {
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(ADD_MOMENT_TASK);
|
||||
final String result = this.mainService.post(url, task.toJson());
|
||||
return WxCpAddMomentResult.fromJson(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpGetMomentTaskResult getMomentTaskResult(String jobId) throws WxErrorException {
|
||||
String params = "&jobid=" + jobId;
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_MOMENT_TASK_RESULT);
|
||||
final String result = this.mainService.get(url, params);
|
||||
return WxCpGetMomentTaskResult.fromJson(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpGetMomentList getMomentList(Long startTime, Long endTime, String creator, Integer filterType,
|
||||
String cursor, Integer limit) throws WxErrorException {
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("start_time", startTime);
|
||||
json.addProperty("end_time", endTime);
|
||||
if (!StringUtils.isEmpty(creator)) {
|
||||
json.addProperty("creator", creator);
|
||||
}
|
||||
if (filterType!=null) {
|
||||
json.addProperty("filter_type", filterType);
|
||||
}
|
||||
if (!StringUtils.isEmpty(cursor)) {
|
||||
json.addProperty("cursor", cursor);
|
||||
}
|
||||
if (limit!=null) {
|
||||
json.addProperty("limit", limit);
|
||||
}
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_MOMENT_LIST);
|
||||
final String result = this.mainService.post(url, json.toString());
|
||||
return WxCpGetMomentList.fromJson(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpGetMomentTask getMomentTask(String momentId, String cursor, Integer limit)
|
||||
throws WxErrorException {
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("moment_id", momentId);
|
||||
if (!StringUtils.isEmpty(cursor)) {
|
||||
json.addProperty("cursor", cursor);
|
||||
}
|
||||
if (limit!=null) {
|
||||
json.addProperty("limit", limit);
|
||||
}
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_MOMENT_TASK);
|
||||
final String result = this.mainService.post(url, json.toString());
|
||||
return WxCpGetMomentTask.fromJson(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpGetMomentCustomerList getMomentCustomerList(String momentId, String userId,
|
||||
String cursor, Integer limit) throws WxErrorException {
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("moment_id", momentId);
|
||||
json.addProperty("userid", userId);
|
||||
if (!StringUtils.isEmpty(cursor)) {
|
||||
json.addProperty("cursor", cursor);
|
||||
}
|
||||
if (limit!=null) {
|
||||
json.addProperty("limit", limit);
|
||||
}
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_MOMENT_CUSTOMER_LIST);
|
||||
final String result = this.mainService.post(url, json.toString());
|
||||
return WxCpGetMomentCustomerList.fromJson(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpGetMomentSendResult getMomentSendResult(String momentId, String userId,
|
||||
String cursor, Integer limit) throws WxErrorException {
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("moment_id", momentId);
|
||||
json.addProperty("userid", userId);
|
||||
if (!StringUtils.isEmpty(cursor)) {
|
||||
json.addProperty("cursor", cursor);
|
||||
}
|
||||
if (limit!=null) {
|
||||
json.addProperty("limit", limit);
|
||||
}
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_MOMENT_SEND_RESULT);
|
||||
final String result = this.mainService.post(url, json.toString());
|
||||
return WxCpGetMomentSendResult.fromJson(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpGetMomentComments getMomentComments(String momentId, String userId)
|
||||
throws WxErrorException {
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("moment_id", momentId);
|
||||
json.addProperty("userid", userId);
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_MOMENT_COMMENTS);
|
||||
final String result = this.mainService.post(url, json.toString());
|
||||
return WxCpGetMomentComments.fromJson(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 企业和第三方应用可通过此接口获取企业与成员的群发记录。
|
||||
|
27
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpAddMomentResult.java
vendored
Normal file
27
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpAddMomentResult.java
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
package me.chanjar.weixin.cp.bean.external;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* 企业发表内容到客户的朋友圈 创建发表任务结果
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
public class WxCpAddMomentResult extends WxCpBaseResp {
|
||||
|
||||
@SerializedName("jobid")
|
||||
private String jobId;
|
||||
|
||||
public static WxCpAddMomentResult fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxCpAddMomentResult.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
36
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpAddMomentTask.java
vendored
Normal file
36
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpAddMomentTask.java
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
package me.chanjar.weixin.cp.bean.external;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import me.chanjar.weixin.cp.bean.external.msg.Attachment;
|
||||
import me.chanjar.weixin.cp.bean.external.msg.Text;
|
||||
import me.chanjar.weixin.cp.bean.external.moment.VisibleRange;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* 企业发表内容到客户的朋友圈 创建发表任务
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class WxCpAddMomentTask implements Serializable {
|
||||
@SerializedName("visible_range")
|
||||
private VisibleRange visibleRange;
|
||||
|
||||
private Text text;
|
||||
|
||||
private List<Attachment> attachments;
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
40
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentComments.java
vendored
Normal file
40
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentComments.java
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
package me.chanjar.weixin.cp.bean.external;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* 企业发表内容到客户的朋友圈 获取客户朋友圈的互动数据
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
public class WxCpGetMomentComments extends WxCpBaseResp {
|
||||
@SerializedName("comment_list")
|
||||
private List<CommentLikeItem> commentList;
|
||||
@SerializedName("like_list")
|
||||
private List<CommentLikeItem> likeList;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class CommentLikeItem {
|
||||
@SerializedName("external_userid")
|
||||
private String externalUserId;
|
||||
@SerializedName("create_time")
|
||||
private Long createTime;
|
||||
}
|
||||
|
||||
public static WxCpGetMomentComments fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxCpGetMomentComments.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
30
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentCustomerList.java
vendored
Normal file
30
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentCustomerList.java
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
package me.chanjar.weixin.cp.bean.external;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.bean.external.moment.CustomerItem;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* 企业发表内容到客户的朋友圈 获取客户朋友圈发表时选择的可见范围
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
public class WxCpGetMomentCustomerList extends WxCpBaseResp {
|
||||
@SerializedName("next_cursor")
|
||||
private String nextCursor;
|
||||
@SerializedName("customer_list")
|
||||
private List<CustomerItem> customerList;
|
||||
|
||||
public static WxCpGetMomentCustomerList fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxCpGetMomentCustomerList.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
30
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentList.java
vendored
Normal file
30
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentList.java
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
package me.chanjar.weixin.cp.bean.external;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.bean.external.moment.MomentInfo;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* 企业发表内容到客户的朋友圈 获取企业全部的发表列表
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
public class WxCpGetMomentList extends WxCpBaseResp {
|
||||
@SerializedName("next_cursor")
|
||||
private String nextCursor;
|
||||
@SerializedName("moment_list")
|
||||
private List<MomentInfo> momentList;
|
||||
|
||||
public static WxCpGetMomentList fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxCpGetMomentList.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
30
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentSendResult.java
vendored
Normal file
30
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentSendResult.java
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
package me.chanjar.weixin.cp.bean.external;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.bean.external.moment.CustomerItem;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* 企业发表内容到客户的朋友圈 获取客户朋友圈发表后的可见客户列表
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
public class WxCpGetMomentSendResult extends WxCpBaseResp {
|
||||
@SerializedName("next_cursor")
|
||||
private String nextCursor;
|
||||
@SerializedName("customer_list")
|
||||
private List<CustomerItem> customerList;
|
||||
|
||||
public static WxCpGetMomentSendResult fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxCpGetMomentSendResult.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
41
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentTask.java
vendored
Normal file
41
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentTask.java
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
package me.chanjar.weixin.cp.bean.external;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* 企业发表内容到客户的朋友圈 获取客户朋友圈企业发表的列表
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
public class WxCpGetMomentTask extends WxCpBaseResp {
|
||||
@SerializedName("next_cursor")
|
||||
private String nextCursor;
|
||||
|
||||
@SerializedName("task_list")
|
||||
private List<MomentTaskItem> taskList;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class MomentTaskItem {
|
||||
@SerializedName("userid")
|
||||
private String userId;
|
||||
@SerializedName("publish_status")
|
||||
private String publishStatus;
|
||||
}
|
||||
|
||||
public static WxCpGetMomentTask fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxCpGetMomentTask.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
50
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentTaskResult.java
vendored
Normal file
50
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentTaskResult.java
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
package me.chanjar.weixin.cp.bean.external;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||
import me.chanjar.weixin.cp.bean.external.moment.ExternalContactList;
|
||||
import me.chanjar.weixin.cp.bean.external.moment.SenderList;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* 企业发表内容到客户的朋友圈 获取任务创建结果
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
public class WxCpGetMomentTaskResult extends WxCpBaseResp {
|
||||
private Integer status;
|
||||
private String type;
|
||||
private TaskResult result;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class TaskResult extends WxCpBaseResp {
|
||||
@SerializedName("moment_id")
|
||||
private String momentId;
|
||||
@SerializedName("invalid_sender_list")
|
||||
private SenderList invalidSenderList;
|
||||
@SerializedName("invalid_external_contact_list")
|
||||
private ExternalContactList invalidExternalContactList;
|
||||
|
||||
public static TaskResult fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, TaskResult.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
||||
|
||||
public static WxCpGetMomentTaskResult fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxCpGetMomentTaskResult.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
@ -35,7 +35,7 @@ public class WxCpUserExternalTagGroupInfo extends WxCpBaseResp {
|
||||
private Long createTime;
|
||||
|
||||
@SerializedName("order")
|
||||
private Integer order;
|
||||
private Long order;
|
||||
|
||||
@SerializedName("deleted")
|
||||
private Boolean deleted;
|
||||
@ -67,7 +67,7 @@ public class WxCpUserExternalTagGroupInfo extends WxCpBaseResp {
|
||||
private Long createTime;
|
||||
|
||||
@SerializedName("order")
|
||||
private Integer order;
|
||||
private Long order;
|
||||
|
||||
@SerializedName("deleted")
|
||||
private Boolean deleted;
|
||||
|
14
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/CustomerItem.java
vendored
Normal file
14
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/CustomerItem.java
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
package me.chanjar.weixin.cp.bean.external.moment;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class CustomerItem {
|
||||
@SerializedName("external_userid")
|
||||
private String externalUserId;
|
||||
@SerializedName("userid")
|
||||
private String userId;
|
||||
}
|
13
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/ExternalContactList.java
vendored
Normal file
13
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/ExternalContactList.java
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
package me.chanjar.weixin.cp.bean.external.moment;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class ExternalContactList {
|
||||
@SerializedName("tag_list")
|
||||
private List<String> tagList;
|
||||
}
|
28
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/MomentInfo.java
vendored
Normal file
28
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/MomentInfo.java
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
package me.chanjar.weixin.cp.bean.external.moment;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.cp.bean.external.msg.Image;
|
||||
import me.chanjar.weixin.cp.bean.external.msg.Link;
|
||||
import me.chanjar.weixin.cp.bean.external.msg.Location;
|
||||
import me.chanjar.weixin.cp.bean.external.msg.Text;
|
||||
import me.chanjar.weixin.cp.bean.external.msg.Video;
|
||||
|
||||
@Data
|
||||
public class MomentInfo {
|
||||
@SerializedName("moment_id")
|
||||
private String momentId;
|
||||
@SerializedName("creator")
|
||||
private String creator;
|
||||
@SerializedName("create_time")
|
||||
private String createTime;
|
||||
@SerializedName("create_type")
|
||||
private Integer createType;
|
||||
@SerializedName("visible_type")
|
||||
private Integer visibleType;
|
||||
private Text text;
|
||||
private Image image;
|
||||
private Video video;
|
||||
private Link link;
|
||||
private Location location;
|
||||
}
|
15
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/SenderList.java
vendored
Normal file
15
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/SenderList.java
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
package me.chanjar.weixin.cp.bean.external.moment;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class SenderList {
|
||||
@SerializedName("user_list")
|
||||
private List<String> userList;
|
||||
@SerializedName("department_list")
|
||||
private List<String> departmentList;
|
||||
}
|
13
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/VisibleRange.java
vendored
Normal file
13
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/VisibleRange.java
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
package me.chanjar.weixin.cp.bean.external.moment;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class VisibleRange implements Serializable {
|
||||
@SerializedName("sender_list")
|
||||
private SenderList senderList;
|
||||
@SerializedName("external_contact_list")
|
||||
private ExternalContactList externalContactList;
|
||||
}
|
@ -19,4 +19,6 @@ public class Link implements Serializable {
|
||||
private String picUrl;
|
||||
private String desc;
|
||||
private String url;
|
||||
@SerializedName("media_id")
|
||||
private String mediaId;
|
||||
}
|
||||
|
16
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/msg/Location.java
vendored
Normal file
16
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/msg/Location.java
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
package me.chanjar.weixin.cp.bean.external.msg;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 地理位置
|
||||
*
|
||||
* @author leiin
|
||||
* @date 2021-10-29
|
||||
*/
|
||||
@Data
|
||||
public class Location {
|
||||
private String latitude;
|
||||
private String longitude;
|
||||
private String name;
|
||||
}
|
@ -16,4 +16,6 @@ public class Video implements Serializable {
|
||||
private static final long serialVersionUID = -6048642921382867138L;
|
||||
@SerializedName("media_id")
|
||||
private String mediaId;
|
||||
@SerializedName("thumb_media_id")
|
||||
private String thumbMediaId;
|
||||
}
|
||||
|
@ -189,6 +189,39 @@ public class WxCpTpXmlMessage implements Serializable {
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
protected String externalUserID;
|
||||
|
||||
@XStreamAlias("State")
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
protected String state;
|
||||
|
||||
@XStreamAlias("Source")
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
protected String source;
|
||||
|
||||
@XStreamAlias("FailReason")
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
protected String failReason;
|
||||
|
||||
@XStreamAlias("ChatId")
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
protected String chatId;
|
||||
|
||||
@XStreamAlias("UpdateDetail")
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
protected String updateDetail;
|
||||
|
||||
@XStreamAlias("JoinScene")
|
||||
protected Integer joinScene;
|
||||
|
||||
@XStreamAlias("QuitScene")
|
||||
protected Integer quitScene;
|
||||
|
||||
@XStreamAlias("MemChangeCnt")
|
||||
protected Integer memChangeCnt;
|
||||
|
||||
@XStreamAlias("TagType")
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
protected String tagType;
|
||||
|
||||
@XStreamAlias("WelcomeCode")
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
protected String welcomeCode;
|
||||
|
@ -206,8 +206,17 @@ public interface WxCpApiPathConsts {
|
||||
String DEL_CORP_TAG = "/cgi-bin/externalcontact/del_corp_tag";
|
||||
String MARK_TAG = "/cgi-bin/externalcontact/mark_tag";
|
||||
|
||||
String ADD_MOMENT_TASK = "/cgi-bin/externalcontact/add_moment_task";
|
||||
String GET_MOMENT_TASK_RESULT = "/cgi-bin/externalcontact/get_moment_task_result";
|
||||
String GET_MOMENT_LIST = "/cgi-bin/externalcontact/get_moment_list";
|
||||
String GET_MOMENT_TASK = "/cgi-bin/externalcontact/get_moment_task";
|
||||
String GET_MOMENT_CUSTOMER_LIST = "/cgi-bin/externalcontact/get_moment_customer_list";
|
||||
String GET_MOMENT_SEND_RESULT = "/cgi-bin/externalcontact/get_moment_send_result";
|
||||
String GET_MOMENT_COMMENTS = "/cgi-bin/externalcontact/get_moment_comments";
|
||||
|
||||
String GET_GROUP_MSG_SEND_RESULT = "/cgi-bin/externalcontact/get_groupmsg_send_result";
|
||||
String GET_GROUP_MSG_TASK = "/cgi-bin/externalcontact/get_groupmsg_task";
|
||||
String GET_GROUP_MSG_LIST_V2 = "/cgi-bin/externalcontact/get_groupmsg_list_v2";
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -138,13 +138,13 @@ public class WxCpExternalContactServiceImplTest {
|
||||
List<WxCpUserExternalTagGroupInfo.Tag> list = new ArrayList<>();
|
||||
WxCpUserExternalTagGroupInfo.Tag tag = new WxCpUserExternalTagGroupInfo.Tag();
|
||||
tag.setName("测试标签20");
|
||||
tag.setOrder(1);
|
||||
tag.setOrder(1L);
|
||||
list.add(tag);
|
||||
|
||||
WxCpUserExternalTagGroupInfo tagGroupInfo = new WxCpUserExternalTagGroupInfo();
|
||||
WxCpUserExternalTagGroupInfo.TagGroup tagGroup = new WxCpUserExternalTagGroupInfo.TagGroup();
|
||||
tagGroup.setGroupName("其他");
|
||||
tagGroup.setOrder(1);
|
||||
tagGroup.setOrder(1L);
|
||||
tagGroup.setTag(list);
|
||||
tagGroupInfo.setTagGroup(tagGroup);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user