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;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.annotation.Generated;
/**
* <p>
*
*
* </p>
*
* @author ztw
......@@ -23,49 +27,48 @@ import lombok.experimental.Accessors;
@TableName("T_Sys_User")
public class TSysUser implements Serializable {
private static final long serialVersionUID=1L;
/**
* ID号
*/
@TableId(value = "ID", type = IdType.AUTO)
private Integer id;
private static final long serialVersionUID = 1L;
/**
* 人员姓名
*/
@TableField("Name")
private String Name;
/**
* ID号
*/
@TableId(value = "ID", type = IdType.AUTO)
private Integer id;
/**
* 登录ID
*/
@TableField("LoginID")
private String LoginID;
/**
* 人员姓名
*/
@TableField("Name")
private String Name;
/**
* 登录密码
*/
@TableField("Password")
private String Password;
/**
* 登录ID
*/
@TableField("LoginID")
private String LoginID;
/**
* 角色ID
*/
@TableField("RoleID")
private Integer RoleID;
/**
* 登录密码
*/
@TableField("Password")
private String Password;
/**
* 部门ID
*/
@TableField("DeptID")
private String DeptID;
/**
* 角色ID
*/
@TableField("RoleID")
private Integer RoleID;
/**
* 描述信息
*/
@TableField("Description")
private String Description;
/**
* 部门ID
*/
@TableField("DeptID")
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;
import cn.wise.sc.acquisition.business.entity.TSysUser;
import cn.wise.sc.acquisition.business.model.LoginUser;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -13,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
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;
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.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.RedisUtil;
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 javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* <p>
* 服务实现类
......@@ -17,4 +27,43 @@ import org.springframework.stereotype.Service;
@Service
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 {
*
* @return
*/
public static String createToken(Integer id, String username, String name, String
phone) {
public static String createToken(Integer id, String Name, String LoginID) {
Claims claim = new DefaultClaims();
// 设置 签发人
long timeStamp = (new Date()).getTime();
claim.setIssuer("acquisition");
claim.put("id", id);
claim.put("username", username);
claim.put("name", name);
claim.put("phone", phone);
claim.put("Name", Name);
claim.put("LoginID", LoginID);
claim.put("timeStamp", timeStamp);
Key signingKey = getKey(SECRET_KEY, DEFAULTSIGN.getJcaName());
JwtBuilder builder = Jwts.builder().setClaims(claim).signWith(DEFAULTSIGN, signingKey);
......@@ -202,7 +200,7 @@ public class JwtUtil {
}
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(parserToken(token));
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