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()+"¶ms="+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"; } }