diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java index 6cbc6c569..9a6c0e018 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java @@ -73,34 +73,33 @@ public class ThirdPartyOAth2Cotroller { public R zzdsso(@PathVariable(name = "token") String token) { //获取数字政务token通过浙政钉前端获取的token,调试阶段先写死 - String json = "{" + - "\"username\": \"李宗相\"," + - "\"organizationId\": 2," + - "\"userId\": 1340," + - "\"nickName\": \"李宗相\"," + - "\"mobile\": \"18576496089\"," + - "\"regionCode\": null," + - "\"ext\": {" + - "\"employeeCode\": \"GE_ae12bdf21598498eb48bf2cf2c45a3e1\"," + - "\"organizationCode\": \"GO_63e77077d5e041789bbbe1d0d20bcf41\"," + - "\"nickNameCn\": \"李宗相\"," + - "\"openid\": \"1b51f0e11fc73b8adddcbaf7982daab6\"," + - "\"realmId\": \"196729\"," + - "\"mobile\": null" + - "}" + - "}"; +// String json = "{" + +// "\"username\": \"李宗相\"," + +// "\"organizationId\": 2," + +// "\"userId\": 1340," + +// "\"nickName\": \"李宗相\"," + +// "\"mobile\": \"18576496089\"," + +// "\"regionCode\": null," + +// "\"ext\": {" + +// "\"employeeCode\": \"GE_ae12bdf21598498eb48bf2cf2c45a3e1\"," + +// "\"organizationCode\": \"GO_63e77077d5e041789bbbe1d0d20bcf41\"," + +// "\"nickNameCn\": \"李宗相\"," + +// "\"openid\": \"1b51f0e11fc73b8adddcbaf7982daab6\"," + +// "\"realmId\": \"196729\"," + +// "\"mobile\": null" + +// "}" + +// "}"; - ObjectMapper objectMapper = new ObjectMapper(); - ZZDUserDTO zzdUserDTO; - try { - zzdUserDTO = objectMapper.readValue(json, ZZDUserDTO.class); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } +// ObjectMapper objectMapper = new ObjectMapper(); +// ZZDUserDTO zzdUserDTO; +// try { +// zzdUserDTO = objectMapper.readValue(json, ZZDUserDTO.class); +// } catch (JsonProcessingException e) { +// throw new RuntimeException(e); +// } //暂时先注释,模拟一下就行 -// R zzdsso = remoterThirdPartyAuthService.zzdsso(token); -// ZZDUserDTO zzdUserDTO = (ZZDUserDTO) zzdsso.getData(); + ZZDUserDTO zzdUserDTO = thirdPartyOAuth2Service.zzdsso(token); ZZDUserDTO.Ext ext = zzdUserDTO.getExt(); String employeeCode = ext.getEmployeeCode(); String mobile = zzdUserDTO.getMobile(); @@ -108,59 +107,62 @@ public class ThirdPartyOAth2Cotroller { //两种方式,手机号+员工钉钉号,查到相同就视为同一个人,然后登录 //先系统表里面查看是否有,在第三方数据库表里面看下是否有 + R r; //1.根据手机号或者钉钉号先查询是否有这个人 R> userByMobileOrEmployeeCode = remoteUserService.getUserByMobileOrEmployeeCode(employeeCode, mobile); List sysUserList = userByMobileOrEmployeeCode.getData(); - if(!CollectionUtils.isEmpty(sysUserList)){ //登录成功生成token UserTokenDTO userTokenDTO = new UserTokenDTO(); userTokenDTO.setSysUser(sysUserList.get(0)); - remoteTokenService.generateToken(userTokenDTO); + r = remoteTokenService.generateToken(userTokenDTO); + }else { + //2.根据浙政钉的员工钉钉号查询是否有这个人 + List thirdPartyUserEntityList = thirdPartyUserService.getUserByEmployeeCode(employeeCode); + UserDTO userDTO = new UserDTO(); + //写死,新加入到部门表的全部归类到其他部门里面,不按照浙政钉的部门 + userDTO.setDeptId(1865990541445263361L); + userDTO.setUsername(zzdUserDTO.getUsername()); + userDTO.setName(zzdUserDTO.getUsername()); + userDTO.setNickname(zzdUserDTO.getUsername()); + //浙里办用户 + userDTO.setSystemType("1"); + //取上面的手机号 + userDTO.setPhone(mobile); + userDTO.setDingtalkEmployeeCode(employeeCode); + //随便写死给个密码 + userDTO.setPassword("pj"+mobile); + if(!CollectionUtils.isEmpty(thirdPartyUserEntityList)){ + //todo 这一步现在是没用的,这个最终要考虑是否通过浙政钉里面的人员来限制移动端的使用用户来决定 + //第三方数据库里面有 + //这里只在第三方库里查到,所以要对系统用户表进行新增当前用户,插入一条信息进去 + R booleanR = remoteUserService.registerUser(userDTO); + //通过唯一手机号查询到刚注册的用户信息,生成token + R> userByMobile=remoteUserService.getUserByMobile(mobile); + SysUser sysUser = userByMobile.getData().get(0); + UserTokenDTO userTokenDTO = new UserTokenDTO(); + userTokenDTO.setSysUser(sysUser); + //登录成功,根据新注册的用户信息返回token + r=remoteTokenService.generateToken(userTokenDTO); + }else { + return R.failed("没有找到当前用户信息,无法访问!"); + } } - //2.根据浙政钉的员工钉钉号查询是否有这个人 - List thirdPartyUserEntityList = thirdPartyUserService.getUserByEmployeeCode(employeeCode); - UserDTO userDTO = new UserDTO(); - //写死,新加入到部门表的全部归类到其他部门里面,不按照浙政钉的部门 - userDTO.setDeptId(1865990541445263361L); - userDTO.setUsername(zzdUserDTO.getUsername()); - userDTO.setName(zzdUserDTO.getUsername()); - userDTO.setNickname(zzdUserDTO.getUsername()); - //浙里办用户 - userDTO.setSystemType("1"); - //取上面的手机号 - userDTO.setPhone(mobile); - userDTO.setDingtalkEmployeeCode(employeeCode); - //随便写死给个密码 - userDTO.setPassword("pj"+mobile); - if(!CollectionUtils.isEmpty(thirdPartyUserEntityList)){ - //todo 这一步现在是没用的,这个最终要考虑是否通过浙政钉里面的人员来限制移动端的使用用户来决定 - //第三方数据库里面有 - //这里只在第三方库里查到,所以要对系统用户表进行新增当前用户,插入一条信息进去 - R booleanR = remoteUserService.registerUser(userDTO); - //通过唯一手机号查询到刚注册的用户信息,生成token - R> userByMobile=remoteUserService.getUserByMobile(mobile); - SysUser sysUser = userByMobile.getData().get(0); - UserTokenDTO userTokenDTO = new UserTokenDTO(); - userTokenDTO.setSysUser(sysUser); - //登录成功,根据新注册的用户信息返回token - remoteTokenService.generateToken(userTokenDTO); - } //两个表都没查到人员不能够使用移动端的系统 // log.info("用户不存在,尝试创建用户"); - R booleanR = remoteUserService.registerUser(userDTO); - //通过唯一手机号查询到刚注册的用户信息,生成token - - R> userByMobile=remoteUserService.getUserByMobile(mobile); - SysUser sysUser = userByMobile.getData().get(0); -// int i=8/0; - UserTokenDTO userTokenDTO = new UserTokenDTO(); - userTokenDTO.setSysUser(sysUser); - //登录成功,根据新注册的用户信息返回token - R r = remoteTokenService.generateToken(userTokenDTO); +// R booleanR = remoteUserService.registerUser(userDTO); +// //通过唯一手机号查询到刚注册的用户信息,生成token +// +// R> userByMobile=remoteUserService.getUserByMobile(mobile); +// SysUser sysUser = userByMobile.getData().get(0); +//// int i=8/0; +// UserTokenDTO userTokenDTO = new UserTokenDTO(); +// userTokenDTO.setSysUser(sysUser); +// //登录成功,根据新注册的用户信息返回token +// R r = remoteTokenService.generateToken(userTokenDTO); HashMap objectObjectHashMap = new HashMap<>(); Object accessToken = r.getData().get("accessToken"); Object refreshToken = r.getData().get("refreshToken");