统一登录
This commit is contained in:
parent
1ce183b8b0
commit
f5d127fe66
|
|
@ -0,0 +1,130 @@
|
|||
package com.dkl.web.controller.system;
|
||||
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.dkl.common.constant.Constants;
|
||||
import com.dkl.common.core.domain.AjaxResult;
|
||||
import com.dkl.common.core.domain.entity.SysDept;
|
||||
import com.dkl.common.core.domain.entity.SysUser;
|
||||
import com.dkl.common.core.domain.model.LoginUser;
|
||||
import com.dkl.common.core.redis.RedisCache;
|
||||
import com.dkl.common.utils.SecurityUtils;
|
||||
import com.dkl.common.utils.StringUtils;
|
||||
import com.dkl.framework.web.service.SysLoginService;
|
||||
import com.dkl.framework.web.service.SysPermissionService;
|
||||
import com.dkl.system.service.ISysDeptService;
|
||||
import com.dkl.system.service.ISysRoleService;
|
||||
import com.dkl.system.service.ISysUserService;
|
||||
import com.smartlx.sso.client.model.AccessToken;
|
||||
import com.smartlx.sso.client.model.RemoteUserInfo;
|
||||
import com.smartlx.sso.client.result.Result;
|
||||
import com.smartlx.sso.client.service.SsoClientService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import static com.dkl.common.core.domain.AjaxResult.error;
|
||||
import static net.sf.jsqlparser.util.validation.metadata.NamedObject.user;
|
||||
|
||||
|
||||
/**
|
||||
* 单点登录Controller
|
||||
* @author sgc
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class LoginSsoController {
|
||||
|
||||
@Value("${outData.clientId}")
|
||||
String clientIds;
|
||||
@Value("${outData.clientSecret}")
|
||||
String clientSecret;
|
||||
@Value("${outData.url}")
|
||||
String outUrl;
|
||||
@Autowired
|
||||
private ISysRoleService roleService;
|
||||
|
||||
@Autowired
|
||||
private ISysDeptService deptService;
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
|
||||
@Autowired
|
||||
private SysPermissionService permissionService;
|
||||
@Autowired
|
||||
private SsoClientService ssoClientService;
|
||||
@Autowired
|
||||
private SysLoginService loginService;
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
@PostMapping("/loginSso")
|
||||
public AjaxResult loginSso(String code) {
|
||||
|
||||
AjaxResult ajax = AjaxResult.success();
|
||||
RemoteUserInfo remoteUserInfo = null;
|
||||
try{
|
||||
Result result =ssoClientService.getAccessToken(code);
|
||||
if (result.isSuccess()) {
|
||||
AccessToken accessToken = (AccessToken) result.getData();
|
||||
remoteUserInfo =ssoClientService.getRemoteUserInfo(accessToken);
|
||||
|
||||
//获取手机号
|
||||
String phone = remoteUserInfo.getYddh();
|
||||
//通过手机号查询用户
|
||||
SysUser sysUser = userService.selectUserByphone(phone);
|
||||
if(sysUser!=null){
|
||||
sysUser.setUserName(remoteUserInfo.getXm());
|
||||
sysUser.setNickName(remoteUserInfo.getYhm());
|
||||
SysUser user = new SysUser();
|
||||
user.setUserId(sysUser.getUserId());
|
||||
user.setUserName(remoteUserInfo.getXm());
|
||||
user.setNickName(remoteUserInfo.getYhm());
|
||||
userService.updateUserProfile(user);
|
||||
redisCache.deleteObject(sysUser.getPhonenumber());
|
||||
redisCache.setCacheObject(sysUser.getPhonenumber(), accessToken.getAccess_token());
|
||||
System.out.println(remoteUserInfo.getYddh());
|
||||
String token = loginService.logingcy(sysUser); // 调用服务层生成Token
|
||||
return AjaxResult.success().put(Constants.TOKEN, token);
|
||||
}else{
|
||||
log.info("进入没查询到用户");
|
||||
SysUser user = new SysUser();
|
||||
log.info(remoteUserInfo.getYhm());
|
||||
user.setUserName(remoteUserInfo.getXm());
|
||||
user.setNickName(remoteUserInfo.getYhm());
|
||||
log.info(remoteUserInfo.getYddh());
|
||||
user.setPhonenumber(remoteUserInfo.getYddh());
|
||||
user.setStatus("0");
|
||||
SysDept sysDept = deptService.selectDeptBysjgajgjgdm(remoteUserInfo.getGajgjgdm());
|
||||
// if (sysDept!=null){
|
||||
// user.setDeptId(sysDept.getDeptId());
|
||||
// }else {
|
||||
// user.setDeptId(10106L);
|
||||
// }
|
||||
user.setDeptId(10106L);
|
||||
user.setRoleIds(new Long[]{2L});
|
||||
user.setCreateBy("三方");
|
||||
user.setCreateTime(new Date());
|
||||
user.setPassword(SecurityUtils.encryptPassword("Syj!123456"));
|
||||
log.info(user.toString());
|
||||
userService.insertUser(user);
|
||||
redisCache.deleteObject(sysUser.getPhonenumber());
|
||||
redisCache.setCacheObject(user.getPhonenumber(), accessToken.getAccess_token());
|
||||
System.out.println(remoteUserInfo.getYddh());
|
||||
String token = loginService.logingcy(user); // 调用服务层生成Token
|
||||
return AjaxResult.success().put(Constants.TOKEN, token);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
return error();
|
||||
}
|
||||
return ajax;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue