From 14c69fa5336d7d40eaa823c889f5adf233ce573b Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Thu, 3 Nov 2022 09:36:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=81=E4=B8=9A=E5=BE=AE=E4=BF=A1=E5=AE=98?= =?UTF-8?q?=E6=96=B9=E9=80=9A=E8=AE=AF=E5=BD=95=E5=90=8C=E6=AD=A5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E6=95=B4=20#4058?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/ThirdAppController.java | 20 +++++++------ .../ThirdAppWechatEnterpriseServiceImpl.java | 28 +++++++++++++++---- pom.xml | 2 +- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdAppController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdAppController.java index 20828754..df102e85 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdAppController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdAppController.java @@ -72,15 +72,17 @@ public class ThirdAppController { */ @GetMapping("/sync/wechatEnterprise/user/toLocal") public Result syncWechatEnterpriseUserToLocal(@RequestParam(value = "ids", required = false) String ids) { - if (thirdAppConfig.isWechatEnterpriseEnabled()) { - SyncInfoVo syncInfo = wechatEnterpriseService.syncThirdAppUserToLocal(); - if (syncInfo.getFailInfo().size() == 0) { - return Result.OK("同步成功", syncInfo); - } else { - return Result.error("同步失败", syncInfo); - } - } - return Result.error("企业微信同步功能已禁用"); + return Result.error("由于企业微信接口调整,同步到本地功能已失效"); + +// if (thirdAppConfig.isWechatEnterpriseEnabled()) { +// SyncInfoVo syncInfo = wechatEnterpriseService.syncThirdAppUserToLocal(); +// if (syncInfo.getFailInfo().size() == 0) { +// return Result.OK("同步成功", syncInfo); +// } else { +// return Result.error("同步失败", syncInfo); +// } +// } +// return Result.error("企业微信同步功能已禁用"); } /** diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java index bf6e54d1..4eab9290 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java @@ -21,6 +21,7 @@ import org.jeecg.common.util.PasswordUtil; import org.jeecg.common.util.RestUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.config.JeecgBaseConfig; import org.jeecg.config.thirdapp.ThirdAppConfig; import org.jeecg.modules.system.entity.*; import org.jeecg.modules.system.mapper.SysAnnouncementSendMapper; @@ -51,6 +52,8 @@ public class ThirdAppWechatEnterpriseServiceImpl implements IThirdAppService { @Autowired ThirdAppConfig thirdAppConfig; @Autowired + JeecgBaseConfig jeecgBaseConfig; + @Autowired private ISysDepartService sysDepartService; @Autowired private SysUserMapper userMapper; @@ -302,7 +305,10 @@ public class ThirdAppWechatEnterpriseServiceImpl implements IThirdAppService { return syncInfo; } // 获取企业微信所有的用户 - List qwUsers = JwUserAPI.getDetailUsersByDepartid("1", null, null, accessToken); +// List qwUsers = JwUserAPI.getDetailUsersByDepartid("1", null, null, accessToken); + // 获取企业微信所有的用户(只能获取userid) + List qwUsers = JwUserAPI.getUserIdList(accessToken); + if (qwUsers == null) { syncInfo.addFailInfo("企业微信用户列表查询失败!"); return syncInfo; @@ -336,15 +342,16 @@ public class ThirdAppWechatEnterpriseServiceImpl implements IThirdAppService { for (User qwUserTemp : qwUsers) { if (sysThirdAccount == null || oConvertUtils.isEmpty(sysThirdAccount.getThirdUserId()) || !sysThirdAccount.getThirdUserId().equals(qwUserTemp.getUserid())) { // sys_third_account 表匹配失败,尝试用手机号匹配 - String phone = sysUser.getPhone(); - if (!(oConvertUtils.isEmpty(phone) || phone.equals(qwUserTemp.getMobile()))) { + // 新版企业微信调整了API,现在只能通过userid来判断是否同步过了 +// String phone = sysUser.getPhone(); +// if (!(oConvertUtils.isEmpty(phone) || phone.equals(qwUserTemp.getMobile()))) { // 手机号匹配失败,再尝试用username匹配 String username = sysUser.getUsername(); if (!(oConvertUtils.isEmpty(username) || username.equals(qwUserTemp.getUserid()))) { // username 匹配失败,直接跳到下一次循环继续 continue; } - } +// } } // 循环到此说明用户匹配成功,进行更新操作 qwUser = this.sysUserToQwUser(sysUser, qwUserTemp); @@ -834,7 +841,18 @@ public class ThirdAppWechatEnterpriseServiceImpl implements IThirdAppService { TextCardEntity entity = new TextCardEntity(); entity.setTitle(announcement.getTitile()); entity.setDescription(oConvertUtils.getString(announcement.getMsgAbstract(),"空")); - entity.setUrl(RestUtil.getBaseUrl() + "/sys/annountCement/show/" + announcement.getId()); + String baseUrl = null; + + //优先通过请求获取basepath,获取不到读取 jeecg.domainUrl.pc + try { + baseUrl = RestUtil.getBaseUrl(); + } catch (Exception e) { + log.warn(e.getMessage()); + baseUrl = jeecgBaseConfig.getDomainUrl().getPc(); + //e.printStackTrace(); + } + + entity.setUrl(baseUrl + "/sys/annountCement/show/" + announcement.getId()); textCard.setTextcard(entity); return JwMessageAPI.sendTextCardMessage(textCard, accessToken); } diff --git a/pom.xml b/pom.xml index 16189e5f..22c73a98 100644 --- a/pom.xml +++ b/pom.xml @@ -297,7 +297,7 @@ org.jeecgframework jeewx-api - 1.4.9 + 1.5.0 commons-beanutils