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