From 9c791d431038fe79a111805762ee2f42c96b51c5 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 08 Nov 2021 17:03:15 +0800
Subject: [PATCH] fix
---
zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java | 5 ++
zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java | 10 +++++
zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java | 1
zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java | 55 +++++++++++++++++++++++++++
zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java | 1
zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java | 10 +++++
zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml | 7 +++
7 files changed, 88 insertions(+), 1 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..8e53584 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;
@@ -303,7 +306,57 @@
}
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);
+ res.putInMap("token", token);
+ res.putInMap("userInfo", hasBind);
+ 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);
+ result.putInMap("token", token);
+ result.putInMap("userInfo", user);
+
+ 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;
}
}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java
index a06332d..a919a3e 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java
@@ -20,6 +20,16 @@
@NotBlank(message = "用户名或密码错误")
private String password;
+ private String openId;
+
+ public String getOpenId() {
+ return openId;
+ }
+
+ public void setOpenId(String openId) {
+ this.openId = openId;
+ }
+
public String getUsername() {
return username;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java b/zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java
index dcadb31..a68a8d5 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java
@@ -288,6 +288,16 @@
@Extend
private SysCompany company;
+ private String openIds;
+
+ public String getOpenIds() {
+ return openIds;
+ }
+
+ public void setOpenIds(String openIds) {
+ this.openIds = openIds;
+ }
+
public String getAllCustomer() {
return allCustomer;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java b/zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java
index fcb8f9a..daadc33 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java
@@ -125,4 +125,5 @@
public List<AppVersion> selectAppVersion();
+ SysUsers selectUserByOpenId(@Param("openId") String openId, @Param("companyId") Long companyId);
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java b/zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java
index b41f466..905a0ff 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java
@@ -173,4 +173,5 @@
public List<AppVersion> findAppVersion();
+ SysUsers findByOpenId(String openId, Long companyId);
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
index 3771598..b348206 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
@@ -270,4 +270,9 @@
public List<AppVersion> findAppVersion() {
return sysUsersDao.selectAppVersion();
}
+
+ @Override
+ public SysUsers findByOpenId(String openId, Long companyId) {
+ return sysUsersDao.selectUserByOpenId(openId);
+ }
}
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml b/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml
index f21d2ca..4a16e92 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml
@@ -1329,4 +1329,11 @@
select * from app_version
</select>
+ <select id="selectUserByOpenId" resultMap="SysUsersMap">
+ select * from sys_users where find_in_set(#{openId}, open_ids)
+ <if test="companyId != null">
+ and company_id=#{companyId}
+ </if>
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1