Compare commits

...

3 Commits

Author SHA1 Message Date
张海宁 90927048f1 完善基本权限鉴定 2023-10-15 10:53:02 +08:00
张海宁 c837ebf949 Revert "完善基本权限鉴定"
This reverts commit 1bf068db95.
2023-10-15 10:35:04 +08:00
张海宁 1bf068db95 完善基本权限鉴定 2023-10-15 10:27:47 +08:00
7 changed files with 232 additions and 0 deletions

View File

@ -0,0 +1,38 @@
package com.health.auth.controller;
import com.health.auth.service.UserService;
import com.health.common.domain.User;
import com.health.common.domain.req.ReqLogin;
import com.health.common.domain.resp.RespJWT;
import com.health.common.result.Result;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* @author Administrator
*/
@RestController
@RequestMapping("/admin")
@AllArgsConstructor
public class UserController {
private final UserService userService;
@PostMapping("/login")
public Result<RespJWT> login(@RequestBody ReqLogin reqLogin){
return userService.login(reqLogin);
}
@GetMapping("/user/info")
Result<User> userinfo(HttpServletRequest request){
return userService.userinfo(request);
}
}

View File

@ -0,0 +1,25 @@
package com.health.auth.feign;
import com.health.common.domain.User;
import com.health.common.result.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
/**
* @author Administrator
*/
@FeignClient("base_system")
public interface AuthFeignSystem {
/**
*
* @param userName
* @return resultuser
*/
@GetMapping("/user/byUserName/{userName}")
Result<User> byUserName(@PathVariable String userName);
}

View File

@ -0,0 +1,31 @@
package com.health.auth.service;
import com.health.common.domain.User;
import com.health.common.domain.req.ReqLogin;
import com.health.common.domain.resp.RespJWT;
import com.health.common.result.Result;
import javax.servlet.http.HttpServletRequest;
/**
* @author Administrator
*/
public interface UserService {
/**
* --token
* @param reqLogin
* @return resultjwttoken
*/
Result<RespJWT> login(ReqLogin reqLogin);
/**
*
* @param request
* @return resultUser
*/
Result<User> userinfo(HttpServletRequest request);
}

View File

@ -0,0 +1,90 @@
package com.health.auth.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.health.auth.feign.AuthFeignSystem;
import com.health.auth.service.UserService;
import com.health.common.constants.JwtConstants;
import com.health.common.constants.TokenConstants;
import com.health.common.domain.User;
import com.health.common.domain.req.ReqLogin;
import com.health.common.domain.resp.RespJWT;
import com.health.common.result.Result;
import com.health.common.utils.JwtUtils;
import com.health.common.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
*
* @author Administrator
* @date 20231015 0948
*/
@Service
@Log4j2
@AllArgsConstructor
public class UserServiceImpl implements UserService {
private final AuthFeignSystem authFeignSystem;
private final RedisTemplate<String,String> redisTemplate;
/**
* --token
*
* @param reqLogin
* @return resultjwttoken
*/
@Override
public Result<RespJWT> login(ReqLogin reqLogin) {
if (StringUtils.isEmpty(reqLogin.getUsername())){
return Result.error("用户名为空!");
}
if (StringUtils.isEmpty(reqLogin.getPassword())){
return Result.error("密码为空!");
}
String username = reqLogin.getUsername();
Result<User> userResult = authFeignSystem.byUserName(username);
User data = userResult.getData();
if (null == data) {
return Result.error("先注册手机号,在登录");
}
HashMap<String, Object> map = new HashMap<>();
String userkey = UUID.randomUUID().toString().replaceAll("-", "");
map.put(JwtConstants.USER_KEY, userkey);
map.put(JwtConstants.DETAILS_USER_ID, data.getId());
String token = JwtUtils.createToken(map);
redisTemplate.opsForValue().set(
TokenConstants.LOGIN_TOKEN_KEY + userkey,
JSONObject.toJSONString(data),
TokenConstants.EXPIRATION,
TimeUnit.MINUTES
);
RespJWT respJWT = new RespJWT();
respJWT.setToken(token);
respJWT.setEidTime("720MIN");
return Result.success(respJWT);
}
/**
*
*
* @param request
* @return resultUser
*/
@Override
public Result<User> userinfo(HttpServletRequest request) {
return null;
}
}

View File

@ -0,0 +1,19 @@
package com.health.common.domain;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class User {
private Integer id;
private String username;
private String password;
private String emil;
}

View File

@ -0,0 +1,16 @@
package com.health.common.domain.req;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class ReqLogin {
private Integer id;
private String username;
private String password;
private String emil;
}

View File

@ -0,0 +1,13 @@
package com.health.common.domain.resp;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class RespJWT {
private String token;
private String eidTime;
}