//package com.gree.mall.manager.logic.common;
//
//import org.apache.commons.lang3.StringUtils;
//import com.gree.mall.manager.config.wx.WxConfiguration;
//import com.gree.mall.manager.plus.entity.AdminCompanyWechat;
//import lombok.extern.slf4j.Slf4j;
//import me.chanjar.weixin.common.error.WxErrorException;
//import me.chanjar.weixin.cp.api.WxCpService;
//import me.chanjar.weixin.cp.bean.Gender;
//import me.chanjar.weixin.cp.bean.WxCpDepart;
//import me.chanjar.weixin.cp.bean.WxCpMaJsCode2SessionResult;
//import me.chanjar.weixin.cp.bean.WxCpUser;
//import me.chanjar.weixin.cp.bean.external.WxCpUserExternalTagGroupList;
//import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactBatchInfo;
//import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
//import org.springframework.stereotype.Component;
//
//import java.util.List;
//import java.util.Map;
//
///**
// *  企业微信api
// *  2021-09-17
// *  lijh
// */
//@Component
//@Slf4j
//public class WorkWechatLogic {
//
//
//    /**
//     * 小程序应用
//     */
//    public WxCpService miniApp(AdminCompanyWechat adminCompanyWechat){
//        WxCpService wxCpService = WxConfiguration.cpServices.get(adminCompanyWechat.getCompanyWechatId()).get(adminCompanyWechat.getAgentId1());
//        return wxCpService;
//    }
//
//
//    /**
//     * 客户联系密钥
//     */
//    public WxCpService miniTagApp(AdminCompanyWechat adminCompanyWechat){
//        WxCpService cpService = WxConfiguration.cpServices.get(adminCompanyWechat.getCompanyWechatId()).get(adminCompanyWechat.getAgentId2());
//        return cpService;
//    }
//
//    /**
//     * 通讯录同步
//     */
//    public WxCpService tongxunluApp(AdminCompanyWechat adminCompanyWechat){
//        WxCpService cpService = WxConfiguration.cpServices.get(adminCompanyWechat.getCompanyWechatId()).get(adminCompanyWechat.getAgentId3());
//        return cpService;
//    }
//
//    /**
//     * 验证登录身份
//     * @param code
//     * @return
//     * @throws WxErrorException
//     */
//    public WxCpMaJsCode2SessionResult jsCode2Session(String code,AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//        WxCpMaJsCode2SessionResult wxCpMaJsCode2SessionResult = this.miniApp(adminCompanyWechat).jsCode2Session(code);
//        return wxCpMaJsCode2SessionResult;
//    }
//
//    /**
//     * 获取企业微信成员
//     * @param userId
//     * @return
//     * @throws WxErrorException
//     */
//    public WxCpUser getUser(String userId,AdminCompanyWechat adminCompanyWechat) {
//        try {
//            WxCpUser wxCpUser = this.miniApp(adminCompanyWechat).getUserService().getById(userId);
//            return wxCpUser;
//        }catch(Exception e){
//            log.error("获取企业微信成员失败",e);
//            return null;
//        }
//    }
//
//
//    /**
//     * 获取企业标签
//     * @return
//     * @throws WxErrorException
//     */
//    public  List<WxCpUserExternalTagGroupList.TagGroup> getTag(AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//        WxCpUserExternalTagGroupList corpTagList = this.miniTagApp(adminCompanyWechat).getExternalContactService().getCorpTagList(null);
//        List<WxCpUserExternalTagGroupList.TagGroup> tagGroupList = corpTagList.getTagGroupList();
//        return tagGroupList;
//    }
//
//    /**
//     * 获取客户列表用户id
//     * @param workUserId
//     * @return
//     * @throws WxErrorException
//     */
//    public List<String> getExternalUserIdByWorkUserId(String workUserId,AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//        List<String> strings = this.miniTagApp(adminCompanyWechat).getExternalContactService().listExternalContacts(workUserId);
//        return strings;
//    }
//
//    /**
//     * 获取客户详情
//     */
//    public WxCpExternalContactInfo getCustomerDetail(String externalUserId,AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//        WxCpExternalContactInfo contactDetail = this.miniTagApp(adminCompanyWechat).getExternalContactService().getContactDetail(externalUserId);
//        return contactDetail;
//    }
//
//    /**
//     * 批量获取客户详情
//     * @param workUserIds 成员ids
//     * @param cursor 用于分页查询的游标，字符串类型，由上一次调用返回，首次调用可不填
//     * @param limit 返回的最大记录数，整型，最大值100，默认值50，超过最大值时取最大值
//     */
//    public List<WxCpExternalContactBatchInfo.ExternalContactInfo> getCustomerByExternalUserId(String workUserIds, String cursor, Integer limit,AdminCompanyWechat adminCompanyWechat) {
//        try {
//            List<WxCpExternalContactBatchInfo.ExternalContactInfo> contactDetailBatch = this.miniTagApp(adminCompanyWechat).getExternalContactService()
//                    .getContactDetailBatch(workUserIds, cursor, limit).getExternalContactList();
//            return contactDetailBatch;
//        }catch(Exception e){
//            log.error("获取客户详情失败",e);
//        }
//        return null;
//    }
//
//
//    /**
//     * 新增部门
//     */
//    public Long addOrganization(String name,Long parentId,AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//        WxCpDepart wxCpDepart = new WxCpDepart();
//        //wxCpDepart.setId(id);
//        wxCpDepart.setName(name);
//        wxCpDepart.setParentId(parentId);
//        Long aLong = this.tongxunluApp(adminCompanyWechat).getDepartmentService().create(wxCpDepart);
//        return aLong;
//    }
//
//    /**
//     * 修改部门
//     */
//    public void updateOrganization(Long id,String name,Long parentId,AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//
//        WxCpDepart wxCpDepart = new WxCpDepart();
//        wxCpDepart.setId(id);
//        wxCpDepart.setName(name);
//        wxCpDepart.setParentId(parentId);
//        this.tongxunluApp(adminCompanyWechat).getDepartmentService().update(wxCpDepart);
//
//    }
//
//    /**
//     * 删除部门
//     */
//    public void deleteOrganization(Long id,AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//        try {
//            this.tongxunluApp(adminCompanyWechat).getDepartmentService().delete(id);
//        }catch (Exception e){
//            log.error("删除部门失败"+e.getMessage());
//        }
//    }
//
//
//    /**
//     * 新增成员
//     */
//    public void addWorkUser(String userId,String name,String mobile,Integer gender,String email,Long department,String position,AdminCompanyWechat adminCompanyWechat) {
//
//        WxCpUser wxCpUser = new WxCpUser();
//        wxCpUser.setUserId(userId);
//        wxCpUser.setName(name);
//        wxCpUser.setMobile(mobile);
//        wxCpUser.setPosition(position);
//        wxCpUser.setDepartIds(new Long[]{department});
//        wxCpUser.setMainDepartment(department.toString());
//        if(gender == 0) {
//            wxCpUser.setGender(Gender.UNDEFINED);
//        }else if(gender == 1){
//            wxCpUser.setGender(Gender.MALE);
//        }else{
//            wxCpUser.setGender(Gender.FEMALE);
//        }
//        if(StringUtils.isNotBlank(email)){
//            wxCpUser.setEmail(email);
//        }
//        try {
//            //this.tongxunluApp(adminCompanyWechat).getUserService().create(wxCpUser);
//        }catch(Exception e){
//            log.error("同步企业微信成员失败:{}",userId);
//        }
//    }
//
//    /**
//     * 修改成员
//     */
//    public void updateWorkUser(String userId,String name,String mobile,Integer gender,String email,Long department,String position,AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//        WxCpUser wxCpUser = new WxCpUser();
//        wxCpUser.setUserId(userId);
//        wxCpUser.setName(name);
//        wxCpUser.setMobile(mobile);
//        wxCpUser.setDepartIds(new Long[]{department});
//        wxCpUser.setMainDepartment(department.toString());
//        wxCpUser.setPosition(position);
//        if(gender == 0) {
//            wxCpUser.setGender(Gender.UNDEFINED);
//        }else if(gender == 1){
//            wxCpUser.setGender(Gender.MALE);
//        }else{
//            wxCpUser.setGender(Gender.FEMALE);
//        }
//        if(StringUtils.isNotBlank(email)){
//            wxCpUser.setEmail(email);
//        }
//        //this.tongxunluApp(adminCompanyWechat).getUserService().update(wxCpUser);
//    }
//
//    /**
//     * 删除成员
//     */
//    public void deleteWorkUser(String userId,AdminCompanyWechat adminCompanyWechat) throws WxErrorException {
//        try {
//            //this.tongxunluApp(adminCompanyWechat).getUserService().delete(userId);
//        }catch(Exception e){
//            log.error("删除企业微信成员失败"+e.getMessage());
//        }
//    }
//
//
//
//}
