From f117f44f5e3347ffc38803413eac15e5a91cf9d5 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 24 Dec 2021 14:33:28 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BC=9A=E5=91=98=E9=97=A8=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ThirdLoginController.java | 10 +++--- .../system/service/ISysUserService.java | 3 ++ .../service/impl/SysUserServiceImpl.java | 36 ++++++++++++++++--- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ThirdLoginController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ThirdLoginController.java index 52172d93..d37c9a59 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ThirdLoginController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ThirdLoginController.java @@ -208,20 +208,20 @@ public class ThirdLoginController { } @SuppressWarnings("unchecked") - @RequestMapping(value = "/getLoginUser/{token}/{thirdType}", method = RequestMethod.GET) + @RequestMapping(value = "/getLoginUser/{token}", method = RequestMethod.GET) @ResponseBody - public Result getThirdLoginUser(@PathVariable("token") String token,@PathVariable("thirdType") String thirdType) throws Exception { + public Result getThirdLoginUser(@PathVariable("token") String token) throws Exception { Result result = new Result(); String username = JwtUtil.getUsername(token); //1. 校验用户是否有效 - SysUser sysUser = sysUserService.getUserByName(username); + SysUser sysUser = sysUserService.getUserByNameOrPhone(username); result = sysUserService.checkUserIsEffective(sysUser); if(!result.isSuccess()) { return result; } //update-begin-author:wangshuai date:20201118 for:如果真实姓名和头像不存在就取第三方登录的 - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + /*LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(SysThirdAccount::getSysUserId,sysUser.getId()); query.eq(SysThirdAccount::getThirdType,thirdType); SysThirdAccount account = sysThirdAccountService.getOne(query); @@ -230,7 +230,7 @@ public class ThirdLoginController { } if(oConvertUtils.isEmpty(sysUser.getAvatar())){ sysUser.setAvatar(account.getAvatar()); - } + }*/ //update-end-author:wangshuai date:20201118 for:如果真实姓名和头像不存在就取第三方登录的 JSONObject obj = new JSONObject(); //用户登录信息 diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 8dc5d445..c27a6d1e 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; +import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.SysUserCacheInfo; import com.jero.modules.pay.company.entity.PayContactsManagement; import com.jero.modules.system.entity.SysUser; @@ -65,6 +66,8 @@ public interface ISysUserService extends IService { public SysUser getUserByName(String username); + SysUser getUserByNameOrPhone(String username); + /** * 添加用户和用户角色关系 * @param user diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index b7621f0d..d9d7a3da 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -23,6 +23,8 @@ import com.jero.modules.system.mapper.*; import com.jero.modules.system.model.SysUserSysDepartModel; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.vo.SysUserDepVo; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CacheEvict; @@ -30,7 +32,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; -import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.util.*; @@ -127,8 +128,35 @@ public class SysUserServiceImpl extends ServiceImpl impl return userMapper.getUserByName(username); } + @Override + public SysUser getUserByNameOrPhone(String username) { + if(oConvertUtils.isEmpty(username)) { + return null; + } + LoginUser loginUser = new LoginUser(); + SysUser sysUser = userMapper.getUserByName(username); + if(sysUser==null) { + PayContactsManagement contactsManagement = userMapper.getPayContactsManagementByPhone(username); + if (contactsManagement == null){ + return null; + }else { + BeanUtils.copyProperties(contactsManagement, loginUser); + loginUser.setIsCompanyUser(true); + loginUser.setUsername(contactsManagement.getPhone()); + loginUser.setRealname(contactsManagement.getName()); + loginUser.setRoleCode("企业用户"); + } + }else { + BeanUtils.copyProperties(sysUser, loginUser); + List roleByUserName = sysUserRoleMapper.getRoleByUserName(username); + loginUser.setRoleCode(StringUtils.join(roleByUserName, ",")); + loginUser.setIsCompanyUser(false); + } + return sysUser; + } - @Override + + @Override @Transactional public void addUserWithRole(SysUser user, String roles) { this.save(user); @@ -380,11 +408,11 @@ public class SysUserServiceImpl extends ServiceImpl impl return result; } //情况3:根据用户信息查询,该用户已冻结 - if (CommonConstant.USER_FREEZE.equals(sysUser.getStatus())) { + /*if (CommonConstant.USER_FREEZE.equals(sysUser.getStatus())) { baseCommonService.addLog("用户登录失败,用户名:" + sysUser.getUsername() + "已冻结!", CommonConstant.LOG_TYPE_1, null); result.error500("该用户已冻结"); return result; - } + }*/ return result; }