• 企业微信组件


    一、简介

    1.1 概述

    企业微信服务支持

    1.2 组件坐标

    <dependency>
        <groupId>org.hzero.starter</groupId>
        <artifactId>hzero-starter-integrate-wechat-enterprise</artifactId>
    </dependency>
    

    二、使用说明

    提供了企业微信基础接口、应用消息发送及同步通讯录方法。

    2.1 企业微信基础接口

    WechatCorpAddressService提供企业微信基础接口:

    
            /**
             * 创建成员
             * @param userDTO
             * @param accessToken
             * @return
             */
            DefaultResultDTO createUser(SyncUserDTO userDTO, String accessToken);
        
            /**
             * 读取成员
             * @param userid
             * @param accessToken
             * @return
             */
            GetUserDTO getUserById(String userid, String accessToken);
        
            /**
             * 更新成员
             * @param userDTO
             * @param accessToken
             * @return
             */
            DefaultResultDTO updateUser(SyncUserDTO userDTO, String accessToken);
        
            /**
             * 删除成员
             * @param userid
             * @param accessToken
             * @return
             */
            DefaultResultDTO deleteUserById(String userid, String accessToken);
        
            /**
             * 批量删除成员
             * @param userids
             * @param accessToken
             * @return
             */
            DefaultResultDTO batchDeleteUser(List<String> userids, String accessToken);
        
            /**
             * 获取部门成员
             * @param deptid 企业微信部门id
             * @param accessToken
             * @return
             */
            DeptUserDTO getUsersByDeptId(Long deptid, String accessToken,int fetch_child);
        
            /**
             * 获取部门成员详情
             * @param accessToken
             * @param department_id
             * @param fetch_child
             * @return
             */
            GetUserInfoByDeptIdResultDTO  getUserInfoByDeptId( String accessToken, Long department_id, int fetch_child);
        
            /**
             *  userid转openid
             * @param accessToken
             * @param userid
             * @return
             */
            ConvertToOpenidResultDTO convertToOpenid(String accessToken, String userid);
        
            /**
             * userid转openid
             * @param accessToken
             * @param openid
             * @return
             */
            ConvertToUseridResultDTO convertToUserid(String accessToken, String openid);
        
            /**
             * 二次验证
             * @param accessToken
             * @param userid
             * @return
             */
            DefaultResultDTO secondAuth(String accessToken,  String userid);
        
            /**
             * 邀请成员
             * @param accessToken
             * @param inviteUserDTO
             * @return
             */
            InviteUserResultDTO inviteUser(String accessToken, InviteUserDTO inviteUserDTO);
        
            /**
             * 获取加入企业二维码
             * @param accessToken
             * @param size_type
             * @return
             */
            GetJoinQrcodeResultDTO getJoinQrcode(String accessToken, String size_type);
        
            /**
             * 根据code获取访问用户身份
             * @param accessToken
             * @param code
             * @return
             */
        
            GetUserInfoByCodeResultDTO getUserInfoByCode(String accessToken, String code );
        
            /**
             * 创建部门
             * @param deptDTO
             * @param accessToken
             * @return
             */
            CreateDeptResultDTO createDept(SyncDeptDTO deptDTO, String accessToken);
        
            /**
             * 更新部门
             * @param deptDTO
             * @param accessToken
             * @return
             */
            DefaultResultDTO updateDept(SyncDeptDTO deptDTO, String accessToken);
        
            /**
             * 删除部门
             * @param deptId
             * @param accessToken
             * @return
             */
            DefaultResultDTO deleteDeptById(Long deptId, String accessToken);
        
            /**
             * 获取部门列表
             * @param deptId
             * @param accessToken
             * @return
             */
            DeptListDTO getDeptList(Long deptId, String accessToken);
        
            /**
             * 创建标签
             * @param accessToken
             * @param createTagDTO
             * @return
             */
            CreateTagResultDTO CreateTag(String accessToken, CreateTagDTO createTagDTO);
        
            /**
             * 更新标签名字
             * @param accessToken
             * @param updateTagNameDTO
             * @return
             */
            DefaultResultDTO updateTagName(String accessToken, UpdateTagNameDTO updateTagNameDTO);
        
            /**
             * 删除标签
             * @param accessToken
             * @param tagid
             * @return
             */
            DefaultResultDTO deleteTag(String accessToken, String tagid);
        
            /**
             * 获取标签成员
             * @param accessToken
             * @param tagid
             * @return
             */
            GetTagUserResultDTO getTagUser(String accessToken, String tagid);
        
            /**
             * 增加标签成员
             * @param accessToken
             * @param tagUserDTO
             * @return
             */
            TagUserResultDTO addTagUser(String accessToken, TagUserDTO tagUserDTO);
        
            /**
             * 删除标签成员
             * @param accessToken
             * @param tagUserDTO
             * @return
             */
            TagUserResultDTO deleteTagUser(String accessToken, TagUserDTO tagUserDTO);
        
            /**
             * 获取标签列表
             * @param accessToken
             * @return
             */
            GetTagUserListResultDTO getTagUserList(String accessToken);
    
    

    2.2 消息推送

    WechatCorpMessageService提供企业微信消息推送功能接口

    
        /**
         * 发送应用消息-文本消息
         * @param messageDTO 文本消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendTextMsg(TextMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-图片消息
         * @param messageDTO 图片消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendImageMsg(ImageMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-语音消息
         * @param messageDTO 语音消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendVoiceMsg(VoiceMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-视频消息
         * @param messageDTO 视频消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendVideoMsg(VideoMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-文件消息
         * @param messageDTO 文件消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendFileMsg(FileMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-文本卡片消息
         * @param messageDTO 文本卡片消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendTextCardMsg(TextCardMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-图文消息
         * @param messageDTO 图文消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendNewsMsg(NewsMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-markdown消息
         * @param messageDTO 图片消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendMarkdownMsg(MarkdownMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-小程序通知消息
         * @param messageDTO 小程序通知消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendMiniProgramNoticeMsg(MiniProgramNoticeMessageDTO messageDTO, String accessToken);
    
        /**
         * 发送应用消息-任务卡片消息
         * @param messageDTO 任务卡片消息
         * @param accessToken
         * @return
         */
        MessageSendResultDTO sendTaskCardMsg(TaskCardMessageDTO messageDTO, String accessToken);
    
        /**
         * 创建群聊会话
         * @param appChatCreateResultDTO
         * @param accessToken
         * @return
         */
        AppChatCreateResultDTO createAppChat(AppChatCreateResultDTO appChatCreateResultDTO,String accessToken);
    
        /**
         * 修改群聊会话
         * @param appChatCreateResultDTO
         * @param accessToken
         * @return
         */
        DefaultResultDTO updateAppChat(AppChatUpdateDTO appChatCreateResultDTO,String accessToken);
    
        /**
         * 获取群聊会话
         * @param chatid 群聊id
         * @param accessToken
         * @return
         */
        AppChatDTO getAppChat(String chatid,String accessToken);
    
        /**
         * 应用推送消息
         * @param object 根据企业微信自己构造吧 <url>https://open.work.weixin.qq.com/api/doc#90000/90135/90248</url>
         * @param accessToken
         * @return
         */
        DefaultResultDTO sendAppChat(Object object,String accessToken);
    
    

    2.3 应用管理

    WechatCorpAgentManageService提供企业微信应用管理相关接口

    
        /**
         * 获取指定的应用详情
         *
         * @param agentId 应用id
         * @return
         */
        AgentDTO getAgentByID(String agentId,String accessToken);
    
        /**
         * 获取access_token对应的应用列表
         *
         * @return
         */
        AgentListDTO getAgentList(String accessToken);
    
        /**
         * 设置应用
         * @param setAgentDTO
         * @return
         */
        DefaultResultDTO setAgent(SetAgentDTO setAgentDTO,String accessToken);
    
        /**
         * 创建菜单
         * @param accessToken
         * @param agentid
         * @param menuDTO
         * @return
         */
        DefaultResultDTO createMenu(String accessToken, String agentid, MenuDTO  menuDTO);
    
        /**
         * 获取菜单
         * @param accessToken
         * @param agentid
         * @return
         */
        MenuDTO getMenu(String accessToken, String agentid);
    
        /**
         * 删除菜单
         * @param accessToken
         * @param agentid
         * @return
         */
        DefaultResultDTO deleteMenu(String accessToken, String agentid );
    
    

    2.4 jsapi_ticket

    WechatTicketService提供企业微信jsapi_ticket相关接口

    
        /**
         * 获取电子发票ticket
         * 获取应用的jsapi_ticket
         */
        GetTicketResultDTO getTicket(String accessToken, String agent_config);
    
        /**
         * 获取企业的jsapi_ticket
         */
       GetTicketResultDTO getEnterpriseTicket(String accessToken);
    
        /**
         * 签名算法
         */
        String algorithmSignature(String noncestr, String jsapi_ticket, String timestamp, String url);
    
    

    2.5 素材管理

    WechatMaterialManageService提供企业微信素材管理相关接口

    
        /**
         * 上传临时素材
         * @param accessToken
         * @param type
         * @param name
         * @param filename
         * @param filelength
         * @param contentType
         * @return
         */
         UploadMediaResultDTO uploadMedia(String accessToken, String type, String name, String filename, String filelength, String contentType);
    
        /**
         * 上传图片
         * @param accessToken
         * @param name
         * @param filename
         * @param Content_type
         * @param contentLength
         * @return
         */
         UploadImageResultDTO uploadImage(String accessToken, String name, String filename, String Content_type, String contentLength) ;
    
        /**
         *  获取临时素材
         * @param accessToken
         * @param media_id
         * @return
         */
         ResponseEntity<DefaultResultDTO> getMedia(String accessToken, String media_id);
    
        /**
         * 获取高清语音素材
         * @param accessToken
         * @param media_id
         * @return
         */
         ResponseEntity<DefaultResultDTO> getHDMedia(String accessToken, String media_id);
    
    

    2.6 通讯录同步

    WechatCorpSyncService提供hzero通讯录增量同步到企业微信的相关方法

    
    /**
         * 获取token且redis缓存
         * @param corpId 微信corpId
         * @param corpSecret 微信corpSecret
         * @return
         */
        TokenDTO getTokenWithCache(String corpId, String corpSecret, SecretTypeEnum secretTypeEnum);
    
        /**
         * 获取token
         * @param corpId 微信corpId
         * @param corpSecret 微信corpSecret
         * @return
         */
        TokenDTO getToken(String corpId, String corpSecret);
    
        /**
         * 从第三方 获取企业微信的token
         * @param authUrl 第三方地址,参数需自己拼接
         * @return
         */
        TokenDTO getTokenFromThirdPart(String authUrl);
    
        /**
         * 同步企业组织架构
         * @param wxSyncDeptDTOList 微信部门
         * @param wxSyncUserDTOS  微信员工
         * @param fileName 日志文件名
         * @param useGeneratedDeptId 是否使用自动生成的部门id
         * @param accessToken  授权Token
         * @return
         */
        SyncCorpResultDTO syncCorp(List<SyncDeptDTO> wxSyncDeptDTOList, List<SyncUserDTO> wxSyncUserDTOS, String fileName,
                        Boolean useGeneratedDeptId, String accessToken);