12 changed files with 237 additions and 82 deletions
@ -0,0 +1,84 @@ |
|||||
|
package com.kms.web.controller.system; |
||||
|
|
||||
|
import cn.dev33.satoken.stp.StpUtil; |
||||
|
import com.alibaba.fastjson.JSONObject; |
||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
|
import com.jianwei.common.constant.Constants; |
||||
|
import com.jianwei.common.core.domain.AjaxResult; |
||||
|
import com.jianwei.common.core.domain.entity.SysUser; |
||||
|
import com.jianwei.common.core.redis.RedisCache; |
||||
|
import com.jianwei.common.enums.UserStatus; |
||||
|
import com.kms.config.WaterRequestUtil; |
||||
|
import com.kms.config.WaterResult; |
||||
|
import com.kms.framework.manager.AsyncManager; |
||||
|
import com.kms.framework.manager.factory.AsyncFactory; |
||||
|
import com.kms.framework.web.service.SysPermissionService; |
||||
|
import com.kms.system.service.SysMenuService; |
||||
|
import com.kms.system.service.SysUserService; |
||||
|
import lombok.extern.log4j.Log4j2; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.beans.factory.annotation.Value; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
|
||||
|
@RestController |
||||
|
@Log4j2 |
||||
|
@RequestMapping("/token") |
||||
|
public class TokenController { |
||||
|
|
||||
|
|
||||
|
@Autowired |
||||
|
private SysMenuService menuService; |
||||
|
|
||||
|
@Autowired |
||||
|
private SysPermissionService permissionService; |
||||
|
@Autowired |
||||
|
private SysUserService userService; |
||||
|
@Autowired |
||||
|
private RedisCache redisCache; |
||||
|
@Autowired |
||||
|
private WaterRequestUtil waterRequestUtil; |
||||
|
@Value("${water.redirect}") |
||||
|
private String redirect; |
||||
|
|
||||
|
|
||||
|
|
||||
|
@GetMapping("/returnToken") |
||||
|
public AjaxResult returnToken( |
||||
|
@RequestParam(name = "token")String token){ |
||||
|
WaterResult waterResult = waterRequestUtil.authUser(token); |
||||
|
JSONObject jsonObject = JSONObject.parseObject(waterResult.getData()); |
||||
|
String user = jsonObject.getString("user"); |
||||
|
JSONObject userJsonObject = JSONObject.parseObject(user); |
||||
|
String uid = userJsonObject.getString("id"); |
||||
|
QueryWrapper<SysUser> query = Wrappers.query(); |
||||
|
query.eq("single_user_id",uid); |
||||
|
List<SysUser> list = userService.list(query); |
||||
|
if(list.isEmpty()){ |
||||
|
return AjaxResult.error("登录用户不存在,请同步用户"); |
||||
|
} |
||||
|
AjaxResult ajax = AjaxResult.success(); |
||||
|
SysUser sysUser = list.get(0); |
||||
|
if (UserStatus.DELETED.getCode().equals(sysUser.getDelFlag())) { |
||||
|
log.info(" :{} 已被删除.", sysUser.getUserName()); |
||||
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(sysUser.getUserName(), Constants.LOGIN_FAIL, "账户已删除")); |
||||
|
return AjaxResult.error("对不起,您的账号:" + sysUser.getUserName() + " 已被删除"); |
||||
|
} else if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) { |
||||
|
log.info("登录用户:{} 已被停用.", sysUser.getUserName()); |
||||
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(sysUser.getUserName(), Constants.LOGIN_FAIL, "账户已停用")); |
||||
|
return AjaxResult.error("对不起,您的账号:" + sysUser.getUserName() + " 已停用"); |
||||
|
} |
||||
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(sysUser.getUserName(), Constants.LOGIN_SUCCESS, "登录成功")); |
||||
|
StpUtil.login(sysUser.getId()); |
||||
|
StpUtil.getSession().set("jianwei-user",user); |
||||
|
String tokenValue = StpUtil.getTokenValue(); |
||||
|
ajax.put("token",tokenValue); |
||||
|
return ajax; |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue