mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-30 18:19:04 +08:00
🆕 #1793 企业微信添加应用管理的设置工作台自定义展示模块
Co-authored-by: sysong <sysong@chutianyun.gov.cn>
This commit is contained in:
@ -0,0 +1,18 @@
|
|||||||
|
package me.chanjar.weixin.cp.api;
|
||||||
|
|
||||||
|
import me.chanjar.weixin.common.error.WxErrorException;
|
||||||
|
import me.chanjar.weixin.cp.bean.WxCpAgentWorkBench;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author songshiyu
|
||||||
|
* @date : create in 16:16 2020/9/27
|
||||||
|
* @description: 工作台自定义展示:https://work.weixin.qq.com/api/doc/90000/90135/92535
|
||||||
|
*/
|
||||||
|
public interface WxCpAgentWorkBenchService {
|
||||||
|
|
||||||
|
void setWorkBenchTemplate(WxCpAgentWorkBench wxCpAgentWorkBench) throws WxErrorException;
|
||||||
|
|
||||||
|
String getWorkBenchTemplate(Long agentid) throws WxErrorException;
|
||||||
|
|
||||||
|
void setWorkBenchData(WxCpAgentWorkBench wxCpAgentWorkBench) throws WxErrorException;
|
||||||
|
}
|
||||||
@ -403,6 +403,12 @@ public interface WxCpService {
|
|||||||
* @return 群机器人消息推送服务 group robot service
|
* @return 群机器人消息推送服务 group robot service
|
||||||
*/
|
*/
|
||||||
WxCpGroupRobotService getGroupRobotService();
|
WxCpGroupRobotService getGroupRobotService();
|
||||||
|
/*
|
||||||
|
* 获取工作台服务
|
||||||
|
*
|
||||||
|
* @return the workbench service
|
||||||
|
* */
|
||||||
|
WxCpAgentWorkBenchService getWorkBenchService();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* http请求对象
|
* http请求对象
|
||||||
|
|||||||
@ -54,6 +54,7 @@ public abstract class BaseWxCpServiceImpl<H, P> implements WxCpService, RequestH
|
|||||||
private WxCpGroupRobotService groupRobotService = new WxCpGroupRobotServiceImpl(this);
|
private WxCpGroupRobotService groupRobotService = new WxCpGroupRobotServiceImpl(this);
|
||||||
private WxCpMessageService messageService = new WxCpMessageServiceImpl(this);
|
private WxCpMessageService messageService = new WxCpMessageServiceImpl(this);
|
||||||
private WxCpOaCalendarService oaCalendarService = new WxCpOaCalendarServiceImpl(this);
|
private WxCpOaCalendarService oaCalendarService = new WxCpOaCalendarServiceImpl(this);
|
||||||
|
private WxCpAgentWorkBenchService workBenchService = new WxCpAgentWorkBenchServiceImpl(this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 全局的是否正在刷新access token的锁.
|
* 全局的是否正在刷新access token的锁.
|
||||||
@ -437,6 +438,11 @@ public abstract class BaseWxCpServiceImpl<H, P> implements WxCpService, RequestH
|
|||||||
return groupRobotService;
|
return groupRobotService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WxCpAgentWorkBenchService getWorkBenchService() {
|
||||||
|
return workBenchService;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxCpTaskCardService getTaskCardService() {
|
public WxCpTaskCardService getTaskCardService() {
|
||||||
return taskCardService;
|
return taskCardService;
|
||||||
|
|||||||
@ -0,0 +1,42 @@
|
|||||||
|
package me.chanjar.weixin.cp.api.impl;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import me.chanjar.weixin.common.error.WxErrorException;
|
||||||
|
import me.chanjar.weixin.cp.api.WxCpAgentWorkBenchService;
|
||||||
|
import me.chanjar.weixin.cp.api.WxCpService;
|
||||||
|
import me.chanjar.weixin.cp.bean.WxCpAgentWorkBench;
|
||||||
|
|
||||||
|
import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.WorkBench.WORKBENCH_DATA_SET;
|
||||||
|
import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.WorkBench.WORKBENCH_TEMPLATE_GET;
|
||||||
|
import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.WorkBench.WORKBENCH_TEMPLATE_SET;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author songshiyu
|
||||||
|
* @date : create in 11:24 2020/9/28
|
||||||
|
* @description: 工作台自定义展示实现
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class WxCpAgentWorkBenchServiceImpl implements WxCpAgentWorkBenchService {
|
||||||
|
private final WxCpService mainService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setWorkBenchTemplate(WxCpAgentWorkBench wxCpAgentWorkBench) throws WxErrorException {
|
||||||
|
final String url = String.format(this.mainService.getWxCpConfigStorage().getApiUrl(WORKBENCH_TEMPLATE_SET));
|
||||||
|
this.mainService.post(url, wxCpAgentWorkBench.toTemplateString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getWorkBenchTemplate(Long agentId) throws WxErrorException {
|
||||||
|
final String url = String.format(this.mainService.getWxCpConfigStorage().getApiUrl(WORKBENCH_TEMPLATE_GET));
|
||||||
|
JsonObject jsonObject = new JsonObject();
|
||||||
|
jsonObject.addProperty("agentid", agentId);
|
||||||
|
return this.mainService.post(url, jsonObject.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setWorkBenchData(WxCpAgentWorkBench wxCpAgentWorkBench) throws WxErrorException {
|
||||||
|
final String url = String.format(this.mainService.getWxCpConfigStorage().getApiUrl(WORKBENCH_DATA_SET));
|
||||||
|
this.mainService.post(url, wxCpAgentWorkBench.toUserDataString());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,137 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean;
|
||||||
|
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import me.chanjar.weixin.cp.bean.workbench.WorkBenchKeyData;
|
||||||
|
import me.chanjar.weixin.cp.bean.workbench.WorkBenchList;
|
||||||
|
import me.chanjar.weixin.cp.constant.WxCpConsts;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author songshiyu
|
||||||
|
* @date : create in 16:09 2020/9/27
|
||||||
|
* @description: 工作台自定义展示
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class WxCpAgentWorkBench implements Serializable {
|
||||||
|
private static final long serialVersionUid = 1L;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 展示类型,目前支持 “keydata”、 “image”、 “list” 、”webview”
|
||||||
|
* */
|
||||||
|
private String type;
|
||||||
|
/*
|
||||||
|
* 用户的userid
|
||||||
|
* */
|
||||||
|
private String userId;
|
||||||
|
/*
|
||||||
|
* 应用id
|
||||||
|
* */
|
||||||
|
private Long agentId;
|
||||||
|
/*
|
||||||
|
* 点击跳转url,若不填且应用设置了主页url,则跳转到主页url,否则跳到应用会话窗口
|
||||||
|
* */
|
||||||
|
private String jumpUrl;
|
||||||
|
/*
|
||||||
|
* 若应用为小程序类型,该字段填小程序pagepath,若未设置,跳到小程序主页
|
||||||
|
* */
|
||||||
|
private String pagePath;
|
||||||
|
/*
|
||||||
|
* 图片url:图片的最佳比例为3.35:1;webview:渲染展示的url
|
||||||
|
* */
|
||||||
|
private String url;
|
||||||
|
/*
|
||||||
|
* 是否覆盖用户工作台的数据。设置为true的时候,会覆盖企业所有用户当前设置的数据。若设置为false,则不会覆盖用户当前设置的所有数据
|
||||||
|
* */
|
||||||
|
private Boolean replaceUserData;
|
||||||
|
|
||||||
|
private List<WorkBenchKeyData> keyDataList;
|
||||||
|
|
||||||
|
private List<WorkBenchList> lists;
|
||||||
|
|
||||||
|
// 生成模板Json字符串
|
||||||
|
public String toTemplateString() {
|
||||||
|
JsonObject templateObject = new JsonObject();
|
||||||
|
templateObject.addProperty("agentid", this.agentId);
|
||||||
|
templateObject.addProperty("type", this.type);
|
||||||
|
if (this.replaceUserData != null) {
|
||||||
|
templateObject.addProperty("replace_user_data", this.replaceUserData);
|
||||||
|
}
|
||||||
|
this.handle(templateObject);
|
||||||
|
return templateObject.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成用户数据Json字符串
|
||||||
|
public String toUserDataString() {
|
||||||
|
JsonObject userDataObject = new JsonObject();
|
||||||
|
userDataObject.addProperty("agentid", this.agentId);
|
||||||
|
userDataObject.addProperty("userid", this.userId);
|
||||||
|
userDataObject.addProperty("type", this.type);
|
||||||
|
this.handle(userDataObject);
|
||||||
|
return userDataObject.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理不用类型的工作台数据
|
||||||
|
private void handle(JsonObject templateObject) {
|
||||||
|
switch (this.getType()) {
|
||||||
|
case WxCpConsts.WorkBenchType.KEYDATA: {
|
||||||
|
JsonArray keyDataArray = new JsonArray();
|
||||||
|
JsonObject itemsObject = new JsonObject();
|
||||||
|
for (WorkBenchKeyData keyDataItem : this.keyDataList) {
|
||||||
|
JsonObject keyDataObject = new JsonObject();
|
||||||
|
keyDataObject.addProperty("key", keyDataItem.getKey());
|
||||||
|
keyDataObject.addProperty("data", keyDataItem.getData());
|
||||||
|
keyDataObject.addProperty("jump_url", keyDataItem.getJumpUrl());
|
||||||
|
keyDataObject.addProperty("pagepath", keyDataItem.getPagePath());
|
||||||
|
keyDataArray.add(keyDataObject);
|
||||||
|
}
|
||||||
|
itemsObject.add("items", keyDataArray);
|
||||||
|
templateObject.add("keydata", itemsObject);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case WxCpConsts.WorkBenchType.IMAGE: {
|
||||||
|
JsonObject image = new JsonObject();
|
||||||
|
image.addProperty("url", this.url);
|
||||||
|
image.addProperty("jump_url", this.jumpUrl);
|
||||||
|
image.addProperty("pagepath", this.pagePath);
|
||||||
|
templateObject.add("image", image);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case WxCpConsts.WorkBenchType.LIST: {
|
||||||
|
JsonArray listArray = new JsonArray();
|
||||||
|
JsonObject itemsObject = new JsonObject();
|
||||||
|
for (WorkBenchList listItem : this.lists) {
|
||||||
|
JsonObject listObject = new JsonObject();
|
||||||
|
listObject.addProperty("title", listItem.getTitle());
|
||||||
|
listObject.addProperty("jump_url", listItem.getJumpUrl());
|
||||||
|
listObject.addProperty("pagepath", listItem.getPagePath());
|
||||||
|
listArray.add(listObject);
|
||||||
|
}
|
||||||
|
itemsObject.add("items",listArray);
|
||||||
|
templateObject.add("list", itemsObject);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case WxCpConsts.WorkBenchType.WEBVIEW: {
|
||||||
|
JsonObject webview = new JsonObject();
|
||||||
|
webview.addProperty("url", this.url);
|
||||||
|
webview.addProperty("jump_url", this.jumpUrl);
|
||||||
|
webview.addProperty("pagepath", this.pagePath);
|
||||||
|
templateObject.add("webview", webview);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
//do nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.workbench;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author songshiyu
|
||||||
|
* @date : create in 10:21 2020/9/28
|
||||||
|
* @description: 关键数据型模板类型
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WorkBenchKeyData implements Serializable {
|
||||||
|
/*
|
||||||
|
* 关键数据名称
|
||||||
|
* */
|
||||||
|
private String key;
|
||||||
|
/*
|
||||||
|
* 关键数据
|
||||||
|
* */
|
||||||
|
private String data;
|
||||||
|
/*
|
||||||
|
* 点击跳转url,若不填且应用设置了主页url,则跳转到主页url,否则跳到应用会话窗口
|
||||||
|
* */
|
||||||
|
private String jumpUrl;
|
||||||
|
/*
|
||||||
|
* 若应用为小程序类型,该字段填小程序pagepath,若未设置,跳到小程序主页
|
||||||
|
* */
|
||||||
|
private String pagePath;
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.workbench;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author songshiyu
|
||||||
|
* @date : create in 10:21 2020/9/28
|
||||||
|
* @description: 列表模板类型
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WorkBenchList implements Serializable {
|
||||||
|
/*
|
||||||
|
* 列表显示文字,不超过128个字节
|
||||||
|
* */
|
||||||
|
private String title;
|
||||||
|
/*
|
||||||
|
* 点击跳转url,若不填且应用设置了主页url,则跳转到主页url,否则跳到应用会话窗口
|
||||||
|
* */
|
||||||
|
private String jumpUrl;
|
||||||
|
/*
|
||||||
|
* 若应用为小程序类型,该字段填小程序pagepath,若未设置,跳到小程序主页
|
||||||
|
* */
|
||||||
|
private String pagePath;
|
||||||
|
}
|
||||||
@ -54,6 +54,13 @@ public final class WxCpApiPathConsts {
|
|||||||
public static final String AGENT_LIST = "/cgi-bin/agent/list";
|
public static final String AGENT_LIST = "/cgi-bin/agent/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@UtilityClass
|
||||||
|
public static class WorkBench {
|
||||||
|
public static final String WORKBENCH_TEMPLATE_SET = "/cgi-bin/agent/set_workbench_template";
|
||||||
|
public static final String WORKBENCH_TEMPLATE_GET = "/cgi-bin/agent/get_workbench_template";
|
||||||
|
public static final String WORKBENCH_DATA_SET = "/cgi-bin/agent/set_workbench_data";
|
||||||
|
}
|
||||||
|
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
public static class OAuth2 {
|
public static class OAuth2 {
|
||||||
public static final String GET_USER_INFO = "/cgi-bin/user/getuserinfo?code=%s&agentid=%d";
|
public static final String GET_USER_INFO = "/cgi-bin/user/getuserinfo?code=%s&agentid=%d";
|
||||||
|
|||||||
@ -314,4 +314,23 @@ public class WxCpConsts {
|
|||||||
*/
|
*/
|
||||||
public static final String MARKDOWN = "markdown";
|
public static final String MARKDOWN = "markdown";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class WorkBenchType {
|
||||||
|
/*
|
||||||
|
* 关键数据型
|
||||||
|
* */
|
||||||
|
public static final String KEYDATA = "keydata";
|
||||||
|
/*
|
||||||
|
* 图片型
|
||||||
|
* */
|
||||||
|
public static final String IMAGE = "image";
|
||||||
|
/*
|
||||||
|
* 列表型
|
||||||
|
* */
|
||||||
|
public static final String LIST = "list";
|
||||||
|
/*
|
||||||
|
* webview型
|
||||||
|
* */
|
||||||
|
public static final String WEBVIEW = "webview";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,130 @@
|
|||||||
|
package me.chanjar.weixin.cp.api.impl;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import me.chanjar.weixin.common.error.WxErrorException;
|
||||||
|
import me.chanjar.weixin.cp.api.ApiTestModule;
|
||||||
|
import me.chanjar.weixin.cp.api.WxCpService;
|
||||||
|
import me.chanjar.weixin.cp.bean.WxCpAgentWorkBench;
|
||||||
|
import me.chanjar.weixin.cp.bean.workbench.WorkBenchKeyData;
|
||||||
|
import me.chanjar.weixin.cp.bean.workbench.WorkBenchList;
|
||||||
|
import me.chanjar.weixin.cp.constant.WxCpConsts;
|
||||||
|
import org.testng.annotations.DataProvider;
|
||||||
|
import org.testng.annotations.Guice;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author songshiyu
|
||||||
|
* @date : create in 10:31 2020/9/29
|
||||||
|
* @description: 测试工作台服务
|
||||||
|
*/
|
||||||
|
@Guice(modules = ApiTestModule.class)
|
||||||
|
public class WxCpAgentWorkBenchImplTest {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private WxCpService wxCpService;
|
||||||
|
|
||||||
|
@Test(dataProvider = "template")
|
||||||
|
public void testTemplateSet(WxCpAgentWorkBench template) throws WxErrorException {
|
||||||
|
this.wxCpService.getWorkBenchService().setWorkBenchTemplate(template);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testTemplateGet() throws WxErrorException {
|
||||||
|
String result = this.wxCpService.getWorkBenchService().getWorkBenchTemplate(1000011L);
|
||||||
|
System.out.println("获取工作台模板设置:"+result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dataProvider = "userDatas")
|
||||||
|
public void testUserDataSet(WxCpAgentWorkBench userDatas) throws WxErrorException {
|
||||||
|
this.wxCpService.getWorkBenchService().setWorkBenchData(userDatas);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataProvider
|
||||||
|
public Object[][] template() {
|
||||||
|
return new Object[][]{
|
||||||
|
{WxCpAgentWorkBench.builder()
|
||||||
|
.agentId(1000011L)
|
||||||
|
.replaceUserData(true)
|
||||||
|
.type(WxCpConsts.WorkBenchType.IMAGE)
|
||||||
|
.url("http://www.qq.com")
|
||||||
|
.jumpUrl("http://www.qq.com")
|
||||||
|
.pagePath("pages/index")
|
||||||
|
.build()
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataProvider
|
||||||
|
public Object[][] userDatas() {
|
||||||
|
return new Object[][]{
|
||||||
|
{WxCpAgentWorkBench.builder()
|
||||||
|
.agentId(1000011L)
|
||||||
|
.userId("HaHa")
|
||||||
|
.type(WxCpConsts.WorkBenchType.IMAGE)
|
||||||
|
.url("http://www.qq.com")
|
||||||
|
.jumpUrl("http://www.qq.com")
|
||||||
|
.pagePath("pages/index")
|
||||||
|
.build()
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testKeyDataTemplateSet() throws WxErrorException {
|
||||||
|
WxCpAgentWorkBench template = new WxCpAgentWorkBench();
|
||||||
|
template.setAgentId(1000011L);
|
||||||
|
template.setType(WxCpConsts.WorkBenchType.KEYDATA);
|
||||||
|
List<WorkBenchKeyData> workBenchKeyDataList = new ArrayList<>();
|
||||||
|
for(int i = 1;i < 4;i++){
|
||||||
|
WorkBenchKeyData workBenchKeyData = new WorkBenchKeyData();
|
||||||
|
workBenchKeyData.setKey("审批"+i);
|
||||||
|
workBenchKeyData.setData(String.valueOf(i));
|
||||||
|
workBenchKeyData.setJumpUrl("http://www.qq.com");
|
||||||
|
workBenchKeyData.setPagePath("pages/index");
|
||||||
|
workBenchKeyDataList.add(workBenchKeyData);
|
||||||
|
}
|
||||||
|
template.setKeyDataList(workBenchKeyDataList);
|
||||||
|
template.setReplaceUserData(true);
|
||||||
|
this.wxCpService.getWorkBenchService().setWorkBenchTemplate(template);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testKeyDataUserDataSet() throws WxErrorException {
|
||||||
|
WxCpAgentWorkBench template = new WxCpAgentWorkBench();
|
||||||
|
template.setAgentId(1000011L);
|
||||||
|
template.setUserId("HaHa");
|
||||||
|
template.setType(WxCpConsts.WorkBenchType.KEYDATA);
|
||||||
|
List<WorkBenchKeyData> workBenchKeyDataList = new ArrayList<>();
|
||||||
|
WorkBenchKeyData workBenchKeyData = new WorkBenchKeyData();
|
||||||
|
workBenchKeyData.setKey("待审批");
|
||||||
|
workBenchKeyData.setData("2");
|
||||||
|
workBenchKeyData.setJumpUrl("http://www.qq.com");
|
||||||
|
workBenchKeyData.setPagePath("pages/index");
|
||||||
|
workBenchKeyDataList.add(workBenchKeyData);
|
||||||
|
template.setKeyDataList(workBenchKeyDataList);
|
||||||
|
this.wxCpService.getWorkBenchService().setWorkBenchTemplate(template);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testListTemplateSet() throws WxErrorException {
|
||||||
|
WxCpAgentWorkBench template = new WxCpAgentWorkBench();
|
||||||
|
template.setAgentId(1000011L);
|
||||||
|
template.setType(WxCpConsts.WorkBenchType.LIST);
|
||||||
|
List<WorkBenchList> workBenchListArray = new ArrayList<>();
|
||||||
|
for(int i = 0;i < 2;i++){
|
||||||
|
WorkBenchList workBenchlist = new WorkBenchList();
|
||||||
|
workBenchlist.setTitle("测试"+i);
|
||||||
|
workBenchlist.setJumpUrl("http://www.qq.com");
|
||||||
|
workBenchlist.setPagePath("pages/index");
|
||||||
|
workBenchListArray.add(workBenchlist);
|
||||||
|
}
|
||||||
|
template.setLists(workBenchListArray);
|
||||||
|
template.setReplaceUserData(true);
|
||||||
|
this.wxCpService.getWorkBenchService().setWorkBenchTemplate(template);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user