add access user replace user login controller
parent
fb723f145f
commit
a1c28a087a
@ -1,41 +0,0 @@
|
||||
package com.anjiplus.template.gaea.business.modules.user.controller;
|
||||
|
||||
import com.anji.plus.gaea.bean.ResponseBean;
|
||||
import com.anjiplus.template.gaea.business.modules.user.dto.GaeaUserDTO;
|
||||
import com.anjiplus.template.gaea.business.modules.user.service.UserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 简单登录
|
||||
* Created by raodeming on 2021/6/23.
|
||||
*/
|
||||
@RestController
|
||||
@Api(tags = "用户管理")
|
||||
public class LoginController {
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
|
||||
/**
|
||||
* 简单实现登录
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping({"/login"})
|
||||
public ResponseBean login(@RequestBody @Validated GaeaUserDTO dto) {
|
||||
return ResponseBean.builder().data(userService.login(dto)).build();
|
||||
}
|
||||
|
||||
@PostMapping({"/health"})
|
||||
public ResponseBean health() {
|
||||
return ResponseBean.builder().build();
|
||||
}
|
||||
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package com.anjiplus.template.gaea.business.modules.user.dao;
|
||||
|
||||
import com.anji.plus.gaea.curd.mapper.GaeaBaseMapper;
|
||||
import com.anjiplus.template.gaea.business.modules.user.dao.entity.GaeaUser;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* Created by raodeming on 2021/6/23.
|
||||
*/
|
||||
@Mapper
|
||||
public interface GaeaUserMapper extends GaeaBaseMapper<GaeaUser> {
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
package com.anjiplus.template.gaea.business.modules.user.dao.entity;
|
||||
|
||||
import com.anji.plus.gaea.annotation.Unique;
|
||||
import com.anji.plus.gaea.curd.entity.GaeaBaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Created by raodeming on 2021/6/23.
|
||||
*/
|
||||
@Data
|
||||
public class GaeaUser extends GaeaBaseEntity implements Serializable {
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
private String username;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
private String password;
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
package com.anjiplus.template.gaea.business.modules.user.dto;
|
||||
|
||||
import com.anji.plus.gaea.annotation.Unique;
|
||||
import com.anji.plus.gaea.curd.dto.GaeaBaseDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
|
||||
@ApiModel(value = "用户表")
|
||||
@Data
|
||||
public class GaeaUserDTO extends GaeaBaseDTO {
|
||||
|
||||
@ApiModelProperty(value = "用户登录名")
|
||||
@NotBlank
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "用户密码")
|
||||
@NotBlank
|
||||
private String password;
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package com.anjiplus.template.gaea.business.modules.user.service;
|
||||
|
||||
import com.anjiplus.template.gaea.business.modules.user.dto.GaeaUserDTO;
|
||||
|
||||
/**
|
||||
* Created by raodeming on 2021/6/23.
|
||||
*/
|
||||
public interface UserService {
|
||||
Object login(GaeaUserDTO dto);
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
package com.anjiplus.template.gaea.business.modules.user.service.impl;
|
||||
|
||||
import com.anji.plus.gaea.cache.CacheHelper;
|
||||
import com.anji.plus.gaea.exception.BusinessExceptionBuilder;
|
||||
import com.anji.plus.gaea.utils.GaeaUtils;
|
||||
import com.anji.plus.gaea.utils.JwtBean;
|
||||
import com.anjiplus.template.gaea.business.code.ResponseCode;
|
||||
import com.anjiplus.template.gaea.business.modules.user.dao.GaeaUserMapper;
|
||||
import com.anjiplus.template.gaea.business.modules.user.dao.entity.GaeaUser;
|
||||
import com.anjiplus.template.gaea.business.modules.user.dto.GaeaUserDTO;
|
||||
import com.anjiplus.template.gaea.business.modules.user.service.UserService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.google.common.collect.Maps;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by raodeming on 2021/6/23.
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class UserServiceImpl implements UserService {
|
||||
|
||||
@Autowired
|
||||
private JwtBean jwtBean;
|
||||
|
||||
@Autowired
|
||||
private GaeaUserMapper gaeaUserMapper;
|
||||
|
||||
@Autowired
|
||||
private CacheHelper cacheHelper;
|
||||
|
||||
@Override
|
||||
public Object login(GaeaUserDTO dto) {
|
||||
|
||||
String username = dto.getUsername();
|
||||
String password = dto.getPassword();
|
||||
//1.判断用户是否存在
|
||||
LambdaQueryWrapper<GaeaUser> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(GaeaUser::getUsername, username);
|
||||
GaeaUser gaeaUser = gaeaUserMapper.selectOne(wrapper);
|
||||
if (null == gaeaUser || !gaeaUser.getPassword().equals(encrypt(password))) {
|
||||
throw BusinessExceptionBuilder.build(ResponseCode.LOGIN_ERROR);
|
||||
}
|
||||
|
||||
|
||||
Map<String, String> map = Maps.newHashMap();
|
||||
|
||||
//将登录信息缓存,默认一小时
|
||||
if (cacheHelper.exist(username)) {
|
||||
map.put("token", cacheHelper.stringGet(username));
|
||||
map.put("username", username);
|
||||
} else {
|
||||
String uuid = GaeaUtils.UUID();
|
||||
String token = jwtBean.createToken(username, uuid);
|
||||
cacheHelper.stringSetExpire(username, token, 3600);
|
||||
map.put("token", token);
|
||||
map.put("username", username);
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定字符串的md5值
|
||||
* @param dataStr 明文
|
||||
* @return String
|
||||
*/
|
||||
public static String encrypt(String dataStr) {
|
||||
try {
|
||||
MessageDigest m = MessageDigest.getInstance("MD5");
|
||||
m.update(dataStr.getBytes("UTF8"));
|
||||
byte[] s = m.digest();
|
||||
StringBuilder result = new StringBuilder();
|
||||
for (int i = 0; i < s.length; i++) {
|
||||
result.append(Integer.toHexString((0x000000FF & s[i]) | 0xFFFFFF00).substring(6));
|
||||
}
|
||||
return result.toString();
|
||||
} catch (Exception e) {
|
||||
log.error("error",e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package com.anjiplus.template.gaea.business.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
|
||||
@Slf4j
|
||||
public class MD5Util {
|
||||
/**
|
||||
* 获取指定字符串的md5值
|
||||
* @param dataStr 明文
|
||||
* @return String
|
||||
*/
|
||||
public static String encrypt(String dataStr) {
|
||||
try {
|
||||
MessageDigest m = MessageDigest.getInstance("MD5");
|
||||
m.update(dataStr.getBytes("UTF8"));
|
||||
byte[] s = m.digest();
|
||||
StringBuilder result = new StringBuilder();
|
||||
for (int i = 0; i < s.length; i++) {
|
||||
result.append(Integer.toHexString((0x000000FF & s[i]) | 0xFFFFFF00).substring(6));
|
||||
}
|
||||
return result.toString();
|
||||
} catch (Exception e) {
|
||||
log.error("error",e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue