Browse Source

客服登录

master
La123123 2 days ago
parent
commit
b668d59fa8
  1. 2
      im-platform/src/main/java/com/bx/implatform/config/MvcConfig.java
  2. 8
      im-platform/src/main/java/com/bx/implatform/controller/LoginController.java
  3. 10
      im-platform/src/main/java/com/bx/implatform/entity/User.java
  4. 8
      im-platform/src/main/java/com/bx/implatform/service/UserService.java
  5. 37
      im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java

2
im-platform/src/main/java/com/bx/implatform/config/MvcConfig.java

@ -21,7 +21,7 @@ public class MvcConfig implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(xssInterceptor).addPathPatterns("/**").excludePathPatterns("/error");
registry.addInterceptor(authInterceptor).addPathPatterns("/**")
.excludePathPatterns("/login", "/logout", "/register", "/refreshToken","/*/upload", "/swagger/**", "/v3/api-docs/**",
.excludePathPatterns("/login", "/loginCustom","/logout", "/register", "/refreshToken","/*/upload", "/swagger/**", "/v3/api-docs/**",
"/swagger-resources/**", "/swagger-ui.html", "/swagger-ui/**", "/doc.html");
}

8
im-platform/src/main/java/com/bx/implatform/controller/LoginController.java

@ -7,6 +7,7 @@ import com.bx.implatform.result.Result;
import com.bx.implatform.result.ResultUtils;
import com.bx.implatform.service.UserService;
import com.bx.implatform.vo.LoginVO;
import com.github.xiaoymin.knife4j.annotations.Ignore;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
@ -27,6 +28,13 @@ public class LoginController {
return ResultUtils.success(vo);
}
@PostMapping("/loginCustom")
@Operation(summary = "用户登录", description = "用户登录")
public Result<LoginVO> loginCustom(@Valid @RequestBody LoginDTO dto) {
LoginVO vo = userService.loginCustom(dto);
return ResultUtils.success(vo);
}
@PutMapping("/refreshToken")
@Operation(summary = "刷新token", description = "用refreshtoken换取新的token")
public Result refreshToken(@RequestHeader("refreshToken") String refreshToken) {

10
im-platform/src/main/java/com/bx/implatform/entity/User.java

@ -84,4 +84,14 @@ public class User {
*/
private Integer type;
/**
* uuid
*/
private String uuid;
/**
* 用户类型 1:普通用户 2:客服
*/
private Integer isCustomer = 1;
}

8
im-platform/src/main/java/com/bx/implatform/service/UserService.java

@ -21,6 +21,14 @@ public interface UserService extends IService<User> {
*/
LoginVO login(LoginDTO dto);
/**
* 客服登录
*
* @param dto 登录dto
* @return 登录token
*/
LoginVO loginCustom(LoginDTO dto);
/**
* 修改用户密码
*

37
im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java

@ -56,6 +56,42 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if (Objects.isNull(user)) {
throw new GlobalException("用户不存在");
}
if(user.getIsCustomer() == 2){
throw new GlobalException("用户不存在");
}
if (user.getIsBanned()) {
String tip = String.format("您的账号因'%s'已被管理员封禁,请联系客服!",user.getReason());
throw new GlobalException(tip);
}
if (!passwordEncoder.matches(dto.getPassword(), user.getPassword())) {
throw new GlobalException(ResultCode.PASSWOR_ERROR);
}
// 生成token
UserSession session = BeanUtils.copyProperties(user, UserSession.class);
session.setUserId(user.getId());
session.setTerminal(dto.getTerminal());
String strJson = JSON.toJSONString(session);
String accessToken = JwtUtil.sign(user.getId(), strJson, jwtProperties.getAccessTokenExpireIn(),
jwtProperties.getAccessTokenSecret());
String refreshToken = JwtUtil.sign(user.getId(), strJson, jwtProperties.getRefreshTokenExpireIn(),
jwtProperties.getRefreshTokenSecret());
LoginVO vo = new LoginVO();
vo.setAccessToken(accessToken);
vo.setAccessTokenExpiresIn(jwtProperties.getAccessTokenExpireIn());
vo.setRefreshToken(refreshToken);
vo.setRefreshTokenExpiresIn(jwtProperties.getRefreshTokenExpireIn());
return vo;
}
@Override
public LoginVO loginCustom(LoginDTO dto) {
User user = this.findUserByUserName(dto.getUserName());
if (Objects.isNull(user)) {
throw new GlobalException("用户不存在");
}
if(user.getIsCustomer() == 1){
throw new GlobalException("用户不存在");
}
if (user.getIsBanned()) {
String tip = String.format("您的账号因'%s'已被管理员封禁,请联系客服!",user.getReason());
throw new GlobalException(tip);
@ -126,6 +162,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
}
user = BeanUtils.copyProperties(dto, User.class);
user.setPassword(passwordEncoder.encode(user.getPassword()));
user.setIsCustomer(1);
this.save(user);
log.info("注册用户,用户id:{},用户名:{},昵称:{}", user.getId(), dto.getUserName(), dto.getNickName());
}

Loading…
Cancel
Save