All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.zkdcloud.core.MenuComponent Maven / Gradle / Ivy

package cn.zkdcloud.core;

import cn.zkdcloud.component.menu.*;
import cn.zkdcloud.component.menu.button.NormalButton;
import cn.zkdcloud.component.menu.button.ViewButton;
import cn.zkdcloud.util.AccessToken;
import cn.zkdcloud.util.HttpUtil;
import cn.zkdcloud.util.JsonUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.log4j.Logger;

/**
 * 菜单组件
 *
 * @author zk
 * @version 2017/8/25
 */
public class MenuComponent implements Component {

    private static Logger logger = Logger.getLogger(MenuComponent.class);

    /**
     * menuComponent
     */
    private static MenuComponent menuComponent;

    /**
     * 创建菜单 URL (POST)
     */
    public static String CREATE = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + AccessToken.getAccessToken();
    /**
     * 获取菜单 URL (GET)
     */
    public static String GET = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" + AccessToken.getAccessToken();
    /**
     * 删除菜单 URL (GET)
     */
    public static String DELETE = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + AccessToken.getAccessToken();

    /**
     * 菜单
     */
    private Menu menu;

    @Override
    public void init() {

    }

    /**
     * 如有有必要初始化菜单
     */
    public void initMenu() {
        if (menu == null) {
            menu = new Menu();
        }

        menu.addButton(NormalButton.creaetOne("菜单一")
                .addSubButton(NormalButton.createOne(MenuType.CLICK, "key1", "click1"))
                .addSubButton(ViewButton.createOne("view", "http://www.baidu.com"))
                .addSubButton(NormalButton.createOne(MenuType.PIC_SYSPHOTO, "pic", "系统拍照")))
                .addButton(NormalButton.creaetOne("菜单二")
                        .addSubButton(NormalButton.createOne(MenuType.CLICK, "key1", "click1"))
                        .addSubButton(NormalButton.createOne(MenuType.SCANCODE_PUSH, "push", "扫码推送事件"))
                        .addSubButton(NormalButton.createOne(MenuType.SCANCODE_WAITMSG, "push2", "扫码带提示")));

        JSONObject ret = menu.build();// build menu
        if (JsonUtil.isError(ret)) {
            return;
        }
    }

    /**
     * 获取菜单
     *
     * @return menuBean
     */
    public Menu getMenu() {
        String ret = HttpUtil.doGet(GET);
        if (JsonUtil.isError(ret)) {
            return null;
        }

        JSONObject menuJson = JSON.parseObject(ret).getJSONObject("menu");
        Menu menu = menuJson.toJavaObject(Menu.class);
        return menu;
    }

    /**
     * 删除菜单
     */
    public boolean deleteMenu() {
        String ret = HttpUtil.doGet(DELETE);
        return JsonUtil.isError(ret) ? false : true;
    }

    /**
     * 获取菜单组件
     *
     * @return
     */
    public static MenuComponent getInstance() {
        if (menuComponent == null) {
            menuComponent = new MenuComponent();
        }
        return menuComponent;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy