统一登录
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