From 608f4bd5ff1a0024c04af0973b20ed360d1d16a0 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 09 Nov 2021 11:34:52 +0800
Subject: [PATCH] fix
---
zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java | 74 ++++++++++++++++++++++++++++++++++++-
1 files changed, 72 insertions(+), 2 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
index 5adb150..133d87d 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -16,6 +16,7 @@
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.init.LocalCache;
+import com.matrix.system.common.init.UserCacheManager;
import com.matrix.system.common.interceptor.HostInterceptor;
import com.matrix.system.common.service.SysCompanyService;
import com.matrix.system.common.service.SysUsersService;
@@ -77,6 +78,8 @@
@Autowired
WeChatApiTools weChatApiTools;
+ @Autowired
+ private UserCacheManager userCacheManager;
@Value("${file_storage_path}")
private String fileStoragePath;
@@ -278,6 +281,7 @@
}
AjaxResult ajaxResult = new AjaxResult();
+ ajaxResult.setStatus(AjaxResult.STATUS_SUCCESS);
ajaxResult.putInMap("url", list.get(0).getComWebUrl());
return ajaxResult;
}
@@ -289,7 +293,7 @@
return AjaxResult.buildFailInstance("code不存在");
}
AjaxResult res = new AjaxResult();
- String requrl = weChatApiTools.getXcxLoginUrl(code, HostInterceptor.getCompanyId(), AppConstance.MINI_PROGRAM_MANAGER_APP_ID);
+ String requrl = weChatApiTools.getManagerXcxLoginUrl(code);
String resultData = HttpCurlUtil.sendGetHttp(requrl, null);
JSONObject json = JSONObject.fromObject(resultData);
@@ -303,7 +307,73 @@
}
String openId = json.getString("openid");
- return null;
+ res.setStatus(AjaxResult.STATUS_SUCCESS);
+ res.putInMap("openId", openId);
+ SysUsers hasBind = sysUsersService.findByOpenId(openId, HostInterceptor.getCompanyId());
+ if (hasBind == null) {
+ res.setInfo("未绑定用户");
+ return res;
+ }
+
+ String token = userCacheManager.saveUserInfo(hasBind);
+ LogUtil.info("用户token={}", token);
+
+ authorityManager.initUserPower(res, hasBind);
+
+ UserInfoVo userInfoVo = new UserInfoVo();
+ userInfoVo.setId(hasBind.getSuId());
+ userInfoVo.setName(hasBind.getSuName());
+ userInfoVo.setRoleName(hasBind.getRoleName());
+ userInfoVo.setPhoto(hasBind.getSuPhoto());
+
+ res.putInMap("token", token);
+ res.putInMap("userInfo", userInfoVo);
+ return res;
+ }
+
+ @ApiOperation(value = "绑定用户")
+ @PostMapping(value = "/bindUser")
+ public AjaxResult bindUser(@RequestBody @Validated LoginDto loginDto) {
+ SysUsers user = new SysUsers();
+ user.setSuAccount(loginDto.getUsername());
+ user.setSuPassword(loginDto.getPassword());
+ LoginStrategy apLogin = new AccountPasswordLogin(user, sysUsersService);
+ user = authorityManager.login(apLogin);
+ user.setSuPassword(null);
+ user.setOpenIds(null);
+ String token = userCacheManager.saveUserInfo(user);
+
+ AjaxResult result = AjaxResult.buildSuccessInstance("登陆成功");
+ authorityManager.initUserPower(result, user);
+
+ UserInfoVo userInfoVo = new UserInfoVo();
+ userInfoVo.setId(user.getSuId());
+ userInfoVo.setName(user.getSuName());
+ userInfoVo.setRoleName(user.getRoleName());
+ userInfoVo.setPhoto(user.getSuPhoto());
+
+ result.putInMap("token", token);
+ result.putInMap("userInfo", userInfoVo);
+
+ synchronized (this) {
+ SysUsers hasBind = sysUsersService.findByOpenId(loginDto.getOpenId(), HostInterceptor.getCompanyId());
+ if (hasBind != null) {
+ if(StrUtil.isNotBlank(hasBind.getOpenIds())) {
+ List<String> openIds = StrUtil.split(hasBind.getOpenIds(), ',');
+ openIds.remove(loginDto.getOpenId());
+
+ hasBind.setOpenIds(CollUtil.join(openIds, ","));
+ sysUsersService.modifyByModel(hasBind);
+ }
+ }
+
+ List<String> openIds = StrUtil.split(user.getOpenIds(), ',');
+ openIds.add(loginDto.getOpenId());
+ user.setOpenIds(CollUtil.join(openIds, ","));
+ sysUsersService.modifyByModel(user);
+ }
+
+ return result;
}
}
--
Gitblit v1.9.1