|
|
@ -15,17 +15,17 @@
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
package com.baiye.modules.system.controller;
|
|
|
|
package com.baiye.modules.system.controller;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
import com.baiye.component.LoginUser;
|
|
|
|
import com.baiye.component.LoginUser;
|
|
|
|
import com.baiye.config.properties.RsaProperties;
|
|
|
|
import com.baiye.config.properties.RsaProperties;
|
|
|
|
import com.baiye.constant.AdPlatFormConstants;
|
|
|
|
import com.baiye.constant.AdPlatFormConstants;
|
|
|
|
import com.baiye.constant.DefaultNumberConstants;
|
|
|
|
import com.baiye.constant.DefaultNumberConstants;
|
|
|
|
import com.baiye.constant.RoleNumberConstants;
|
|
|
|
import com.baiye.constant.RoleNumberConstants;
|
|
|
|
|
|
|
|
import com.baiye.constant.SecurityConstants;
|
|
|
|
import com.baiye.exception.BadRequestException;
|
|
|
|
import com.baiye.exception.BadRequestException;
|
|
|
|
import com.baiye.model.dto.DelUserDTO;
|
|
|
|
import com.baiye.model.dto.*;
|
|
|
|
import com.baiye.model.dto.RoleSmallDto;
|
|
|
|
|
|
|
|
import com.baiye.model.dto.UserDto;
|
|
|
|
|
|
|
|
import com.baiye.model.dto.UserFavorOfExcel;
|
|
|
|
|
|
|
|
import com.baiye.modules.platform.domain.vo.UserPassVo;
|
|
|
|
import com.baiye.modules.platform.domain.vo.UserPassVo;
|
|
|
|
import com.baiye.modules.platform.service.dto.BuyComboDTO;
|
|
|
|
import com.baiye.modules.platform.service.dto.BuyComboDTO;
|
|
|
|
import com.baiye.modules.platform.service.dto.CreateUserDTO;
|
|
|
|
import com.baiye.modules.platform.service.dto.CreateUserDTO;
|
|
|
@ -38,6 +38,8 @@ import com.baiye.util.ReadExcelUtils;
|
|
|
|
import com.baiye.util.RsaUtils;
|
|
|
|
import com.baiye.util.RsaUtils;
|
|
|
|
import com.baiye.util.SecurityUtils;
|
|
|
|
import com.baiye.util.SecurityUtils;
|
|
|
|
import com.google.common.collect.ImmutableMap;
|
|
|
|
import com.google.common.collect.ImmutableMap;
|
|
|
|
|
|
|
|
import com.google.common.collect.Maps;
|
|
|
|
|
|
|
|
import io.micrometer.core.instrument.util.StringUtils;
|
|
|
|
import io.swagger.annotations.Api;
|
|
|
|
import io.swagger.annotations.Api;
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
@ -46,6 +48,8 @@ import org.springframework.data.domain.Pageable;
|
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
|
|
|
|
|
import org.springframework.security.core.GrantedAuthority;
|
|
|
|
|
|
|
|
import org.springframework.security.core.authority.AuthorityUtils;
|
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
|
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
|
|
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
@ -54,10 +58,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -82,11 +83,32 @@ public class UserController {
|
|
|
|
@ApiOperation("获取用户信息")
|
|
|
|
@ApiOperation("获取用户信息")
|
|
|
|
@GetMapping(value = "/info")
|
|
|
|
@GetMapping(value = "/info")
|
|
|
|
public ResponseEntity<Object> getUserInfo() {
|
|
|
|
public ResponseEntity<Object> getUserInfo() {
|
|
|
|
|
|
|
|
LoginUser user;
|
|
|
|
|
|
|
|
Set<String> dbAuthsSet = new HashSet<>();
|
|
|
|
LoginUser currentUser = SecurityUtils.getCurrentUser();
|
|
|
|
LoginUser currentUser = SecurityUtils.getCurrentUser();
|
|
|
|
String jwtTokenString = EncryptUtil.AESEncode(currentUser.getUser().getId().toString(), AdPlatFormConstants.PLATFORM_USER);
|
|
|
|
if (ObjectUtil.isNotNull(currentUser)) {
|
|
|
|
// 返回 token 与 用户信息
|
|
|
|
UserDto byName = this.userService.findByName(currentUser.getUsername());
|
|
|
|
Map<String, Object> authInfo = ImmutableMap.of("user", currentUser, "jwtToken", jwtTokenString);
|
|
|
|
Set<String> stringSet = roleService.getUserPermissions(byName);
|
|
|
|
return ResponseEntity.ok(authInfo);
|
|
|
|
if (CollUtil.isNotEmpty(byName.getRoles())) {
|
|
|
|
|
|
|
|
byName.getRoles().forEach
|
|
|
|
|
|
|
|
(role -> dbAuthsSet.add(SecurityConstants.ROLE + role));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (Boolean.TRUE.equals(byName.getIsAdmin())) {
|
|
|
|
|
|
|
|
dbAuthsSet.add(SecurityConstants.ADMIN);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String[] authArray = dbAuthsSet.stream().filter(StringUtils::isNotBlank).toArray(String[]::new);
|
|
|
|
|
|
|
|
List<GrantedAuthority> authorityList = null;
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(dbAuthsSet)) {
|
|
|
|
|
|
|
|
authorityList = AuthorityUtils.createAuthorityList(authArray);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
user = new LoginUser(byName, stringSet, byName.getId(), byName.getUsername(), byName.getPassword(), byName.getEnabled(),
|
|
|
|
|
|
|
|
true, true, true, authorityList, new ArrayList<>());
|
|
|
|
|
|
|
|
String jwtTokenString = EncryptUtil.AESEncode(currentUser.getUser().getId().toString(), AdPlatFormConstants.PLATFORM_USER);
|
|
|
|
|
|
|
|
// 返回 token 与 用户信息
|
|
|
|
|
|
|
|
Map<String, Object> authInfo = ImmutableMap.of("user", user, "jwtToken", jwtTokenString);
|
|
|
|
|
|
|
|
return ResponseEntity.ok(authInfo);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return ResponseEntity.ok(Maps.newConcurrentMap());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|