格式化代码
This commit is contained in:
parent
71a01cfd87
commit
73b2ddae7d
|
@ -17,8 +17,8 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|||
public class RedisConfig {
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(name = "redis template")
|
||||
public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
|
||||
RedisTemplate<Object,Object> template = new RedisTemplate<>();
|
||||
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
||||
RedisTemplate<Object, Object> template = new RedisTemplate<>();
|
||||
//使用fastjson序列化
|
||||
FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
|
||||
//value值的序列化采用fastJsonRedisSerializer
|
||||
|
@ -33,7 +33,7 @@ public class RedisConfig {
|
|||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(StringRedisTemplate.class)
|
||||
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory){
|
||||
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
||||
StringRedisTemplate template = new StringRedisTemplate();
|
||||
template.setConnectionFactory(redisConnectionFactory);
|
||||
return template;
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
package com.example.catchTheLetters.config;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
/**
|
||||
|
@ -18,7 +20,7 @@ public class WebMvcConfig {
|
|||
public WebMvcConfigurer corsConfigurer() {
|
||||
return new WebMvcConfigurer() {
|
||||
@Override
|
||||
public void addCorsMappings(org.springframework.web.servlet.config.annotation.CorsRegistry registry) {
|
||||
public void addCorsMappings(@NotNull CorsRegistry registry) {
|
||||
registry
|
||||
.addMapping("/**")
|
||||
.allowedOriginPatterns("*") // 允许所有域
|
||||
|
|
|
@ -11,7 +11,7 @@ public interface CommonConstant {
|
|||
|
||||
Integer TOKEN_EXPIRE_TIME = 7200000;
|
||||
|
||||
Integer REDIS_EXPIRE_TIME = 7*24*60*60*1000;
|
||||
Integer REDIS_EXPIRE_TIME = 7 * 24 * 60 * 60 * 1000;
|
||||
|
||||
String EMAIL_REGEX = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
|
||||
|
||||
|
|
|
@ -13,13 +13,13 @@ import lombok.Getter;
|
|||
@AllArgsConstructor
|
||||
public enum HttpStatus {
|
||||
|
||||
SUCCESS(200,"操作成功"),
|
||||
SUCCESS(200, "操作成功"),
|
||||
|
||||
BAD_REQUEST(400,"参数列表错误"),
|
||||
BAD_REQUEST(400, "参数列表错误"),
|
||||
|
||||
TOKEN_EXCEPTION(401,"token验证错误"),
|
||||
TOKEN_EXCEPTION(401, "token验证错误"),
|
||||
|
||||
ERROR(500,"系统内部错误");
|
||||
ERROR(500, "系统内部错误");
|
||||
|
||||
private final Integer code;
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
|
||||
/**
|
||||
* 认证控制器
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
@RestController
|
||||
|
@ -53,8 +54,8 @@ public class AuthController {
|
|||
@ApiOperation(value = "用户信息查询(不会返回密码,查不出status为0的用户)")
|
||||
@GetMapping("/info")
|
||||
@ApiParam(name = "id", value = "用户ID(不传就是拿token查自己)")
|
||||
public R<User> info(@RequestParam(required = false) Integer id, @RequestHeader("token")String token) {
|
||||
if (id != null){
|
||||
public R<User> info(@RequestParam(required = false) Integer id, @RequestHeader("token") String token) {
|
||||
if (id != null) {
|
||||
return R.ok(authService.getUserInfo(id));
|
||||
}
|
||||
return R.ok(authService.verify(token));
|
||||
|
|
|
@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
|
||||
/**
|
||||
* 关卡控制器
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
@RestController
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 关卡类
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
@Data
|
||||
|
|
|
@ -6,6 +6,7 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* 关卡结算信息类
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
@Data
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* 用户类
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
@Data
|
||||
|
@ -68,7 +69,7 @@ public class User implements Serializable {
|
|||
*/
|
||||
private Integer progress;
|
||||
|
||||
public UserVo toVo(){
|
||||
public UserVo toVo() {
|
||||
UserVo userVo = new UserVo();
|
||||
userVo.setId(this.getId());
|
||||
userVo.setUsername(this.getUsername());
|
||||
|
|
|
@ -6,6 +6,7 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* 数据表版本类(用于Realm对MongoDB的数据表版本进行同步检测,版本号不同则进行同步)
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
@Data
|
||||
|
|
|
@ -6,6 +6,7 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* 登录信息类
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
@Data
|
||||
|
|
|
@ -6,6 +6,7 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* 注册信息类
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
@Data
|
||||
|
|
|
@ -8,11 +8,13 @@ import com.example.catchTheLetters.utils.R;
|
|||
|
||||
/**
|
||||
* 认证服务接口
|
||||
*
|
||||
* @author spyn
|
||||
*/
|
||||
public interface AuthService {
|
||||
/**
|
||||
* 登录
|
||||
*
|
||||
* @param loginDto 登录信息
|
||||
* @return token
|
||||
*/
|
||||
|
@ -20,6 +22,7 @@ public interface AuthService {
|
|||
|
||||
/**
|
||||
* 注销
|
||||
*
|
||||
* @param token token
|
||||
* @return 是否成功
|
||||
*/
|
||||
|
@ -27,6 +30,7 @@ public interface AuthService {
|
|||
|
||||
/**
|
||||
* 验证token
|
||||
*
|
||||
* @param token token
|
||||
* @return 用户信息(不可以包含密码)
|
||||
*/
|
||||
|
@ -34,6 +38,7 @@ public interface AuthService {
|
|||
|
||||
/**
|
||||
* 注册
|
||||
*
|
||||
* @param registerDto 注册信息
|
||||
* @return token
|
||||
*/
|
||||
|
@ -41,6 +46,7 @@ public interface AuthService {
|
|||
|
||||
/**
|
||||
* 获取用户信息
|
||||
*
|
||||
* @param id 用户id
|
||||
* @return 用户信息
|
||||
*/
|
||||
|
@ -48,6 +54,7 @@ public interface AuthService {
|
|||
|
||||
/**
|
||||
* 通过用户名获取信息
|
||||
*
|
||||
* @param username 用户名
|
||||
* @return 用户信息
|
||||
*/
|
||||
|
|
|
@ -18,110 +18,110 @@ import java.util.Set;
|
|||
*/
|
||||
public interface RedisService {
|
||||
|
||||
void set(String key, Object value, long time);
|
||||
void set(String key, Object value, long time);
|
||||
|
||||
void set(String key, Object value);
|
||||
void set(String key, Object value);
|
||||
|
||||
Object get(String key);
|
||||
Object get(String key);
|
||||
|
||||
Boolean del(String key);
|
||||
Boolean del(String key);
|
||||
|
||||
Long del(List<String> keys);
|
||||
Long del(List<String> keys);
|
||||
|
||||
Boolean expire(String key, long time);
|
||||
Boolean expire(String key, long time);
|
||||
|
||||
Long getExpire(String key);
|
||||
Long getExpire(String key);
|
||||
|
||||
Boolean hasKey(String key);
|
||||
Boolean hasKey(String key);
|
||||
|
||||
Long incr(String key, long delta);
|
||||
Long incr(String key, long delta);
|
||||
|
||||
Long incrExpire(String key, long time);
|
||||
Long incrExpire(String key, long time);
|
||||
|
||||
Long decr(String key, long delta);
|
||||
Long decr(String key, long delta);
|
||||
|
||||
Object hGet(String key, String hashKey);
|
||||
Object hGet(String key, String hashKey);
|
||||
|
||||
Boolean hSet(String key, String hashKey, Object value, long time);
|
||||
Boolean hSet(String key, String hashKey, Object value, long time);
|
||||
|
||||
void hSet(String key, String hashKey, Object value);
|
||||
void hSet(String key, String hashKey, Object value);
|
||||
|
||||
Map<String, Object> hGetAll(String key);
|
||||
Map<String, Object> hGetAll(String key);
|
||||
|
||||
Boolean hSetAll(String key, Map<String, Object> map, long time);
|
||||
Boolean hSetAll(String key, Map<String, Object> map, long time);
|
||||
|
||||
void hSetAll(String key, Map<String, ?> map);
|
||||
void hSetAll(String key, Map<String, ?> map);
|
||||
|
||||
void hDel(String key, Object... hashKey);
|
||||
void hDel(String key, Object... hashKey);
|
||||
|
||||
Boolean hHasKey(String key, String hashKey);
|
||||
Boolean hHasKey(String key, String hashKey);
|
||||
|
||||
Long hIncr(String key, String hashKey, Long delta);
|
||||
Long hIncr(String key, String hashKey, Long delta);
|
||||
|
||||
Long hDecr(String key, String hashKey, Long delta);
|
||||
Long hDecr(String key, String hashKey, Long delta);
|
||||
|
||||
Double zIncr(String key, Object value, Double score);
|
||||
Double zIncr(String key, Object value, Double score);
|
||||
|
||||
Double zDecr(String key, Object value, Double score);
|
||||
Double zDecr(String key, Object value, Double score);
|
||||
|
||||
Map<Object, Double> zReverseRangeWithScore(String key, long start, long end);
|
||||
Map<Object, Double> zReverseRangeWithScore(String key, long start, long end);
|
||||
|
||||
Double zScore(String key, Object value);
|
||||
Double zScore(String key, Object value);
|
||||
|
||||
Map<Object, Double> zAllScore(String key);
|
||||
Map<Object, Double> zAllScore(String key);
|
||||
|
||||
Set<Object> sMembers(String key);
|
||||
Set<Object> sMembers(String key);
|
||||
|
||||
Long sAdd(String key, Object... values);
|
||||
Long sAdd(String key, Object... values);
|
||||
|
||||
Long sAddExpire(String key, long time, Object... values);
|
||||
Long sAddExpire(String key, long time, Object... values);
|
||||
|
||||
Boolean sIsMember(String key, Object value);
|
||||
Boolean sIsMember(String key, Object value);
|
||||
|
||||
Long sSize(String key);
|
||||
Long sSize(String key);
|
||||
|
||||
Long sRemove(String key, Object... values);
|
||||
Long sRemove(String key, Object... values);
|
||||
|
||||
List<Object> lRange(String key, long start, long end);
|
||||
List<Object> lRange(String key, long start, long end);
|
||||
|
||||
Long lSize(String key);
|
||||
Long lSize(String key);
|
||||
|
||||
Object lIndex(String key, long index);
|
||||
Object lIndex(String key, long index);
|
||||
|
||||
Long lPush(String key, Object value);
|
||||
Long lPush(String key, Object value);
|
||||
|
||||
Long lPush(String key, Object value, long time);
|
||||
Long lPush(String key, Object value, long time);
|
||||
|
||||
Long lPushAll(String key, Object... values);
|
||||
Long lPushAll(String key, Object... values);
|
||||
|
||||
Long lPushAll(String key, Long time, Object... values);
|
||||
Long lPushAll(String key, Long time, Object... values);
|
||||
|
||||
Long lRemove(String key, long count, Object value);
|
||||
Long lRemove(String key, long count, Object value);
|
||||
|
||||
Boolean bitAdd(String key, int offset, boolean b);
|
||||
Boolean bitAdd(String key, int offset, boolean b);
|
||||
|
||||
Boolean bitGet(String key, int offset);
|
||||
Boolean bitGet(String key, int offset);
|
||||
|
||||
Long bitCount(String key);
|
||||
Long bitCount(String key);
|
||||
|
||||
List<Long> bitField(String key, int limit, int offset);
|
||||
List<Long> bitField(String key, int limit, int offset);
|
||||
|
||||
byte[] bitGetAll(String key);
|
||||
byte[] bitGetAll(String key);
|
||||
|
||||
Long hyperAdd(String key, Object... value);
|
||||
Long hyperAdd(String key, Object... value);
|
||||
|
||||
Long hyperGet(String... key);
|
||||
Long hyperGet(String... key);
|
||||
|
||||
void hyperDel(String key);
|
||||
void hyperDel(String key);
|
||||
|
||||
Long geoAdd(String key, Double x, Double y, String name);
|
||||
Long geoAdd(String key, Double x, Double y, String name);
|
||||
|
||||
List<Point> geoGetPointList(String key, Object... place);
|
||||
List<Point> geoGetPointList(String key, Object... place);
|
||||
|
||||
Distance geoCalculationDistance(String key, String placeOne, String placeTow);
|
||||
Distance geoCalculationDistance(String key, String placeOne, String placeTow);
|
||||
|
||||
GeoResults<RedisGeoCommands.GeoLocation<Object>> geoNearByPlace(String key, String place, Distance distance, long limit, Sort.Direction sort);
|
||||
GeoResults<RedisGeoCommands.GeoLocation<Object>> geoNearByPlace(String key, String place, Distance distance, long limit, Sort.Direction sort);
|
||||
|
||||
List<String> geoGetHash(String key, String... place);
|
||||
List<String> geoGetHash(String key, String... place);
|
||||
|
||||
}
|
||||
|
|
|
@ -42,21 +42,21 @@ public class AuthServiceImpl implements AuthService {
|
|||
var patternPhone = Pattern.compile(CommonConstant.PHONE_REGEX);
|
||||
var matcherPhone = patternPhone.matcher(username);
|
||||
User user;
|
||||
if (matcherEmail.matches()){
|
||||
if (matcherEmail.matches()) {
|
||||
user = mongoTemplate.findOne(new Query(Criteria.where(CommonConstant.EMAIL).is(username).and(CommonConstant.STATUS).ne(0)), User.class);
|
||||
}else if (matcherPhone.matches()){
|
||||
} else if (matcherPhone.matches()) {
|
||||
user = mongoTemplate.findOne(new Query(Criteria.where(CommonConstant.PHONE).is(username).and(CommonConstant.STATUS).ne(0)), User.class);
|
||||
}else {
|
||||
user = mongoTemplate.findOne(new Query(Criteria.where(CommonConstant.USERNAME).is(username).and(CommonConstant.STATUS).ne(0)),User.class);
|
||||
} else {
|
||||
user = mongoTemplate.findOne(new Query(Criteria.where(CommonConstant.USERNAME).is(username).and(CommonConstant.STATUS).ne(0)), User.class);
|
||||
}
|
||||
if (Objects.isNull(user)){
|
||||
if (Objects.isNull(user)) {
|
||||
return R.fail("用户不存在");
|
||||
}
|
||||
if (!user.getPassword().equals(loginDto.getPassword())){
|
||||
if (!user.getPassword().equals(loginDto.getPassword())) {
|
||||
return R.fail("密码错误");
|
||||
}
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("id",user.getId().toString());
|
||||
map.put("id", user.getId().toString());
|
||||
var token = JwtUtil.getToken(map, CommonConstant.TOKEN_EXPIRE_TIME);
|
||||
redisService.hSet(token, user.getId().toString(), CommonConstant.REDIS_EXPIRE_TIME);
|
||||
return R.ok(token);
|
||||
|
@ -74,8 +74,8 @@ public class AuthServiceImpl implements AuthService {
|
|||
if (map != null) {
|
||||
id = map.get("id").asString().replaceAll("\"", "");
|
||||
}
|
||||
var user = mongoTemplate.findOne(new Query(Criteria.where("id").is(id).and(CommonConstant.STATUS).ne(0)),User.class);
|
||||
if (Objects.isNull(user)){
|
||||
var user = mongoTemplate.findOne(new Query(Criteria.where("id").is(id).and(CommonConstant.STATUS).ne(0)), User.class);
|
||||
if (Objects.isNull(user)) {
|
||||
return null;
|
||||
}
|
||||
return user;
|
||||
|
@ -93,20 +93,20 @@ public class AuthServiceImpl implements AuthService {
|
|||
user.setUsername(registerDto.getUsername());
|
||||
user.setPassword(registerDto.getPassword());
|
||||
var insert = mongoTemplate.insert(user);
|
||||
if (insert.getId() != null){
|
||||
if (insert.getId() != null) {
|
||||
return R.ok(user.toVo());
|
||||
}else {
|
||||
} else {
|
||||
return R.fail("注册失败,请重试");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public User getUserInfo(Integer id) {
|
||||
return mongoTemplate.findOne(new Query(Criteria.where("id").is(id).and(CommonConstant.STATUS).ne(0)),User.class);
|
||||
return mongoTemplate.findOne(new Query(Criteria.where("id").is(id).and(CommonConstant.STATUS).ne(0)), User.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public User getUserByName(String username) {
|
||||
return mongoTemplate.findOne(new Query(Criteria.where("username").is(username).and(CommonConstant.STATUS).ne(0)),User.class);
|
||||
return mongoTemplate.findOne(new Query(Criteria.where("username").is(username).and(CommonConstant.STATUS).ne(0)), User.class);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,16 +22,18 @@ import java.util.Map;
|
|||
@Component
|
||||
public class JwtUtil {
|
||||
public static final Integer EXPIRE_TIME = 1; // 1天
|
||||
|
||||
/**
|
||||
* 生成token
|
||||
* @param map 传入map
|
||||
*
|
||||
* @param map 传入map
|
||||
* @param expired token存储时间
|
||||
* @return token
|
||||
*/
|
||||
public static String getToken(Map<String,String> map, Integer expired){
|
||||
public static String getToken(Map<String, String> map, Integer expired) {
|
||||
Calendar instance = Calendar.getInstance();
|
||||
//设置过期时间单位:天
|
||||
instance.add(Calendar.DATE,expired);
|
||||
instance.add(Calendar.DATE, expired);
|
||||
//创建JWT builder
|
||||
JWTCreator.Builder builder = JWT.create();
|
||||
//payload
|
||||
|
@ -44,28 +46,30 @@ public class JwtUtil {
|
|||
|
||||
/**
|
||||
* 验证token合法性 || 获取token信息方法
|
||||
*
|
||||
* @param token 传入token
|
||||
* @return
|
||||
*/
|
||||
public static DecodedJWT verify(String token){
|
||||
public static DecodedJWT verify(String token) {
|
||||
return JWT.require(Algorithm.HMAC256(CommonConstant.TOKEN_SECRET)).build().verify(token);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取payload
|
||||
*
|
||||
* @param token 传入token
|
||||
* @return 返回payload
|
||||
*/
|
||||
public static Map<String, Claim> getPayload(String token){
|
||||
Map<String,Claim> claims = null;
|
||||
try{
|
||||
public static Map<String, Claim> getPayload(String token) {
|
||||
Map<String, Claim> claims = null;
|
||||
try {
|
||||
claims = JWT.require(Algorithm.HMAC256(CommonConstant.TOKEN_SECRET)).build().verify(token).getClaims();
|
||||
} catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
return claims;
|
||||
} catch (NullPointerException e){
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
|
@ -74,19 +78,20 @@ public class JwtUtil {
|
|||
/**
|
||||
* 获取过期时间
|
||||
*/
|
||||
public static Date getExpiresAt(String token){
|
||||
public static Date getExpiresAt(String token) {
|
||||
return JwtUtil.getExpiresAt(token);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断token是否过期
|
||||
*
|
||||
* @return true:过期 false:没过期
|
||||
*/
|
||||
public Boolean isTokenExpired(String token){
|
||||
public Boolean isTokenExpired(String token) {
|
||||
try {
|
||||
Date expiration = JwtUtil.getExpiresAt(token);
|
||||
return expiration.before(new Date());
|
||||
} catch (TokenExpiredException e){
|
||||
} catch (TokenExpiredException e) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue