diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java index 18ee840..5edf391 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java @@ -217,6 +217,44 @@ public class PaymentController { } } + @GetMapping("/login/qy/fake") + public ResponseDTO fakeQyLogin(String corpid, String userid) { + try { + QyAccessTokenEntity qyAccessToken = accessTokenApplicationService.getByAppid("QWTONG_YS_WXSHOP", corpid); + // 通过企业微信code获取用户ID + // 根据企业微信用户ID查询系统用户名 + SysUserEntity sysUserEntity = sysUserQyUserApplicationService.getSysUserByQyUserid(userid); + + SystemLoginUser loginUser = new SystemLoginUser(); + loginUser.setAdmin(false); + loginUser.setUserId(sysUserEntity.getUserId()); + List routerTree = menuApplicationService.getRouterTree(loginUser); + log.info("getRouterTree,userid: {}, routerTree: {}", userid, JSONUtil.toJsonStr(routerTree)); + + int isCabinetAdmin = 0; + if (routerTree != null && !routerTree.isEmpty()) { + isCabinetAdmin = isCabinetAdmin(routerTree) + ? 1 : 0; + } + + OpenidResponse openidResponse = QywxApiUtil.convertToOpenid(qyAccessToken.getAccessToken(), userid); + + QyUserEntity qyUserEntity = qyUserApplicationService.getUserByUserIdAndCorpid(userid, corpid); + Ab98UserEntity ab98User = null; + if (qyUserEntity != null && qyUserEntity.getAb98UserId() != null) { + ab98User = ab98UserApplicationService.getByAb98UserId(qyUserEntity.getAb98UserId()); + } + + return ResponseDTO.ok(new QyLoginDTO(userid, openidResponse.getOpenid(), isCabinetAdmin, + qyUserEntity == null ? 0 : qyUserEntity.getId(), + qyUserEntity == null ? "" : qyUserEntity.getName(), + ab98User)); + } catch (RestClientException e) { + log.error("qyLogin失败", e); + return ResponseDTO.fail(new ApiException(ErrorCode.Client.COMMON_REQUEST_PARAMETERS_INVALID, "微信服务调用失败")); + } + } + private static boolean isCabinetAdmin(List routerTree) { if (routerTree == null || routerTree.isEmpty()) { return false; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/userQySys/db/SysUserQyUserMapper.java b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/userQySys/db/SysUserQyUserMapper.java index f7e1393..4798953 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/userQySys/db/SysUserQyUserMapper.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/userQySys/db/SysUserQyUserMapper.java @@ -44,7 +44,7 @@ public interface SysUserQyUserMapper extends BaseMapper { "FROM sys_user_qy_user suqy " + "JOIN qy_user qu ON suqy.qy_user_id = qu.id " + "JOIN sys_user su ON suqy.sys_user_id = su.user_id " + - "WHERE qu.userid = #{userid}") + "WHERE qu.userid = #{userid} AND qu.deleted = 0 AND qu.enable = 1") SysUserEntity selectSysUserByQyUserid(@Param("userid") String userid); }