From 56f48cef1774bb23fc9571989af9aebcd195b9b7 Mon Sep 17 00:00:00 2001 From: 15856 <15856818120@163.com> Date: Wed, 22 Jan 2025 17:55:43 +0800 Subject: [PATCH] =?UTF-8?q?i=E7=9A=96=E9=80=81=E6=8E=A5=E5=85=A5=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E6=A1=86=E6=9E=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/controller/TokenController.java | 7 +- .../java/com/bonus/auth/form/LoginBody.java | 6 +- .../bonus/auth/service/SysLoginService.java | 64 ++++++++++++------- .../resources/mapper/system/SysUserMapper.xml | 5 +- 4 files changed, 53 insertions(+), 29 deletions(-) diff --git a/bonus-auth/src/main/java/com/bonus/auth/controller/TokenController.java b/bonus-auth/src/main/java/com/bonus/auth/controller/TokenController.java index 5ef880e..d02c0e9 100644 --- a/bonus-auth/src/main/java/com/bonus/auth/controller/TokenController.java +++ b/bonus-auth/src/main/java/com/bonus/auth/controller/TokenController.java @@ -169,15 +169,14 @@ public class TokenController { log.info("ticket=" + ticket); if (StringUtils.isNotEmpty(ticket)) { LoginUser loginUser = new LoginUser(); - SysUser sysUser = new SysUser(); if (form.getSysType()!=null && "1".equals(form.getSysType())){ - sysLoginService.iwsH5Login(ticket,iwsH5AppId,iwsH5Url,loginUser,sysUser); + loginUser = sysLoginService.iwsH5Login(ticket,iwsH5AppId,iwsH5Url); } else if (form.getSysType()!=null && "0".equals(form.getSysType())) { - sysLoginService.iwsWebLogin(ticket,iwsWebAppId,iwsWebUrl,loginUser,sysUser); + loginUser = sysLoginService.iwsWebLogin(ticket,iwsWebAppId,iwsWebUrl); }else { throw new ServiceException("登录失败,请稍后重试"); } - logService.saveLogin(sysUser.getUserName(), "登录", "登录成功", null, "成功"); + logService.saveLogin(loginUser.getSysUser().getUserName(), "登录", "登录成功", null, "成功"); //生成系统token return R.ok(tokenService.createToken(loginUser)); diff --git a/bonus-auth/src/main/java/com/bonus/auth/form/LoginBody.java b/bonus-auth/src/main/java/com/bonus/auth/form/LoginBody.java index 5724fdb..8a8d8d3 100644 --- a/bonus-auth/src/main/java/com/bonus/auth/form/LoginBody.java +++ b/bonus-auth/src/main/java/com/bonus/auth/form/LoginBody.java @@ -47,4 +47,8 @@ public class LoginBody { * i皖送登录方式 0:web端登录 1:H5登录 */ private String sysType; -} \ No newline at end of file + /** + * i皖送登录数据库中没有用心信息的时候给个默认公司 + */ + private Long deptId; +} diff --git a/bonus-auth/src/main/java/com/bonus/auth/service/SysLoginService.java b/bonus-auth/src/main/java/com/bonus/auth/service/SysLoginService.java index 3e66552..c01613a 100644 --- a/bonus-auth/src/main/java/com/bonus/auth/service/SysLoginService.java +++ b/bonus-auth/src/main/java/com/bonus/auth/service/SysLoginService.java @@ -93,6 +93,7 @@ public class SysLoginService { * @param registerBody 注册信息 */ public void register(RegisterBody registerBody) { + log.info("开始进行注册==============="); long startTime = System.currentTimeMillis(); // 记录开始时间 String result = convertAndAppend(registerBody.getNickName(), registerBody.getMobile()); int contactType = getContactType(registerBody.getMobile()); @@ -128,7 +129,7 @@ public class SysLoginService { SysUser sysUser = new SysUser(); sysUser.setUserName(registerBody.getUsername()); sysUser.setNickName(registerBody.getNickName()); - + sysUser.setDeptId(registerBody.getDeptId()); if (systemConfig.getRegistersConfig().isApprovalStatus()){ sysUser.setApprovalStatus("0"); sysUser.setStatus("1"); @@ -156,6 +157,7 @@ public class SysLoginService { recordLogService.saveLogs(registerBody.getUsername(), startTime, "注册异常", e.getMessage(), null, "失败"); throw new ServiceException("注册失败,请稍后重试"); } + log.info("结束进行注册==============="); } /** @@ -203,26 +205,30 @@ public class SysLoginService { * @param iwsWebUrl * @return */ - public void iwsWebLogin(String ticket, String iwsWebAppId, String iwsWebUrl,LoginUser loginUser,SysUser sysUser) { + public LoginUser iwsWebLogin(String ticket, String iwsWebAppId, String iwsWebUrl) { Map paramMap = new HashMap<>(); + LoginUser loginUser = new LoginUser(); + SysUser sysUser = new SysUser(); paramMap.put("ticket", ticket); paramMap.put("appId", iwsWebAppId); RestTemplate restTemplate = new RestTemplate(); ResponseEntity authResponse = restTemplate.getForEntity(iwsWebUrl, String.class, paramMap); log.info("authResponse:" + authResponse.toString()); - if ("200".equals(authResponse.getStatusCode())){ - // 根据ResponseEntity responseEntity对象,获取body部分,body为json格式字符串 - String content = authResponse.getBody(); - // 将json字符串转化为json对象 - JSONObject json = JSONObject.parseObject(content); - // 取出data部分对象 - JSONObject data = json.getJSONObject("data"); + // 根据ResponseEntity responseEntity对象,获取body部分,body为json格式字符串 + String content = authResponse.getBody(); + // 将json字符串转化为json对象 + JSONObject json = JSONObject.parseObject(content); + // 取出data部分对象 + JSONObject data = json.getJSONObject("data"); + + if ("200".equals(json.getInteger("code").toString())){ sysUser.setUserName(data.get("userName").toString()); sysUser.setNickName(data.get("name").toString()); sysUser.setPhonenumber(data.get("mobile").toString()); loginUser.setSysUser(sysUser); - createUser(sysUser,loginUser); + loginUser = createUser(sysUser,loginUser); } + return loginUser; } /** @@ -230,40 +236,51 @@ public class SysLoginService { * @param sysUser * @param loginUser */ - private void createUser(SysUser sysUser, LoginUser loginUser) { + private LoginUser createUser(SysUser sysUser, LoginUser loginUser) { //通过用户名获取人员信息 - R userResult = remoteUserService.getUserInfo(sysUser.getUserName(), SecurityConstants.INNER); + LoginUser loginUserNew = new LoginUser(); + SysUser sysUserNew = new SysUser(); + String resultName = convertAndAppend(sysUser.getNickName(), sysUser.getPhonenumber()); + R userResult = remoteUserService.getUserInfo(resultName, SecurityConstants.INNER); + if (userResult.getData() == null || R.FAIL == userResult.getCode()) { log.info("登录用户不存在,进行创建----"); RegisterBody registerBody = new RegisterBody(); registerBody.setUsername(sysUser.getUserName()); registerBody.setNickName(sysUser.getNickName()); registerBody.setMobile(sysUser.getPhonenumber()); + registerBody.setDeptId(220L); + registerBody.setPassword("Bonus@Max2024"); //获取配置中的初始密码 AjaxResult result = configService.getConfigKey("sys.user.initPassword"); - if (result.isSuccess()) + if ("200".equals(result.get("code").toString())) { - sysUser.setPassword(result.get("msg").toString()); + registerBody.setPassword(result.get("msg").toString()); } + log.info("开始进行注册{}",registerBody); //新用户注册 try { register(registerBody); + log.info("注册成功!"); //查询用户信息 - userResult = remoteUserService.getUserInfo(sysUser.getUserName(), SecurityConstants.INNER); - loginUser = userResult.getData(); - sysUser = loginUser.getSysUser(); + userResult = remoteUserService.getUserInfo(resultName, SecurityConstants.INNER); + loginUserNew = userResult.getData(); + sysUserNew = loginUserNew.getSysUser(); + log.info("获取用户信息成功!{}",loginUserNew.getSysUser()); //初始化一个角色 Long[] roleIds = new Long[5]; // 将数组的第一个元素赋值为 2 roleIds[0] = 2L; - remoteUserService.insertAuthRole(sysUser.getUserId(),roleIds,SecurityConstants.INNER); + log.info("开始绑定角色信息{}",roleIds); + remoteUserService.insertAuthRole(sysUserNew.getUserId(),roleIds,SecurityConstants.INNER); + log.info("角色信息绑定成功!"); }catch (Exception e){ throw new ServiceException("登录失败,请稍后重试"); } }else { - loginUser = userResult.getData(); - sysUser = loginUser.getSysUser(); + loginUserNew = userResult.getData(); } + return loginUserNew; } /** @@ -273,8 +290,10 @@ public class SysLoginService { * @param iwsH5Url * @return */ - public void iwsH5Login(String ticket, String iwsH5AppId, String iwsH5Url,LoginUser loginUser,SysUser sysUser) { + public LoginUser iwsH5Login(String ticket, String iwsH5AppId, String iwsH5Url) { Map paramMap = new HashMap<>(); + LoginUser loginUser = new LoginUser(); + SysUser sysUser = new SysUser(); paramMap.put("ticket", ticket); paramMap.put("appId", iwsH5AppId); RestTemplate restTemplate = new RestTemplate(); @@ -292,7 +311,8 @@ public class SysLoginService { sysUser.setNickName(userInfo.get("name").toString()); sysUser.setPhonenumber(userInfo.get("mobile").toString()); loginUser.setSysUser(sysUser); - createUser(sysUser,loginUser); + loginUser = createUser(sysUser,loginUser); } + return loginUser; } } diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml index 86258d8..e57c932 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -96,6 +96,7 @@ left join sys_dept d on u.dept_id = d.dept_id left join sys_user_role ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id + left join sys_dept sd on r.company_id = sd.dept_id - where u.del_flag = '0'AND u.user_name = #{userName} + where u.del_flag = '0' AND u.user_name = #{userName}