Commit 385f54d7 authored by 竹天卫's avatar 竹天卫

登录接口 和 获取当前登录用户 完成

parent 703ff216
package cn.wise.sc.acquisition.business.controller;
import cn.wise.sc.acquisition.business.entity.TSysUser;
import cn.wise.sc.acquisition.business.model.BaseResponse;
import cn.wise.sc.acquisition.business.service.ITSysUserService;
import cn.wise.sc.acquisition.business.service.impl.LoginService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "登录接口")
@RestController
@RequestMapping("/login")
public class LoginController {
//
private static final Logger log = LoggerFactory.getLogger("LoginController");
@Autowired
private LoginService loginService;
@Autowired
private ITSysUserService userService;
@ApiOperation(value = "登录")
@GetMapping("/getToken")
public BaseResponse getToken(String userName, String password) {
try {
//测试服务器
return loginService.login(userName, password);
} catch (Exception e) {
log.debug("获取登录token{}", e);
}
return BaseResponse.errorMsg("失败!");
}
@ApiOperation(value = "当前登录用户")
@GetMapping("/getLoginUser")
public BaseResponse getLoginUser() {
try {
return loginService.getLoginUser();
} catch (Exception e) {
log.debug("当前登录用户{}", e);
}
return BaseResponse.errorMsg("失败!");
}
@ApiOperation(value = "测试接口")
@GetMapping("/testSave")
public BaseResponse testSave() {
try {
TSysUser user = new TSysUser();
user.setName("张三").setLoginID("zhangsan").setPassword("123456").setDeptID("1").setRoleID(1);
userService.save(user);
return BaseResponse.okMsg("成功");
} catch (Exception e) {
log.debug("测试接口{}", e);
}
return BaseResponse.errorMsg("失败!");
}
}
...@@ -4,14 +4,18 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -4,14 +4,18 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.annotation.Generated;
/** /**
* <p> * <p>
* *
* </p> * </p>
* *
* @author ztw * @author ztw
...@@ -23,49 +27,48 @@ import lombok.experimental.Accessors; ...@@ -23,49 +27,48 @@ import lombok.experimental.Accessors;
@TableName("T_Sys_User") @TableName("T_Sys_User")
public class TSysUser implements Serializable { public class TSysUser implements Serializable {
private static final long serialVersionUID=1L; private static final long serialVersionUID = 1L;
/**
* ID号
*/
@TableId(value = "ID", type = IdType.AUTO)
private Integer id;
/** /**
* 人员姓名 * ID号
*/ */
@TableField("Name") @TableId(value = "ID", type = IdType.AUTO)
private String Name; private Integer id;
/** /**
* 登录ID * 人员姓名
*/ */
@TableField("LoginID") @TableField("Name")
private String LoginID; private String Name;
/** /**
* 登录密码 * 登录ID
*/ */
@TableField("Password") @TableField("LoginID")
private String Password; private String LoginID;
/** /**
* 角色ID * 登录密码
*/ */
@TableField("RoleID") @TableField("Password")
private Integer RoleID; private String Password;
/** /**
* 部门ID * 角色ID
*/ */
@TableField("DeptID") @TableField("RoleID")
private String DeptID; private Integer RoleID;
/** /**
* 描述信息 * 部门ID
*/ */
@TableField("Description") @TableField("DeptID")
private String Description; private String DeptID;
/**
* 描述信息
*/
@TableField("Description")
private String Description;
} }
package cn.wise.sc.acquisition.business.model;
import cn.wise.sc.acquisition.business.entity.TSysUser;
import lombok.Data;
@Data
public class LoginUser extends TSysUser {
// private List<SysPermission> permissions;
private String token;
/**
* 登陆时间戳(毫秒)
*/
private Long loginTime;
/**
* 过期时间戳
*/
private Long expireTime;
private String postName;
// SysRole roleList;
}
package cn.wise.sc.acquisition.business.service; package cn.wise.sc.acquisition.business.service;
import cn.wise.sc.acquisition.business.entity.TSysUser; import cn.wise.sc.acquisition.business.entity.TSysUser;
import cn.wise.sc.acquisition.business.model.LoginUser;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** /**
...@@ -13,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -13,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface ITSysUserService extends IService<TSysUser> { public interface ITSysUserService extends IService<TSysUser> {
LoginUser getLoginUser();
} }
package cn.wise.sc.acquisition.business.service.impl;
import cn.hutool.core.util.StrUtil;
import cn.wise.sc.acquisition.business.entity.TSysUser;
import cn.wise.sc.acquisition.business.model.BaseResponse;
import cn.wise.sc.acquisition.business.model.LoginUser;
import cn.wise.sc.acquisition.business.service.ITSysUserService;
import cn.wise.sc.acquisition.business.util.JwtUtil;
import cn.wise.sc.acquisition.business.util.MD5Util;
import cn.wise.sc.acquisition.business.util.RedisUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class LoginService {
@Autowired
private ITSysUserService userService;
@Autowired
RedisUtil redisUtil;
/**
* 登录
* @param LoginID
* @param Password
* @return
*/
public BaseResponse<String> login(String LoginID, String Password) {
if (StrUtil.isEmpty(LoginID)) {
return BaseResponse.errorMsg("用户名为必填项!");
}
if (StrUtil.isEmpty(Password)) {
return BaseResponse.errorMsg("密码为必填项!");
}
System.out.println("=========LoginID==========Password=========");
System.out.println(LoginID + "\n" + Password);
try {
QueryWrapper<TSysUser> wrapper = new QueryWrapper<>();
wrapper.eq("LoginID", LoginID);
TSysUser sysUser = userService.getOne(wrapper);
if (sysUser == null) {
return BaseResponse.errorMsg("非系统用户不允许登录!");
}
// String loginPassWd = MD5Util.MD5Encode(Password,"UTF-8");
if (!sysUser.getPassword().equals(Password)) {
return BaseResponse.errorMsg("密码错误");
}
//生成token,存入redis
String token = JwtUtil.createToken(sysUser.getId(),
sysUser.getName(),sysUser.getLoginID());
System.out.println(token);
redisUtil.setString(sysUser.getId().toString(), token, 3600);
return BaseResponse.okData(token);
} catch (Exception e) {
return BaseResponse.errorMsg(e.getMessage());
}
}
public static void main(String args[]){
String loginPassWd = MD5Util.MD5Encode("123456","UTF-8");
System.out.println(loginPassWd);
}
/**
* 当前登录用户
* @return
*/
public BaseResponse<LoginUser> getLoginUser() {
LoginUser loginUser = userService.getLoginUser();
return BaseResponse.okData(loginUser);
}
}
package cn.wise.sc.acquisition.business.service.impl; package cn.wise.sc.acquisition.business.service.impl;
import cn.wise.sc.acquisition.business.entity.TSysUser; import cn.wise.sc.acquisition.business.entity.TSysUser;
import cn.wise.sc.acquisition.business.exception.BusinessExceptionEnum;
import cn.wise.sc.acquisition.business.mapper.TSysUserMapper; import cn.wise.sc.acquisition.business.mapper.TSysUserMapper;
import cn.wise.sc.acquisition.business.model.LoginUser;
import cn.wise.sc.acquisition.business.service.ITSysUserService; import cn.wise.sc.acquisition.business.service.ITSysUserService;
import cn.wise.sc.acquisition.business.util.JwtUtil;
import cn.wise.sc.acquisition.business.util.RedisUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/** /**
* <p> * <p>
* 服务实现类 * 服务实现类
...@@ -17,4 +27,43 @@ import org.springframework.stereotype.Service; ...@@ -17,4 +27,43 @@ import org.springframework.stereotype.Service;
@Service @Service
public class TSysUserServiceImpl extends ServiceImpl<TSysUserMapper, TSysUser> implements ITSysUserService { public class TSysUserServiceImpl extends ServiceImpl<TSysUserMapper, TSysUser> implements ITSysUserService {
@Resource
private TSysUserMapper userMapper;
@Resource
private HttpServletRequest request;
@Autowired
RedisUtil redisUtil;
/*@Resource
private SysPermissionMapper permissionMapper;
@Resource
private SysRoleMapper roleMapper;*/
/**
* 当前登录用户
*
* @return
*/
@Override
public LoginUser getLoginUser() {
try {
String token = request.getHeader("Authorization");
System.out.println("==================当前登录用户的Authorization===================");
System.out.println(token);
Map map = JwtUtil.parserToken(token);
Object obj = redisUtil.getString(map.get("id").toString());
BusinessExceptionEnum.CACHE_NOT_FOUND.assertNotNull(obj);
TSysUser sysUser = userMapper.selectById(Integer.valueOf(map.get("id").toString()));
LoginUser loginUser = new LoginUser();
BeanUtils.copyProperties(sysUser, loginUser);
return loginUser;
} catch (Exception e) {
return null;
}
}
} }
...@@ -40,16 +40,14 @@ public class JwtUtil { ...@@ -40,16 +40,14 @@ public class JwtUtil {
* *
* @return * @return
*/ */
public static String createToken(Integer id, String username, String name, String public static String createToken(Integer id, String Name, String LoginID) {
phone) {
Claims claim = new DefaultClaims(); Claims claim = new DefaultClaims();
// 设置 签发人 // 设置 签发人
long timeStamp = (new Date()).getTime(); long timeStamp = (new Date()).getTime();
claim.setIssuer("acquisition"); claim.setIssuer("acquisition");
claim.put("id", id); claim.put("id", id);
claim.put("username", username); claim.put("Name", Name);
claim.put("name", name); claim.put("LoginID", LoginID);
claim.put("phone", phone);
claim.put("timeStamp", timeStamp); claim.put("timeStamp", timeStamp);
Key signingKey = getKey(SECRET_KEY, DEFAULTSIGN.getJcaName()); Key signingKey = getKey(SECRET_KEY, DEFAULTSIGN.getJcaName());
JwtBuilder builder = Jwts.builder().setClaims(claim).signWith(DEFAULTSIGN, signingKey); JwtBuilder builder = Jwts.builder().setClaims(claim).signWith(DEFAULTSIGN, signingKey);
...@@ -202,7 +200,7 @@ public class JwtUtil { ...@@ -202,7 +200,7 @@ public class JwtUtil {
} }
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
String token = createToken(1, "34466", "荀玉龙", "17601636518"); String token = createToken(1, "荀玉龙", "17601636518");
System.out.println(token); System.out.println(token);
System.out.println(parserToken(token)); System.out.println(parserToken(token));
System.out.println(getValueByToken(token, "enterpriseId")); System.out.println(getValueByToken(token, "enterpriseId"));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment