DingTalkConsts.java 3.47 KB
package com.hotent.system.consts;


import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import cn.hutool.core.util.StrUtil;
import com.hotent.base.util.AppUtil;
import com.hotent.system.enums.BaseUrlEnum;
import com.hotent.system.model.SysExternalUnite;
import com.hotent.system.persistence.manager.SysExternalUniteManager;
import com.hotent.system.util.DingTalkTokenUtil;

/**
 * 阿里钉钉常量
 * @author pangquan
 *
 */
public class DingTalkConsts {
	private final static String DT_URL = "https://oapi.dingtalk.com";
	private final static String DT_URL_NEW = "https://oapi.dingtalk.com/topapi/v2";
	/**
	 * 获取集成信息
	 * @return
	 */
	public static SysExternalUnite getUnite(){
		SysExternalUniteManager manager= AppUtil.getBean(SysExternalUniteManager.class);
		return manager.getDingtalk();
	}
	/**
	 * 获取钉钉用户详细信息
	 * @return
	 */
	public static String getUserUrl() throws IOException {
		String url = DT_URL + "/user/get?access_token=" + DingTalkTokenUtil.getToken() + "&userid=";
		return url;
	}
	public static String getTokenUrl() {
		return DT_URL + "/gettoken?appkey=" + getUnite().getCorpId() + "&appsecret=" + getUnite().getCorpSecret();
	}
	public static String getCreateUserUrl() throws IOException {
		String url = DT_URL + "/user/create?access_token=" + DingTalkTokenUtil.getToken();
		return url;
	}
	public static String getOrgUrl() throws IOException {
		String url = DT_URL + "/department/get?access_token=" + DingTalkTokenUtil.getToken();
		return url;
	}
	public static String getCreateOrgUrl() throws IOException {
		String url = DT_URL_NEW + "/department/create";
		return url;
	}
	public static String getUpdateOrgUrl() throws IOException {
		String url = DT_URL + "/department/update?access_token=" + DingTalkTokenUtil.getToken();
		return url;
	}
	public static String getDeleteOrgUrl() throws IOException {
		String url = DT_URL + "/department/delete?access_token=" + DingTalkTokenUtil.getToken() + "&dept_id=";
		return url;
	}
	public static String generateMenuUrl(String baseUrl,String corpId, BaseUrlEnum baseUrlEnum) throws UnsupportedEncodingException {
		String path = BaseUrlEnum.PC.equals(baseUrlEnum)?"index":"home";
		if(!baseUrl.endsWith(StrUtil.SLASH)){
			path = StrUtil.SLASH + path;
		}
		String redirect_uri = baseUrl + path;
		String url = baseUrl+"/dingTalk?corpid="+corpId+"&redirect_uri="+URLEncoder.encode(redirect_uri,"UTF-8");
		return url;
	}
	public static String getUserInfo(String code) throws IOException {
		return DT_URL+"/user/getuserinfo?access_token="+DingTalkTokenUtil.getToken()+"&code="+code;
	}
	
	/**
	 * 发送消息的api地址
	 * @return
	 */
	public static String getMsgSendUrl(){
		return DT_URL +"/topapi/message/corpconversation/asyncsend_v2";
	}
	public static String getAuthorize(String paramStr) {
		return getUnite().getBaseUrl()+"/dingTalk?corpid="+getUnite().getAgentKey()+"&params="+paramStr;
	}
	/**
	 * 获取部门列表
	 * @param department_id
	 * @return
	 * @throws IOException 
	 */
	public static String getDepartmentListUrl() throws IOException {
		String url =DT_URL +"/department/list";
		return url;
	}
	/**
	 * 获取部门用户详情
	 * @return
	 */
	public static String getUsersByDepartmentId() {
		String url =DT_URL +"/user/listbypage";
		return url;
	}
	/**
	 * 获取指定部门的所有父部门列表
	 * @return
	 * @throws IOException
	 */
	public static String getParentByDept() throws IOException {
		return DT_URL_NEW +"/department/listparentbydept";
	}
}